diff options
Diffstat (limited to 'include')
90 files changed, 789 insertions, 1123 deletions
diff --git a/include/asm-alpha/types.h b/include/asm-alpha/types.h index f5716139ec89..c1541353ccef 100644 --- a/include/asm-alpha/types.h +++ b/include/asm-alpha/types.h | |||
| @@ -8,28 +8,12 @@ | |||
| 8 | * not a major issue. However, for interoperability, libraries still | 8 | * not a major issue. However, for interoperability, libraries still |
| 9 | * need to be careful to avoid a name clashes. | 9 | * need to be careful to avoid a name clashes. |
| 10 | */ | 10 | */ |
| 11 | #include <asm-generic/int-l64.h> | ||
| 11 | 12 | ||
| 12 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
| 13 | 14 | ||
| 14 | typedef unsigned int umode_t; | 15 | typedef unsigned int umode_t; |
| 15 | 16 | ||
| 16 | /* | ||
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | typedef __signed__ long __s64; | ||
| 31 | typedef unsigned long __u64; | ||
| 32 | |||
| 33 | #endif /* __ASSEMBLY__ */ | 17 | #endif /* __ASSEMBLY__ */ |
| 34 | 18 | ||
| 35 | /* | 19 | /* |
| @@ -41,18 +25,6 @@ typedef unsigned long __u64; | |||
| 41 | 25 | ||
| 42 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
| 43 | 27 | ||
| 44 | typedef signed char s8; | ||
| 45 | typedef unsigned char u8; | ||
| 46 | |||
| 47 | typedef signed short s16; | ||
| 48 | typedef unsigned short u16; | ||
| 49 | |||
| 50 | typedef signed int s32; | ||
| 51 | typedef unsigned int u32; | ||
| 52 | |||
| 53 | typedef signed long s64; | ||
| 54 | typedef unsigned long u64; | ||
| 55 | |||
| 56 | typedef u64 dma_addr_t; | 28 | typedef u64 dma_addr_t; |
| 57 | typedef u64 dma64_addr_t; | 29 | typedef u64 dma64_addr_t; |
| 58 | 30 | ||
diff --git a/include/asm-arm/div64.h b/include/asm-arm/div64.h index 0b5f881c3d85..5001390be958 100644 --- a/include/asm-arm/div64.h +++ b/include/asm-arm/div64.h | |||
| @@ -224,6 +224,4 @@ | |||
| 224 | 224 | ||
| 225 | #endif | 225 | #endif |
| 226 | 226 | ||
| 227 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 228 | |||
| 229 | #endif | 227 | #endif |
diff --git a/include/asm-arm/types.h b/include/asm-arm/types.h index 3141451a9bd6..345df01534a4 100644 --- a/include/asm-arm/types.h +++ b/include/asm-arm/types.h | |||
| @@ -1,29 +1,12 @@ | |||
| 1 | #ifndef __ASM_ARM_TYPES_H | 1 | #ifndef __ASM_ARM_TYPES_H |
| 2 | #define __ASM_ARM_TYPES_H | 2 | #define __ASM_ARM_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #if defined(__GNUC__) | ||
| 23 | __extension__ typedef __signed__ long long __s64; | ||
| 24 | __extension__ typedef unsigned long long __u64; | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 28 | 11 | ||
| 29 | /* | 12 | /* |
| @@ -35,18 +18,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 35 | 18 | ||
| 36 | #ifndef __ASSEMBLY__ | 19 | #ifndef __ASSEMBLY__ |
| 37 | 20 | ||
| 38 | typedef signed char s8; | ||
| 39 | typedef unsigned char u8; | ||
| 40 | |||
| 41 | typedef signed short s16; | ||
| 42 | typedef unsigned short u16; | ||
| 43 | |||
| 44 | typedef signed int s32; | ||
| 45 | typedef unsigned int u32; | ||
| 46 | |||
| 47 | typedef signed long long s64; | ||
| 48 | typedef unsigned long long u64; | ||
| 49 | |||
| 50 | /* Dma addresses are 32-bits wide. */ | 21 | /* Dma addresses are 32-bits wide. */ |
| 51 | 22 | ||
| 52 | typedef u32 dma_addr_t; | 23 | typedef u32 dma_addr_t; |
diff --git a/include/asm-avr32/types.h b/include/asm-avr32/types.h index 8999a3819403..9cefda6f534a 100644 --- a/include/asm-avr32/types.h +++ b/include/asm-avr32/types.h | |||
| @@ -8,28 +8,12 @@ | |||
| 8 | #ifndef __ASM_AVR32_TYPES_H | 8 | #ifndef __ASM_AVR32_TYPES_H |
| 9 | #define __ASM_AVR32_TYPES_H | 9 | #define __ASM_AVR32_TYPES_H |
| 10 | 10 | ||
| 11 | #include <asm-generic/int-ll64.h> | ||
| 12 | |||
| 11 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
| 12 | 14 | ||
| 13 | typedef unsigned short umode_t; | 15 | typedef unsigned short umode_t; |
| 14 | 16 | ||
| 15 | /* | ||
| 16 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 17 | * header files exported to user space | ||
| 18 | */ | ||
| 19 | typedef __signed__ char __s8; | ||
| 20 | typedef unsigned char __u8; | ||
| 21 | |||
| 22 | typedef __signed__ short __s16; | ||
| 23 | typedef unsigned short __u16; | ||
| 24 | |||
| 25 | typedef __signed__ int __s32; | ||
| 26 | typedef unsigned int __u32; | ||
| 27 | |||
| 28 | #if defined(__GNUC__) | ||
| 29 | __extension__ typedef __signed__ long long __s64; | ||
| 30 | __extension__ typedef unsigned long long __u64; | ||
| 31 | #endif | ||
| 32 | |||
| 33 | #endif /* __ASSEMBLY__ */ | 17 | #endif /* __ASSEMBLY__ */ |
| 34 | 18 | ||
| 35 | /* | 19 | /* |
| @@ -41,18 +25,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 41 | 25 | ||
| 42 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
| 43 | 27 | ||
| 44 | typedef signed char s8; | ||
| 45 | typedef unsigned char u8; | ||
| 46 | |||
| 47 | typedef signed short s16; | ||
| 48 | typedef unsigned short u16; | ||
| 49 | |||
| 50 | typedef signed int s32; | ||
| 51 | typedef unsigned int u32; | ||
| 52 | |||
| 53 | typedef signed long long s64; | ||
| 54 | typedef unsigned long long u64; | ||
| 55 | |||
| 56 | /* Dma addresses are 32-bits wide. */ | 28 | /* Dma addresses are 32-bits wide. */ |
| 57 | 29 | ||
| 58 | typedef u32 dma_addr_t; | 30 | typedef u32 dma_addr_t; |
diff --git a/include/asm-blackfin/types.h b/include/asm-blackfin/types.h index 9785a6d531c6..8441cbc2bf9e 100644 --- a/include/asm-blackfin/types.h +++ b/include/asm-blackfin/types.h | |||
| @@ -8,30 +8,12 @@ | |||
| 8 | * not a major issue. However, for interoperability, libraries still | 8 | * not a major issue. However, for interoperability, libraries still |
| 9 | * need to be careful to avoid a name clashes. | 9 | * need to be careful to avoid a name clashes. |
| 10 | */ | 10 | */ |
| 11 | #include <asm-generic/int-ll64.h> | ||
| 12 | |||
| 11 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
| 12 | 14 | ||
| 13 | typedef unsigned short umode_t; | 15 | typedef unsigned short umode_t; |
| 14 | 16 | ||
| 15 | /* | ||
| 16 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 17 | * header files exported to user space | ||
| 18 | */ | ||
| 19 | |||
| 20 | typedef __signed__ char __s8; | ||
| 21 | typedef unsigned char __u8; | ||
| 22 | |||
| 23 | typedef __signed__ short __s16; | ||
| 24 | typedef unsigned short __u16; | ||
| 25 | |||
| 26 | typedef __signed__ int __s32; | ||
| 27 | typedef unsigned int __u32; | ||
| 28 | |||
| 29 | /* HK0617 -- Changes to unsigned long temporarily */ | ||
| 30 | #if defined(__GNUC__) | ||
| 31 | __extension__ typedef __signed__ long long __s64; | ||
| 32 | __extension__ typedef unsigned long long __u64; | ||
| 33 | #endif | ||
| 34 | |||
| 35 | #endif /* __ASSEMBLY__ */ | 17 | #endif /* __ASSEMBLY__ */ |
| 36 | /* | 18 | /* |
| 37 | * These aren't exported outside the kernel to avoid name space clashes | 19 | * These aren't exported outside the kernel to avoid name space clashes |
| @@ -42,18 +24,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 42 | 24 | ||
| 43 | #ifndef __ASSEMBLY__ | 25 | #ifndef __ASSEMBLY__ |
| 44 | 26 | ||
| 45 | typedef signed char s8; | ||
| 46 | typedef unsigned char u8; | ||
| 47 | |||
| 48 | typedef signed short s16; | ||
| 49 | typedef unsigned short u16; | ||
| 50 | |||
| 51 | typedef signed int s32; | ||
| 52 | typedef unsigned int u32; | ||
| 53 | |||
| 54 | typedef signed long long s64; | ||
| 55 | typedef unsigned long long u64; | ||
| 56 | |||
| 57 | /* Dma addresses are 32-bits wide. */ | 27 | /* Dma addresses are 32-bits wide. */ |
| 58 | 28 | ||
| 59 | typedef u32 dma_addr_t; | 29 | typedef u32 dma_addr_t; |
diff --git a/include/asm-cris/types.h b/include/asm-cris/types.h index 5a21c42bc6c5..5790262cbe8a 100644 --- a/include/asm-cris/types.h +++ b/include/asm-cris/types.h | |||
| @@ -1,29 +1,12 @@ | |||
| 1 | #ifndef _ETRAX_TYPES_H | 1 | #ifndef _ETRAX_TYPES_H |
| 2 | #define _ETRAX_TYPES_H | 2 | #define _ETRAX_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #if defined(__GNUC__) | ||
| 23 | __extension__ typedef __signed__ long long __s64; | ||
| 24 | __extension__ typedef unsigned long long __u64; | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 28 | 11 | ||
| 29 | /* | 12 | /* |
| @@ -35,18 +18,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 35 | 18 | ||
| 36 | #ifndef __ASSEMBLY__ | 19 | #ifndef __ASSEMBLY__ |
| 37 | 20 | ||
| 38 | typedef signed char s8; | ||
| 39 | typedef unsigned char u8; | ||
| 40 | |||
| 41 | typedef signed short s16; | ||
| 42 | typedef unsigned short u16; | ||
| 43 | |||
| 44 | typedef signed int s32; | ||
| 45 | typedef unsigned int u32; | ||
| 46 | |||
| 47 | typedef signed long long s64; | ||
| 48 | typedef unsigned long long u64; | ||
| 49 | |||
| 50 | /* Dma addresses are 32-bits wide, just like our other addresses. */ | 21 | /* Dma addresses are 32-bits wide, just like our other addresses. */ |
| 51 | 22 | ||
| 52 | typedef u32 dma_addr_t; | 23 | typedef u32 dma_addr_t; |
diff --git a/include/asm-frv/types.h b/include/asm-frv/types.h index 767e5ed71c4b..613bf1e962f0 100644 --- a/include/asm-frv/types.h +++ b/include/asm-frv/types.h | |||
| @@ -12,29 +12,12 @@ | |||
| 12 | #ifndef _ASM_TYPES_H | 12 | #ifndef _ASM_TYPES_H |
| 13 | #define _ASM_TYPES_H | 13 | #define _ASM_TYPES_H |
| 14 | 14 | ||
| 15 | #include <asm-generic/int-ll64.h> | ||
| 16 | |||
| 15 | #ifndef __ASSEMBLY__ | 17 | #ifndef __ASSEMBLY__ |
| 16 | 18 | ||
| 17 | typedef unsigned short umode_t; | 19 | typedef unsigned short umode_t; |
| 18 | 20 | ||
| 19 | /* | ||
| 20 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 21 | * header files exported to user space | ||
| 22 | */ | ||
| 23 | |||
| 24 | typedef __signed__ char __s8; | ||
| 25 | typedef unsigned char __u8; | ||
| 26 | |||
| 27 | typedef __signed__ short __s16; | ||
| 28 | typedef unsigned short __u16; | ||
| 29 | |||
| 30 | typedef __signed__ int __s32; | ||
| 31 | typedef unsigned int __u32; | ||
| 32 | |||
| 33 | #if defined(__GNUC__) | ||
| 34 | __extension__ typedef __signed__ long long __s64; | ||
| 35 | __extension__ typedef unsigned long long __u64; | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #endif /* __ASSEMBLY__ */ | 21 | #endif /* __ASSEMBLY__ */ |
| 39 | 22 | ||
| 40 | /* | 23 | /* |
| @@ -46,19 +29,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 46 | 29 | ||
| 47 | #ifndef __ASSEMBLY__ | 30 | #ifndef __ASSEMBLY__ |
| 48 | 31 | ||
| 49 | |||
| 50 | typedef signed char s8; | ||
| 51 | typedef unsigned char u8; | ||
| 52 | |||
| 53 | typedef signed short s16; | ||
| 54 | typedef unsigned short u16; | ||
| 55 | |||
| 56 | typedef signed int s32; | ||
| 57 | typedef unsigned int u32; | ||
| 58 | |||
| 59 | typedef signed long long s64; | ||
| 60 | typedef unsigned long long u64; | ||
| 61 | |||
| 62 | /* Dma addresses are 32-bits wide. */ | 32 | /* Dma addresses are 32-bits wide. */ |
| 63 | 33 | ||
| 64 | typedef u32 dma_addr_t; | 34 | typedef u32 dma_addr_t; |
diff --git a/include/asm-frv/unaligned.h b/include/asm-frv/unaligned.h index 64ccc736f2d8..839a2fbffa0f 100644 --- a/include/asm-frv/unaligned.h +++ b/include/asm-frv/unaligned.h | |||
| @@ -9,8 +9,8 @@ | |||
| 9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #ifndef _ASM_FRV_UNALIGNED_H | 12 | #ifndef _ASM_UNALIGNED_H |
| 13 | #define _ASM_FRV_UNALIGNED_H | 13 | #define _ASM_UNALIGNED_H |
| 14 | 14 | ||
| 15 | #include <linux/unaligned/le_byteshift.h> | 15 | #include <linux/unaligned/le_byteshift.h> |
| 16 | #include <linux/unaligned/be_byteshift.h> | 16 | #include <linux/unaligned/be_byteshift.h> |
| @@ -19,4 +19,4 @@ | |||
| 19 | #define get_unaligned __get_unaligned_be | 19 | #define get_unaligned __get_unaligned_be |
| 20 | #define put_unaligned __put_unaligned_be | 20 | #define put_unaligned __put_unaligned_be |
| 21 | 21 | ||
| 22 | #endif /* _ASM_FRV_UNALIGNED_H */ | 22 | #endif /* _ASM_UNALIGNED_H */ |
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/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/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-h8300/types.h b/include/asm-h8300/types.h index 56566e2a09fd..12875190b156 100644 --- a/include/asm-h8300/types.h +++ b/include/asm-h8300/types.h | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | #ifndef _H8300_TYPES_H | 1 | #ifndef _H8300_TYPES_H |
| 2 | #define _H8300_TYPES_H | 2 | #define _H8300_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #if !defined(__ASSEMBLY__) | 6 | #if !defined(__ASSEMBLY__) |
| 5 | 7 | ||
| 6 | /* | 8 | /* |
| @@ -14,41 +16,10 @@ | |||
| 14 | typedef unsigned short umode_t; | 16 | typedef unsigned short umode_t; |
| 15 | 17 | ||
| 16 | /* | 18 | /* |
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | #if defined(__GNUC__) | ||
| 31 | __extension__ typedef __signed__ long long __s64; | ||
| 32 | __extension__ typedef unsigned long long __u64; | ||
| 33 | #endif | ||
| 34 | |||
| 35 | /* | ||
| 36 | * These aren't exported outside the kernel to avoid name space clashes | 19 | * These aren't exported outside the kernel to avoid name space clashes |
| 37 | */ | 20 | */ |
| 38 | #ifdef __KERNEL__ | 21 | #ifdef __KERNEL__ |
| 39 | 22 | ||
| 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 BITS_PER_LONG 32 | 23 | #define BITS_PER_LONG 32 |
| 53 | 24 | ||
| 54 | /* Dma addresses are 32-bits wide. */ | 25 | /* Dma addresses are 32-bits wide. */ |
diff --git a/include/asm-ia64/cpu.h b/include/asm-ia64/cpu.h index e87fa3210a2b..fcca30b9f110 100644 --- a/include/asm-ia64/cpu.h +++ b/include/asm-ia64/cpu.h | |||
| @@ -14,8 +14,8 @@ DECLARE_PER_CPU(struct ia64_cpu, cpu_devices); | |||
| 14 | 14 | ||
| 15 | DECLARE_PER_CPU(int, cpu_state); | 15 | DECLARE_PER_CPU(int, cpu_state); |
| 16 | 16 | ||
| 17 | extern int arch_register_cpu(int num); | ||
| 18 | #ifdef CONFIG_HOTPLUG_CPU | 17 | #ifdef CONFIG_HOTPLUG_CPU |
| 18 | extern int arch_register_cpu(int num); | ||
| 19 | extern void arch_unregister_cpu(int); | 19 | extern void arch_unregister_cpu(int); |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
diff --git a/include/asm-ia64/dmi.h b/include/asm-ia64/dmi.h index f3efaa229525..00eb1b130b63 100644 --- a/include/asm-ia64/dmi.h +++ b/include/asm-ia64/dmi.h | |||
| @@ -3,4 +3,9 @@ | |||
| 3 | 3 | ||
| 4 | #include <asm/io.h> | 4 | #include <asm/io.h> |
| 5 | 5 | ||
| 6 | /* Use normal IO mappings for DMI */ | ||
| 7 | #define dmi_ioremap ioremap | ||
| 8 | #define dmi_iounmap(x,l) iounmap(x) | ||
| 9 | #define dmi_alloc(l) kmalloc(l, GFP_ATOMIC) | ||
| 10 | |||
| 6 | #endif | 11 | #endif |
diff --git a/include/asm-ia64/io.h b/include/asm-ia64/io.h index 4ebed77aa472..260a85ac9d6a 100644 --- a/include/asm-ia64/io.h +++ b/include/asm-ia64/io.h | |||
| @@ -423,11 +423,6 @@ extern void __iomem * ioremap(unsigned long offset, unsigned long size); | |||
| 423 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); | 423 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); |
| 424 | extern void iounmap (volatile void __iomem *addr); | 424 | extern void iounmap (volatile void __iomem *addr); |
| 425 | 425 | ||
| 426 | /* Use normal IO mappings for DMI */ | ||
| 427 | #define dmi_ioremap ioremap | ||
| 428 | #define dmi_iounmap(x,l) iounmap(x) | ||
| 429 | #define dmi_alloc(l) kmalloc(l, GFP_ATOMIC) | ||
| 430 | |||
| 431 | /* | 426 | /* |
| 432 | * String version of IO memory access ops: | 427 | * String version of IO memory access ops: |
| 433 | */ | 428 | */ |
diff --git a/include/asm-ia64/thread_info.h b/include/asm-ia64/thread_info.h index f30e05583869..2422ac61658a 100644 --- a/include/asm-ia64/thread_info.h +++ b/include/asm-ia64/thread_info.h | |||
| @@ -108,13 +108,11 @@ extern void tsk_clear_notify_resume(struct task_struct *tsk); | |||
| 108 | #define TIF_DB_DISABLED 19 /* debug trap disabled for fsyscall */ | 108 | #define TIF_DB_DISABLED 19 /* debug trap disabled for fsyscall */ |
| 109 | #define TIF_FREEZE 20 /* is freezing for suspend */ | 109 | #define TIF_FREEZE 20 /* is freezing for suspend */ |
| 110 | #define TIF_RESTORE_RSE 21 /* user RBS is newer than kernel RBS */ | 110 | #define TIF_RESTORE_RSE 21 /* user RBS is newer than kernel RBS */ |
| 111 | #define TIF_RESTORE_SIGMASK 22 /* restore signal mask in do_signal() */ | ||
| 112 | 111 | ||
| 113 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | 112 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
| 114 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | 113 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) |
| 115 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) | 114 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) |
| 116 | #define _TIF_SYSCALL_TRACEAUDIT (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP) | 115 | #define _TIF_SYSCALL_TRACEAUDIT (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP) |
| 117 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
| 118 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) | 116 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) |
| 119 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | 117 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) |
| 120 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | 118 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
| @@ -131,7 +129,18 @@ extern void tsk_clear_notify_resume(struct task_struct *tsk); | |||
| 131 | #define TIF_WORK_MASK (TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)) | 129 | #define TIF_WORK_MASK (TIF_ALLWORK_MASK&~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)) |
| 132 | 130 | ||
| 133 | #define TS_POLLING 1 /* true if in idle loop and not sleeping */ | 131 | #define TS_POLLING 1 /* true if in idle loop and not sleeping */ |
| 132 | #define TS_RESTORE_SIGMASK 2 /* restore signal mask in do_signal() */ | ||
| 134 | 133 | ||
| 135 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) | 134 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) |
| 136 | 135 | ||
| 136 | #ifndef __ASSEMBLY__ | ||
| 137 | #define HAVE_SET_RESTORE_SIGMASK 1 | ||
| 138 | static inline void set_restore_sigmask(void) | ||
| 139 | { | ||
| 140 | struct thread_info *ti = current_thread_info(); | ||
| 141 | ti->status |= TS_RESTORE_SIGMASK; | ||
| 142 | set_bit(TIF_SIGPENDING, &ti->flags); | ||
| 143 | } | ||
| 144 | #endif /* !__ASSEMBLY__ */ | ||
| 145 | |||
| 137 | #endif /* _ASM_IA64_THREAD_INFO_H */ | 146 | #endif /* _ASM_IA64_THREAD_INFO_H */ |
diff --git a/include/asm-ia64/types.h b/include/asm-ia64/types.h index 902850d12424..e36b3716e718 100644 --- a/include/asm-ia64/types.h +++ b/include/asm-ia64/types.h | |||
| @@ -13,6 +13,8 @@ | |||
| 13 | * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co | 13 | * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co |
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | #include <asm-generic/int-l64.h> | ||
| 17 | |||
| 16 | #ifdef __ASSEMBLY__ | 18 | #ifdef __ASSEMBLY__ |
| 17 | # define __IA64_UL(x) (x) | 19 | # define __IA64_UL(x) (x) |
| 18 | # define __IA64_UL_CONST(x) x | 20 | # define __IA64_UL_CONST(x) x |
| @@ -28,39 +30,10 @@ | |||
| 28 | typedef unsigned int umode_t; | 30 | typedef unsigned int umode_t; |
| 29 | 31 | ||
| 30 | /* | 32 | /* |
| 31 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 32 | * header files exported to user space | ||
| 33 | */ | ||
| 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 | /* | ||
| 48 | * These aren't exported outside the kernel to avoid name space clashes | 33 | * These aren't exported outside the kernel to avoid name space clashes |
| 49 | */ | 34 | */ |
| 50 | # ifdef __KERNEL__ | 35 | # ifdef __KERNEL__ |
| 51 | 36 | ||
| 52 | typedef __s8 s8; | ||
| 53 | typedef __u8 u8; | ||
| 54 | |||
| 55 | typedef __s16 s16; | ||
| 56 | typedef __u16 u16; | ||
| 57 | |||
| 58 | typedef __s32 s32; | ||
| 59 | typedef __u32 u32; | ||
| 60 | |||
| 61 | typedef __s64 s64; | ||
| 62 | typedef __u64 u64; | ||
| 63 | |||
| 64 | #define BITS_PER_LONG 64 | 37 | #define BITS_PER_LONG 64 |
| 65 | 38 | ||
| 66 | /* DMA addresses are 64-bits wide, in general. */ | 39 | /* DMA addresses are 64-bits wide, in general. */ |
diff --git a/include/asm-m32r/types.h b/include/asm-m32r/types.h index b64c16639a7b..bc9f7fff0ac3 100644 --- a/include/asm-m32r/types.h +++ b/include/asm-m32r/types.h | |||
| @@ -1,28 +1,12 @@ | |||
| 1 | #ifndef _ASM_M32R_TYPES_H | 1 | #ifndef _ASM_M32R_TYPES_H |
| 2 | #define _ASM_M32R_TYPES_H | 2 | #define _ASM_M32R_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #if defined(__GNUC__) | ||
| 23 | __extension__ typedef __signed__ long long __s64; | ||
| 24 | __extension__ typedef unsigned long long __u64; | ||
| 25 | #endif | ||
| 26 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 27 | 11 | ||
| 28 | /* | 12 | /* |
| @@ -34,18 +18,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 34 | 18 | ||
| 35 | #ifndef __ASSEMBLY__ | 19 | #ifndef __ASSEMBLY__ |
| 36 | 20 | ||
| 37 | typedef signed char s8; | ||
| 38 | typedef unsigned char u8; | ||
| 39 | |||
| 40 | typedef signed short s16; | ||
| 41 | typedef unsigned short u16; | ||
| 42 | |||
| 43 | typedef signed int s32; | ||
| 44 | typedef unsigned int u32; | ||
| 45 | |||
| 46 | typedef signed long long s64; | ||
| 47 | typedef unsigned long long u64; | ||
| 48 | |||
| 49 | /* DMA addresses are 32-bits wide. */ | 21 | /* DMA addresses are 32-bits wide. */ |
| 50 | 22 | ||
| 51 | typedef u32 dma_addr_t; | 23 | typedef u32 dma_addr_t; |
diff --git a/include/asm-m68k/div64.h b/include/asm-m68k/div64.h index 33caad1628d4..8243c931b5c0 100644 --- a/include/asm-m68k/div64.h +++ b/include/asm-m68k/div64.h | |||
| @@ -25,5 +25,4 @@ | |||
| 25 | __rem; \ | 25 | __rem; \ |
| 26 | }) | 26 | }) |
| 27 | 27 | ||
| 28 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 29 | #endif /* _M68K_DIV64_H */ | 28 | #endif /* _M68K_DIV64_H */ |
diff --git a/include/asm-m68k/machw.h b/include/asm-m68k/machw.h index d2e0e25d5c90..35624998291c 100644 --- a/include/asm-m68k/machw.h +++ b/include/asm-m68k/machw.h | |||
| @@ -66,36 +66,6 @@ struct MAC_SCC | |||
| 66 | # define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS)) | 66 | # define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS)) |
| 67 | #endif | 67 | #endif |
| 68 | 68 | ||
| 69 | /* hardware stuff */ | ||
| 70 | |||
| 71 | #define MACHW_DECLARE(name) unsigned name : 1 | ||
| 72 | #define MACHW_SET(name) (mac_hw_present.name = 1) | ||
| 73 | #define MACHW_PRESENT(name) (mac_hw_present.name) | ||
| 74 | |||
| 75 | struct mac_hw_present { | ||
| 76 | /* video hardware */ | ||
| 77 | /* sound hardware */ | ||
| 78 | /* disk storage interfaces */ | ||
| 79 | MACHW_DECLARE(MAC_SCSI_80); /* Directly mapped NCR5380 */ | ||
| 80 | MACHW_DECLARE(MAC_SCSI_96); /* 53c9[46] */ | ||
| 81 | MACHW_DECLARE(MAC_SCSI_96_2); /* 2nd 53c9[46] Q900 and Q950 */ | ||
| 82 | MACHW_DECLARE(IDE); /* IDE Interface */ | ||
| 83 | /* other I/O hardware */ | ||
| 84 | MACHW_DECLARE(SCC); /* Serial Communications Contr. */ | ||
| 85 | /* DMA */ | ||
| 86 | MACHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */ | ||
| 87 | /* real time clocks */ | ||
| 88 | MACHW_DECLARE(RTC_CLK); /* clock chip */ | ||
| 89 | /* supporting hardware */ | ||
| 90 | MACHW_DECLARE(VIA1); /* Versatile Interface Ad. 1 */ | ||
| 91 | MACHW_DECLARE(VIA2); /* Versatile Interface Ad. 2 */ | ||
| 92 | MACHW_DECLARE(RBV); /* Versatile Interface Ad. 2+ */ | ||
| 93 | /* NUBUS */ | ||
| 94 | MACHW_DECLARE(NUBUS); /* NUBUS */ | ||
| 95 | }; | ||
| 96 | |||
| 97 | extern struct mac_hw_present mac_hw_present; | ||
| 98 | |||
| 99 | #endif /* __ASSEMBLY__ */ | 69 | #endif /* __ASSEMBLY__ */ |
| 100 | 70 | ||
| 101 | #endif /* linux/machw.h */ | 71 | #endif /* linux/machw.h */ |
diff --git a/include/asm-m68k/types.h b/include/asm-m68k/types.h index c35c09d93b66..6441cb5f8e7c 100644 --- a/include/asm-m68k/types.h +++ b/include/asm-m68k/types.h | |||
| @@ -8,30 +8,12 @@ | |||
| 8 | * not a major issue. However, for interoperability, libraries still | 8 | * not a major issue. However, for interoperability, libraries still |
| 9 | * need to be careful to avoid a name clashes. | 9 | * need to be careful to avoid a name clashes. |
| 10 | */ | 10 | */ |
| 11 | #include <asm-generic/int-ll64.h> | ||
| 11 | 12 | ||
| 12 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
| 13 | 14 | ||
| 14 | typedef unsigned short umode_t; | 15 | typedef unsigned short umode_t; |
| 15 | 16 | ||
| 16 | /* | ||
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | #if defined(__GNUC__) | ||
| 31 | __extension__ typedef __signed__ long long __s64; | ||
| 32 | __extension__ typedef unsigned long long __u64; | ||
| 33 | #endif | ||
| 34 | |||
| 35 | #endif /* __ASSEMBLY__ */ | 17 | #endif /* __ASSEMBLY__ */ |
| 36 | 18 | ||
| 37 | /* | 19 | /* |
| @@ -43,18 +25,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 43 | 25 | ||
| 44 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
| 45 | 27 | ||
| 46 | typedef signed char s8; | ||
| 47 | typedef unsigned char u8; | ||
| 48 | |||
| 49 | typedef signed short s16; | ||
| 50 | typedef unsigned short u16; | ||
| 51 | |||
| 52 | typedef signed int s32; | ||
| 53 | typedef unsigned int u32; | ||
| 54 | |||
| 55 | typedef signed long long s64; | ||
| 56 | typedef unsigned long long u64; | ||
| 57 | |||
| 58 | /* DMA addresses are always 32-bits wide */ | 28 | /* DMA addresses are always 32-bits wide */ |
| 59 | 29 | ||
| 60 | typedef u32 dma_addr_t; | 30 | typedef u32 dma_addr_t; |
diff --git a/include/asm-m68knommu/dma.h b/include/asm-m68knommu/dma.h index 3f20419c633a..939a02056217 100644 --- a/include/asm-m68knommu/dma.h +++ b/include/asm-m68knommu/dma.h | |||
| @@ -35,7 +35,8 @@ | |||
| 35 | /* | 35 | /* |
| 36 | * Set number of channels of DMA on ColdFire for different implementations. | 36 | * Set number of channels of DMA on ColdFire for different implementations. |
| 37 | */ | 37 | */ |
| 38 | #if defined(CONFIG_M5249) || defined(CONFIG_M5307) || defined(CONFIG_M5407) | 38 | #if defined(CONFIG_M5249) || defined(CONFIG_M5307) || defined(CONFIG_M5407) || \ |
| 39 | defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) | ||
| 39 | #define MAX_M68K_DMA_CHANNELS 4 | 40 | #define MAX_M68K_DMA_CHANNELS 4 |
| 40 | #elif defined(CONFIG_M5272) | 41 | #elif defined(CONFIG_M5272) |
| 41 | #define MAX_M68K_DMA_CHANNELS 1 | 42 | #define MAX_M68K_DMA_CHANNELS 1 |
diff --git a/include/asm-m68knommu/param.h b/include/asm-m68knommu/param.h index 96c451018324..6044397adb64 100644 --- a/include/asm-m68knommu/param.h +++ b/include/asm-m68knommu/param.h | |||
| @@ -1,13 +1,16 @@ | |||
| 1 | #ifndef _M68KNOMMU_PARAM_H | 1 | #ifndef _M68KNOMMU_PARAM_H |
| 2 | #define _M68KNOMMU_PARAM_H | 2 | #define _M68KNOMMU_PARAM_H |
| 3 | 3 | ||
| 4 | #define HZ CONFIG_HZ | ||
| 5 | |||
| 6 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
| 5 | #define HZ CONFIG_HZ | ||
| 7 | #define USER_HZ HZ | 6 | #define USER_HZ HZ |
| 8 | #define CLOCKS_PER_SEC (USER_HZ) | 7 | #define CLOCKS_PER_SEC (USER_HZ) |
| 9 | #endif | 8 | #endif |
| 10 | 9 | ||
| 10 | #ifndef HZ | ||
| 11 | #define HZ 100 | ||
| 12 | #endif | ||
| 13 | |||
| 11 | #define EXEC_PAGESIZE 4096 | 14 | #define EXEC_PAGESIZE 4096 |
| 12 | 15 | ||
| 13 | #ifndef NOGROUP | 16 | #ifndef NOGROUP |
diff --git a/include/asm-mips/div64.h b/include/asm-mips/div64.h index 716371bd0980..d1d699105c11 100644 --- a/include/asm-mips/div64.h +++ b/include/asm-mips/div64.h | |||
| @@ -82,7 +82,6 @@ | |||
| 82 | (n) = __quot; \ | 82 | (n) = __quot; \ |
| 83 | __mod; }) | 83 | __mod; }) |
| 84 | 84 | ||
| 85 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 86 | #endif /* (_MIPS_SZLONG == 32) */ | 85 | #endif /* (_MIPS_SZLONG == 32) */ |
| 87 | 86 | ||
| 88 | #if (_MIPS_SZLONG == 64) | 87 | #if (_MIPS_SZLONG == 64) |
| @@ -106,11 +105,6 @@ extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | |||
| 106 | (n) = __quot; \ | 105 | (n) = __quot; \ |
| 107 | __mod; }) | 106 | __mod; }) |
| 108 | 107 | ||
| 109 | static inline uint64_t div64_64(uint64_t dividend, uint64_t divisor) | ||
| 110 | { | ||
| 111 | return dividend / divisor; | ||
| 112 | } | ||
| 113 | |||
| 114 | #endif /* (_MIPS_SZLONG == 64) */ | 108 | #endif /* (_MIPS_SZLONG == 64) */ |
| 115 | 109 | ||
| 116 | #endif /* _ASM_DIV64_H */ | 110 | #endif /* _ASM_DIV64_H */ |
diff --git a/include/asm-mips/types.h b/include/asm-mips/types.h index 2dd147f519d1..bcbb8d675af5 100644 --- a/include/asm-mips/types.h +++ b/include/asm-mips/types.h | |||
| @@ -9,37 +9,15 @@ | |||
| 9 | #ifndef _ASM_TYPES_H | 9 | #ifndef _ASM_TYPES_H |
| 10 | #define _ASM_TYPES_H | 10 | #define _ASM_TYPES_H |
| 11 | 11 | ||
| 12 | #ifndef __ASSEMBLY__ | 12 | #if _MIPS_SZLONG == 64 |
| 13 | 13 | # include <asm-generic/int-l64.h> | |
| 14 | typedef unsigned short umode_t; | ||
| 15 | |||
| 16 | /* | ||
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | #if (_MIPS_SZLONG == 64) | ||
| 31 | |||
| 32 | typedef __signed__ long __s64; | ||
| 33 | typedef unsigned long __u64; | ||
| 34 | |||
| 35 | #else | 14 | #else |
| 36 | 15 | # include <asm-generic/int-ll64.h> | |
| 37 | #if defined(__GNUC__) | ||
| 38 | __extension__ typedef __signed__ long long __s64; | ||
| 39 | __extension__ typedef unsigned long long __u64; | ||
| 40 | #endif | 16 | #endif |
| 41 | 17 | ||
| 42 | #endif | 18 | #ifndef __ASSEMBLY__ |
| 19 | |||
| 20 | typedef unsigned short umode_t; | ||
| 43 | 21 | ||
| 44 | #endif /* __ASSEMBLY__ */ | 22 | #endif /* __ASSEMBLY__ */ |
| 45 | 23 | ||
| @@ -52,30 +30,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 52 | 30 | ||
| 53 | #ifndef __ASSEMBLY__ | 31 | #ifndef __ASSEMBLY__ |
| 54 | 32 | ||
| 55 | |||
| 56 | typedef __signed char s8; | ||
| 57 | typedef unsigned char u8; | ||
| 58 | |||
| 59 | typedef __signed short s16; | ||
| 60 | typedef unsigned short u16; | ||
| 61 | |||
| 62 | typedef __signed int s32; | ||
| 63 | typedef unsigned int u32; | ||
| 64 | |||
| 65 | #if (_MIPS_SZLONG == 64) | ||
| 66 | |||
| 67 | typedef __signed__ long s64; | ||
| 68 | typedef unsigned long u64; | ||
| 69 | |||
| 70 | #else | ||
| 71 | |||
| 72 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) | ||
| 73 | typedef __signed__ long long s64; | ||
| 74 | typedef unsigned long long u64; | ||
| 75 | #endif | ||
| 76 | |||
| 77 | #endif | ||
| 78 | |||
| 79 | #if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \ | 33 | #if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \ |
| 80 | || defined(CONFIG_64BIT) | 34 | || defined(CONFIG_64BIT) |
| 81 | typedef u64 dma_addr_t; | 35 | typedef u64 dma_addr_t; |
diff --git a/include/asm-mn10300/div64.h b/include/asm-mn10300/div64.h index bf9c515a998c..3a8329b3e869 100644 --- a/include/asm-mn10300/div64.h +++ b/include/asm-mn10300/div64.h | |||
| @@ -97,7 +97,4 @@ signed __muldiv64s(signed val, signed mult, signed div) | |||
| 97 | return result; | 97 | return result; |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | extern __attribute__((const)) | ||
| 101 | uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 102 | |||
| 103 | #endif /* _ASM_DIV64 */ | 100 | #endif /* _ASM_DIV64 */ |
diff --git a/include/asm-mn10300/types.h b/include/asm-mn10300/types.h index d40ea7628bfc..7b9f01042fd4 100644 --- a/include/asm-mn10300/types.h +++ b/include/asm-mn10300/types.h | |||
| @@ -11,29 +11,12 @@ | |||
| 11 | #ifndef _ASM_TYPES_H | 11 | #ifndef _ASM_TYPES_H |
| 12 | #define _ASM_TYPES_H | 12 | #define _ASM_TYPES_H |
| 13 | 13 | ||
| 14 | #include <asm-generic/int-ll64.h> | ||
| 15 | |||
| 14 | #ifndef __ASSEMBLY__ | 16 | #ifndef __ASSEMBLY__ |
| 15 | 17 | ||
| 16 | typedef unsigned short umode_t; | 18 | typedef unsigned short umode_t; |
| 17 | 19 | ||
| 18 | /* | ||
| 19 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 20 | * header files exported to user space | ||
| 21 | */ | ||
| 22 | |||
| 23 | typedef __signed__ char __s8; | ||
| 24 | typedef unsigned char __u8; | ||
| 25 | |||
| 26 | typedef __signed__ short __s16; | ||
| 27 | typedef unsigned short __u16; | ||
| 28 | |||
| 29 | typedef __signed__ int __s32; | ||
| 30 | typedef unsigned int __u32; | ||
| 31 | |||
| 32 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) | ||
| 33 | typedef __signed__ long long __s64; | ||
| 34 | typedef unsigned long long __u64; | ||
| 35 | #endif | ||
| 36 | |||
| 37 | #endif /* __ASSEMBLY__ */ | 20 | #endif /* __ASSEMBLY__ */ |
| 38 | 21 | ||
| 39 | /* | 22 | /* |
| @@ -45,18 +28,6 @@ typedef unsigned long long __u64; | |||
| 45 | 28 | ||
| 46 | #ifndef __ASSEMBLY__ | 29 | #ifndef __ASSEMBLY__ |
| 47 | 30 | ||
| 48 | typedef signed char s8; | ||
| 49 | typedef unsigned char u8; | ||
| 50 | |||
| 51 | typedef signed short s16; | ||
| 52 | typedef unsigned short u16; | ||
| 53 | |||
| 54 | typedef signed int s32; | ||
| 55 | typedef unsigned int u32; | ||
| 56 | |||
| 57 | typedef signed long long s64; | ||
| 58 | typedef unsigned long long u64; | ||
| 59 | |||
| 60 | /* Dma addresses are 32-bits wide. */ | 31 | /* Dma addresses are 32-bits wide. */ |
| 61 | typedef u32 dma_addr_t; | 32 | typedef u32 dma_addr_t; |
| 62 | 33 | ||
diff --git a/include/asm-parisc/types.h b/include/asm-parisc/types.h index 56c84802da59..7f5a39bfb4ce 100644 --- a/include/asm-parisc/types.h +++ b/include/asm-parisc/types.h | |||
| @@ -1,29 +1,12 @@ | |||
| 1 | #ifndef _PARISC_TYPES_H | 1 | #ifndef _PARISC_TYPES_H |
| 2 | #define _PARISC_TYPES_H | 2 | #define _PARISC_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #if defined(__GNUC__) | ||
| 23 | __extension__ typedef __signed__ long long __s64; | ||
| 24 | __extension__ typedef unsigned long long __u64; | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 28 | 11 | ||
| 29 | /* | 12 | /* |
| @@ -41,18 +24,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 41 | 24 | ||
| 42 | #ifndef __ASSEMBLY__ | 25 | #ifndef __ASSEMBLY__ |
| 43 | 26 | ||
| 44 | typedef signed char s8; | ||
| 45 | typedef unsigned char u8; | ||
| 46 | |||
| 47 | typedef signed short s16; | ||
| 48 | typedef unsigned short u16; | ||
| 49 | |||
| 50 | typedef signed int s32; | ||
| 51 | typedef unsigned int u32; | ||
| 52 | |||
| 53 | typedef signed long long s64; | ||
| 54 | typedef unsigned long long u64; | ||
| 55 | |||
| 56 | /* Dma addresses are 32-bits wide. */ | 27 | /* Dma addresses are 32-bits wide. */ |
| 57 | 28 | ||
| 58 | typedef u32 dma_addr_t; | 29 | typedef u32 dma_addr_t; |
diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h index afae0697e8ce..e0062d73db1c 100644 --- a/include/asm-powerpc/io.h +++ b/include/asm-powerpc/io.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define _ASM_POWERPC_IO_H | 2 | #define _ASM_POWERPC_IO_H |
| 3 | #ifdef __KERNEL__ | 3 | #ifdef __KERNEL__ |
| 4 | 4 | ||
| 5 | /* | 5 | /* |
| 6 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
| 7 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
| 8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
| @@ -18,6 +18,9 @@ extern int check_legacy_ioport(unsigned long base_port); | |||
| 18 | #define _PNPWRP 0xa79 | 18 | #define _PNPWRP 0xa79 |
| 19 | #define PNPBIOS_BASE 0xf000 | 19 | #define PNPBIOS_BASE 0xf000 |
| 20 | 20 | ||
| 21 | #include <linux/device.h> | ||
| 22 | #include <linux/io.h> | ||
| 23 | |||
| 21 | #include <linux/compiler.h> | 24 | #include <linux/compiler.h> |
| 22 | #include <asm/page.h> | 25 | #include <asm/page.h> |
| 23 | #include <asm/byteorder.h> | 26 | #include <asm/byteorder.h> |
| @@ -744,6 +747,9 @@ static inline void * bus_to_virt(unsigned long address) | |||
| 744 | 747 | ||
| 745 | #define clrsetbits_8(addr, clear, set) clrsetbits(8, addr, clear, set) | 748 | #define clrsetbits_8(addr, clear, set) clrsetbits(8, addr, clear, set) |
| 746 | 749 | ||
| 750 | void __iomem *devm_ioremap_prot(struct device *dev, resource_size_t offset, | ||
| 751 | size_t size, unsigned long flags); | ||
| 752 | |||
| 747 | #endif /* __KERNEL__ */ | 753 | #endif /* __KERNEL__ */ |
| 748 | 754 | ||
| 749 | #endif /* _ASM_POWERPC_IO_H */ | 755 | #endif /* _ASM_POWERPC_IO_H */ |
diff --git a/include/asm-powerpc/kvm_host.h b/include/asm-powerpc/kvm_host.h index 04ffbb8e0a35..81a69d711017 100644 --- a/include/asm-powerpc/kvm_host.h +++ b/include/asm-powerpc/kvm_host.h | |||
| @@ -59,6 +59,7 @@ struct kvm_vcpu_stat { | |||
| 59 | u32 emulated_inst_exits; | 59 | u32 emulated_inst_exits; |
| 60 | u32 dec_exits; | 60 | u32 dec_exits; |
| 61 | u32 ext_intr_exits; | 61 | u32 ext_intr_exits; |
| 62 | u32 halt_wakeup; | ||
| 62 | }; | 63 | }; |
| 63 | 64 | ||
| 64 | struct tlbe { | 65 | struct tlbe { |
diff --git a/include/asm-powerpc/kvm_ppc.h b/include/asm-powerpc/kvm_ppc.h index 7ac820308a7e..b35a7e3ef978 100644 --- a/include/asm-powerpc/kvm_ppc.h +++ b/include/asm-powerpc/kvm_ppc.h | |||
| @@ -77,12 +77,17 @@ static inline void kvmppc_clear_exception(struct kvm_vcpu *vcpu, int exception) | |||
| 77 | clear_bit(priority, &vcpu->arch.pending_exceptions); | 77 | clear_bit(priority, &vcpu->arch.pending_exceptions); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | /* Helper function for "full" MSR writes. No need to call this if only EE is | ||
| 81 | * changing. */ | ||
| 80 | static inline void kvmppc_set_msr(struct kvm_vcpu *vcpu, u32 new_msr) | 82 | static inline void kvmppc_set_msr(struct kvm_vcpu *vcpu, u32 new_msr) |
| 81 | { | 83 | { |
| 82 | if ((new_msr & MSR_PR) != (vcpu->arch.msr & MSR_PR)) | 84 | if ((new_msr & MSR_PR) != (vcpu->arch.msr & MSR_PR)) |
| 83 | kvmppc_mmu_priv_switch(vcpu, new_msr & MSR_PR); | 85 | kvmppc_mmu_priv_switch(vcpu, new_msr & MSR_PR); |
| 84 | 86 | ||
| 85 | vcpu->arch.msr = new_msr; | 87 | vcpu->arch.msr = new_msr; |
| 88 | |||
| 89 | if (vcpu->arch.msr & MSR_WE) | ||
| 90 | kvm_vcpu_block(vcpu); | ||
| 86 | } | 91 | } |
| 87 | 92 | ||
| 88 | #endif /* __POWERPC_KVM_PPC_H__ */ | 93 | #endif /* __POWERPC_KVM_PPC_H__ */ |
diff --git a/include/asm-powerpc/ps3.h b/include/asm-powerpc/ps3.h index 9e8ed6824e15..81ffe3b3c1ce 100644 --- a/include/asm-powerpc/ps3.h +++ b/include/asm-powerpc/ps3.h | |||
| @@ -178,9 +178,6 @@ enum ps3_cpu_binding { | |||
| 178 | PS3_BINDING_CPU_1 = 1, | 178 | PS3_BINDING_CPU_1 = 1, |
| 179 | }; | 179 | }; |
| 180 | 180 | ||
| 181 | int ps3_virq_setup(enum ps3_cpu_binding cpu, unsigned long outlet, | ||
| 182 | unsigned int *virq); | ||
| 183 | int ps3_virq_destroy(unsigned int virq); | ||
| 184 | int ps3_irq_plug_setup(enum ps3_cpu_binding cpu, unsigned long outlet, | 181 | int ps3_irq_plug_setup(enum ps3_cpu_binding cpu, unsigned long outlet, |
| 185 | unsigned int *virq); | 182 | unsigned int *virq); |
| 186 | int ps3_irq_plug_destroy(unsigned int virq); | 183 | int ps3_irq_plug_destroy(unsigned int virq); |
diff --git a/include/asm-powerpc/syscalls.h b/include/asm-powerpc/syscalls.h index b3ca41fc8bb1..2b8a458f990a 100644 --- a/include/asm-powerpc/syscalls.h +++ b/include/asm-powerpc/syscalls.h | |||
| @@ -30,7 +30,7 @@ asmlinkage int sys_fork(unsigned long p1, unsigned long p2, | |||
| 30 | asmlinkage int sys_vfork(unsigned long p1, unsigned long p2, | 30 | asmlinkage int sys_vfork(unsigned long p1, unsigned long p2, |
| 31 | unsigned long p3, unsigned long p4, unsigned long p5, | 31 | unsigned long p3, unsigned long p4, unsigned long p5, |
| 32 | unsigned long p6, struct pt_regs *regs); | 32 | unsigned long p6, struct pt_regs *regs); |
| 33 | asmlinkage int sys_pipe(int __user *fildes); | 33 | asmlinkage long sys_pipe(int __user *fildes); |
| 34 | asmlinkage long sys_rt_sigaction(int sig, | 34 | asmlinkage long sys_rt_sigaction(int sig, |
| 35 | const struct sigaction __user *act, | 35 | const struct sigaction __user *act, |
| 36 | struct sigaction __user *oact, size_t sigsetsize); | 36 | struct sigaction __user *oact, size_t sigsetsize); |
diff --git a/include/asm-powerpc/types.h b/include/asm-powerpc/types.h index c243a6ac60e5..d3374bc865ba 100644 --- a/include/asm-powerpc/types.h +++ b/include/asm-powerpc/types.h | |||
| @@ -1,6 +1,12 @@ | |||
| 1 | #ifndef _ASM_POWERPC_TYPES_H | 1 | #ifndef _ASM_POWERPC_TYPES_H |
| 2 | #define _ASM_POWERPC_TYPES_H | 2 | #define _ASM_POWERPC_TYPES_H |
| 3 | 3 | ||
| 4 | #ifdef __powerpc64__ | ||
| 5 | # include <asm-generic/int-l64.h> | ||
| 6 | #else | ||
| 7 | # include <asm-generic/int-ll64.h> | ||
| 8 | #endif | ||
| 9 | |||
| 4 | #ifndef __ASSEMBLY__ | 10 | #ifndef __ASSEMBLY__ |
| 5 | 11 | ||
| 6 | /* | 12 | /* |
| @@ -22,30 +28,6 @@ typedef unsigned int umode_t; | |||
| 22 | typedef unsigned short umode_t; | 28 | typedef unsigned short umode_t; |
| 23 | #endif | 29 | #endif |
| 24 | 30 | ||
| 25 | /* | ||
| 26 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 27 | * header files exported to user space | ||
| 28 | */ | ||
| 29 | |||
| 30 | typedef __signed__ char __s8; | ||
| 31 | typedef unsigned char __u8; | ||
| 32 | |||
| 33 | typedef __signed__ short __s16; | ||
| 34 | typedef unsigned short __u16; | ||
| 35 | |||
| 36 | typedef __signed__ int __s32; | ||
| 37 | typedef unsigned int __u32; | ||
| 38 | |||
| 39 | #ifdef __powerpc64__ | ||
| 40 | typedef __signed__ long __s64; | ||
| 41 | typedef unsigned long __u64; | ||
| 42 | #else | ||
| 43 | #if defined(__GNUC__) | ||
| 44 | __extension__ typedef __signed__ long long __s64; | ||
| 45 | __extension__ typedef unsigned long long __u64; | ||
| 46 | #endif | ||
| 47 | #endif /* __powerpc64__ */ | ||
| 48 | |||
| 49 | typedef struct { | 31 | typedef struct { |
| 50 | __u32 u[4]; | 32 | __u32 u[4]; |
| 51 | } __attribute__((aligned(16))) __vector128; | 33 | } __attribute__((aligned(16))) __vector128; |
| @@ -64,24 +46,6 @@ typedef struct { | |||
| 64 | 46 | ||
| 65 | #ifndef __ASSEMBLY__ | 47 | #ifndef __ASSEMBLY__ |
| 66 | 48 | ||
| 67 | |||
| 68 | typedef signed char s8; | ||
| 69 | typedef unsigned char u8; | ||
| 70 | |||
| 71 | typedef signed short s16; | ||
| 72 | typedef unsigned short u16; | ||
| 73 | |||
| 74 | typedef signed int s32; | ||
| 75 | typedef unsigned int u32; | ||
| 76 | |||
| 77 | #ifdef __powerpc64__ | ||
| 78 | typedef signed long s64; | ||
| 79 | typedef unsigned long u64; | ||
| 80 | #else | ||
| 81 | typedef signed long long s64; | ||
| 82 | typedef unsigned long long u64; | ||
| 83 | #endif | ||
| 84 | |||
| 85 | typedef __vector128 vector128; | 49 | typedef __vector128 vector128; |
| 86 | 50 | ||
| 87 | /* Physical address used by some IO functions */ | 51 | /* Physical address used by some IO functions */ |
diff --git a/include/asm-s390/types.h b/include/asm-s390/types.h index 2c5879ae90ca..78dda038dd47 100644 --- a/include/asm-s390/types.h +++ b/include/asm-s390/types.h | |||
| @@ -9,34 +9,16 @@ | |||
| 9 | #ifndef _S390_TYPES_H | 9 | #ifndef _S390_TYPES_H |
| 10 | #define _S390_TYPES_H | 10 | #define _S390_TYPES_H |
| 11 | 11 | ||
| 12 | #ifndef __s390x__ | ||
| 13 | # include <asm-generic/int-l64.h> | ||
| 14 | #else | ||
| 15 | # include <asm-generic/int-ll64.h> | ||
| 16 | #endif | ||
| 17 | |||
| 12 | #ifndef __ASSEMBLY__ | 18 | #ifndef __ASSEMBLY__ |
| 13 | 19 | ||
| 14 | typedef unsigned short umode_t; | 20 | typedef unsigned short umode_t; |
| 15 | 21 | ||
| 16 | /* | ||
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | #ifndef __s390x__ | ||
| 31 | #if defined(__GNUC__) | ||
| 32 | __extension__ typedef __signed__ long long __s64; | ||
| 33 | __extension__ typedef unsigned long long __u64; | ||
| 34 | #endif | ||
| 35 | #else /* __s390x__ */ | ||
| 36 | typedef __signed__ long __s64; | ||
| 37 | typedef unsigned long __u64; | ||
| 38 | #endif | ||
| 39 | |||
| 40 | /* A address type so that arithmetic can be done on it & it can be upgraded to | 22 | /* A address type so that arithmetic can be done on it & it can be upgraded to |
| 41 | 64 bit when necessary | 23 | 64 bit when necessary |
| 42 | */ | 24 | */ |
| @@ -58,24 +40,6 @@ typedef __signed__ long saddr_t; | |||
| 58 | 40 | ||
| 59 | #ifndef __ASSEMBLY__ | 41 | #ifndef __ASSEMBLY__ |
| 60 | 42 | ||
| 61 | |||
| 62 | typedef signed char s8; | ||
| 63 | typedef unsigned char u8; | ||
| 64 | |||
| 65 | typedef signed short s16; | ||
| 66 | typedef unsigned short u16; | ||
| 67 | |||
| 68 | typedef signed int s32; | ||
| 69 | typedef unsigned int u32; | ||
| 70 | |||
| 71 | #ifndef __s390x__ | ||
| 72 | typedef signed long long s64; | ||
| 73 | typedef unsigned long long u64; | ||
| 74 | #else /* __s390x__ */ | ||
| 75 | typedef signed long s64; | ||
| 76 | typedef unsigned long u64; | ||
| 77 | #endif /* __s390x__ */ | ||
| 78 | |||
| 79 | typedef u32 dma_addr_t; | 43 | typedef u32 dma_addr_t; |
| 80 | 44 | ||
| 81 | #ifndef __s390x__ | 45 | #ifndef __s390x__ |
diff --git a/include/asm-sh/types.h b/include/asm-sh/types.h index a6e1d4126e67..beea4e6f8dfd 100644 --- a/include/asm-sh/types.h +++ b/include/asm-sh/types.h | |||
| @@ -1,29 +1,12 @@ | |||
| 1 | #ifndef __ASM_SH_TYPES_H | 1 | #ifndef __ASM_SH_TYPES_H |
| 2 | #define __ASM_SH_TYPES_H | 2 | #define __ASM_SH_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #if defined(__GNUC__) | ||
| 23 | __extension__ typedef __signed__ long long __s64; | ||
| 24 | __extension__ typedef unsigned long long __u64; | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 28 | 11 | ||
| 29 | /* | 12 | /* |
| @@ -35,19 +18,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 35 | 18 | ||
| 36 | #ifndef __ASSEMBLY__ | 19 | #ifndef __ASSEMBLY__ |
| 37 | 20 | ||
| 38 | |||
| 39 | typedef __signed__ char s8; | ||
| 40 | typedef unsigned char u8; | ||
| 41 | |||
| 42 | typedef __signed__ short s16; | ||
| 43 | typedef unsigned short u16; | ||
| 44 | |||
| 45 | typedef __signed__ int s32; | ||
| 46 | typedef unsigned int u32; | ||
| 47 | |||
| 48 | typedef __signed__ long long s64; | ||
| 49 | typedef unsigned long long u64; | ||
| 50 | |||
| 51 | /* Dma addresses are 32-bits wide. */ | 21 | /* Dma addresses are 32-bits wide. */ |
| 52 | 22 | ||
| 53 | typedef u32 dma_addr_t; | 23 | typedef u32 dma_addr_t; |
diff --git a/include/asm-sparc/oplib.h b/include/asm-sparc/oplib.h index 17ba82ee220a..7becc846544a 100644 --- a/include/asm-sparc/oplib.h +++ b/include/asm-sparc/oplib.h | |||
| @@ -34,9 +34,6 @@ extern unsigned int prom_rev, prom_prev; | |||
| 34 | */ | 34 | */ |
| 35 | extern int prom_root_node; | 35 | extern int prom_root_node; |
| 36 | 36 | ||
| 37 | /* PROM stdin and stdout */ | ||
| 38 | extern int prom_stdin, prom_stdout; | ||
| 39 | |||
| 40 | /* Pointer to prom structure containing the device tree traversal | 37 | /* Pointer to prom structure containing the device tree traversal |
| 41 | * and usage utility functions. Only prom-lib should use these, | 38 | * and usage utility functions. Only prom-lib should use these, |
| 42 | * users use the interface defined by the library only! | 39 | * users use the interface defined by the library only! |
| @@ -84,20 +81,6 @@ extern int prom_devclose(int device_handle); | |||
| 84 | extern void prom_seek(int device_handle, unsigned int seek_hival, | 81 | extern void prom_seek(int device_handle, unsigned int seek_hival, |
| 85 | unsigned int seek_lowval); | 82 | unsigned int seek_lowval); |
| 86 | 83 | ||
| 87 | /* Machine memory configuration routine. */ | ||
| 88 | |||
| 89 | /* This function returns a V0 format memory descriptor table, it has three | ||
| 90 | * entries. One for the total amount of physical ram on the machine, one | ||
| 91 | * for the amount of physical ram available, and one describing the virtual | ||
| 92 | * areas which are allocated by the prom. So, in a sense the physical | ||
| 93 | * available is a calculation of the total physical minus the physical mapped | ||
| 94 | * by the prom with virtual mappings. | ||
| 95 | * | ||
| 96 | * These lists are returned pre-sorted, this should make your life easier | ||
| 97 | * since the prom itself is way too lazy to do such nice things. | ||
| 98 | */ | ||
| 99 | extern struct linux_mem_v0 *prom_meminfo(void); | ||
| 100 | |||
| 101 | /* Miscellaneous routines, don't really fit in any category per se. */ | 84 | /* Miscellaneous routines, don't really fit in any category per se. */ |
| 102 | 85 | ||
| 103 | /* Reboot the machine with the command line passed. */ | 86 | /* Reboot the machine with the command line passed. */ |
diff --git a/include/asm-sparc/page.h b/include/asm-sparc/page.h index 39ccf2da297c..1625a8c3e0d2 100644 --- a/include/asm-sparc/page.h +++ b/include/asm-sparc/page.h | |||
| @@ -38,12 +38,11 @@ | |||
| 38 | 38 | ||
| 39 | /* The following structure is used to hold the physical | 39 | /* The following structure is used to hold the physical |
| 40 | * memory configuration of the machine. This is filled in | 40 | * memory configuration of the machine. This is filled in |
| 41 | * probe_memory() and is later used by mem_init() to set up | 41 | * prom_meminit() and is later used by mem_init() to set up |
| 42 | * mem_map[]. We statically allocate SPARC_PHYS_BANKS of | 42 | * mem_map[]. We statically allocate SPARC_PHYS_BANKS+1 of |
| 43 | * these structs, this is arbitrary. The entry after the | 43 | * these structs, this is arbitrary. The entry after the |
| 44 | * last valid one has num_bytes==0. | 44 | * last valid one has num_bytes==0. |
| 45 | */ | 45 | */ |
| 46 | |||
| 47 | struct sparc_phys_banks { | 46 | struct sparc_phys_banks { |
| 48 | unsigned long base_addr; | 47 | unsigned long base_addr; |
| 49 | unsigned long num_bytes; | 48 | unsigned long num_bytes; |
diff --git a/include/asm-sparc/types.h b/include/asm-sparc/types.h index 42fc6ed98156..1b08ef860a66 100644 --- a/include/asm-sparc/types.h +++ b/include/asm-sparc/types.h | |||
| @@ -3,34 +3,18 @@ | |||
| 3 | #define _SPARC_TYPES_H | 3 | #define _SPARC_TYPES_H |
| 4 | 4 | ||
| 5 | /* | 5 | /* |
| 6 | * _xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 7 | * header files exported to user space. | ||
| 8 | */ | ||
| 9 | |||
| 10 | /* | ||
| 11 | * This file is never included by application software unless | 6 | * This file is never included by application software unless |
| 12 | * explicitly requested (e.g., via linux/types.h) in which case the | 7 | * explicitly requested (e.g., via linux/types.h) in which case the |
| 13 | * application is Linux specific so (user-) name space pollution is | 8 | * application is Linux specific so (user-) name space pollution is |
| 14 | * not a major issue. However, for interoperability, libraries still | 9 | * not a major issue. However, for interoperability, libraries still |
| 15 | * need to be careful to avoid a name clashes. | 10 | * need to be careful to avoid a name clashes. |
| 16 | */ | 11 | */ |
| 12 | #include <asm-generic/int-ll64.h> | ||
| 17 | 13 | ||
| 18 | #ifndef __ASSEMBLY__ | 14 | #ifndef __ASSEMBLY__ |
| 19 | 15 | ||
| 20 | typedef unsigned short umode_t; | 16 | typedef unsigned short umode_t; |
| 21 | 17 | ||
| 22 | typedef __signed__ char __s8; | ||
| 23 | typedef unsigned char __u8; | ||
| 24 | |||
| 25 | typedef __signed__ short __s16; | ||
| 26 | typedef unsigned short __u16; | ||
| 27 | |||
| 28 | typedef __signed__ int __s32; | ||
| 29 | typedef unsigned int __u32; | ||
| 30 | |||
| 31 | typedef __signed__ long long __s64; | ||
| 32 | typedef unsigned long long __u64; | ||
| 33 | |||
| 34 | #endif /* __ASSEMBLY__ */ | 18 | #endif /* __ASSEMBLY__ */ |
| 35 | 19 | ||
| 36 | #ifdef __KERNEL__ | 20 | #ifdef __KERNEL__ |
| @@ -39,18 +23,6 @@ typedef unsigned long long __u64; | |||
| 39 | 23 | ||
| 40 | #ifndef __ASSEMBLY__ | 24 | #ifndef __ASSEMBLY__ |
| 41 | 25 | ||
| 42 | typedef __signed__ char s8; | ||
| 43 | typedef unsigned char u8; | ||
| 44 | |||
| 45 | typedef __signed__ short s16; | ||
| 46 | typedef unsigned short u16; | ||
| 47 | |||
| 48 | typedef __signed__ int s32; | ||
| 49 | typedef unsigned int u32; | ||
| 50 | |||
| 51 | typedef __signed__ long long s64; | ||
| 52 | typedef unsigned long long u64; | ||
| 53 | |||
| 54 | typedef u32 dma_addr_t; | 26 | typedef u32 dma_addr_t; |
| 55 | typedef u32 dma64_addr_t; | 27 | typedef u32 dma64_addr_t; |
| 56 | 28 | ||
diff --git a/include/asm-sparc64/types.h b/include/asm-sparc64/types.h index d0ee7f105838..5dbe04f4044a 100644 --- a/include/asm-sparc64/types.h +++ b/include/asm-sparc64/types.h | |||
| @@ -9,28 +9,12 @@ | |||
| 9 | * not a major issue. However, for interoperability, libraries still | 9 | * not a major issue. However, for interoperability, libraries still |
| 10 | * need to be careful to avoid a name clashes. | 10 | * need to be careful to avoid a name clashes. |
| 11 | */ | 11 | */ |
| 12 | #include <asm-generic/int-l64.h> | ||
| 12 | 13 | ||
| 13 | #ifndef __ASSEMBLY__ | 14 | #ifndef __ASSEMBLY__ |
| 14 | 15 | ||
| 15 | typedef unsigned short umode_t; | 16 | typedef unsigned short umode_t; |
| 16 | 17 | ||
| 17 | /* | ||
| 18 | * _xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 19 | * header files exported to user space. | ||
| 20 | */ | ||
| 21 | |||
| 22 | typedef __signed__ char __s8; | ||
| 23 | typedef unsigned char __u8; | ||
| 24 | |||
| 25 | typedef __signed__ short __s16; | ||
| 26 | typedef unsigned short __u16; | ||
| 27 | |||
| 28 | typedef __signed__ int __s32; | ||
| 29 | typedef unsigned int __u32; | ||
| 30 | |||
| 31 | typedef __signed__ long __s64; | ||
| 32 | typedef unsigned long __u64; | ||
| 33 | |||
| 34 | #endif /* __ASSEMBLY__ */ | 18 | #endif /* __ASSEMBLY__ */ |
| 35 | 19 | ||
| 36 | #ifdef __KERNEL__ | 20 | #ifdef __KERNEL__ |
| @@ -39,18 +23,6 @@ typedef unsigned long __u64; | |||
| 39 | 23 | ||
| 40 | #ifndef __ASSEMBLY__ | 24 | #ifndef __ASSEMBLY__ |
| 41 | 25 | ||
| 42 | typedef __signed__ char s8; | ||
| 43 | typedef unsigned char u8; | ||
| 44 | |||
| 45 | typedef __signed__ short s16; | ||
| 46 | typedef unsigned short u16; | ||
| 47 | |||
| 48 | typedef __signed__ int s32; | ||
| 49 | typedef unsigned int u32; | ||
| 50 | |||
| 51 | typedef __signed__ long s64; | ||
| 52 | typedef unsigned long u64; | ||
| 53 | |||
| 54 | /* Dma addresses come in generic and 64-bit flavours. */ | 26 | /* Dma addresses come in generic and 64-bit flavours. */ |
| 55 | 27 | ||
| 56 | typedef u32 dma_addr_t; | 28 | typedef u32 dma_addr_t; |
diff --git a/include/asm-um/div64.h b/include/asm-um/div64.h index 7b73b2cd5b34..1e17f7409cab 100644 --- a/include/asm-um/div64.h +++ b/include/asm-um/div64.h | |||
| @@ -3,5 +3,4 @@ | |||
| 3 | 3 | ||
| 4 | #include "asm/arch/div64.h" | 4 | #include "asm/arch/div64.h" |
| 5 | 5 | ||
| 6 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 7 | #endif | 6 | #endif |
diff --git a/include/asm-v850/types.h b/include/asm-v850/types.h index 284bda882112..89f735ee41dd 100644 --- a/include/asm-v850/types.h +++ b/include/asm-v850/types.h | |||
| @@ -10,28 +10,10 @@ | |||
| 10 | * not a major issue. However, for interoperability, libraries still | 10 | * not a major issue. However, for interoperability, libraries still |
| 11 | * need to be careful to avoid a name clashes. | 11 | * need to be careful to avoid a name clashes. |
| 12 | */ | 12 | */ |
| 13 | #include <asm-generic/int-ll64.h> | ||
| 13 | 14 | ||
| 14 | typedef unsigned short umode_t; | 15 | typedef unsigned short umode_t; |
| 15 | 16 | ||
| 16 | /* | ||
| 17 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 18 | * header files exported to user space | ||
| 19 | */ | ||
| 20 | |||
| 21 | typedef __signed__ char __s8; | ||
| 22 | typedef unsigned char __u8; | ||
| 23 | |||
| 24 | typedef __signed__ short __s16; | ||
| 25 | typedef unsigned short __u16; | ||
| 26 | |||
| 27 | typedef __signed__ int __s32; | ||
| 28 | typedef unsigned int __u32; | ||
| 29 | |||
| 30 | #if defined(__GNUC__) | ||
| 31 | __extension__ typedef __signed__ long long __s64; | ||
| 32 | __extension__ typedef unsigned long long __u64; | ||
| 33 | #endif | ||
| 34 | |||
| 35 | #endif /* !__ASSEMBLY__ */ | 17 | #endif /* !__ASSEMBLY__ */ |
| 36 | 18 | ||
| 37 | /* | 19 | /* |
| @@ -43,18 +25,6 @@ __extension__ typedef unsigned long long __u64; | |||
| 43 | 25 | ||
| 44 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
| 45 | 27 | ||
| 46 | typedef signed char s8; | ||
| 47 | typedef unsigned char u8; | ||
| 48 | |||
| 49 | typedef signed short s16; | ||
| 50 | typedef unsigned short u16; | ||
| 51 | |||
| 52 | typedef signed int s32; | ||
| 53 | typedef unsigned int u32; | ||
| 54 | |||
| 55 | typedef signed long long s64; | ||
| 56 | typedef unsigned long long u64; | ||
| 57 | |||
| 58 | /* Dma addresses are 32-bits wide. */ | 28 | /* Dma addresses are 32-bits wide. */ |
| 59 | 29 | ||
| 60 | typedef u32 dma_addr_t; | 30 | typedef u32 dma_addr_t; |
diff --git a/include/asm-x86/bootparam.h b/include/asm-x86/bootparam.h index e8659909e5f6..f62f4733606b 100644 --- a/include/asm-x86/bootparam.h +++ b/include/asm-x86/bootparam.h | |||
| @@ -14,10 +14,10 @@ | |||
| 14 | 14 | ||
| 15 | /* extensible setup data list node */ | 15 | /* extensible setup data list node */ |
| 16 | struct setup_data { | 16 | struct setup_data { |
| 17 | u64 next; | 17 | __u64 next; |
| 18 | u32 type; | 18 | __u32 type; |
| 19 | u32 len; | 19 | __u32 len; |
| 20 | u8 data[0]; | 20 | __u8 data[0]; |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | struct setup_header { | 23 | struct setup_header { |
diff --git a/include/asm-x86/div64.h b/include/asm-x86/div64.h index 0dbf8bf3ef0a..9a2d644c08ef 100644 --- a/include/asm-x86/div64.h +++ b/include/asm-x86/div64.h | |||
| @@ -33,25 +33,25 @@ | |||
| 33 | __mod; \ | 33 | __mod; \ |
| 34 | }) | 34 | }) |
| 35 | 35 | ||
| 36 | /* | 36 | static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) |
| 37 | * (long)X = ((long long)divs) / (long)div | ||
| 38 | * (long)rem = ((long long)divs) % (long)div | ||
| 39 | * | ||
| 40 | * Warning, this will do an exception if X overflows. | ||
| 41 | */ | ||
| 42 | #define div_long_long_rem(a, b, c) div_ll_X_l_rem(a, b, c) | ||
| 43 | |||
| 44 | static inline long div_ll_X_l_rem(long long divs, long div, long *rem) | ||
| 45 | { | 37 | { |
| 46 | long dum2; | 38 | union { |
| 47 | asm("divl %2":"=a"(dum2), "=d"(*rem) | 39 | u64 v64; |
| 48 | : "rm"(div), "A"(divs)); | 40 | u32 v32[2]; |
| 49 | 41 | } d = { dividend }; | |
| 50 | return dum2; | 42 | u32 upper; |
| 51 | 43 | ||
| 44 | upper = d.v32[1]; | ||
| 45 | d.v32[1] = 0; | ||
| 46 | if (upper >= divisor) { | ||
| 47 | d.v32[1] = upper / divisor; | ||
| 48 | upper %= divisor; | ||
| 49 | } | ||
| 50 | asm ("divl %2" : "=a" (d.v32[0]), "=d" (*remainder) : | ||
| 51 | "rm" (divisor), "0" (d.v32[0]), "1" (upper)); | ||
| 52 | return d.v64; | ||
| 52 | } | 53 | } |
| 53 | 54 | #define div_u64_rem div_u64_rem | |
| 54 | extern uint64_t div64_64(uint64_t dividend, uint64_t divisor); | ||
| 55 | 55 | ||
| 56 | #else | 56 | #else |
| 57 | # include <asm-generic/div64.h> | 57 | # include <asm-generic/div64.h> |
diff --git a/include/asm-x86/dmi.h b/include/asm-x86/dmi.h index 1241e6ad1935..4edf7514a750 100644 --- a/include/asm-x86/dmi.h +++ b/include/asm-x86/dmi.h | |||
| @@ -27,6 +27,7 @@ static inline void *dmi_alloc(unsigned len) | |||
| 27 | 27 | ||
| 28 | #endif | 28 | #endif |
| 29 | 29 | ||
| 30 | /* Use early IO mappings for DMI because it's initialized early */ | ||
| 30 | #define dmi_ioremap early_ioremap | 31 | #define dmi_ioremap early_ioremap |
| 31 | #define dmi_iounmap early_iounmap | 32 | #define dmi_iounmap early_iounmap |
| 32 | 33 | ||
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h index 6e73467a4fb1..049e81e797a0 100644 --- a/include/asm-x86/io_32.h +++ b/include/asm-x86/io_32.h | |||
| @@ -133,11 +133,6 @@ extern void *early_ioremap(unsigned long offset, unsigned long size); | |||
| 133 | extern void early_iounmap(void *addr, unsigned long size); | 133 | extern void early_iounmap(void *addr, unsigned long size); |
| 134 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); | 134 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); |
| 135 | 135 | ||
| 136 | /* Use early IO mappings for DMI because it's initialized early */ | ||
| 137 | #define dmi_ioremap early_ioremap | ||
| 138 | #define dmi_iounmap early_iounmap | ||
| 139 | #define dmi_alloc alloc_bootmem | ||
| 140 | |||
| 141 | /* | 136 | /* |
| 142 | * ISA I/O bus memory addresses are 1:1 with the physical address. | 137 | * ISA I/O bus memory addresses are 1:1 with the physical address. |
| 143 | */ | 138 | */ |
diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h index 9d963cd6533c..1d8cd01fa514 100644 --- a/include/asm-x86/kvm_host.h +++ b/include/asm-x86/kvm_host.h | |||
| @@ -314,6 +314,9 @@ struct kvm_arch{ | |||
| 314 | struct page *apic_access_page; | 314 | struct page *apic_access_page; |
| 315 | 315 | ||
| 316 | gpa_t wall_clock; | 316 | gpa_t wall_clock; |
| 317 | |||
| 318 | struct page *ept_identity_pagetable; | ||
| 319 | bool ept_identity_pagetable_done; | ||
| 317 | }; | 320 | }; |
| 318 | 321 | ||
| 319 | struct kvm_vm_stat { | 322 | struct kvm_vm_stat { |
| @@ -422,6 +425,7 @@ struct kvm_x86_ops { | |||
| 422 | struct kvm_run *run); | 425 | struct kvm_run *run); |
| 423 | 426 | ||
| 424 | int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); | 427 | int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); |
| 428 | int (*get_tdp_level)(void); | ||
| 425 | }; | 429 | }; |
| 426 | 430 | ||
| 427 | extern struct kvm_x86_ops *kvm_x86_ops; | 431 | extern struct kvm_x86_ops *kvm_x86_ops; |
| @@ -433,6 +437,9 @@ void kvm_mmu_destroy(struct kvm_vcpu *vcpu); | |||
| 433 | int kvm_mmu_create(struct kvm_vcpu *vcpu); | 437 | int kvm_mmu_create(struct kvm_vcpu *vcpu); |
| 434 | int kvm_mmu_setup(struct kvm_vcpu *vcpu); | 438 | int kvm_mmu_setup(struct kvm_vcpu *vcpu); |
| 435 | void kvm_mmu_set_nonpresent_ptes(u64 trap_pte, u64 notrap_pte); | 439 | void kvm_mmu_set_nonpresent_ptes(u64 trap_pte, u64 notrap_pte); |
| 440 | void kvm_mmu_set_base_ptes(u64 base_pte); | ||
| 441 | void kvm_mmu_set_mask_ptes(u64 user_mask, u64 accessed_mask, | ||
| 442 | u64 dirty_mask, u64 nx_mask, u64 x_mask); | ||
| 436 | 443 | ||
| 437 | int kvm_mmu_reset_context(struct kvm_vcpu *vcpu); | 444 | int kvm_mmu_reset_context(struct kvm_vcpu *vcpu); |
| 438 | void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot); | 445 | void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot); |
| @@ -620,7 +627,7 @@ static inline void fx_restore(struct i387_fxsave_struct *image) | |||
| 620 | asm("fxrstor (%0)":: "r" (image)); | 627 | asm("fxrstor (%0)":: "r" (image)); |
| 621 | } | 628 | } |
| 622 | 629 | ||
| 623 | static inline void fpu_init(void) | 630 | static inline void fx_finit(void) |
| 624 | { | 631 | { |
| 625 | asm("finit"); | 632 | asm("finit"); |
| 626 | } | 633 | } |
| @@ -644,6 +651,7 @@ static inline void kvm_inject_gp(struct kvm_vcpu *vcpu, u32 error_code) | |||
| 644 | #define ASM_VMX_VMWRITE_RSP_RDX ".byte 0x0f, 0x79, 0xd4" | 651 | #define ASM_VMX_VMWRITE_RSP_RDX ".byte 0x0f, 0x79, 0xd4" |
| 645 | #define ASM_VMX_VMXOFF ".byte 0x0f, 0x01, 0xc4" | 652 | #define ASM_VMX_VMXOFF ".byte 0x0f, 0x01, 0xc4" |
| 646 | #define ASM_VMX_VMXON_RAX ".byte 0xf3, 0x0f, 0xc7, 0x30" | 653 | #define ASM_VMX_VMXON_RAX ".byte 0xf3, 0x0f, 0xc7, 0x30" |
| 654 | #define ASM_VMX_INVEPT ".byte 0x66, 0x0f, 0x38, 0x80, 0x08" | ||
| 647 | #define ASM_VMX_INVVPID ".byte 0x66, 0x0f, 0x38, 0x81, 0x08" | 655 | #define ASM_VMX_INVVPID ".byte 0x66, 0x0f, 0x38, 0x81, 0x08" |
| 648 | 656 | ||
| 649 | #define MSR_IA32_TIME_STAMP_COUNTER 0x010 | 657 | #define MSR_IA32_TIME_STAMP_COUNTER 0x010 |
diff --git a/include/asm-x86/types.h b/include/asm-x86/types.h index 63733f315688..1ac80cd9acf8 100644 --- a/include/asm-x86/types.h +++ b/include/asm-x86/types.h | |||
| @@ -1,34 +1,12 @@ | |||
| 1 | #ifndef _ASM_X86_TYPES_H | 1 | #ifndef _ASM_X86_TYPES_H |
| 2 | #define _ASM_X86_TYPES_H | 2 | #define _ASM_X86_TYPES_H |
| 3 | 3 | ||
| 4 | #include <asm-generic/int-ll64.h> | ||
| 5 | |||
| 4 | #ifndef __ASSEMBLY__ | 6 | #ifndef __ASSEMBLY__ |
| 5 | 7 | ||
| 6 | typedef unsigned short umode_t; | 8 | typedef unsigned short umode_t; |
| 7 | 9 | ||
| 8 | /* | ||
| 9 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 10 | * header files exported to user space | ||
| 11 | */ | ||
| 12 | |||
| 13 | typedef __signed__ char __s8; | ||
| 14 | typedef unsigned char __u8; | ||
| 15 | |||
| 16 | typedef __signed__ short __s16; | ||
| 17 | typedef unsigned short __u16; | ||
| 18 | |||
| 19 | typedef __signed__ int __s32; | ||
| 20 | typedef unsigned int __u32; | ||
| 21 | |||
| 22 | #ifdef __i386__ | ||
| 23 | # ifdef __GNUC__ | ||
| 24 | __extension__ typedef __signed__ long long __s64; | ||
| 25 | __extension__ typedef unsigned long long __u64; | ||
| 26 | # endif | ||
| 27 | #else | ||
| 28 | typedef __signed__ long long __s64; | ||
| 29 | typedef unsigned long long __u64; | ||
| 30 | #endif | ||
| 31 | |||
| 32 | #endif /* __ASSEMBLY__ */ | 10 | #endif /* __ASSEMBLY__ */ |
| 33 | 11 | ||
| 34 | /* | 12 | /* |
| @@ -44,18 +22,6 @@ typedef unsigned long long __u64; | |||
| 44 | 22 | ||
| 45 | #ifndef __ASSEMBLY__ | 23 | #ifndef __ASSEMBLY__ |
| 46 | 24 | ||
| 47 | typedef signed char s8; | ||
| 48 | typedef unsigned char u8; | ||
| 49 | |||
| 50 | typedef signed short s16; | ||
| 51 | typedef unsigned short u16; | ||
| 52 | |||
| 53 | typedef signed int s32; | ||
| 54 | typedef unsigned int u32; | ||
| 55 | |||
| 56 | typedef signed long long s64; | ||
| 57 | typedef unsigned long long u64; | ||
| 58 | |||
| 59 | typedef u64 dma64_addr_t; | 25 | typedef u64 dma64_addr_t; |
| 60 | #if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G) | 26 | #if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G) |
| 61 | /* DMA addresses come in 32-bit and 64-bit flavours. */ | 27 | /* DMA addresses come in 32-bit and 64-bit flavours. */ |
diff --git a/include/asm-xtensa/types.h b/include/asm-xtensa/types.h index b27d841a8eb7..c89569a8da0c 100644 --- a/include/asm-xtensa/types.h +++ b/include/asm-xtensa/types.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #ifndef _XTENSA_TYPES_H | 11 | #ifndef _XTENSA_TYPES_H |
| 12 | #define _XTENSA_TYPES_H | 12 | #define _XTENSA_TYPES_H |
| 13 | 13 | ||
| 14 | #include <asm-generic/int-ll64.h> | ||
| 14 | 15 | ||
| 15 | #ifdef __ASSEMBLY__ | 16 | #ifdef __ASSEMBLY__ |
| 16 | # define __XTENSA_UL(x) (x) | 17 | # define __XTENSA_UL(x) (x) |
| @@ -25,42 +26,10 @@ | |||
| 25 | typedef unsigned short umode_t; | 26 | typedef unsigned short umode_t; |
| 26 | 27 | ||
| 27 | /* | 28 | /* |
| 28 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 29 | * header files exported to user space | ||
| 30 | */ | ||
| 31 | |||
| 32 | typedef __signed__ char __s8; | ||
| 33 | typedef unsigned char __u8; | ||
| 34 | |||
| 35 | typedef __signed__ short __s16; | ||
| 36 | typedef unsigned short __u16; | ||
| 37 | |||
| 38 | typedef __signed__ int __s32; | ||
| 39 | typedef unsigned int __u32; | ||
| 40 | |||
| 41 | #if defined(__GNUC__) | ||
| 42 | __extension__ typedef __signed__ long long __s64; | ||
| 43 | __extension__ typedef unsigned long long __u64; | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* | ||
| 47 | * These aren't exported outside the kernel to avoid name space clashes | 29 | * These aren't exported outside the kernel to avoid name space clashes |
| 48 | */ | 30 | */ |
| 49 | #ifdef __KERNEL__ | 31 | #ifdef __KERNEL__ |
| 50 | 32 | ||
| 51 | typedef __signed__ char s8; | ||
| 52 | typedef unsigned char u8; | ||
| 53 | |||
| 54 | typedef __signed__ short s16; | ||
| 55 | typedef unsigned short u16; | ||
| 56 | |||
| 57 | typedef __signed__ int s32; | ||
| 58 | typedef unsigned int u32; | ||
| 59 | |||
| 60 | typedef __signed__ long long s64; | ||
| 61 | typedef unsigned long long u64; | ||
| 62 | |||
| 63 | |||
| 64 | #define BITS_PER_LONG 32 | 33 | #define BITS_PER_LONG 32 |
| 65 | 34 | ||
| 66 | /* Dma addresses are 32-bits wide. */ | 35 | /* Dma addresses are 32-bits wide. */ |
diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h index 224658b8d806..833d208c25d6 100644 --- a/include/crypto/scatterwalk.h +++ b/include/crypto/scatterwalk.h | |||
| @@ -57,10 +57,14 @@ static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num, | |||
| 57 | struct scatterlist *sg2) | 57 | struct scatterlist *sg2) |
| 58 | { | 58 | { |
| 59 | sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0); | 59 | sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0); |
| 60 | sg1[num - 1].page_link &= ~0x02; | ||
| 60 | } | 61 | } |
| 61 | 62 | ||
| 62 | static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg) | 63 | static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg) |
| 63 | { | 64 | { |
| 65 | if (sg_is_last(sg)) | ||
| 66 | return NULL; | ||
| 67 | |||
| 64 | return (++sg)->length ? sg : (void *)sg_page(sg); | 68 | return (++sg)->length ? sg : (void *)sg_page(sg); |
| 65 | } | 69 | } |
| 66 | 70 | ||
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 78fade0a1e35..b7d81b2a9041 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -346,6 +346,11 @@ unifdef-y += videodev.h | |||
| 346 | unifdef-y += virtio_config.h | 346 | unifdef-y += virtio_config.h |
| 347 | unifdef-y += virtio_blk.h | 347 | unifdef-y += virtio_blk.h |
| 348 | unifdef-y += virtio_net.h | 348 | unifdef-y += virtio_net.h |
| 349 | unifdef-y += virtio_9p.h | ||
| 350 | unifdef-y += virtio_balloon.h | ||
| 351 | unifdef-y += virtio_console.h | ||
| 352 | unifdef-y += virtio_pci.h | ||
| 353 | unifdef-y += virtio_ring.h | ||
| 349 | unifdef-y += vt.h | 354 | unifdef-y += vt.h |
| 350 | unifdef-y += wait.h | 355 | unifdef-y += wait.h |
| 351 | unifdef-y += wanrouter.h | 356 | unifdef-y += wanrouter.h |
diff --git a/include/linux/anon_inodes.h b/include/linux/anon_inodes.h index b2e1ba325b9a..6129e58ca7c9 100644 --- a/include/linux/anon_inodes.h +++ b/include/linux/anon_inodes.h | |||
| @@ -8,8 +8,7 @@ | |||
| 8 | #ifndef _LINUX_ANON_INODES_H | 8 | #ifndef _LINUX_ANON_INODES_H |
| 9 | #define _LINUX_ANON_INODES_H | 9 | #define _LINUX_ANON_INODES_H |
| 10 | 10 | ||
| 11 | int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile, | 11 | int anon_inode_getfd(const char *name, const struct file_operations *fops, |
| 12 | const char *name, const struct file_operations *fops, | ||
| 13 | void *priv); | 12 | void *priv); |
| 14 | 13 | ||
| 15 | #endif /* _LINUX_ANON_INODES_H */ | 14 | #endif /* _LINUX_ANON_INODES_H */ |
diff --git a/include/linux/calc64.h b/include/linux/calc64.h deleted file mode 100644 index ebf4b8f38d88..000000000000 --- a/include/linux/calc64.h +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | #ifndef _LINUX_CALC64_H | ||
| 2 | #define _LINUX_CALC64_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <asm/div64.h> | ||
| 6 | |||
| 7 | /* | ||
| 8 | * This is a generic macro which is used when the architecture | ||
| 9 | * specific div64.h does not provide a optimized one. | ||
| 10 | * | ||
| 11 | * The 64bit dividend is divided by the divisor (data type long), the | ||
| 12 | * result is returned and the remainder stored in the variable | ||
| 13 | * referenced by remainder (data type long *). In contrast to the | ||
| 14 | * do_div macro the dividend is kept intact. | ||
| 15 | */ | ||
| 16 | #ifndef div_long_long_rem | ||
| 17 | #define div_long_long_rem(dividend, divisor, remainder) \ | ||
| 18 | do_div_llr((dividend), divisor, remainder) | ||
| 19 | |||
| 20 | static inline unsigned long do_div_llr(const long long dividend, | ||
| 21 | const long divisor, long *remainder) | ||
| 22 | { | ||
| 23 | u64 result = dividend; | ||
| 24 | |||
| 25 | *(remainder) = do_div(result, divisor); | ||
| 26 | return (unsigned long) result; | ||
| 27 | } | ||
| 28 | #endif | ||
| 29 | |||
| 30 | /* | ||
| 31 | * Sign aware variation of the above. On some architectures a | ||
| 32 | * negative dividend leads to an divide overflow exception, which | ||
| 33 | * is avoided by the sign check. | ||
| 34 | */ | ||
| 35 | static inline long div_long_long_rem_signed(const long long dividend, | ||
| 36 | const long divisor, long *remainder) | ||
| 37 | { | ||
| 38 | long res; | ||
| 39 | |||
| 40 | if (unlikely(dividend < 0)) { | ||
| 41 | res = -div_long_long_rem(-dividend, divisor, remainder); | ||
| 42 | *remainder = -(*remainder); | ||
| 43 | } else | ||
| 44 | res = div_long_long_rem(dividend, divisor, remainder); | ||
| 45 | |||
| 46 | return res; | ||
| 47 | } | ||
| 48 | |||
| 49 | #endif | ||
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 35094479ca55..55e434feec99 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h | |||
| @@ -93,6 +93,8 @@ struct clocksource { | |||
| 93 | #endif | 93 | #endif |
| 94 | }; | 94 | }; |
| 95 | 95 | ||
| 96 | extern struct clocksource *clock; /* current clocksource */ | ||
| 97 | |||
| 96 | /* | 98 | /* |
| 97 | * Clock source flags bits:: | 99 | * Clock source flags bits:: |
| 98 | */ | 100 | */ |
diff --git a/include/linux/compat.h b/include/linux/compat.h index 8fa7857e153b..cf8d11cad5ae 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -65,10 +65,11 @@ struct compat_timex { | |||
| 65 | compat_long_t calcnt; | 65 | compat_long_t calcnt; |
| 66 | compat_long_t errcnt; | 66 | compat_long_t errcnt; |
| 67 | compat_long_t stbcnt; | 67 | compat_long_t stbcnt; |
| 68 | compat_int_t tai; | ||
| 68 | 69 | ||
| 69 | compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32; | 70 | compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32; |
| 70 | compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32; | 71 | compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32; |
| 71 | compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32; | 72 | compat_int_t :32; compat_int_t :32; compat_int_t :32; |
| 72 | }; | 73 | }; |
| 73 | 74 | ||
| 74 | #define _COMPAT_NSIG_WORDS (_COMPAT_NSIG / _COMPAT_NSIG_BPW) | 75 | #define _COMPAT_NSIG_WORDS (_COMPAT_NSIG / _COMPAT_NSIG_BPW) |
diff --git a/include/linux/device.h b/include/linux/device.h index 832fb0eb2933..8c23e3dfe3ac 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -380,6 +380,12 @@ struct device { | |||
| 380 | /* Get the wakeup routines, which depend on struct device */ | 380 | /* Get the wakeup routines, which depend on struct device */ |
| 381 | #include <linux/pm_wakeup.h> | 381 | #include <linux/pm_wakeup.h> |
| 382 | 382 | ||
| 383 | static inline const char *dev_name(struct device *dev) | ||
| 384 | { | ||
| 385 | /* will be changed into kobject_name(&dev->kobj) in the near future */ | ||
| 386 | return dev->bus_id; | ||
| 387 | } | ||
| 388 | |||
| 383 | #ifdef CONFIG_NUMA | 389 | #ifdef CONFIG_NUMA |
| 384 | static inline int dev_to_node(struct device *dev) | 390 | static inline int dev_to_node(struct device *dev) |
| 385 | { | 391 | { |
| @@ -478,7 +484,7 @@ extern void sysdev_shutdown(void); | |||
| 478 | extern const char *dev_driver_string(struct device *dev); | 484 | extern const char *dev_driver_string(struct device *dev); |
| 479 | #define dev_printk(level, dev, format, arg...) \ | 485 | #define dev_printk(level, dev, format, arg...) \ |
| 480 | printk(level "%s %s: " format , dev_driver_string(dev) , \ | 486 | printk(level "%s %s: " format , dev_driver_string(dev) , \ |
| 481 | (dev)->bus_id , ## arg) | 487 | dev_name(dev) , ## arg) |
| 482 | 488 | ||
| 483 | #define dev_emerg(dev, format, arg...) \ | 489 | #define dev_emerg(dev, format, arg...) \ |
| 484 | dev_printk(KERN_EMERG , dev , format , ## arg) | 490 | dev_printk(KERN_EMERG , dev , format , ## arg) |
diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h new file mode 100644 index 000000000000..a118f3c0b240 --- /dev/null +++ b/include/linux/fdtable.h | |||
| @@ -0,0 +1,99 @@ | |||
| 1 | /* | ||
| 2 | * descriptor table internals; you almost certainly want file.h instead. | ||
| 3 | */ | ||
| 4 | |||
| 5 | #ifndef __LINUX_FDTABLE_H | ||
| 6 | #define __LINUX_FDTABLE_H | ||
| 7 | |||
| 8 | #include <asm/atomic.h> | ||
| 9 | #include <linux/posix_types.h> | ||
| 10 | #include <linux/compiler.h> | ||
| 11 | #include <linux/spinlock.h> | ||
| 12 | #include <linux/rcupdate.h> | ||
| 13 | #include <linux/types.h> | ||
| 14 | |||
| 15 | /* | ||
| 16 | * The default fd array needs to be at least BITS_PER_LONG, | ||
| 17 | * as this is the granularity returned by copy_fdset(). | ||
| 18 | */ | ||
| 19 | #define NR_OPEN_DEFAULT BITS_PER_LONG | ||
| 20 | |||
| 21 | /* | ||
| 22 | * The embedded_fd_set is a small fd_set, | ||
| 23 | * suitable for most tasks (which open <= BITS_PER_LONG files) | ||
| 24 | */ | ||
| 25 | struct embedded_fd_set { | ||
| 26 | unsigned long fds_bits[1]; | ||
| 27 | }; | ||
| 28 | |||
| 29 | struct fdtable { | ||
| 30 | unsigned int max_fds; | ||
| 31 | struct file ** fd; /* current fd array */ | ||
| 32 | fd_set *close_on_exec; | ||
| 33 | fd_set *open_fds; | ||
| 34 | struct rcu_head rcu; | ||
| 35 | struct fdtable *next; | ||
| 36 | }; | ||
| 37 | |||
| 38 | /* | ||
| 39 | * Open file table structure | ||
| 40 | */ | ||
| 41 | struct files_struct { | ||
| 42 | /* | ||
| 43 | * read mostly part | ||
| 44 | */ | ||
| 45 | atomic_t count; | ||
| 46 | struct fdtable *fdt; | ||
| 47 | struct fdtable fdtab; | ||
| 48 | /* | ||
| 49 | * written part on a separate cache line in SMP | ||
| 50 | */ | ||
| 51 | spinlock_t file_lock ____cacheline_aligned_in_smp; | ||
| 52 | int next_fd; | ||
| 53 | struct embedded_fd_set close_on_exec_init; | ||
| 54 | struct embedded_fd_set open_fds_init; | ||
| 55 | struct file * fd_array[NR_OPEN_DEFAULT]; | ||
| 56 | }; | ||
| 57 | |||
| 58 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) | ||
| 59 | |||
| 60 | extern struct kmem_cache *filp_cachep; | ||
| 61 | |||
| 62 | struct file_operations; | ||
| 63 | struct vfsmount; | ||
| 64 | struct dentry; | ||
| 65 | |||
| 66 | extern int expand_files(struct files_struct *, int nr); | ||
| 67 | extern void free_fdtable_rcu(struct rcu_head *rcu); | ||
| 68 | extern void __init files_defer_init(void); | ||
| 69 | |||
| 70 | static inline void free_fdtable(struct fdtable *fdt) | ||
| 71 | { | ||
| 72 | call_rcu(&fdt->rcu, free_fdtable_rcu); | ||
| 73 | } | ||
| 74 | |||
| 75 | static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd) | ||
| 76 | { | ||
| 77 | struct file * file = NULL; | ||
| 78 | struct fdtable *fdt = files_fdtable(files); | ||
| 79 | |||
| 80 | if (fd < fdt->max_fds) | ||
| 81 | file = rcu_dereference(fdt->fd[fd]); | ||
| 82 | return file; | ||
| 83 | } | ||
| 84 | |||
| 85 | /* | ||
| 86 | * Check whether the specified fd has an open file. | ||
| 87 | */ | ||
| 88 | #define fcheck(fd) fcheck_files(current->files, fd) | ||
| 89 | |||
| 90 | struct task_struct; | ||
| 91 | |||
| 92 | struct files_struct *get_files_struct(struct task_struct *); | ||
| 93 | void put_files_struct(struct files_struct *fs); | ||
| 94 | void reset_files_struct(struct files_struct *); | ||
| 95 | int unshare_files(struct files_struct **); | ||
| 96 | |||
| 97 | extern struct kmem_cache *files_cachep; | ||
| 98 | |||
| 99 | #endif /* __LINUX_FDTABLE_H */ | ||
diff --git a/include/linux/file.h b/include/linux/file.h index 69baf5a4f0a5..27c64bdc68c9 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
| @@ -5,59 +5,11 @@ | |||
| 5 | #ifndef __LINUX_FILE_H | 5 | #ifndef __LINUX_FILE_H |
| 6 | #define __LINUX_FILE_H | 6 | #define __LINUX_FILE_H |
| 7 | 7 | ||
| 8 | #include <asm/atomic.h> | ||
| 9 | #include <linux/posix_types.h> | ||
| 10 | #include <linux/compiler.h> | 8 | #include <linux/compiler.h> |
| 11 | #include <linux/spinlock.h> | ||
| 12 | #include <linux/rcupdate.h> | ||
| 13 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 10 | #include <linux/posix_types.h> | ||
| 14 | 11 | ||
| 15 | /* | 12 | struct file; |
| 16 | * The default fd array needs to be at least BITS_PER_LONG, | ||
| 17 | * as this is the granularity returned by copy_fdset(). | ||
| 18 | */ | ||
| 19 | #define NR_OPEN_DEFAULT BITS_PER_LONG | ||
| 20 | |||
| 21 | /* | ||
| 22 | * The embedded_fd_set is a small fd_set, | ||
| 23 | * suitable for most tasks (which open <= BITS_PER_LONG files) | ||
| 24 | */ | ||
| 25 | struct embedded_fd_set { | ||
| 26 | unsigned long fds_bits[1]; | ||
| 27 | }; | ||
| 28 | |||
| 29 | struct fdtable { | ||
| 30 | unsigned int max_fds; | ||
| 31 | struct file ** fd; /* current fd array */ | ||
| 32 | fd_set *close_on_exec; | ||
| 33 | fd_set *open_fds; | ||
| 34 | struct rcu_head rcu; | ||
| 35 | struct fdtable *next; | ||
| 36 | }; | ||
| 37 | |||
| 38 | /* | ||
| 39 | * Open file table structure | ||
| 40 | */ | ||
| 41 | struct files_struct { | ||
| 42 | /* | ||
| 43 | * read mostly part | ||
| 44 | */ | ||
| 45 | atomic_t count; | ||
| 46 | struct fdtable *fdt; | ||
| 47 | struct fdtable fdtab; | ||
| 48 | /* | ||
| 49 | * written part on a separate cache line in SMP | ||
| 50 | */ | ||
| 51 | spinlock_t file_lock ____cacheline_aligned_in_smp; | ||
| 52 | int next_fd; | ||
| 53 | struct embedded_fd_set close_on_exec_init; | ||
| 54 | struct embedded_fd_set open_fds_init; | ||
| 55 | struct file * fd_array[NR_OPEN_DEFAULT]; | ||
| 56 | }; | ||
| 57 | |||
| 58 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) | ||
| 59 | |||
| 60 | extern struct kmem_cache *filp_cachep; | ||
| 61 | 13 | ||
| 62 | extern void __fput(struct file *); | 14 | extern void __fput(struct file *); |
| 63 | extern void fput(struct file *); | 15 | extern void fput(struct file *); |
| @@ -85,41 +37,7 @@ extern void put_filp(struct file *); | |||
| 85 | extern int get_unused_fd(void); | 37 | extern int get_unused_fd(void); |
| 86 | extern int get_unused_fd_flags(int flags); | 38 | extern int get_unused_fd_flags(int flags); |
| 87 | extern void put_unused_fd(unsigned int fd); | 39 | extern void put_unused_fd(unsigned int fd); |
| 88 | struct kmem_cache; | ||
| 89 | |||
| 90 | extern int expand_files(struct files_struct *, int nr); | ||
| 91 | extern void free_fdtable_rcu(struct rcu_head *rcu); | ||
| 92 | extern void __init files_defer_init(void); | ||
| 93 | |||
| 94 | static inline void free_fdtable(struct fdtable *fdt) | ||
| 95 | { | ||
| 96 | call_rcu(&fdt->rcu, free_fdtable_rcu); | ||
| 97 | } | ||
| 98 | |||
| 99 | static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd) | ||
| 100 | { | ||
| 101 | struct file * file = NULL; | ||
| 102 | struct fdtable *fdt = files_fdtable(files); | ||
| 103 | |||
| 104 | if (fd < fdt->max_fds) | ||
| 105 | file = rcu_dereference(fdt->fd[fd]); | ||
| 106 | return file; | ||
| 107 | } | ||
| 108 | |||
| 109 | /* | ||
| 110 | * Check whether the specified fd has an open file. | ||
| 111 | */ | ||
| 112 | #define fcheck(fd) fcheck_files(current->files, fd) | ||
| 113 | 40 | ||
| 114 | extern void fd_install(unsigned int fd, struct file *file); | 41 | extern void fd_install(unsigned int fd, struct file *file); |
| 115 | 42 | ||
| 116 | struct task_struct; | ||
| 117 | |||
| 118 | struct files_struct *get_files_struct(struct task_struct *); | ||
| 119 | void put_files_struct(struct files_struct *fs); | ||
| 120 | void reset_files_struct(struct files_struct *); | ||
| 121 | int unshare_files(struct files_struct **); | ||
| 122 | |||
| 123 | extern struct kmem_cache *files_cachep; | ||
| 124 | |||
| 125 | #endif /* __LINUX_FILE_H */ | 43 | #endif /* __LINUX_FILE_H */ |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 31a4d653389f..6d93dce61cbb 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
| @@ -316,6 +316,15 @@ static inline int hrtimer_is_queued(struct hrtimer *timer) | |||
| 316 | (HRTIMER_STATE_ENQUEUED | HRTIMER_STATE_PENDING); | 316 | (HRTIMER_STATE_ENQUEUED | HRTIMER_STATE_PENDING); |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | /* | ||
| 320 | * Helper function to check, whether the timer is running the callback | ||
| 321 | * function | ||
| 322 | */ | ||
| 323 | static inline int hrtimer_callback_running(struct hrtimer *timer) | ||
| 324 | { | ||
| 325 | return timer->state & HRTIMER_STATE_CALLBACK; | ||
| 326 | } | ||
| 327 | |||
| 319 | /* Forward a hrtimer so it expires after now: */ | 328 | /* Forward a hrtimer so it expires after now: */ |
| 320 | extern u64 | 329 | extern u64 |
| 321 | hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval); | 330 | hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval); |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index bf6b8a61f8db..b24c2875aa05 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef _LINUX__INIT_TASK_H | 1 | #ifndef _LINUX__INIT_TASK_H |
| 2 | #define _LINUX__INIT_TASK_H | 2 | #define _LINUX__INIT_TASK_H |
| 3 | 3 | ||
| 4 | #include <linux/file.h> | 4 | #include <linux/fdtable.h> |
| 5 | #include <linux/rcupdate.h> | 5 | #include <linux/rcupdate.h> |
| 6 | #include <linux/irqflags.h> | 6 | #include <linux/irqflags.h> |
| 7 | #include <linux/utsname.h> | 7 | #include <linux/utsname.h> |
diff --git a/include/linux/io.h b/include/linux/io.h index 3a03a3604cce..6c7f0ba0d5fa 100644 --- a/include/linux/io.h +++ b/include/linux/io.h | |||
| @@ -65,5 +65,6 @@ void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset, | |||
| 65 | void devm_iounmap(struct device *dev, void __iomem *addr); | 65 | void devm_iounmap(struct device *dev, void __iomem *addr); |
| 66 | int check_signature(const volatile void __iomem *io_addr, | 66 | int check_signature(const volatile void __iomem *io_addr, |
| 67 | const unsigned char *signature, int length); | 67 | const unsigned char *signature, int length); |
| 68 | void devm_ioremap_release(struct device *dev, void *res); | ||
| 68 | 69 | ||
| 69 | #endif /* _LINUX_IO_H */ | 70 | #endif /* _LINUX_IO_H */ |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 1883a85625dd..552e0ec269c9 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -61,6 +61,7 @@ typedef void (*irq_flow_handler_t)(unsigned int irq, | |||
| 61 | #define IRQ_WAKEUP 0x00100000 /* IRQ triggers system wakeup */ | 61 | #define IRQ_WAKEUP 0x00100000 /* IRQ triggers system wakeup */ |
| 62 | #define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */ | 62 | #define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */ |
| 63 | #define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */ | 63 | #define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */ |
| 64 | #define IRQ_SPURIOUS_DISABLED 0x00800000 /* IRQ was disabled by the spurious trap */ | ||
| 64 | 65 | ||
| 65 | #ifdef CONFIG_IRQ_PER_CPU | 66 | #ifdef CONFIG_IRQ_PER_CPU |
| 66 | # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) | 67 | # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) |
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index 33ef710dac24..abb6ac639e8e 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #ifndef _LINUX_JIFFIES_H | 1 | #ifndef _LINUX_JIFFIES_H |
| 2 | #define _LINUX_JIFFIES_H | 2 | #define _LINUX_JIFFIES_H |
| 3 | 3 | ||
| 4 | #include <linux/calc64.h> | 4 | #include <linux/math64.h> |
| 5 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
| 6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
| 7 | #include <linux/time.h> | 7 | #include <linux/time.h> |
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 9757b1a6d9dc..6adcc297e354 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h | |||
| @@ -261,10 +261,12 @@ struct kgdb_io { | |||
| 261 | 261 | ||
| 262 | extern struct kgdb_arch arch_kgdb_ops; | 262 | extern struct kgdb_arch arch_kgdb_ops; |
| 263 | 263 | ||
| 264 | extern unsigned long __weak kgdb_arch_pc(int exception, struct pt_regs *regs); | ||
| 265 | |||
| 264 | extern int kgdb_register_io_module(struct kgdb_io *local_kgdb_io_ops); | 266 | extern int kgdb_register_io_module(struct kgdb_io *local_kgdb_io_ops); |
| 265 | extern void kgdb_unregister_io_module(struct kgdb_io *local_kgdb_io_ops); | 267 | extern void kgdb_unregister_io_module(struct kgdb_io *local_kgdb_io_ops); |
| 266 | 268 | ||
| 267 | extern int kgdb_hex2long(char **ptr, long *long_val); | 269 | extern int kgdb_hex2long(char **ptr, unsigned long *long_val); |
| 268 | extern int kgdb_mem2hex(char *mem, char *buf, int count); | 270 | extern int kgdb_mem2hex(char *mem, char *buf, int count); |
| 269 | extern int kgdb_hex2mem(char *buf, char *mem, int count); | 271 | extern int kgdb_hex2mem(char *buf, char *mem, int count); |
| 270 | 272 | ||
diff --git a/include/linux/math64.h b/include/linux/math64.h new file mode 100644 index 000000000000..c1a5f81501ff --- /dev/null +++ b/include/linux/math64.h | |||
| @@ -0,0 +1,84 @@ | |||
| 1 | #ifndef _LINUX_MATH64_H | ||
| 2 | #define _LINUX_MATH64_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <asm/div64.h> | ||
| 6 | |||
| 7 | #if BITS_PER_LONG == 64 | ||
| 8 | |||
| 9 | /** | ||
| 10 | * div_u64_rem - unsigned 64bit divide with 32bit divisor with remainder | ||
| 11 | * | ||
| 12 | * This is commonly provided by 32bit archs to provide an optimized 64bit | ||
| 13 | * divide. | ||
| 14 | */ | ||
| 15 | static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) | ||
| 16 | { | ||
| 17 | *remainder = dividend % divisor; | ||
| 18 | return dividend / divisor; | ||
| 19 | } | ||
| 20 | |||
| 21 | /** | ||
| 22 | * div_s64_rem - signed 64bit divide with 32bit divisor with remainder | ||
| 23 | */ | ||
| 24 | static inline s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) | ||
| 25 | { | ||
| 26 | *remainder = dividend % divisor; | ||
| 27 | return dividend / divisor; | ||
| 28 | } | ||
| 29 | |||
| 30 | /** | ||
| 31 | * div64_u64 - unsigned 64bit divide with 64bit divisor | ||
| 32 | */ | ||
| 33 | static inline u64 div64_u64(u64 dividend, u64 divisor) | ||
| 34 | { | ||
| 35 | return dividend / divisor; | ||
| 36 | } | ||
| 37 | |||
| 38 | #elif BITS_PER_LONG == 32 | ||
| 39 | |||
| 40 | #ifndef div_u64_rem | ||
| 41 | static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) | ||
| 42 | { | ||
| 43 | *remainder = do_div(dividend, divisor); | ||
| 44 | return dividend; | ||
| 45 | } | ||
| 46 | #endif | ||
| 47 | |||
| 48 | #ifndef div_s64_rem | ||
| 49 | extern s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder); | ||
| 50 | #endif | ||
| 51 | |||
| 52 | #ifndef div64_u64 | ||
| 53 | extern u64 div64_u64(u64 dividend, u64 divisor); | ||
| 54 | #endif | ||
| 55 | |||
| 56 | #endif /* BITS_PER_LONG */ | ||
| 57 | |||
| 58 | /** | ||
| 59 | * div_u64 - unsigned 64bit divide with 32bit divisor | ||
| 60 | * | ||
| 61 | * This is the most common 64bit divide and should be used if possible, | ||
| 62 | * as many 32bit archs can optimize this variant better than a full 64bit | ||
| 63 | * divide. | ||
| 64 | */ | ||
| 65 | #ifndef div_u64 | ||
| 66 | static inline u64 div_u64(u64 dividend, u32 divisor) | ||
| 67 | { | ||
| 68 | u32 remainder; | ||
| 69 | return div_u64_rem(dividend, divisor, &remainder); | ||
| 70 | } | ||
| 71 | #endif | ||
| 72 | |||
| 73 | /** | ||
| 74 | * div_s64 - signed 64bit divide with 32bit divisor | ||
| 75 | */ | ||
| 76 | #ifndef div_s64 | ||
| 77 | static inline s64 div_s64(s64 dividend, s32 divisor) | ||
| 78 | { | ||
| 79 | s32 remainder; | ||
| 80 | return div_s64_rem(dividend, divisor, &remainder); | ||
| 81 | } | ||
| 82 | #endif | ||
| 83 | |||
| 84 | #endif /* _LINUX_MATH64_H */ | ||
diff --git a/include/linux/module.h b/include/linux/module.h index 819c4e889bf1..3e03b1acbc94 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
| @@ -190,7 +190,7 @@ void *__symbol_get_gpl(const char *symbol); | |||
| 190 | extern typeof(sym) sym; \ | 190 | extern typeof(sym) sym; \ |
| 191 | __CRC_SYMBOL(sym, sec) \ | 191 | __CRC_SYMBOL(sym, sec) \ |
| 192 | static const char __kstrtab_##sym[] \ | 192 | static const char __kstrtab_##sym[] \ |
| 193 | __attribute__((section("__ksymtab_strings"))) \ | 193 | __attribute__((section("__ksymtab_strings"), aligned(1))) \ |
| 194 | = MODULE_SYMBOL_PREFIX #sym; \ | 194 | = MODULE_SYMBOL_PREFIX #sym; \ |
| 195 | static const struct kernel_symbol __ksymtab_##sym \ | 195 | static const struct kernel_symbol __ksymtab_##sym \ |
| 196 | __used \ | 196 | __used \ |
| @@ -229,23 +229,6 @@ enum module_state | |||
| 229 | MODULE_STATE_GOING, | 229 | MODULE_STATE_GOING, |
| 230 | }; | 230 | }; |
| 231 | 231 | ||
| 232 | /* Similar stuff for section attributes. */ | ||
| 233 | struct module_sect_attr | ||
| 234 | { | ||
| 235 | struct module_attribute mattr; | ||
| 236 | char *name; | ||
| 237 | unsigned long address; | ||
| 238 | }; | ||
| 239 | |||
| 240 | struct module_sect_attrs | ||
| 241 | { | ||
| 242 | struct attribute_group grp; | ||
| 243 | int nsections; | ||
| 244 | struct module_sect_attr attrs[0]; | ||
| 245 | }; | ||
| 246 | |||
| 247 | struct module_param_attrs; | ||
| 248 | |||
| 249 | struct module | 232 | struct module |
| 250 | { | 233 | { |
| 251 | enum module_state state; | 234 | enum module_state state; |
diff --git a/include/linux/mtd/jedec.h b/include/linux/mtd/jedec.h deleted file mode 100644 index 9006feb218b9..000000000000 --- a/include/linux/mtd/jedec.h +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | |||
| 2 | /* JEDEC Flash Interface. | ||
| 3 | * This is an older type of interface for self programming flash. It is | ||
| 4 | * commonly use in older AMD chips and is obsolete compared with CFI. | ||
| 5 | * It is called JEDEC because the JEDEC association distributes the ID codes | ||
| 6 | * for the chips. | ||
| 7 | * | ||
| 8 | * See the AMD flash databook for information on how to operate the interface. | ||
| 9 | * | ||
| 10 | * $Id: jedec.h,v 1.4 2005/11/07 11:14:54 gleixner Exp $ | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __LINUX_MTD_JEDEC_H__ | ||
| 14 | #define __LINUX_MTD_JEDEC_H__ | ||
| 15 | |||
| 16 | #include <linux/types.h> | ||
| 17 | |||
| 18 | #define MAX_JEDEC_CHIPS 16 | ||
| 19 | |||
| 20 | // Listing of all supported chips and their information | ||
| 21 | struct JEDECTable | ||
| 22 | { | ||
| 23 | __u16 jedec; | ||
| 24 | char *name; | ||
| 25 | unsigned long size; | ||
| 26 | unsigned long sectorsize; | ||
| 27 | __u32 capabilities; | ||
| 28 | }; | ||
| 29 | |||
| 30 | // JEDEC being 0 is the end of the chip array | ||
| 31 | struct jedec_flash_chip | ||
| 32 | { | ||
| 33 | __u16 jedec; | ||
| 34 | unsigned long size; | ||
| 35 | unsigned long sectorsize; | ||
| 36 | |||
| 37 | // *(__u8*)(base + (adder << addrshift)) = data << datashift | ||
| 38 | // Address size = size << addrshift | ||
| 39 | unsigned long base; // Byte 0 of the flash, will be unaligned | ||
| 40 | unsigned int datashift; // Useful for 32bit/16bit accesses | ||
| 41 | unsigned int addrshift; | ||
| 42 | unsigned long offset; // linerized start. base==offset for unbanked, uninterleaved flash | ||
| 43 | |||
| 44 | __u32 capabilities; | ||
| 45 | |||
| 46 | // These markers are filled in by the flash_chip_scan function | ||
| 47 | unsigned long start; | ||
| 48 | unsigned long length; | ||
| 49 | }; | ||
| 50 | |||
| 51 | struct jedec_private | ||
| 52 | { | ||
| 53 | unsigned long size; // Total size of all the devices | ||
| 54 | |||
| 55 | /* Bank handling. If sum(bank_fill) == size then this is linear flash. | ||
| 56 | Otherwise the mapping has holes in it. bank_fill may be used to | ||
| 57 | find the holes, but in the common symetric case | ||
| 58 | bank_fill[0] == bank_fill[*], thus addresses may be computed | ||
| 59 | mathmatically. bank_fill must be powers of two */ | ||
| 60 | unsigned is_banked; | ||
| 61 | unsigned long bank_fill[MAX_JEDEC_CHIPS]; | ||
| 62 | |||
| 63 | struct jedec_flash_chip chips[MAX_JEDEC_CHIPS]; | ||
| 64 | }; | ||
| 65 | |||
| 66 | #endif | ||
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 0a13bb35f044..245f9098e171 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
| @@ -143,10 +143,12 @@ struct mtd_info { | |||
| 143 | int (*erase) (struct mtd_info *mtd, struct erase_info *instr); | 143 | int (*erase) (struct mtd_info *mtd, struct erase_info *instr); |
| 144 | 144 | ||
| 145 | /* This stuff for eXecute-In-Place */ | 145 | /* This stuff for eXecute-In-Place */ |
| 146 | int (*point) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char **mtdbuf); | 146 | /* phys is optional and may be set to NULL */ |
| 147 | int (*point) (struct mtd_info *mtd, loff_t from, size_t len, | ||
| 148 | size_t *retlen, void **virt, resource_size_t *phys); | ||
| 147 | 149 | ||
| 148 | /* We probably shouldn't allow XIP if the unpoint isn't a NULL */ | 150 | /* We probably shouldn't allow XIP if the unpoint isn't a NULL */ |
| 149 | void (*unpoint) (struct mtd_info *mtd, u_char * addr, loff_t from, size_t len); | 151 | void (*unpoint) (struct mtd_info *mtd, loff_t from, size_t len); |
| 150 | 152 | ||
| 151 | 153 | ||
| 152 | int (*read) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf); | 154 | int (*read) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf); |
diff --git a/include/linux/mtd/pmc551.h b/include/linux/mtd/pmc551.h index a7f6d20ad407..5cc070c24d88 100644 --- a/include/linux/mtd/pmc551.h +++ b/include/linux/mtd/pmc551.h | |||
| @@ -36,8 +36,9 @@ struct mypriv { | |||
| 36 | * Function Prototypes | 36 | * Function Prototypes |
| 37 | */ | 37 | */ |
| 38 | static int pmc551_erase(struct mtd_info *, struct erase_info *); | 38 | static int pmc551_erase(struct mtd_info *, struct erase_info *); |
| 39 | static void pmc551_unpoint(struct mtd_info *, u_char *, loff_t, size_t); | 39 | static void pmc551_unpoint(struct mtd_info *, loff_t, size_t); |
| 40 | static int pmc551_point (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char **mtdbuf); | 40 | static int pmc551_point(struct mtd_info *mtd, loff_t from, size_t len, |
| 41 | size_t *retlen, void **virt, resource_size_t *phys); | ||
| 41 | static int pmc551_read(struct mtd_info *, loff_t, size_t, size_t *, u_char *); | 42 | static int pmc551_read(struct mtd_info *, loff_t, size_t, size_t *, u_char *); |
| 42 | static int pmc551_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); | 43 | static int pmc551_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); |
| 43 | 44 | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 96acd0dae241..509159bcd4e7 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | #include <linux/mod_devicetable.h> | 44 | #include <linux/mod_devicetable.h> |
| 45 | 45 | ||
| 46 | #include <linux/types.h> | 46 | #include <linux/types.h> |
| 47 | #include <linux/init.h> | ||
| 47 | #include <linux/ioport.h> | 48 | #include <linux/ioport.h> |
| 48 | #include <linux/list.h> | 49 | #include <linux/list.h> |
| 49 | #include <linux/compiler.h> | 50 | #include <linux/compiler.h> |
| @@ -474,7 +475,7 @@ extern struct pci_bus *pci_find_bus(int domain, int busnr); | |||
| 474 | void pci_bus_add_devices(struct pci_bus *bus); | 475 | void pci_bus_add_devices(struct pci_bus *bus); |
| 475 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, | 476 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, |
| 476 | struct pci_ops *ops, void *sysdata); | 477 | struct pci_ops *ops, void *sysdata); |
| 477 | static inline struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, | 478 | static inline struct pci_bus * __devinit pci_scan_bus(int bus, struct pci_ops *ops, |
| 478 | void *sysdata) | 479 | void *sysdata) |
| 479 | { | 480 | { |
| 480 | struct pci_bus *root_bus; | 481 | struct pci_bus *root_bus; |
| @@ -666,7 +667,7 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, | |||
| 666 | 667 | ||
| 667 | void pci_walk_bus(struct pci_bus *top, void (*cb)(struct pci_dev *, void *), | 668 | void pci_walk_bus(struct pci_bus *top, void (*cb)(struct pci_dev *, void *), |
| 668 | void *userdata); | 669 | void *userdata); |
| 669 | int pci_cfg_space_size_ext(struct pci_dev *dev, unsigned check_exp_pcix); | 670 | int pci_cfg_space_size_ext(struct pci_dev *dev); |
| 670 | int pci_cfg_space_size(struct pci_dev *dev); | 671 | int pci_cfg_space_size(struct pci_dev *dev); |
| 671 | unsigned char pci_bus_max_busnr(struct pci_bus *bus); | 672 | unsigned char pci_bus_max_busnr(struct pci_bus *bus); |
| 672 | 673 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index e5a53daf17f1..cf6dbd759395 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1429,6 +1429,7 @@ | |||
| 1429 | #define PCI_DEVICE_ID_NEO_2DB9PRI 0x00C9 | 1429 | #define PCI_DEVICE_ID_NEO_2DB9PRI 0x00C9 |
| 1430 | #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA | 1430 | #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA |
| 1431 | #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB | 1431 | #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB |
| 1432 | #define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4 | ||
| 1432 | 1433 | ||
| 1433 | #define PCI_VENDOR_ID_XIRCOM 0x115d | 1434 | #define PCI_VENDOR_ID_XIRCOM 0x115d |
| 1434 | #define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101 | 1435 | #define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101 |
diff --git a/include/linux/pda_power.h b/include/linux/pda_power.h index 225beb136807..cb7d10f30763 100644 --- a/include/linux/pda_power.h +++ b/include/linux/pda_power.h | |||
| @@ -16,10 +16,14 @@ | |||
| 16 | #define PDA_POWER_CHARGE_AC (1 << 0) | 16 | #define PDA_POWER_CHARGE_AC (1 << 0) |
| 17 | #define PDA_POWER_CHARGE_USB (1 << 1) | 17 | #define PDA_POWER_CHARGE_USB (1 << 1) |
| 18 | 18 | ||
| 19 | struct device; | ||
| 20 | |||
| 19 | struct pda_power_pdata { | 21 | struct pda_power_pdata { |
| 22 | int (*init)(struct device *dev); | ||
| 20 | int (*is_ac_online)(void); | 23 | int (*is_ac_online)(void); |
| 21 | int (*is_usb_online)(void); | 24 | int (*is_usb_online)(void); |
| 22 | void (*set_charge)(int flags); | 25 | void (*set_charge)(int flags); |
| 26 | void (*exit)(struct device *dev); | ||
| 23 | 27 | ||
| 24 | char **supplied_to; | 28 | char **supplied_to; |
| 25 | size_t num_supplicants; | 29 | size_t num_supplicants; |
diff --git a/include/linux/poll.h b/include/linux/poll.h index 16d813b364ef..ef453828877a 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h | |||
| @@ -117,6 +117,8 @@ void zero_fd_set(unsigned long nr, unsigned long *fdset) | |||
| 117 | extern int do_select(int n, fd_set_bits *fds, s64 *timeout); | 117 | extern int do_select(int n, fd_set_bits *fds, s64 *timeout); |
| 118 | extern int do_sys_poll(struct pollfd __user * ufds, unsigned int nfds, | 118 | extern int do_sys_poll(struct pollfd __user * ufds, unsigned int nfds, |
| 119 | s64 *timeout); | 119 | s64 *timeout); |
| 120 | extern int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp, | ||
| 121 | fd_set __user *exp, s64 *timeout); | ||
| 120 | 122 | ||
| 121 | #endif /* KERNEL */ | 123 | #endif /* KERNEL */ |
| 122 | 124 | ||
diff --git a/include/linux/quota.h b/include/linux/quota.h index 52e49dce6584..dcddfb200947 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
| @@ -347,6 +347,9 @@ struct quota_info { | |||
| 347 | ((type) == USRQUOTA ? (sb_dqopt(sb)->flags & DQUOT_USR_SUSPENDED) : \ | 347 | ((type) == USRQUOTA ? (sb_dqopt(sb)->flags & DQUOT_USR_SUSPENDED) : \ |
| 348 | (sb_dqopt(sb)->flags & DQUOT_GRP_SUSPENDED)) | 348 | (sb_dqopt(sb)->flags & DQUOT_GRP_SUSPENDED)) |
| 349 | 349 | ||
| 350 | #define sb_any_quota_suspended(sb) (sb_has_quota_suspended(sb, USRQUOTA) | \ | ||
| 351 | sb_has_quota_suspended(sb, GRPQUOTA)) | ||
| 352 | |||
| 350 | int register_quota_format(struct quota_format_type *fmt); | 353 | int register_quota_format(struct quota_format_type *fmt); |
| 351 | void unregister_quota_format(struct quota_format_type *fmt); | 354 | void unregister_quota_format(struct quota_format_type *fmt); |
| 352 | 355 | ||
diff --git a/include/linux/rio.h b/include/linux/rio.h index c1c99c9643d3..dc0c75556c63 100644 --- a/include/linux/rio.h +++ b/include/linux/rio.h | |||
| @@ -161,6 +161,8 @@ enum rio_phy_type { | |||
| 161 | * @ops: configuration space functions | 161 | * @ops: configuration space functions |
| 162 | * @id: Port ID, unique among all ports | 162 | * @id: Port ID, unique among all ports |
| 163 | * @index: Port index, unique among all port interfaces of the same type | 163 | * @index: Port index, unique among all port interfaces of the same type |
| 164 | * @sys_size: RapidIO common transport system size | ||
| 165 | * @phy_type: RapidIO phy type | ||
| 164 | * @name: Port name string | 166 | * @name: Port name string |
| 165 | * @priv: Master port private data | 167 | * @priv: Master port private data |
| 166 | */ | 168 | */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 03c238088aee..0c35b0343a76 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -158,6 +158,8 @@ print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) | |||
| 158 | } | 158 | } |
| 159 | #endif | 159 | #endif |
| 160 | 160 | ||
| 161 | extern unsigned long long time_sync_thresh; | ||
| 162 | |||
| 161 | /* | 163 | /* |
| 162 | * Task state bitmask. NOTE! These bits are also | 164 | * Task state bitmask. NOTE! These bits are also |
| 163 | * encoded in fs/proc/array.c: get_task_state(). | 165 | * encoded in fs/proc/array.c: get_task_state(). |
| @@ -1551,6 +1553,35 @@ static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) | |||
| 1551 | 1553 | ||
| 1552 | extern unsigned long long sched_clock(void); | 1554 | extern unsigned long long sched_clock(void); |
| 1553 | 1555 | ||
| 1556 | #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK | ||
| 1557 | static inline void sched_clock_init(void) | ||
| 1558 | { | ||
| 1559 | } | ||
| 1560 | |||
| 1561 | static inline u64 sched_clock_cpu(int cpu) | ||
| 1562 | { | ||
| 1563 | return sched_clock(); | ||
| 1564 | } | ||
| 1565 | |||
| 1566 | static inline void sched_clock_tick(void) | ||
| 1567 | { | ||
| 1568 | } | ||
| 1569 | |||
| 1570 | static inline void sched_clock_idle_sleep_event(void) | ||
| 1571 | { | ||
| 1572 | } | ||
| 1573 | |||
| 1574 | static inline void sched_clock_idle_wakeup_event(u64 delta_ns) | ||
| 1575 | { | ||
| 1576 | } | ||
| 1577 | #else | ||
| 1578 | extern void sched_clock_init(void); | ||
| 1579 | extern u64 sched_clock_cpu(int cpu); | ||
| 1580 | extern void sched_clock_tick(void); | ||
| 1581 | extern void sched_clock_idle_sleep_event(void); | ||
| 1582 | extern void sched_clock_idle_wakeup_event(u64 delta_ns); | ||
| 1583 | #endif | ||
| 1584 | |||
| 1554 | /* | 1585 | /* |
| 1555 | * For kernel-internal use: high-speed (but slightly incorrect) per-cpu | 1586 | * For kernel-internal use: high-speed (but slightly incorrect) per-cpu |
| 1556 | * clock constructed from sched_clock(): | 1587 | * clock constructed from sched_clock(): |
| @@ -1977,6 +2008,11 @@ static inline void clear_tsk_need_resched(struct task_struct *tsk) | |||
| 1977 | clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED); | 2008 | clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED); |
| 1978 | } | 2009 | } |
| 1979 | 2010 | ||
| 2011 | static inline int test_tsk_need_resched(struct task_struct *tsk) | ||
| 2012 | { | ||
| 2013 | return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED)); | ||
| 2014 | } | ||
| 2015 | |||
| 1980 | static inline int signal_pending(struct task_struct *p) | 2016 | static inline int signal_pending(struct task_struct *p) |
| 1981 | { | 2017 | { |
| 1982 | return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING)); | 2018 | return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING)); |
| @@ -1991,7 +2027,7 @@ static inline int fatal_signal_pending(struct task_struct *p) | |||
| 1991 | 2027 | ||
| 1992 | static inline int need_resched(void) | 2028 | static inline int need_resched(void) |
| 1993 | { | 2029 | { |
| 1994 | return unlikely(test_thread_flag(TIF_NEED_RESCHED)); | 2030 | return unlikely(test_tsk_need_resched(current)); |
| 1995 | } | 2031 | } |
| 1996 | 2032 | ||
| 1997 | /* | 2033 | /* |
diff --git a/include/linux/string.h b/include/linux/string.h index c5d3fcad7b57..efdc44593b52 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
| @@ -109,5 +109,7 @@ extern void *kmemdup(const void *src, size_t len, gfp_t gfp); | |||
| 109 | extern char **argv_split(gfp_t gfp, const char *str, int *argcp); | 109 | extern char **argv_split(gfp_t gfp, const char *str, int *argcp); |
| 110 | extern void argv_free(char **argv); | 110 | extern void argv_free(char **argv); |
| 111 | 111 | ||
| 112 | extern bool sysfs_streq(const char *s1, const char *s2); | ||
| 113 | |||
| 112 | #endif | 114 | #endif |
| 113 | #endif /* _LINUX_STRING_H_ */ | 115 | #endif /* _LINUX_STRING_H_ */ |
diff --git a/include/linux/timex.h b/include/linux/timex.h index 8ea3e71ba7fa..fc6035d29d56 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
| @@ -58,6 +58,8 @@ | |||
| 58 | 58 | ||
| 59 | #include <asm/param.h> | 59 | #include <asm/param.h> |
| 60 | 60 | ||
| 61 | #define NTP_API 4 /* NTP API version */ | ||
| 62 | |||
| 61 | /* | 63 | /* |
| 62 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen | 64 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen |
| 63 | * for a slightly underdamped convergence characteristic. SHIFT_KH | 65 | * for a slightly underdamped convergence characteristic. SHIFT_KH |
| @@ -74,24 +76,22 @@ | |||
| 74 | #define MAXTC 10 /* maximum time constant (shift) */ | 76 | #define MAXTC 10 /* maximum time constant (shift) */ |
| 75 | 77 | ||
| 76 | /* | 78 | /* |
| 77 | * The SHIFT_UPDATE define establishes the decimal point of the | ||
| 78 | * time_offset variable which represents the current offset with | ||
| 79 | * respect to standard time. | ||
| 80 | * | ||
| 81 | * SHIFT_USEC defines the scaling (shift) of the time_freq and | 79 | * SHIFT_USEC defines the scaling (shift) of the time_freq and |
| 82 | * time_tolerance variables, which represent the current frequency | 80 | * time_tolerance variables, which represent the current frequency |
| 83 | * offset and maximum frequency tolerance. | 81 | * offset and maximum frequency tolerance. |
| 84 | */ | 82 | */ |
| 85 | #define SHIFT_UPDATE (SHIFT_HZ + 1) /* time offset scale (shift) */ | ||
| 86 | #define SHIFT_USEC 16 /* frequency offset scale (shift) */ | 83 | #define SHIFT_USEC 16 /* frequency offset scale (shift) */ |
| 87 | #define SHIFT_NSEC 12 /* kernel frequency offset scale */ | 84 | #define PPM_SCALE (NSEC_PER_USEC << (NTP_SCALE_SHIFT - SHIFT_USEC)) |
| 88 | 85 | #define PPM_SCALE_INV_SHIFT 20 | |
| 89 | #define MAXPHASE 512000L /* max phase error (us) */ | 86 | #define PPM_SCALE_INV ((1ll << (PPM_SCALE_INV_SHIFT + NTP_SCALE_SHIFT)) / \ |
| 90 | #define MAXFREQ (512L << SHIFT_USEC) /* max frequency error (ppm) */ | 87 | PPM_SCALE + 1) |
| 91 | #define MAXFREQ_NSEC (512000L << SHIFT_NSEC) /* max frequency error (ppb) */ | 88 | |
| 89 | #define MAXPHASE 500000000l /* max phase error (ns) */ | ||
| 90 | #define MAXFREQ 500000 /* max frequency error (ns/s) */ | ||
| 91 | #define MAXFREQ_SCALED ((s64)MAXFREQ << NTP_SCALE_SHIFT) | ||
| 92 | #define MINSEC 256 /* min interval between updates (s) */ | 92 | #define MINSEC 256 /* min interval between updates (s) */ |
| 93 | #define MAXSEC 2048 /* max interval between updates (s) */ | 93 | #define MAXSEC 2048 /* max interval between updates (s) */ |
| 94 | #define NTP_PHASE_LIMIT (MAXPHASE << 5) /* beyond max. dispersion */ | 94 | #define NTP_PHASE_LIMIT ((MAXPHASE / NSEC_PER_USEC) << 5) /* beyond max. dispersion */ |
| 95 | 95 | ||
| 96 | /* | 96 | /* |
| 97 | * syscall interface - used (mainly by NTP daemon) | 97 | * syscall interface - used (mainly by NTP daemon) |
| @@ -121,9 +121,11 @@ struct timex { | |||
| 121 | long errcnt; /* calibration errors (ro) */ | 121 | long errcnt; /* calibration errors (ro) */ |
| 122 | long stbcnt; /* stability limit exceeded (ro) */ | 122 | long stbcnt; /* stability limit exceeded (ro) */ |
| 123 | 123 | ||
| 124 | int tai; /* TAI offset (ro) */ | ||
| 125 | |||
| 124 | int :32; int :32; int :32; int :32; | 126 | int :32; int :32; int :32; int :32; |
| 125 | int :32; int :32; int :32; int :32; | 127 | int :32; int :32; int :32; int :32; |
| 126 | int :32; int :32; int :32; int :32; | 128 | int :32; int :32; int :32; |
| 127 | }; | 129 | }; |
| 128 | 130 | ||
| 129 | /* | 131 | /* |
| @@ -135,6 +137,9 @@ struct timex { | |||
| 135 | #define ADJ_ESTERROR 0x0008 /* estimated time error */ | 137 | #define ADJ_ESTERROR 0x0008 /* estimated time error */ |
| 136 | #define ADJ_STATUS 0x0010 /* clock status */ | 138 | #define ADJ_STATUS 0x0010 /* clock status */ |
| 137 | #define ADJ_TIMECONST 0x0020 /* pll time constant */ | 139 | #define ADJ_TIMECONST 0x0020 /* pll time constant */ |
| 140 | #define ADJ_TAI 0x0080 /* set TAI offset */ | ||
| 141 | #define ADJ_MICRO 0x1000 /* select microsecond resolution */ | ||
| 142 | #define ADJ_NANO 0x2000 /* select nanosecond resolution */ | ||
| 138 | #define ADJ_TICK 0x4000 /* tick value */ | 143 | #define ADJ_TICK 0x4000 /* tick value */ |
| 139 | #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ | 144 | #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ |
| 140 | #define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ | 145 | #define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ |
| @@ -146,8 +151,6 @@ struct timex { | |||
| 146 | #define MOD_ESTERROR ADJ_ESTERROR | 151 | #define MOD_ESTERROR ADJ_ESTERROR |
| 147 | #define MOD_STATUS ADJ_STATUS | 152 | #define MOD_STATUS ADJ_STATUS |
| 148 | #define MOD_TIMECONST ADJ_TIMECONST | 153 | #define MOD_TIMECONST ADJ_TIMECONST |
| 149 | #define MOD_CLKB ADJ_TICK | ||
| 150 | #define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */ | ||
| 151 | 154 | ||
| 152 | 155 | ||
| 153 | /* | 156 | /* |
| @@ -169,9 +172,13 @@ struct timex { | |||
| 169 | #define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ | 172 | #define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ |
| 170 | 173 | ||
| 171 | #define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ | 174 | #define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ |
| 175 | #define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ | ||
| 176 | #define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ | ||
| 177 | #define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ | ||
| 172 | 178 | ||
| 179 | /* read-only bits */ | ||
| 173 | #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ | 180 | #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ |
| 174 | STA_PPSERROR | STA_CLOCKERR) /* read-only bits */ | 181 | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) |
| 175 | 182 | ||
| 176 | /* | 183 | /* |
| 177 | * Clock states (time_state) | 184 | * Clock states (time_state) |
| @@ -203,10 +210,9 @@ extern int time_status; /* clock synchronization status bits */ | |||
| 203 | extern long time_maxerror; /* maximum error */ | 210 | extern long time_maxerror; /* maximum error */ |
| 204 | extern long time_esterror; /* estimated error */ | 211 | extern long time_esterror; /* estimated error */ |
| 205 | 212 | ||
| 206 | extern long time_freq; /* frequency offset (scaled ppm) */ | ||
| 207 | |||
| 208 | extern long time_adjust; /* The amount of adjtime left */ | 213 | extern long time_adjust; /* The amount of adjtime left */ |
| 209 | 214 | ||
| 215 | extern void ntp_init(void); | ||
| 210 | extern void ntp_clear(void); | 216 | extern void ntp_clear(void); |
| 211 | 217 | ||
| 212 | /** | 218 | /** |
| @@ -225,7 +231,7 @@ static inline int ntp_synced(void) | |||
| 225 | __x < 0 ? -(-__x >> __s) : __x >> __s; \ | 231 | __x < 0 ? -(-__x >> __s) : __x >> __s; \ |
| 226 | }) | 232 | }) |
| 227 | 233 | ||
| 228 | #define TICK_LENGTH_SHIFT 32 | 234 | #define NTP_SCALE_SHIFT 32 |
| 229 | 235 | ||
| 230 | #ifdef CONFIG_NO_HZ | 236 | #ifdef CONFIG_NO_HZ |
| 231 | #define NTP_INTERVAL_FREQ (2) | 237 | #define NTP_INTERVAL_FREQ (2) |
| @@ -234,8 +240,8 @@ static inline int ntp_synced(void) | |||
| 234 | #endif | 240 | #endif |
| 235 | #define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ) | 241 | #define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ) |
| 236 | 242 | ||
| 237 | /* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */ | 243 | /* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */ |
| 238 | extern u64 current_tick_length(void); | 244 | extern u64 tick_length; |
| 239 | 245 | ||
| 240 | extern void second_overflow(void); | 246 | extern void second_overflow(void); |
| 241 | extern void update_ntp_one_tick(void); | 247 | extern void update_ntp_one_tick(void); |
diff --git a/include/linux/usb/c67x00.h b/include/linux/usb/c67x00.h new file mode 100644 index 000000000000..83c6b45470ca --- /dev/null +++ b/include/linux/usb/c67x00.h | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | /* | ||
| 2 | * usb_c67x00.h: platform definitions for the Cypress C67X00 USB chip | ||
| 3 | * | ||
| 4 | * Copyright (C) 2006-2008 Barco N.V. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
| 19 | * MA 02110-1301 USA. | ||
| 20 | */ | ||
| 21 | |||
| 22 | #ifndef _LINUX_USB_C67X00_H | ||
| 23 | #define _LINUX_USB_C67X00_H | ||
| 24 | |||
| 25 | /* SIE configuration */ | ||
| 26 | #define C67X00_SIE_UNUSED 0 | ||
| 27 | #define C67X00_SIE_HOST 1 | ||
| 28 | #define C67X00_SIE_PERIPHERAL_A 2 /* peripheral on A port */ | ||
| 29 | #define C67X00_SIE_PERIPHERAL_B 3 /* peripheral on B port */ | ||
| 30 | |||
| 31 | #define c67x00_sie_config(config, n) (((config)>>(4*(n)))&0x3) | ||
| 32 | |||
| 33 | #define C67X00_SIE1_UNUSED (C67X00_SIE_UNUSED << 0) | ||
| 34 | #define C67X00_SIE1_HOST (C67X00_SIE_HOST << 0) | ||
| 35 | #define C67X00_SIE1_PERIPHERAL_A (C67X00_SIE_PERIPHERAL_A << 0) | ||
| 36 | #define C67X00_SIE1_PERIPHERAL_B (C67X00_SIE_PERIPHERAL_B << 0) | ||
| 37 | |||
| 38 | #define C67X00_SIE2_UNUSED (C67X00_SIE_UNUSED << 4) | ||
| 39 | #define C67X00_SIE2_HOST (C67X00_SIE_HOST << 4) | ||
| 40 | #define C67X00_SIE2_PERIPHERAL_A (C67X00_SIE_PERIPHERAL_A << 4) | ||
| 41 | #define C67X00_SIE2_PERIPHERAL_B (C67X00_SIE_PERIPHERAL_B << 4) | ||
| 42 | |||
| 43 | struct c67x00_platform_data { | ||
| 44 | int sie_config; /* SIEs config (C67X00_SIEx_*) */ | ||
| 45 | unsigned long hpi_regstep; /* Step between HPI registers */ | ||
| 46 | }; | ||
| 47 | |||
| 48 | #endif /* _LINUX_USB_C67X00_H */ | ||
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h index 7e0d3084f76c..73a2f4eb1f7a 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h | |||
| @@ -455,7 +455,7 @@ struct usb_encryption_descriptor { | |||
| 455 | 455 | ||
| 456 | /*-------------------------------------------------------------------------*/ | 456 | /*-------------------------------------------------------------------------*/ |
| 457 | 457 | ||
| 458 | /* USB_DT_BOS: group of wireless capabilities */ | 458 | /* USB_DT_BOS: group of device-level capabilities */ |
| 459 | struct usb_bos_descriptor { | 459 | struct usb_bos_descriptor { |
| 460 | __u8 bLength; | 460 | __u8 bLength; |
| 461 | __u8 bDescriptorType; | 461 | __u8 bDescriptorType; |
| @@ -501,6 +501,16 @@ struct usb_wireless_cap_descriptor { /* Ultra Wide Band */ | |||
| 501 | __u8 bReserved; | 501 | __u8 bReserved; |
| 502 | } __attribute__((packed)); | 502 | } __attribute__((packed)); |
| 503 | 503 | ||
| 504 | #define USB_CAP_TYPE_EXT 2 | ||
| 505 | |||
| 506 | struct usb_ext_cap_descriptor { /* Link Power Management */ | ||
| 507 | __u8 bLength; | ||
| 508 | __u8 bDescriptorType; | ||
| 509 | __u8 bDevCapabilityType; | ||
| 510 | __u8 bmAttributes; | ||
| 511 | #define USB_LPM_SUPPORT (1 << 1) /* supports LPM */ | ||
| 512 | } __attribute__((packed)); | ||
| 513 | |||
| 504 | /*-------------------------------------------------------------------------*/ | 514 | /*-------------------------------------------------------------------------*/ |
| 505 | 515 | ||
| 506 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with | 516 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with |
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index d8128f7102c9..cf468fbdbf8e 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h | |||
| @@ -114,6 +114,8 @@ struct usb_ep_ops { | |||
| 114 | int (*dequeue) (struct usb_ep *ep, struct usb_request *req); | 114 | int (*dequeue) (struct usb_ep *ep, struct usb_request *req); |
| 115 | 115 | ||
| 116 | int (*set_halt) (struct usb_ep *ep, int value); | 116 | int (*set_halt) (struct usb_ep *ep, int value); |
| 117 | int (*set_wedge) (struct usb_ep *ep); | ||
| 118 | |||
| 117 | int (*fifo_status) (struct usb_ep *ep); | 119 | int (*fifo_status) (struct usb_ep *ep); |
| 118 | void (*fifo_flush) (struct usb_ep *ep); | 120 | void (*fifo_flush) (struct usb_ep *ep); |
| 119 | }; | 121 | }; |
| @@ -349,6 +351,25 @@ static inline int usb_ep_clear_halt(struct usb_ep *ep) | |||
| 349 | } | 351 | } |
| 350 | 352 | ||
| 351 | /** | 353 | /** |
| 354 | * usb_ep_set_wedge - sets the halt feature and ignores clear requests | ||
| 355 | * @ep: the endpoint being wedged | ||
| 356 | * | ||
| 357 | * Use this to stall an endpoint and ignore CLEAR_FEATURE(HALT_ENDPOINT) | ||
| 358 | * requests. If the gadget driver clears the halt status, it will | ||
| 359 | * automatically unwedge the endpoint. | ||
| 360 | * | ||
| 361 | * Returns zero on success, else negative errno. | ||
| 362 | */ | ||
| 363 | static inline int | ||
| 364 | usb_ep_set_wedge(struct usb_ep *ep) | ||
| 365 | { | ||
| 366 | if (ep->ops->set_wedge) | ||
| 367 | return ep->ops->set_wedge(ep); | ||
| 368 | else | ||
| 369 | return ep->ops->set_halt(ep, 1); | ||
| 370 | } | ||
| 371 | |||
| 372 | /** | ||
| 352 | * usb_ep_fifo_status - returns number of bytes in fifo, or error | 373 | * usb_ep_fifo_status - returns number of bytes in fifo, or error |
| 353 | * @ep: the endpoint whose fifo status is being checked. | 374 | * @ep: the endpoint whose fifo status is being checked. |
| 354 | * | 375 | * |
diff --git a/include/linux/virtio.h b/include/linux/virtio.h index e7d10845b3c1..06005fa9e982 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h | |||
| @@ -76,6 +76,7 @@ struct virtqueue_ops { | |||
| 76 | * @dev: underlying device. | 76 | * @dev: underlying device. |
| 77 | * @id: the device type identification (used to match it with a driver). | 77 | * @id: the device type identification (used to match it with a driver). |
| 78 | * @config: the configuration ops for this device. | 78 | * @config: the configuration ops for this device. |
| 79 | * @features: the features supported by both driver and device. | ||
| 79 | * @priv: private pointer for the driver's use. | 80 | * @priv: private pointer for the driver's use. |
| 80 | */ | 81 | */ |
| 81 | struct virtio_device | 82 | struct virtio_device |
| @@ -84,6 +85,8 @@ struct virtio_device | |||
| 84 | struct device dev; | 85 | struct device dev; |
| 85 | struct virtio_device_id id; | 86 | struct virtio_device_id id; |
| 86 | struct virtio_config_ops *config; | 87 | struct virtio_config_ops *config; |
| 88 | /* Note that this is a Linux set_bit-style bitmap. */ | ||
| 89 | unsigned long features[1]; | ||
| 87 | void *priv; | 90 | void *priv; |
| 88 | }; | 91 | }; |
| 89 | 92 | ||
| @@ -94,6 +97,8 @@ void unregister_virtio_device(struct virtio_device *dev); | |||
| 94 | * virtio_driver - operations for a virtio I/O driver | 97 | * virtio_driver - operations for a virtio I/O driver |
| 95 | * @driver: underlying device driver (populate name and owner). | 98 | * @driver: underlying device driver (populate name and owner). |
| 96 | * @id_table: the ids serviced by this driver. | 99 | * @id_table: the ids serviced by this driver. |
| 100 | * @feature_table: an array of feature numbers supported by this device. | ||
| 101 | * @feature_table_size: number of entries in the feature table array. | ||
| 97 | * @probe: the function to call when a device is found. Returns a token for | 102 | * @probe: the function to call when a device is found. Returns a token for |
| 98 | * remove, or PTR_ERR(). | 103 | * remove, or PTR_ERR(). |
| 99 | * @remove: the function when a device is removed. | 104 | * @remove: the function when a device is removed. |
| @@ -103,6 +108,8 @@ void unregister_virtio_device(struct virtio_device *dev); | |||
| 103 | struct virtio_driver { | 108 | struct virtio_driver { |
| 104 | struct device_driver driver; | 109 | struct device_driver driver; |
| 105 | const struct virtio_device_id *id_table; | 110 | const struct virtio_device_id *id_table; |
| 111 | const unsigned int *feature_table; | ||
| 112 | unsigned int feature_table_size; | ||
| 106 | int (*probe)(struct virtio_device *dev); | 113 | int (*probe)(struct virtio_device *dev); |
| 107 | void (*remove)(struct virtio_device *dev); | 114 | void (*remove)(struct virtio_device *dev); |
| 108 | void (*config_changed)(struct virtio_device *dev); | 115 | void (*config_changed)(struct virtio_device *dev); |
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index bca0b10d7947..d4695a3356d0 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ | 9 | #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ |
| 10 | #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ | 10 | #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ |
| 11 | #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ | 11 | #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ |
| 12 | #define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */ | ||
| 12 | 13 | ||
| 13 | struct virtio_blk_config | 14 | struct virtio_blk_config |
| 14 | { | 15 | { |
| @@ -18,6 +19,12 @@ struct virtio_blk_config | |||
| 18 | __le32 size_max; | 19 | __le32 size_max; |
| 19 | /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ | 20 | /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ |
| 20 | __le32 seg_max; | 21 | __le32 seg_max; |
| 22 | /* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */ | ||
| 23 | struct virtio_blk_geometry { | ||
| 24 | __le16 cylinders; | ||
| 25 | __u8 heads; | ||
| 26 | __u8 sectors; | ||
| 27 | } geometry; | ||
| 21 | } __attribute__((packed)); | 28 | } __attribute__((packed)); |
| 22 | 29 | ||
| 23 | /* These two define direction. */ | 30 | /* These two define direction. */ |
| @@ -41,13 +48,8 @@ struct virtio_blk_outhdr | |||
| 41 | __u64 sector; | 48 | __u64 sector; |
| 42 | }; | 49 | }; |
| 43 | 50 | ||
| 51 | /* And this is the final byte of the write scatter-gather list. */ | ||
| 44 | #define VIRTIO_BLK_S_OK 0 | 52 | #define VIRTIO_BLK_S_OK 0 |
| 45 | #define VIRTIO_BLK_S_IOERR 1 | 53 | #define VIRTIO_BLK_S_IOERR 1 |
| 46 | #define VIRTIO_BLK_S_UNSUPP 2 | 54 | #define VIRTIO_BLK_S_UNSUPP 2 |
| 47 | |||
| 48 | /* This is the first element of the write scatter-gather list */ | ||
| 49 | struct virtio_blk_inhdr | ||
| 50 | { | ||
| 51 | unsigned char status; | ||
| 52 | }; | ||
| 53 | #endif /* _LINUX_VIRTIO_BLK_H */ | 55 | #endif /* _LINUX_VIRTIO_BLK_H */ |
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index d581b2914b34..50db245c81ad 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h | |||
| @@ -16,27 +16,20 @@ | |||
| 16 | #define VIRTIO_CONFIG_S_FAILED 0x80 | 16 | #define VIRTIO_CONFIG_S_FAILED 0x80 |
| 17 | 17 | ||
| 18 | #ifdef __KERNEL__ | 18 | #ifdef __KERNEL__ |
| 19 | struct virtio_device; | 19 | #include <linux/virtio.h> |
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | * virtio_config_ops - operations for configuring a virtio device | 22 | * virtio_config_ops - operations for configuring a virtio device |
| 23 | * @feature: search for a feature in this config | ||
| 24 | * vdev: the virtio_device | ||
| 25 | * bit: the feature bit | ||
| 26 | * Returns true if the feature is supported. Acknowledges the feature | ||
| 27 | * so the host can see it. | ||
| 28 | * @get: read the value of a configuration field | 23 | * @get: read the value of a configuration field |
| 29 | * vdev: the virtio_device | 24 | * vdev: the virtio_device |
| 30 | * offset: the offset of the configuration field | 25 | * offset: the offset of the configuration field |
| 31 | * buf: the buffer to write the field value into. | 26 | * buf: the buffer to write the field value into. |
| 32 | * len: the length of the buffer | 27 | * len: the length of the buffer |
| 33 | * Note that contents are conventionally little-endian. | ||
| 34 | * @set: write the value of a configuration field | 28 | * @set: write the value of a configuration field |
| 35 | * vdev: the virtio_device | 29 | * vdev: the virtio_device |
| 36 | * offset: the offset of the configuration field | 30 | * offset: the offset of the configuration field |
| 37 | * buf: the buffer to read the field value from. | 31 | * buf: the buffer to read the field value from. |
| 38 | * len: the length of the buffer | 32 | * len: the length of the buffer |
| 39 | * Note that contents are conventionally little-endian. | ||
| 40 | * @get_status: read the status byte | 33 | * @get_status: read the status byte |
| 41 | * vdev: the virtio_device | 34 | * vdev: the virtio_device |
| 42 | * Returns the status byte | 35 | * Returns the status byte |
| @@ -52,10 +45,15 @@ struct virtio_device; | |||
| 52 | * callback: the virqtueue callback | 45 | * callback: the virqtueue callback |
| 53 | * Returns the new virtqueue or ERR_PTR() (eg. -ENOENT). | 46 | * Returns the new virtqueue or ERR_PTR() (eg. -ENOENT). |
| 54 | * @del_vq: free a virtqueue found by find_vq(). | 47 | * @del_vq: free a virtqueue found by find_vq(). |
| 48 | * @get_features: get the array of feature bits for this device. | ||
| 49 | * vdev: the virtio_device | ||
| 50 | * Returns the first 32 feature bits (all we currently need). | ||
| 51 | * @set_features: confirm what device features we'll be using. | ||
| 52 | * vdev: the virtio_device | ||
| 53 | * feature: the first 32 feature bits | ||
| 55 | */ | 54 | */ |
| 56 | struct virtio_config_ops | 55 | struct virtio_config_ops |
| 57 | { | 56 | { |
| 58 | bool (*feature)(struct virtio_device *vdev, unsigned bit); | ||
| 59 | void (*get)(struct virtio_device *vdev, unsigned offset, | 57 | void (*get)(struct virtio_device *vdev, unsigned offset, |
| 60 | void *buf, unsigned len); | 58 | void *buf, unsigned len); |
| 61 | void (*set)(struct virtio_device *vdev, unsigned offset, | 59 | void (*set)(struct virtio_device *vdev, unsigned offset, |
| @@ -67,43 +65,52 @@ struct virtio_config_ops | |||
| 67 | unsigned index, | 65 | unsigned index, |
| 68 | void (*callback)(struct virtqueue *)); | 66 | void (*callback)(struct virtqueue *)); |
| 69 | void (*del_vq)(struct virtqueue *vq); | 67 | void (*del_vq)(struct virtqueue *vq); |
| 68 | u32 (*get_features)(struct virtio_device *vdev); | ||
| 69 | void (*set_features)(struct virtio_device *vdev, u32 features); | ||
| 70 | }; | 70 | }; |
| 71 | 71 | ||
| 72 | /* If driver didn't advertise the feature, it will never appear. */ | ||
| 73 | void virtio_check_driver_offered_feature(const struct virtio_device *vdev, | ||
| 74 | unsigned int fbit); | ||
| 75 | |||
| 72 | /** | 76 | /** |
| 73 | * virtio_config_val - look for a feature and get a single virtio config. | 77 | * virtio_has_feature - helper to determine if this device has this feature. |
| 74 | * @vdev: the virtio device | 78 | * @vdev: the device |
| 75 | * @fbit: the feature bit | 79 | * @fbit: the feature bit |
| 76 | * @offset: the type to search for. | 80 | */ |
| 77 | * @val: a pointer to the value to fill in. | 81 | static inline bool virtio_has_feature(const struct virtio_device *vdev, |
| 78 | * | 82 | unsigned int fbit) |
| 79 | * The return value is -ENOENT if the feature doesn't exist. Otherwise | 83 | { |
| 80 | * the value is endian-corrected and returned in v. */ | 84 | /* Did you forget to fix assumptions on max features? */ |
| 81 | #define virtio_config_val(vdev, fbit, offset, v) ({ \ | 85 | if (__builtin_constant_p(fbit)) |
| 82 | int _err; \ | 86 | BUILD_BUG_ON(fbit >= 32); |
| 83 | if ((vdev)->config->feature((vdev), (fbit))) { \ | 87 | |
| 84 | __virtio_config_val((vdev), (offset), (v)); \ | 88 | virtio_check_driver_offered_feature(vdev, fbit); |
| 85 | _err = 0; \ | 89 | return test_bit(fbit, vdev->features); |
| 86 | } else \ | 90 | } |
| 87 | _err = -ENOENT; \ | ||
| 88 | _err; \ | ||
| 89 | }) | ||
| 90 | 91 | ||
| 91 | /** | 92 | /** |
| 92 | * __virtio_config_val - get a single virtio config without feature check. | 93 | * virtio_config_val - look for a feature and get a virtio config entry. |
| 93 | * @vdev: the virtio device | 94 | * @vdev: the virtio device |
| 95 | * @fbit: the feature bit | ||
| 94 | * @offset: the type to search for. | 96 | * @offset: the type to search for. |
| 95 | * @val: a pointer to the value to fill in. | 97 | * @val: a pointer to the value to fill in. |
| 96 | * | 98 | * |
| 97 | * The value is endian-corrected and returned in v. */ | 99 | * The return value is -ENOENT if the feature doesn't exist. Otherwise |
| 98 | #define __virtio_config_val(vdev, offset, v) do { \ | 100 | * the config value is copied into whatever is pointed to by v. */ |
| 99 | BUILD_BUG_ON(sizeof(*(v)) != 1 && sizeof(*(v)) != 2 \ | 101 | #define virtio_config_val(vdev, fbit, offset, v) \ |
| 100 | && sizeof(*(v)) != 4 && sizeof(*(v)) != 8); \ | 102 | virtio_config_buf((vdev), (fbit), (offset), (v), sizeof(v)) |
| 101 | (vdev)->config->get((vdev), (offset), (v), sizeof(*(v))); \ | 103 | |
| 102 | switch (sizeof(*(v))) { \ | 104 | static inline int virtio_config_buf(struct virtio_device *vdev, |
| 103 | case 2: le16_to_cpus((__u16 *) v); break; \ | 105 | unsigned int fbit, |
| 104 | case 4: le32_to_cpus((__u32 *) v); break; \ | 106 | unsigned int offset, |
| 105 | case 8: le64_to_cpus((__u64 *) v); break; \ | 107 | void *buf, unsigned len) |
| 106 | } \ | 108 | { |
| 107 | } while(0) | 109 | if (!virtio_has_feature(vdev, fbit)) |
| 110 | return -ENOENT; | ||
| 111 | |||
| 112 | vdev->config->get(vdev, offset, buf, len); | ||
| 113 | return 0; | ||
| 114 | } | ||
| 108 | #endif /* __KERNEL__ */ | 115 | #endif /* __KERNEL__ */ |
| 109 | #endif /* _LINUX_VIRTIO_CONFIG_H */ | 116 | #endif /* _LINUX_VIRTIO_CONFIG_H */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 1ea3351df609..9405aa6cdf26 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -6,9 +6,18 @@ | |||
| 6 | #define VIRTIO_ID_NET 1 | 6 | #define VIRTIO_ID_NET 1 |
| 7 | 7 | ||
| 8 | /* The feature bitmap for virtio net */ | 8 | /* The feature bitmap for virtio net */ |
| 9 | #define VIRTIO_NET_F_CSUM 0 /* Can handle pkts w/ partial csum */ | 9 | #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ |
| 10 | #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ | ||
| 10 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ | 11 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ |
| 11 | #define VIRTIO_NET_F_GSO 6 /* Can handle pkts w/ any GSO type */ | 12 | #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ |
| 13 | #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ | ||
| 14 | #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ | ||
| 15 | #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ | ||
| 16 | #define VIRTIO_NET_F_GUEST_UFO 10 /* Guest can handle UFO in. */ | ||
| 17 | #define VIRTIO_NET_F_HOST_TSO4 11 /* Host can handle TSOv4 in. */ | ||
| 18 | #define VIRTIO_NET_F_HOST_TSO6 12 /* Host can handle TSOv6 in. */ | ||
| 19 | #define VIRTIO_NET_F_HOST_ECN 13 /* Host can handle TSO[6] w/ ECN in. */ | ||
| 20 | #define VIRTIO_NET_F_HOST_UFO 14 /* Host can handle UFO in. */ | ||
| 12 | 21 | ||
| 13 | struct virtio_net_config | 22 | struct virtio_net_config |
| 14 | { | 23 | { |
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index 1f74bcd603fe..32742c4563de 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h | |||
| @@ -30,13 +30,6 @@ | |||
| 30 | #endif | 30 | #endif |
| 31 | 31 | ||
| 32 | /* | 32 | /* |
| 33 | * SCSI command lengths | ||
| 34 | */ | ||
| 35 | |||
| 36 | extern const unsigned char scsi_command_size[8]; | ||
| 37 | #define COMMAND_SIZE(opcode) scsi_command_size[((opcode) >> 5) & 7] | ||
| 38 | |||
| 39 | /* | ||
| 40 | * Special value for scanning to specify scanning or rescanning of all | 33 | * Special value for scanning to specify scanning or rescanning of all |
| 41 | * possible channels, (target) ids, or luns on a given shost. | 34 | * possible channels, (target) ids, or luns on a given shost. |
| 42 | */ | 35 | */ |
| @@ -109,6 +102,7 @@ extern const unsigned char scsi_command_size[8]; | |||
| 109 | #define MODE_SENSE_10 0x5a | 102 | #define MODE_SENSE_10 0x5a |
| 110 | #define PERSISTENT_RESERVE_IN 0x5e | 103 | #define PERSISTENT_RESERVE_IN 0x5e |
| 111 | #define PERSISTENT_RESERVE_OUT 0x5f | 104 | #define PERSISTENT_RESERVE_OUT 0x5f |
| 105 | #define VARIABLE_LENGTH_CMD 0x7f | ||
| 112 | #define REPORT_LUNS 0xa0 | 106 | #define REPORT_LUNS 0xa0 |
| 113 | #define MAINTENANCE_IN 0xa3 | 107 | #define MAINTENANCE_IN 0xa3 |
| 114 | #define MOVE_MEDIUM 0xa5 | 108 | #define MOVE_MEDIUM 0xa5 |
| @@ -136,6 +130,38 @@ extern const unsigned char scsi_command_size[8]; | |||
| 136 | #define ATA_12 0xa1 /* 12-byte pass-thru */ | 130 | #define ATA_12 0xa1 /* 12-byte pass-thru */ |
| 137 | 131 | ||
| 138 | /* | 132 | /* |
| 133 | * SCSI command lengths | ||
| 134 | */ | ||
| 135 | |||
| 136 | #define SCSI_MAX_VARLEN_CDB_SIZE 260 | ||
| 137 | |||
| 138 | /* defined in T10 SCSI Primary Commands-2 (SPC2) */ | ||
| 139 | struct scsi_varlen_cdb_hdr { | ||
| 140 | u8 opcode; /* opcode always == VARIABLE_LENGTH_CMD */ | ||
| 141 | u8 control; | ||
| 142 | u8 misc[5]; | ||
| 143 | u8 additional_cdb_length; /* total cdb length - 8 */ | ||
| 144 | __be16 service_action; | ||
| 145 | /* service specific data follows */ | ||
| 146 | }; | ||
| 147 | |||
| 148 | static inline unsigned | ||
| 149 | scsi_varlen_cdb_length(const void *hdr) | ||
| 150 | { | ||
| 151 | return ((struct scsi_varlen_cdb_hdr *)hdr)->additional_cdb_length + 8; | ||
| 152 | } | ||
| 153 | |||
| 154 | extern const unsigned char scsi_command_size_tbl[8]; | ||
| 155 | #define COMMAND_SIZE(opcode) scsi_command_size_tbl[((opcode) >> 5) & 7] | ||
| 156 | |||
| 157 | static inline unsigned | ||
| 158 | scsi_command_size(const unsigned char *cmnd) | ||
| 159 | { | ||
| 160 | return (cmnd[0] == VARIABLE_LENGTH_CMD) ? | ||
| 161 | scsi_varlen_cdb_length(cmnd) : COMMAND_SIZE(cmnd[0]); | ||
| 162 | } | ||
| 163 | |||
| 164 | /* | ||
| 139 | * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft | 165 | * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft |
| 140 | * T10/1561-D Revision 4 Draft dated 7th November 2002. | 166 | * T10/1561-D Revision 4 Draft dated 7th November 2002. |
| 141 | */ | 167 | */ |
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 8d20e60a94b7..3e46dfae8194 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h | |||
| @@ -7,10 +7,28 @@ | |||
| 7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
| 8 | #include <linux/timer.h> | 8 | #include <linux/timer.h> |
| 9 | #include <linux/scatterlist.h> | 9 | #include <linux/scatterlist.h> |
| 10 | #include <linux/blkdev.h> | ||
| 10 | 11 | ||
| 11 | struct Scsi_Host; | 12 | struct Scsi_Host; |
| 12 | struct scsi_device; | 13 | struct scsi_device; |
| 13 | 14 | ||
| 15 | /* | ||
| 16 | * MAX_COMMAND_SIZE is: | ||
| 17 | * The longest fixed-length SCSI CDB as per the SCSI standard. | ||
| 18 | * fixed-length means: commands that their size can be determined | ||
| 19 | * by their opcode and the CDB does not carry a length specifier, (unlike | ||
| 20 | * the VARIABLE_LENGTH_CMD(0x7f) command). This is actually not exactly | ||
| 21 | * true and the SCSI standard also defines extended commands and | ||
| 22 | * vendor specific commands that can be bigger than 16 bytes. The kernel | ||
| 23 | * will support these using the same infrastructure used for VARLEN CDB's. | ||
| 24 | * So in effect MAX_COMMAND_SIZE means the maximum size command scsi-ml | ||
| 25 | * supports without specifying a cmd_len by ULD's | ||
| 26 | */ | ||
| 27 | #define MAX_COMMAND_SIZE 16 | ||
| 28 | #if (MAX_COMMAND_SIZE > BLK_MAX_CDB) | ||
| 29 | # error MAX_COMMAND_SIZE can not be bigger than BLK_MAX_CDB | ||
| 30 | #endif | ||
| 31 | |||
| 14 | struct scsi_data_buffer { | 32 | struct scsi_data_buffer { |
| 15 | struct sg_table table; | 33 | struct sg_table table; |
| 16 | unsigned length; | 34 | unsigned length; |
| @@ -60,12 +78,11 @@ struct scsi_cmnd { | |||
| 60 | int allowed; | 78 | int allowed; |
| 61 | int timeout_per_command; | 79 | int timeout_per_command; |
| 62 | 80 | ||
| 63 | unsigned char cmd_len; | 81 | unsigned short cmd_len; |
| 64 | enum dma_data_direction sc_data_direction; | 82 | enum dma_data_direction sc_data_direction; |
| 65 | 83 | ||
| 66 | /* These elements define the operation we are about to perform */ | 84 | /* These elements define the operation we are about to perform */ |
| 67 | #define MAX_COMMAND_SIZE 16 | 85 | unsigned char *cmnd; |
| 68 | unsigned char cmnd[MAX_COMMAND_SIZE]; | ||
| 69 | 86 | ||
| 70 | struct timer_list eh_timeout; /* Used to time out the command. */ | 87 | struct timer_list eh_timeout; /* Used to time out the command. */ |
| 71 | 88 | ||
diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h index d3a133b4a072..2a9add21267d 100644 --- a/include/scsi/scsi_eh.h +++ b/include/scsi/scsi_eh.h | |||
| @@ -75,11 +75,11 @@ struct scsi_eh_save { | |||
| 75 | int result; | 75 | int result; |
| 76 | enum dma_data_direction data_direction; | 76 | enum dma_data_direction data_direction; |
| 77 | unsigned char cmd_len; | 77 | unsigned char cmd_len; |
| 78 | unsigned char cmnd[MAX_COMMAND_SIZE]; | 78 | unsigned char *cmnd; |
| 79 | struct scsi_data_buffer sdb; | 79 | struct scsi_data_buffer sdb; |
| 80 | struct request *next_rq; | 80 | struct request *next_rq; |
| 81 | |||
| 82 | /* new command support */ | 81 | /* new command support */ |
| 82 | unsigned char eh_cmnd[BLK_MAX_CDB]; | ||
| 83 | struct scatterlist sense_sgl; | 83 | struct scatterlist sense_sgl; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index d967d6dc7a28..1834fdfe82a7 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
| @@ -573,13 +573,11 @@ struct Scsi_Host { | |||
| 573 | /* | 573 | /* |
| 574 | * The maximum length of SCSI commands that this host can accept. | 574 | * The maximum length of SCSI commands that this host can accept. |
| 575 | * Probably 12 for most host adapters, but could be 16 for others. | 575 | * Probably 12 for most host adapters, but could be 16 for others. |
| 576 | * or 260 if the driver supports variable length cdbs. | ||
| 576 | * For drivers that don't set this field, a value of 12 is | 577 | * For drivers that don't set this field, a value of 12 is |
| 577 | * assumed. I am leaving this as a number rather than a bit | 578 | * assumed. |
| 578 | * because you never know what subsequent SCSI standards might do | ||
| 579 | * (i.e. could there be a 20 byte or a 24-byte command a few years | ||
| 580 | * down the road?). | ||
| 581 | */ | 579 | */ |
| 582 | unsigned char max_cmd_len; | 580 | unsigned short max_cmd_len; |
| 583 | 581 | ||
| 584 | int this_id; | 582 | int this_id; |
| 585 | int can_queue; | 583 | int can_queue; |
