~fcwu-tw/+junk/oem-wireless-bluetooth-dw1550-dkms

« back to all changes in this revision

Viewing changes to oem-wireless-bluetooth-dw1550/backport-include/linux/unaligned/be_byteshift.h

  • Committer: Doro Wu
  • Date: 2013-08-14 01:41:53 UTC
  • Revision ID: doro.wu@canonical.com-20130814014153-5v7ergizf2ilf7ly
[Doro Wu]
* Merge bcmwl 6.30.223.30+bdcom-0ubuntu1

[Jesse Sung]
* Add patchram support and IDs for broadcom devices (LP: #1180300)
* cherry picked d9c78e9738ccd0017b10b8f44462aafb61904a4a from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _LINUX_UNALIGNED_BE_BYTESHIFT_H
 
2
#define _LINUX_UNALIGNED_BE_BYTESHIFT_H
 
3
 
 
4
#include <linux/types.h>
 
5
 
 
6
static inline u16 __get_unaligned_be16(const u8 *p)
 
7
{
 
8
        return p[0] << 8 | p[1];
 
9
}
 
10
 
 
11
static inline u32 __get_unaligned_be32(const u8 *p)
 
12
{
 
13
        return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3];
 
14
}
 
15
 
 
16
static inline u64 __get_unaligned_be64(const u8 *p)
 
17
{
 
18
        return (u64)__get_unaligned_be32(p) << 32 |
 
19
               __get_unaligned_be32(p + 4);
 
20
}
 
21
 
 
22
static inline void __put_unaligned_be16(u16 val, u8 *p)
 
23
{
 
24
        *p++ = val >> 8;
 
25
        *p++ = val;
 
26
}
 
27
 
 
28
static inline void __put_unaligned_be32(u32 val, u8 *p)
 
29
{
 
30
        __put_unaligned_be16(val >> 16, p);
 
31
        __put_unaligned_be16(val, p + 2);
 
32
}
 
33
 
 
34
static inline void __put_unaligned_be64(u64 val, u8 *p)
 
35
{
 
36
        __put_unaligned_be32(val >> 32, p);
 
37
        __put_unaligned_be32(val, p + 4);
 
38
}
 
39
 
 
40
static inline u16 get_unaligned_be16(const void *p)
 
41
{
 
42
        return __get_unaligned_be16((const u8 *)p);
 
43
}
 
44
 
 
45
static inline u32 get_unaligned_be32(const void *p)
 
46
{
 
47
        return __get_unaligned_be32((const u8 *)p);
 
48
}
 
49
 
 
50
static inline u64 get_unaligned_be64(const void *p)
 
51
{
 
52
        return __get_unaligned_be64((const u8 *)p);
 
53
}
 
54
 
 
55
static inline void put_unaligned_be16(u16 val, void *p)
 
56
{
 
57
        __put_unaligned_be16(val, p);
 
58
}
 
59
 
 
60
static inline void put_unaligned_be32(u32 val, void *p)
 
61
{
 
62
        __put_unaligned_be32(val, p);
 
63
}
 
64
 
 
65
static inline void put_unaligned_be64(u64 val, void *p)
 
66
{
 
67
        __put_unaligned_be64(val, p);
 
68
}
 
69
 
 
70
#endif /* _LINUX_UNALIGNED_BE_BYTESHIFT_H */