diff options
author | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-05-19 01:09:05 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-05-19 01:09:05 -0400 |
commit | c203e45f069af47ca7623e4dcd8c00bfba2722e4 (patch) | |
tree | 4563115b6565dcfd97015c1c9366fb3d07cabf19 /include/asm-generic | |
parent | a94477da38e0b261a7ecea71f4c95a3bcd5be69c (diff) | |
parent | b8291ad07a7f3b5b990900f0001198ac23ba893e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/Kbuild | 2 | ||||
-rw-r--r-- | include/asm-generic/bitops.h | 4 | ||||
-rw-r--r-- | include/asm-generic/div64.h | 7 | ||||
-rw-r--r-- | include/asm-generic/futex.h | 5 | ||||
-rw-r--r-- | include/asm-generic/int-l64.h | 71 | ||||
-rw-r--r-- | include/asm-generic/int-ll64.h | 76 | ||||
-rw-r--r-- | include/asm-generic/ioctl.h | 33 | ||||
-rw-r--r-- | include/asm-generic/memory_model.h | 2 | ||||
-rw-r--r-- | include/asm-generic/page.h | 2 | ||||
-rw-r--r-- | include/asm-generic/rtc.h | 3 | ||||
-rw-r--r-- | include/asm-generic/unaligned.h | 124 |
11 files changed, 177 insertions, 152 deletions
diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild index c18110ee30f1..4c9932a2503f 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild | |||
@@ -7,5 +7,7 @@ header-y += poll.h | |||
7 | header-y += signal.h | 7 | header-y += signal.h |
8 | header-y += statfs.h | 8 | header-y += statfs.h |
9 | 9 | ||
10 | unifdef-y += int-l64.h | ||
11 | unifdef-y += int-ll64.h | ||
10 | unifdef-y += resource.h | 12 | unifdef-y += resource.h |
11 | unifdef-y += siginfo.h | 13 | unifdef-y += siginfo.h |
diff --git a/include/asm-generic/bitops.h b/include/asm-generic/bitops.h index 15e6f253dda4..c9f369c4bd7e 100644 --- a/include/asm-generic/bitops.h +++ b/include/asm-generic/bitops.h | |||
@@ -17,8 +17,6 @@ | |||
17 | #include <asm-generic/bitops/fls64.h> | 17 | #include <asm-generic/bitops/fls64.h> |
18 | #include <asm-generic/bitops/find.h> | 18 | #include <asm-generic/bitops/find.h> |
19 | 19 | ||
20 | #ifdef __KERNEL__ | ||
21 | |||
22 | #ifndef _LINUX_BITOPS_H | 20 | #ifndef _LINUX_BITOPS_H |
23 | #error only <linux/bitops.h> can be included directly | 21 | #error only <linux/bitops.h> can be included directly |
24 | #endif | 22 | #endif |
@@ -32,6 +30,4 @@ | |||
32 | #include <asm-generic/bitops/ext2-atomic.h> | 30 | #include <asm-generic/bitops/ext2-atomic.h> |
33 | #include <asm-generic/bitops/minix.h> | 31 | #include <asm-generic/bitops/minix.h> |
34 | 32 | ||
35 | #endif /* __KERNEL__ */ | ||
36 | |||
37 | #endif /* _ASM_GENERIC_BITOPS_H */ | 33 | #endif /* _ASM_GENERIC_BITOPS_H */ |
diff --git a/include/asm-generic/div64.h b/include/asm-generic/div64.h index a4a49370793c..8f4e3193342e 100644 --- a/include/asm-generic/div64.h +++ b/include/asm-generic/div64.h | |||
@@ -30,11 +30,6 @@ | |||
30 | __rem; \ | 30 | __rem; \ |
31 | }) | 31 | }) |
32 | 32 | ||
33 | static inline uint64_t div64_64(uint64_t dividend, uint64_t divisor) | ||
34 | { | ||
35 | return dividend / divisor; | ||
36 | } | ||
37 | |||
38 | #elif BITS_PER_LONG == 32 | 33 | #elif BITS_PER_LONG == 32 |
39 | 34 | ||
40 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); | 35 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); |
@@ -54,8 +49,6 @@ extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); | |||
54 | __rem; \ | 49 | __rem; \ |
55 | }) | 50 | }) |
56 | 51 | ||
57 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
58 | |||
59 | #else /* BITS_PER_LONG == ?? */ | 52 | #else /* BITS_PER_LONG == ?? */ |
60 | 53 | ||
61 | # error do_div() does not yet support the C64 | 54 | # error do_div() does not yet support the C64 |
diff --git a/include/asm-generic/futex.h b/include/asm-generic/futex.h index f422df0956a2..3c2344f48136 100644 --- a/include/asm-generic/futex.h +++ b/include/asm-generic/futex.h | |||
@@ -1,11 +1,9 @@ | |||
1 | #ifndef _ASM_GENERIC_FUTEX_H | 1 | #ifndef _ASM_GENERIC_FUTEX_H |
2 | #define _ASM_GENERIC_FUTEX_H | 2 | #define _ASM_GENERIC_FUTEX_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
5 | #include <linux/uaccess.h> | ||
7 | #include <asm/errno.h> | 6 | #include <asm/errno.h> |
8 | #include <asm/uaccess.h> | ||
9 | 7 | ||
10 | static inline int | 8 | static inline int |
11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | 9 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) |
@@ -56,4 +54,3 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
56 | } | 54 | } |
57 | 55 | ||
58 | #endif | 56 | #endif |
59 | #endif | ||
diff --git a/include/asm-generic/int-l64.h b/include/asm-generic/int-l64.h new file mode 100644 index 000000000000..2af9b75d77db --- /dev/null +++ b/include/asm-generic/int-l64.h | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * asm-generic/int-l64.h | ||
3 | * | ||
4 | * Integer declarations for architectures which use "long" | ||
5 | * for 64-bit types. | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_GENERIC_INT_L64_H | ||
9 | #define _ASM_GENERIC_INT_L64_H | ||
10 | |||
11 | #ifndef __ASSEMBLY__ | ||
12 | /* | ||
13 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
14 | * header files exported to user space | ||
15 | */ | ||
16 | |||
17 | typedef __signed__ char __s8; | ||
18 | typedef unsigned char __u8; | ||
19 | |||
20 | typedef __signed__ short __s16; | ||
21 | typedef unsigned short __u16; | ||
22 | |||
23 | typedef __signed__ int __s32; | ||
24 | typedef unsigned int __u32; | ||
25 | |||
26 | typedef __signed__ long __s64; | ||
27 | typedef unsigned long __u64; | ||
28 | |||
29 | #endif /* __ASSEMBLY__ */ | ||
30 | |||
31 | #ifdef __KERNEL__ | ||
32 | |||
33 | #ifndef __ASSEMBLY__ | ||
34 | |||
35 | typedef signed char s8; | ||
36 | typedef unsigned char u8; | ||
37 | |||
38 | typedef signed short s16; | ||
39 | typedef unsigned short u16; | ||
40 | |||
41 | typedef signed int s32; | ||
42 | typedef unsigned int u32; | ||
43 | |||
44 | typedef signed long s64; | ||
45 | typedef unsigned long u64; | ||
46 | |||
47 | #define S8_C(x) x | ||
48 | #define U8_C(x) x ## U | ||
49 | #define S16_C(x) x | ||
50 | #define U16_C(x) x ## U | ||
51 | #define S32_C(x) x | ||
52 | #define U32_C(x) x ## U | ||
53 | #define S64_C(x) x ## L | ||
54 | #define U64_C(x) x ## UL | ||
55 | |||
56 | #else /* __ASSEMBLY__ */ | ||
57 | |||
58 | #define S8_C(x) x | ||
59 | #define U8_C(x) x | ||
60 | #define S16_C(x) x | ||
61 | #define U16_C(x) x | ||
62 | #define S32_C(x) x | ||
63 | #define U32_C(x) x | ||
64 | #define S64_C(x) x | ||
65 | #define U64_C(x) x | ||
66 | |||
67 | #endif /* __ASSEMBLY__ */ | ||
68 | |||
69 | #endif /* __KERNEL__ */ | ||
70 | |||
71 | #endif /* _ASM_GENERIC_INT_L64_H */ | ||
diff --git a/include/asm-generic/int-ll64.h b/include/asm-generic/int-ll64.h new file mode 100644 index 000000000000..260948905e4e --- /dev/null +++ b/include/asm-generic/int-ll64.h | |||
@@ -0,0 +1,76 @@ | |||
1 | /* | ||
2 | * asm-generic/int-ll64.h | ||
3 | * | ||
4 | * Integer declarations for architectures which use "long long" | ||
5 | * for 64-bit types. | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_GENERIC_INT_LL64_H | ||
9 | #define _ASM_GENERIC_INT_LL64_H | ||
10 | |||
11 | #ifndef __ASSEMBLY__ | ||
12 | /* | ||
13 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
14 | * header files exported to user space | ||
15 | */ | ||
16 | |||
17 | typedef __signed__ char __s8; | ||
18 | typedef unsigned char __u8; | ||
19 | |||
20 | typedef __signed__ short __s16; | ||
21 | typedef unsigned short __u16; | ||
22 | |||
23 | typedef __signed__ int __s32; | ||
24 | typedef unsigned int __u32; | ||
25 | |||
26 | #ifdef __GNUC__ | ||
27 | __extension__ typedef __signed__ long long __s64; | ||
28 | __extension__ typedef unsigned long long __u64; | ||
29 | #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L | ||
30 | typedef __signed__ long long __s64; | ||
31 | typedef unsigned long long __u64; | ||
32 | #endif | ||
33 | |||
34 | #endif /* __ASSEMBLY__ */ | ||
35 | |||
36 | #ifdef __KERNEL__ | ||
37 | |||
38 | #ifndef __ASSEMBLY__ | ||
39 | |||
40 | typedef signed char s8; | ||
41 | typedef unsigned char u8; | ||
42 | |||
43 | typedef signed short s16; | ||
44 | typedef unsigned short u16; | ||
45 | |||
46 | typedef signed int s32; | ||
47 | typedef unsigned int u32; | ||
48 | |||
49 | typedef signed long long s64; | ||
50 | typedef unsigned long long u64; | ||
51 | |||
52 | #define S8_C(x) x | ||
53 | #define U8_C(x) x ## U | ||
54 | #define S16_C(x) x | ||
55 | #define U16_C(x) x ## U | ||
56 | #define S32_C(x) x | ||
57 | #define U32_C(x) x ## U | ||
58 | #define S64_C(x) x ## LL | ||
59 | #define U64_C(x) x ## ULL | ||
60 | |||
61 | #else /* __ASSEMBLY__ */ | ||
62 | |||
63 | #define S8_C(x) x | ||
64 | #define U8_C(x) x | ||
65 | #define S16_C(x) x | ||
66 | #define U16_C(x) x | ||
67 | #define S32_C(x) x | ||
68 | #define U32_C(x) x | ||
69 | #define S64_C(x) x | ||
70 | #define U64_C(x) x | ||
71 | |||
72 | #endif /* __ASSEMBLY__ */ | ||
73 | |||
74 | #endif /* __KERNEL__ */ | ||
75 | |||
76 | #endif /* _ASM_GENERIC_INT_LL64_H */ | ||
diff --git a/include/asm-generic/ioctl.h b/include/asm-generic/ioctl.h index cd027298beb1..864181385579 100644 --- a/include/asm-generic/ioctl.h +++ b/include/asm-generic/ioctl.h | |||
@@ -21,8 +21,19 @@ | |||
21 | */ | 21 | */ |
22 | #define _IOC_NRBITS 8 | 22 | #define _IOC_NRBITS 8 |
23 | #define _IOC_TYPEBITS 8 | 23 | #define _IOC_TYPEBITS 8 |
24 | #define _IOC_SIZEBITS 14 | 24 | |
25 | #define _IOC_DIRBITS 2 | 25 | /* |
26 | * Let any architecture override either of the following before | ||
27 | * including this file. | ||
28 | */ | ||
29 | |||
30 | #ifndef _IOC_SIZEBITS | ||
31 | # define _IOC_SIZEBITS 14 | ||
32 | #endif | ||
33 | |||
34 | #ifndef _IOC_DIRBITS | ||
35 | # define _IOC_DIRBITS 2 | ||
36 | #endif | ||
26 | 37 | ||
27 | #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) | 38 | #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) |
28 | #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) | 39 | #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) |
@@ -35,11 +46,21 @@ | |||
35 | #define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) | 46 | #define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) |
36 | 47 | ||
37 | /* | 48 | /* |
38 | * Direction bits. | 49 | * Direction bits, which any architecture can choose to override |
50 | * before including this file. | ||
39 | */ | 51 | */ |
40 | #define _IOC_NONE 0U | 52 | |
41 | #define _IOC_WRITE 1U | 53 | #ifndef _IOC_NONE |
42 | #define _IOC_READ 2U | 54 | # define _IOC_NONE 0U |
55 | #endif | ||
56 | |||
57 | #ifndef _IOC_WRITE | ||
58 | # define _IOC_WRITE 1U | ||
59 | #endif | ||
60 | |||
61 | #ifndef _IOC_READ | ||
62 | # define _IOC_READ 2U | ||
63 | #endif | ||
43 | 64 | ||
44 | #define _IOC(dir,type,nr,size) \ | 65 | #define _IOC(dir,type,nr,size) \ |
45 | (((dir) << _IOC_DIRSHIFT) | \ | 66 | (((dir) << _IOC_DIRSHIFT) | \ |
diff --git a/include/asm-generic/memory_model.h b/include/asm-generic/memory_model.h index 52226e14bd7d..ae060c62aff1 100644 --- a/include/asm-generic/memory_model.h +++ b/include/asm-generic/memory_model.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef __ASM_MEMORY_MODEL_H | 1 | #ifndef __ASM_MEMORY_MODEL_H |
2 | #define __ASM_MEMORY_MODEL_H | 2 | #define __ASM_MEMORY_MODEL_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
6 | 5 | ||
7 | #if defined(CONFIG_FLATMEM) | 6 | #if defined(CONFIG_FLATMEM) |
@@ -81,6 +80,5 @@ extern unsigned long page_to_pfn(struct page *page); | |||
81 | #endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */ | 80 | #endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */ |
82 | 81 | ||
83 | #endif /* __ASSEMBLY__ */ | 82 | #endif /* __ASSEMBLY__ */ |
84 | #endif /* __KERNEL__ */ | ||
85 | 83 | ||
86 | #endif | 84 | #endif |
diff --git a/include/asm-generic/page.h b/include/asm-generic/page.h index a96b5d986b6e..14db733b8e68 100644 --- a/include/asm-generic/page.h +++ b/include/asm-generic/page.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_GENERIC_PAGE_H | 1 | #ifndef _ASM_GENERIC_PAGE_H |
2 | #define _ASM_GENERIC_PAGE_H | 2 | #define _ASM_GENERIC_PAGE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
6 | 5 | ||
7 | #include <linux/compiler.h> | 6 | #include <linux/compiler.h> |
@@ -21,6 +20,5 @@ static __inline__ __attribute_const__ int get_order(unsigned long size) | |||
21 | } | 20 | } |
22 | 21 | ||
23 | #endif /* __ASSEMBLY__ */ | 22 | #endif /* __ASSEMBLY__ */ |
24 | #endif /* __KERNEL__ */ | ||
25 | 23 | ||
26 | #endif /* _ASM_GENERIC_PAGE_H */ | 24 | #endif /* _ASM_GENERIC_PAGE_H */ |
diff --git a/include/asm-generic/rtc.h b/include/asm-generic/rtc.h index dd1bed860e64..be4af0029ac0 100644 --- a/include/asm-generic/rtc.h +++ b/include/asm-generic/rtc.h | |||
@@ -12,8 +12,6 @@ | |||
12 | #ifndef __ASM_RTC_H__ | 12 | #ifndef __ASM_RTC_H__ |
13 | #define __ASM_RTC_H__ | 13 | #define __ASM_RTC_H__ |
14 | 14 | ||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #include <linux/mc146818rtc.h> | 15 | #include <linux/mc146818rtc.h> |
18 | #include <linux/rtc.h> | 16 | #include <linux/rtc.h> |
19 | #include <linux/bcd.h> | 17 | #include <linux/bcd.h> |
@@ -213,5 +211,4 @@ static inline int set_rtc_pll(struct rtc_pll_info *pll) | |||
213 | return -EINVAL; | 211 | return -EINVAL; |
214 | } | 212 | } |
215 | 213 | ||
216 | #endif /* __KERNEL__ */ | ||
217 | #endif /* __ASM_RTC_H__ */ | 214 | #endif /* __ASM_RTC_H__ */ |
diff --git a/include/asm-generic/unaligned.h b/include/asm-generic/unaligned.h deleted file mode 100644 index 2fe1b2e67f01..000000000000 --- a/include/asm-generic/unaligned.h +++ /dev/null | |||
@@ -1,124 +0,0 @@ | |||
1 | #ifndef _ASM_GENERIC_UNALIGNED_H_ | ||
2 | #define _ASM_GENERIC_UNALIGNED_H_ | ||
3 | |||
4 | /* | ||
5 | * For the benefit of those who are trying to port Linux to another | ||
6 | * architecture, here are some C-language equivalents. | ||
7 | * | ||
8 | * This is based almost entirely upon Richard Henderson's | ||
9 | * asm-alpha/unaligned.h implementation. Some comments were | ||
10 | * taken from David Mosberger's asm-ia64/unaligned.h header. | ||
11 | */ | ||
12 | |||
13 | #include <linux/types.h> | ||
14 | |||
15 | /* | ||
16 | * The main single-value unaligned transfer routines. | ||
17 | */ | ||
18 | #define get_unaligned(ptr) \ | ||
19 | __get_unaligned((ptr), sizeof(*(ptr))) | ||
20 | #define put_unaligned(x,ptr) \ | ||
21 | ((void)sizeof(*(ptr)=(x)),\ | ||
22 | __put_unaligned((__force __u64)(x), (ptr), sizeof(*(ptr)))) | ||
23 | |||
24 | /* | ||
25 | * This function doesn't actually exist. The idea is that when | ||
26 | * someone uses the macros below with an unsupported size (datatype), | ||
27 | * the linker will alert us to the problem via an unresolved reference | ||
28 | * error. | ||
29 | */ | ||
30 | extern void bad_unaligned_access_length(void) __attribute__((noreturn)); | ||
31 | |||
32 | struct __una_u64 { __u64 x __attribute__((packed)); }; | ||
33 | struct __una_u32 { __u32 x __attribute__((packed)); }; | ||
34 | struct __una_u16 { __u16 x __attribute__((packed)); }; | ||
35 | |||
36 | /* | ||
37 | * Elemental unaligned loads | ||
38 | */ | ||
39 | |||
40 | static inline __u64 __uldq(const __u64 *addr) | ||
41 | { | ||
42 | const struct __una_u64 *ptr = (const struct __una_u64 *) addr; | ||
43 | return ptr->x; | ||
44 | } | ||
45 | |||
46 | static inline __u32 __uldl(const __u32 *addr) | ||
47 | { | ||
48 | const struct __una_u32 *ptr = (const struct __una_u32 *) addr; | ||
49 | return ptr->x; | ||
50 | } | ||
51 | |||
52 | static inline __u16 __uldw(const __u16 *addr) | ||
53 | { | ||
54 | const struct __una_u16 *ptr = (const struct __una_u16 *) addr; | ||
55 | return ptr->x; | ||
56 | } | ||
57 | |||
58 | /* | ||
59 | * Elemental unaligned stores | ||
60 | */ | ||
61 | |||
62 | static inline void __ustq(__u64 val, __u64 *addr) | ||
63 | { | ||
64 | struct __una_u64 *ptr = (struct __una_u64 *) addr; | ||
65 | ptr->x = val; | ||
66 | } | ||
67 | |||
68 | static inline void __ustl(__u32 val, __u32 *addr) | ||
69 | { | ||
70 | struct __una_u32 *ptr = (struct __una_u32 *) addr; | ||
71 | ptr->x = val; | ||
72 | } | ||
73 | |||
74 | static inline void __ustw(__u16 val, __u16 *addr) | ||
75 | { | ||
76 | struct __una_u16 *ptr = (struct __una_u16 *) addr; | ||
77 | ptr->x = val; | ||
78 | } | ||
79 | |||
80 | #define __get_unaligned(ptr, size) ({ \ | ||
81 | const void *__gu_p = ptr; \ | ||
82 | __u64 __val; \ | ||
83 | switch (size) { \ | ||
84 | case 1: \ | ||
85 | __val = *(const __u8 *)__gu_p; \ | ||
86 | break; \ | ||
87 | case 2: \ | ||
88 | __val = __uldw(__gu_p); \ | ||
89 | break; \ | ||
90 | case 4: \ | ||
91 | __val = __uldl(__gu_p); \ | ||
92 | break; \ | ||
93 | case 8: \ | ||
94 | __val = __uldq(__gu_p); \ | ||
95 | break; \ | ||
96 | default: \ | ||
97 | bad_unaligned_access_length(); \ | ||
98 | }; \ | ||
99 | (__force __typeof__(*(ptr)))__val; \ | ||
100 | }) | ||
101 | |||
102 | #define __put_unaligned(val, ptr, size) \ | ||
103 | ({ \ | ||
104 | void *__gu_p = ptr; \ | ||
105 | switch (size) { \ | ||
106 | case 1: \ | ||
107 | *(__u8 *)__gu_p = (__force __u8)val; \ | ||
108 | break; \ | ||
109 | case 2: \ | ||
110 | __ustw((__force __u16)val, __gu_p); \ | ||
111 | break; \ | ||
112 | case 4: \ | ||
113 | __ustl((__force __u32)val, __gu_p); \ | ||
114 | break; \ | ||
115 | case 8: \ | ||
116 | __ustq(val, __gu_p); \ | ||
117 | break; \ | ||
118 | default: \ | ||
119 | bad_unaligned_access_length(); \ | ||
120 | }; \ | ||
121 | (void)0; \ | ||
122 | }) | ||
123 | |||
124 | #endif /* _ASM_GENERIC_UNALIGNED_H */ | ||