diff options
Diffstat (limited to 'include')
28 files changed, 171 insertions, 50 deletions
diff --git a/include/asm-avr32/byteorder.h b/include/asm-avr32/byteorder.h index 402ff4125cdc..d77b48ba7338 100644 --- a/include/asm-avr32/byteorder.h +++ b/include/asm-avr32/byteorder.h | |||
| @@ -12,8 +12,14 @@ extern unsigned long __builtin_bswap_32(unsigned long x); | |||
| 12 | extern unsigned short __builtin_bswap_16(unsigned short x); | 12 | extern unsigned short __builtin_bswap_16(unsigned short x); |
| 13 | #endif | 13 | #endif |
| 14 | 14 | ||
| 15 | /* | ||
| 16 | * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends | ||
| 17 | * the result. | ||
| 18 | */ | ||
| 19 | #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) | ||
| 15 | #define __arch__swab32(x) __builtin_bswap_32(x) | 20 | #define __arch__swab32(x) __builtin_bswap_32(x) |
| 16 | #define __arch__swab16(x) __builtin_bswap_16(x) | 21 | #define __arch__swab16(x) __builtin_bswap_16(x) |
| 22 | #endif | ||
| 17 | 23 | ||
| 18 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) | 24 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) |
| 19 | # define __BYTEORDER_HAS_U64__ | 25 | # define __BYTEORDER_HAS_U64__ |
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h index b400cea81487..2c57f4734746 100644 --- a/include/asm-frv/system.h +++ b/include/asm-frv/system.h | |||
| @@ -234,7 +234,7 @@ extern void free_initmem(void); | |||
| 234 | break; \ | 234 | break; \ |
| 235 | \ | 235 | \ |
| 236 | default: \ | 236 | default: \ |
| 237 | __xg_orig = 0; \ | 237 | __xg_orig = (__typeof__(__xg_orig))0; \ |
| 238 | asm volatile("break"); \ | 238 | asm volatile("break"); \ |
| 239 | break; \ | 239 | break; \ |
| 240 | } \ | 240 | } \ |
| @@ -259,7 +259,7 @@ extern uint32_t __cmpxchg_32(uint32_t *v, uint32_t test, uint32_t new); | |||
| 259 | (__force uint32_t)__xg_test, \ | 259 | (__force uint32_t)__xg_test, \ |
| 260 | (__force uint32_t)__xg_new); break; \ | 260 | (__force uint32_t)__xg_new); break; \ |
| 261 | default: \ | 261 | default: \ |
| 262 | __xg_orig = 0; \ | 262 | __xg_orig = (__typeof__(__xg_orig))0; \ |
| 263 | asm volatile("break"); \ | 263 | asm volatile("break"); \ |
| 264 | break; \ | 264 | break; \ |
| 265 | } \ | 265 | } \ |
diff --git a/include/asm-mips/mach-au1x00/au1000.h b/include/asm-mips/mach-au1x00/au1000.h index cb18af989645..5bb57bf2b9d7 100644 --- a/include/asm-mips/mach-au1x00/au1000.h +++ b/include/asm-mips/mach-au1x00/au1000.h | |||
| @@ -1786,6 +1786,7 @@ struct cpu_spec { | |||
| 1786 | char *cpu_name; | 1786 | char *cpu_name; |
| 1787 | unsigned char cpu_od; /* Set Config[OD] */ | 1787 | unsigned char cpu_od; /* Set Config[OD] */ |
| 1788 | unsigned char cpu_bclk; /* Enable BCLK switching */ | 1788 | unsigned char cpu_bclk; /* Enable BCLK switching */ |
| 1789 | unsigned char cpu_pll_wo; /* sys_cpupll reg. write-only */ | ||
| 1789 | }; | 1790 | }; |
| 1790 | 1791 | ||
| 1791 | extern struct cpu_spec cpu_specs[]; | 1792 | extern struct cpu_spec cpu_specs[]; |
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h index 542421460a12..532975ecfe10 100644 --- a/include/asm-sparc64/cpudata.h +++ b/include/asm-sparc64/cpudata.h | |||
| @@ -86,6 +86,8 @@ extern struct trap_per_cpu trap_block[NR_CPUS]; | |||
| 86 | extern void init_cur_cpu_trap(struct thread_info *); | 86 | extern void init_cur_cpu_trap(struct thread_info *); |
| 87 | extern void setup_tba(void); | 87 | extern void setup_tba(void); |
| 88 | extern int ncpus_probed; | 88 | extern int ncpus_probed; |
| 89 | extern void __init cpu_probe(void); | ||
| 90 | extern const struct seq_operations cpuinfo_op; | ||
| 89 | 91 | ||
| 90 | extern unsigned long real_hard_smp_processor_id(void); | 92 | extern unsigned long real_hard_smp_processor_id(void); |
| 91 | 93 | ||
diff --git a/include/asm-sparc64/dcu.h b/include/asm-sparc64/dcu.h index ecbed2ae548f..0f704e106a1b 100644 --- a/include/asm-sparc64/dcu.h +++ b/include/asm-sparc64/dcu.h | |||
| @@ -1,26 +1,27 @@ | |||
| 1 | /* $Id: dcu.h,v 1.2 2001/03/01 23:23:33 davem Exp $ */ | ||
| 2 | #ifndef _SPARC64_DCU_H | 1 | #ifndef _SPARC64_DCU_H |
| 3 | #define _SPARC64_DCU_H | 2 | #define _SPARC64_DCU_H |
| 4 | 3 | ||
| 4 | #include <linux/const.h> | ||
| 5 | |||
| 5 | /* UltraSparc-III Data Cache Unit Control Register */ | 6 | /* UltraSparc-III Data Cache Unit Control Register */ |
| 6 | #define DCU_CP 0x0002000000000000 /* Physical Cache Enable w/o mmu*/ | 7 | #define DCU_CP _AC(0x0002000000000000,UL) /* Phys Cache Enable w/o mmu */ |
| 7 | #define DCU_CV 0x0001000000000000 /* Virtual Cache Enable w/o mmu */ | 8 | #define DCU_CV _AC(0x0001000000000000,UL) /* Virt Cache Enable w/o mmu */ |
| 8 | #define DCU_ME 0x0000800000000000 /* NC-store Merging Enable */ | 9 | #define DCU_ME _AC(0x0000800000000000,UL) /* NC-store Merging Enable */ |
| 9 | #define DCU_RE 0x0000400000000000 /* RAW bypass Enable */ | 10 | #define DCU_RE _AC(0x0000400000000000,UL) /* RAW bypass Enable */ |
| 10 | #define DCU_PE 0x0000200000000000 /* PCache Enable */ | 11 | #define DCU_PE _AC(0x0000200000000000,UL) /* PCache Enable */ |
| 11 | #define DCU_HPE 0x0000100000000000 /* HW prefetch Enable */ | 12 | #define DCU_HPE _AC(0x0000100000000000,UL) /* HW prefetch Enable */ |
| 12 | #define DCU_SPE 0x0000080000000000 /* SW prefetch Enable */ | 13 | #define DCU_SPE _AC(0x0000080000000000,UL) /* SW prefetch Enable */ |
| 13 | #define DCU_SL 0x0000040000000000 /* Secondary load steering Enab */ | 14 | #define DCU_SL _AC(0x0000040000000000,UL) /* Secondary ld-steering Enab*/ |
| 14 | #define DCU_WE 0x0000020000000000 /* WCache enable */ | 15 | #define DCU_WE _AC(0x0000020000000000,UL) /* WCache enable */ |
| 15 | #define DCU_PM 0x000001fe00000000 /* PA Watchpoint Byte Mask */ | 16 | #define DCU_PM _AC(0x000001fe00000000,UL) /* PA Watchpoint Byte Mask */ |
| 16 | #define DCU_VM 0x00000001fe000000 /* VA Watchpoint Byte Mask */ | 17 | #define DCU_VM _AC(0x00000001fe000000,UL) /* VA Watchpoint Byte Mask */ |
| 17 | #define DCU_PR 0x0000000001000000 /* PA Watchpoint Read Enable */ | 18 | #define DCU_PR _AC(0x0000000001000000,UL) /* PA Watchpoint Read Enable */ |
| 18 | #define DCU_PW 0x0000000000800000 /* PA Watchpoint Write Enable */ | 19 | #define DCU_PW _AC(0x0000000000800000,UL) /* PA Watchpoint Write Enable*/ |
| 19 | #define DCU_VR 0x0000000000400000 /* VA Watchpoint Read Enable */ | 20 | #define DCU_VR _AC(0x0000000000400000,UL) /* VA Watchpoint Read Enable */ |
| 20 | #define DCU_VW 0x0000000000200000 /* VA Watchpoint Write Enable */ | 21 | #define DCU_VW _AC(0x0000000000200000,UL) /* VA Watchpoint Write Enable*/ |
| 21 | #define DCU_DM 0x0000000000000008 /* DMMU Enable */ | 22 | #define DCU_DM _AC(0x0000000000000008,UL) /* DMMU Enable */ |
| 22 | #define DCU_IM 0x0000000000000004 /* IMMU Enable */ | 23 | #define DCU_IM _AC(0x0000000000000004,UL) /* IMMU Enable */ |
| 23 | #define DCU_DC 0x0000000000000002 /* Data Cache Enable */ | 24 | #define DCU_DC _AC(0x0000000000000002,UL) /* Data Cache Enable */ |
| 24 | #define DCU_IC 0x0000000000000001 /* Instruction Cache Enable */ | 25 | #define DCU_IC _AC(0x0000000000000001,UL) /* Instruction Cache Enable */ |
| 25 | 26 | ||
| 26 | #endif /* _SPARC64_DCU_H */ | 27 | #endif /* _SPARC64_DCU_H */ |
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h index 30cb76b47be1..0bb9bf531745 100644 --- a/include/asm-sparc64/irq.h +++ b/include/asm-sparc64/irq.h | |||
| @@ -64,6 +64,7 @@ extern unsigned char virt_irq_alloc(unsigned int dev_handle, | |||
| 64 | extern void virt_irq_free(unsigned int virt_irq); | 64 | extern void virt_irq_free(unsigned int virt_irq); |
| 65 | #endif | 65 | #endif |
| 66 | 66 | ||
| 67 | extern void __init init_IRQ(void); | ||
| 67 | extern void fixup_irqs(void); | 68 | extern void fixup_irqs(void); |
| 68 | 69 | ||
| 69 | static inline void set_softint(unsigned long bits) | 70 | static inline void set_softint(unsigned long bits) |
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h index 3167ccff64f8..549e45266b68 100644 --- a/include/asm-sparc64/pgtable.h +++ b/include/asm-sparc64/pgtable.h | |||
| @@ -23,9 +23,9 @@ | |||
| 23 | #include <asm/page.h> | 23 | #include <asm/page.h> |
| 24 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
| 25 | 25 | ||
| 26 | /* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 32MB). | 26 | /* The kernel image occupies 0x4000000 to 0x6000000 (4MB --> 96MB). |
| 27 | * The page copy blockops can use 0x2000000 to 0x4000000. | 27 | * The page copy blockops can use 0x6000000 to 0x8000000. |
| 28 | * The TSB is mapped in the 0x4000000 to 0x6000000 range. | 28 | * The TSB is mapped in the 0x8000000 to 0xa000000 range. |
| 29 | * The PROM resides in an area spanning 0xf0000000 to 0x100000000. | 29 | * The PROM resides in an area spanning 0xf0000000 to 0x100000000. |
| 30 | * The vmalloc area spans 0x100000000 to 0x200000000. | 30 | * The vmalloc area spans 0x100000000 to 0x200000000. |
| 31 | * Since modules need to be in the lowest 32-bits of the address space, | 31 | * Since modules need to be in the lowest 32-bits of the address space, |
| @@ -33,8 +33,8 @@ | |||
| 33 | * There is a single static kernel PMD which maps from 0x0 to address | 33 | * There is a single static kernel PMD which maps from 0x0 to address |
| 34 | * 0x400000000. | 34 | * 0x400000000. |
| 35 | */ | 35 | */ |
| 36 | #define TLBTEMP_BASE _AC(0x0000000002000000,UL) | 36 | #define TLBTEMP_BASE _AC(0x0000000006000000,UL) |
| 37 | #define TSBMAP_BASE _AC(0x0000000004000000,UL) | 37 | #define TSBMAP_BASE _AC(0x0000000008000000,UL) |
| 38 | #define MODULES_VADDR _AC(0x0000000010000000,UL) | 38 | #define MODULES_VADDR _AC(0x0000000010000000,UL) |
| 39 | #define MODULES_LEN _AC(0x00000000e0000000,UL) | 39 | #define MODULES_LEN _AC(0x00000000e0000000,UL) |
| 40 | #define MODULES_END _AC(0x00000000f0000000,UL) | 40 | #define MODULES_END _AC(0x00000000f0000000,UL) |
| @@ -761,6 +761,8 @@ extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long, | |||
| 761 | extern void pgtable_cache_init(void); | 761 | extern void pgtable_cache_init(void); |
| 762 | extern void sun4v_register_fault_status(void); | 762 | extern void sun4v_register_fault_status(void); |
| 763 | extern void sun4v_ktsb_register(void); | 763 | extern void sun4v_ktsb_register(void); |
| 764 | extern void __init cheetah_ecache_flush_init(void); | ||
| 765 | extern void sun4v_patch_tlb_handlers(void); | ||
| 764 | 766 | ||
| 765 | extern unsigned long cmdline_memory_size; | 767 | extern unsigned long cmdline_memory_size; |
| 766 | 768 | ||
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h index 8da484c19822..885b6a1dcae4 100644 --- a/include/asm-sparc64/processor.h +++ b/include/asm-sparc64/processor.h | |||
| @@ -37,6 +37,9 @@ | |||
| 37 | #endif | 37 | #endif |
| 38 | 38 | ||
| 39 | #define TASK_SIZE ((unsigned long)-VPTE_SIZE) | 39 | #define TASK_SIZE ((unsigned long)-VPTE_SIZE) |
| 40 | #define TASK_SIZE_OF(tsk) \ | ||
| 41 | (test_tsk_thread_flag(tsk,TIF_32BIT) ? \ | ||
| 42 | (1UL << 32UL) : TASK_SIZE) | ||
| 40 | #ifdef __KERNEL__ | 43 | #ifdef __KERNEL__ |
| 41 | 44 | ||
| 42 | #define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) | 45 | #define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) |
diff --git a/include/asm-sparc64/stacktrace.h b/include/asm-sparc64/stacktrace.h new file mode 100644 index 000000000000..6cee39adf6d6 --- /dev/null +++ b/include/asm-sparc64/stacktrace.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #ifndef _SPARC64_STACKTRACE_H | ||
| 2 | #define _SPARC64_STACKTRACE_H | ||
| 3 | |||
| 4 | extern void stack_trace_flush(void); | ||
| 5 | |||
| 6 | #endif /* _SPARC64_STACKTRACE_H */ | ||
diff --git a/include/asm-sparc64/timer.h b/include/asm-sparc64/timer.h index ccbd69448866..5b779fd1f788 100644 --- a/include/asm-sparc64/timer.h +++ b/include/asm-sparc64/timer.h | |||
| @@ -1,14 +1,13 @@ | |||
| 1 | /* $Id: timer.h,v 1.3 2000/05/09 17:40:15 davem Exp $ | 1 | /* timer.h: System timer definitions for sun5. |
| 2 | * timer.h: System timer definitions for sun5. | ||
| 3 | * | 2 | * |
| 4 | * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) | 3 | * Copyright (C) 1997, 2008 David S. Miller (davem@davemloft.net) |
| 5 | */ | 4 | */ |
| 6 | 5 | ||
| 7 | #ifndef _SPARC64_TIMER_H | 6 | #ifndef _SPARC64_TIMER_H |
| 8 | #define _SPARC64_TIMER_H | 7 | #define _SPARC64_TIMER_H |
| 9 | 8 | ||
| 10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 11 | 10 | #include <linux/init.h> | |
| 12 | 11 | ||
| 13 | struct sparc64_tick_ops { | 12 | struct sparc64_tick_ops { |
| 14 | unsigned long (*get_tick)(void); | 13 | unsigned long (*get_tick)(void); |
| @@ -25,5 +24,7 @@ struct sparc64_tick_ops { | |||
| 25 | extern struct sparc64_tick_ops *tick_ops; | 24 | extern struct sparc64_tick_ops *tick_ops; |
| 26 | 25 | ||
| 27 | extern unsigned long sparc64_get_clock_tick(unsigned int cpu); | 26 | extern unsigned long sparc64_get_clock_tick(unsigned int cpu); |
| 27 | extern void __devinit setup_sparc64_timer(void); | ||
| 28 | extern void __init time_init(void); | ||
| 28 | 29 | ||
| 29 | #endif /* _SPARC64_TIMER_H */ | 30 | #endif /* _SPARC64_TIMER_H */ |
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h index 758b9a5d4539..f239e7069cab 100644 --- a/include/asm-x86/lguest_hcall.h +++ b/include/asm-x86/lguest_hcall.h | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | #ifndef __ASSEMBLY__ | 27 | #ifndef __ASSEMBLY__ |
| 28 | #include <asm/hw_irq.h> | 28 | #include <asm/hw_irq.h> |
| 29 | 29 | ||
| 30 | /*G:031 First, how does our Guest contact the Host to ask for privileged | 30 | /*G:031 But first, how does our Guest contact the Host to ask for privileged |
| 31 | * operations? There are two ways: the direct way is to make a "hypercall", | 31 | * operations? There are two ways: the direct way is to make a "hypercall", |
| 32 | * to make requests of the Host Itself. | 32 | * to make requests of the Host Itself. |
| 33 | * | 33 | * |
diff --git a/include/asm-x86/mach-rdc321x/gpio.h b/include/asm-x86/mach-rdc321x/gpio.h index db31b929b990..acce0b7d397b 100644 --- a/include/asm-x86/mach-rdc321x/gpio.h +++ b/include/asm-x86/mach-rdc321x/gpio.h | |||
| @@ -5,19 +5,20 @@ extern int rdc_gpio_get_value(unsigned gpio); | |||
| 5 | extern void rdc_gpio_set_value(unsigned gpio, int value); | 5 | extern void rdc_gpio_set_value(unsigned gpio, int value); |
| 6 | extern int rdc_gpio_direction_input(unsigned gpio); | 6 | extern int rdc_gpio_direction_input(unsigned gpio); |
| 7 | extern int rdc_gpio_direction_output(unsigned gpio, int value); | 7 | extern int rdc_gpio_direction_output(unsigned gpio, int value); |
| 8 | 8 | extern int rdc_gpio_request(unsigned gpio, const char *label); | |
| 9 | extern void rdc_gpio_free(unsigned gpio); | ||
| 10 | extern void __init rdc321x_gpio_setup(void); | ||
| 9 | 11 | ||
| 10 | /* Wrappers for the arch-neutral GPIO API */ | 12 | /* Wrappers for the arch-neutral GPIO API */ |
| 11 | 13 | ||
| 12 | static inline int gpio_request(unsigned gpio, const char *label) | 14 | static inline int gpio_request(unsigned gpio, const char *label) |
| 13 | { | 15 | { |
| 14 | /* Not yet implemented */ | 16 | return rdc_gpio_request(gpio, label); |
| 15 | return 0; | ||
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | static inline void gpio_free(unsigned gpio) | 19 | static inline void gpio_free(unsigned gpio) |
| 19 | { | 20 | { |
| 20 | /* Not yet implemented */ | 21 | rdc_gpio_free(gpio); |
| 21 | } | 22 | } |
| 22 | 23 | ||
| 23 | static inline int gpio_direction_input(unsigned gpio) | 24 | static inline int gpio_direction_input(unsigned gpio) |
diff --git a/include/asm-x86/mach-rdc321x/rdc321x_defs.h b/include/asm-x86/mach-rdc321x/rdc321x_defs.h index 838ba8f64fd3..c8e9c8bed3d0 100644 --- a/include/asm-x86/mach-rdc321x/rdc321x_defs.h +++ b/include/asm-x86/mach-rdc321x/rdc321x_defs.h | |||
| @@ -3,4 +3,10 @@ | |||
| 3 | /* General purpose configuration and data registers */ | 3 | /* General purpose configuration and data registers */ |
| 4 | #define RDC3210_CFGREG_ADDR 0x0CF8 | 4 | #define RDC3210_CFGREG_ADDR 0x0CF8 |
| 5 | #define RDC3210_CFGREG_DATA 0x0CFC | 5 | #define RDC3210_CFGREG_DATA 0x0CFC |
| 6 | #define RDC_MAX_GPIO 0x3A | 6 | |
| 7 | #define RDC321X_GPIO_CTRL_REG1 0x48 | ||
| 8 | #define RDC321X_GPIO_CTRL_REG2 0x84 | ||
| 9 | #define RDC321X_GPIO_DATA_REG1 0x4c | ||
| 10 | #define RDC321X_GPIO_DATA_REG2 0x88 | ||
| 11 | |||
| 12 | #define RDC321X_MAX_GPIO 58 | ||
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h index 174b87738714..9cf472aeb9ce 100644 --- a/include/asm-x86/pgtable.h +++ b/include/asm-x86/pgtable.h | |||
| @@ -85,6 +85,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC; | |||
| 85 | #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW) | 85 | #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW) |
| 86 | #define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT) | 86 | #define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT) |
| 87 | #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) | 87 | #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) |
| 88 | #define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD) | ||
| 88 | #define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER) | 89 | #define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER) |
| 89 | #define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT) | 90 | #define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT) |
| 90 | #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) | 91 | #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) |
| @@ -101,6 +102,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC; | |||
| 101 | #define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) | 102 | #define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) |
| 102 | #define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX) | 103 | #define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX) |
| 103 | #define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE) | 104 | #define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE) |
| 105 | #define PAGE_KERNEL_UC_MINUS MAKE_GLOBAL(__PAGE_KERNEL_UC_MINUS) | ||
| 104 | #define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE) | 106 | #define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE) |
| 105 | #define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE) | 107 | #define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE) |
| 106 | #define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC) | 108 | #define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC) |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 4108b38ebb16..4a446a19295e 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -195,7 +195,6 @@ unifdef-y += ethtool.h | |||
| 195 | unifdef-y += eventpoll.h | 195 | unifdef-y += eventpoll.h |
| 196 | unifdef-y += signalfd.h | 196 | unifdef-y += signalfd.h |
| 197 | unifdef-y += ext2_fs.h | 197 | unifdef-y += ext2_fs.h |
| 198 | unifdef-y += ext3_fs.h | ||
| 199 | unifdef-y += fb.h | 198 | unifdef-y += fb.h |
| 200 | unifdef-y += fcntl.h | 199 | unifdef-y += fcntl.h |
| 201 | unifdef-y += filter.h | 200 | unifdef-y += filter.h |
| @@ -248,7 +247,6 @@ unifdef-y += isdn.h | |||
| 248 | unifdef-y += isdnif.h | 247 | unifdef-y += isdnif.h |
| 249 | unifdef-y += isdn_divertif.h | 248 | unifdef-y += isdn_divertif.h |
| 250 | unifdef-y += isdn_ppp.h | 249 | unifdef-y += isdn_ppp.h |
| 251 | unifdef-y += jbd.h | ||
| 252 | unifdef-y += joystick.h | 250 | unifdef-y += joystick.h |
| 253 | unifdef-y += kdev_t.h | 251 | unifdef-y += kdev_t.h |
| 254 | unifdef-y += kd.h | 252 | unifdef-y += kd.h |
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 69c1edb9fe54..40d54731de7e 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
| @@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift) | |||
| 65 | return (word >> shift) | (word << (32 - shift)); | 65 | return (word >> shift) | (word << (32 - shift)); |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | /** | ||
| 69 | * rol16 - rotate a 16-bit value left | ||
| 70 | * @word: value to rotate | ||
| 71 | * @shift: bits to roll | ||
| 72 | */ | ||
| 73 | static inline __u16 rol16(__u16 word, unsigned int shift) | ||
| 74 | { | ||
| 75 | return (word << shift) | (word >> (16 - shift)); | ||
| 76 | } | ||
| 77 | |||
| 78 | /** | ||
| 79 | * ror16 - rotate a 16-bit value right | ||
| 80 | * @word: value to rotate | ||
| 81 | * @shift: bits to roll | ||
| 82 | */ | ||
| 83 | static inline __u16 ror16(__u16 word, unsigned int shift) | ||
| 84 | { | ||
| 85 | return (word >> shift) | (word << (16 - shift)); | ||
| 86 | } | ||
| 87 | |||
| 88 | /** | ||
| 89 | * rol8 - rotate an 8-bit value left | ||
| 90 | * @word: value to rotate | ||
| 91 | * @shift: bits to roll | ||
| 92 | */ | ||
| 93 | static inline __u8 rol8(__u8 word, unsigned int shift) | ||
| 94 | { | ||
| 95 | return (word << shift) | (word >> (8 - shift)); | ||
| 96 | } | ||
| 97 | |||
| 98 | /** | ||
| 99 | * ror8 - rotate an 8-bit value right | ||
| 100 | * @word: value to rotate | ||
| 101 | * @shift: bits to roll | ||
| 102 | */ | ||
| 103 | static inline __u8 ror8(__u8 word, unsigned int shift) | ||
| 104 | { | ||
| 105 | return (word >> shift) | (word << (8 - shift)); | ||
| 106 | } | ||
| 107 | |||
| 68 | static inline unsigned fls_long(unsigned long l) | 108 | static inline unsigned fls_long(unsigned long l) |
| 69 | { | 109 | { |
| 70 | if (sizeof(l) == 4) | 110 | if (sizeof(l) == 4) |
diff --git a/include/linux/compat.h b/include/linux/compat.h index a671dbff7a1f..8fa7857e153b 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -192,8 +192,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | |||
| 192 | struct compat_timeval __user *tvp); | 192 | struct compat_timeval __user *tvp); |
| 193 | 193 | ||
| 194 | asmlinkage long compat_sys_wait4(compat_pid_t pid, | 194 | asmlinkage long compat_sys_wait4(compat_pid_t pid, |
| 195 | compat_uint_t *stat_addr, int options, | 195 | compat_uint_t __user *stat_addr, int options, |
| 196 | struct compat_rusage *ru); | 196 | struct compat_rusage __user *ru); |
| 197 | 197 | ||
| 198 | #define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) | 198 | #define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) |
| 199 | 199 | ||
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 6b72a4584086..51e6b1e520e6 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -38,8 +38,8 @@ struct cpuidle_state { | |||
| 38 | unsigned int power_usage; /* in mW */ | 38 | unsigned int power_usage; /* in mW */ |
| 39 | unsigned int target_residency; /* in US */ | 39 | unsigned int target_residency; /* in US */ |
| 40 | 40 | ||
| 41 | unsigned int usage; | 41 | unsigned long long usage; |
| 42 | unsigned int time; /* in US */ | 42 | unsigned long long time; /* in US */ |
| 43 | 43 | ||
| 44 | int (*enter) (struct cpuidle_device *dev, | 44 | int (*enter) (struct cpuidle_device *dev, |
| 45 | struct cpuidle_state *state); | 45 | struct cpuidle_state *state); |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 261e43a4c873..34d440698293 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -423,7 +423,7 @@ void dma_async_device_unregister(struct dma_device *device); | |||
| 423 | /* --- Helper iov-locking functions --- */ | 423 | /* --- Helper iov-locking functions --- */ |
| 424 | 424 | ||
| 425 | struct dma_page_list { | 425 | struct dma_page_list { |
| 426 | char *base_address; | 426 | char __user *base_address; |
| 427 | int nr_pages; | 427 | int nr_pages; |
| 428 | struct page **pages; | 428 | struct page **pages; |
| 429 | }; | 429 | }; |
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 49829988bfa0..897f723bd222 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -72,6 +72,13 @@ | |||
| 72 | #define in_softirq() (softirq_count()) | 72 | #define in_softirq() (softirq_count()) |
| 73 | #define in_interrupt() (irq_count()) | 73 | #define in_interrupt() (irq_count()) |
| 74 | 74 | ||
| 75 | /* | ||
| 76 | * Are we running in atomic context? WARNING: this macro cannot | ||
| 77 | * always detect atomic context; in particular, it cannot know about | ||
| 78 | * held spinlocks in non-preemptible kernels. Thus it should not be | ||
| 79 | * used in the general case to determine whether sleeping is possible. | ||
| 80 | * Do not use in_atomic() in driver code. | ||
| 81 | */ | ||
| 75 | #define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0) | 82 | #define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0) |
| 76 | 83 | ||
| 77 | #ifdef CONFIG_PREEMPT | 84 | #ifdef CONFIG_PREEMPT |
diff --git a/include/linux/ide.h b/include/linux/ide.h index a3b69c10d667..bc26b2f27359 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | #include <asm/semaphore.h> | 26 | #include <asm/semaphore.h> |
| 27 | #include <asm/mutex.h> | 27 | #include <asm/mutex.h> |
| 28 | 28 | ||
| 29 | #if defined(CRIS) || defined(FRV) | 29 | #if defined(CONFIG_CRIS) || defined(CONFIG_FRV) |
| 30 | # define SUPPORT_VLB_SYNC 0 | 30 | # define SUPPORT_VLB_SYNC 0 |
| 31 | #else | 31 | #else |
| 32 | # define SUPPORT_VLB_SYNC 1 | 32 | # define SUPPORT_VLB_SYNC 1 |
diff --git a/include/linux/input.h b/include/linux/input.h index 1bdc39a8c76c..cae2c35d1206 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -1227,12 +1227,13 @@ void input_free_device(struct input_dev *dev); | |||
| 1227 | 1227 | ||
| 1228 | static inline struct input_dev *input_get_device(struct input_dev *dev) | 1228 | static inline struct input_dev *input_get_device(struct input_dev *dev) |
| 1229 | { | 1229 | { |
| 1230 | return to_input_dev(get_device(&dev->dev)); | 1230 | return dev ? to_input_dev(get_device(&dev->dev)) : NULL; |
| 1231 | } | 1231 | } |
| 1232 | 1232 | ||
| 1233 | static inline void input_put_device(struct input_dev *dev) | 1233 | static inline void input_put_device(struct input_dev *dev) |
| 1234 | { | 1234 | { |
| 1235 | put_device(&dev->dev); | 1235 | if (dev) |
| 1236 | put_device(&dev->dev); | ||
| 1236 | } | 1237 | } |
| 1237 | 1238 | ||
| 1238 | static inline void *input_get_drvdata(struct input_dev *dev) | 1239 | static inline void *input_get_drvdata(struct input_dev *dev) |
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h index 589be3e1f3ac..e7217dc58f39 100644 --- a/include/linux/lguest_launcher.h +++ b/include/linux/lguest_launcher.h | |||
| @@ -16,6 +16,10 @@ | |||
| 16 | * a new device, we simply need to write a new virtio driver and create support | 16 | * a new device, we simply need to write a new virtio driver and create support |
| 17 | * for it in the Launcher: this code won't need to change. | 17 | * for it in the Launcher: this code won't need to change. |
| 18 | * | 18 | * |
| 19 | * Virtio devices are also used by kvm, so we can simply reuse their optimized | ||
| 20 | * device drivers. And one day when everyone uses virtio, my plan will be | ||
| 21 | * complete. Bwahahahah! | ||
| 22 | * | ||
| 19 | * Devices are described by a simplified ID, a status byte, and some "config" | 23 | * Devices are described by a simplified ID, a status byte, and some "config" |
| 20 | * bytes which describe this device's configuration. This is placed by the | 24 | * bytes which describe this device's configuration. This is placed by the |
| 21 | * Launcher just above the top of physical memory: | 25 | * Launcher just above the top of physical memory: |
| @@ -26,7 +30,7 @@ struct lguest_device_desc { | |||
| 26 | /* The number of virtqueues (first in config array) */ | 30 | /* The number of virtqueues (first in config array) */ |
| 27 | __u8 num_vq; | 31 | __u8 num_vq; |
| 28 | /* The number of bytes of feature bits. Multiply by 2: one for host | 32 | /* The number of bytes of feature bits. Multiply by 2: one for host |
| 29 | * features and one for guest acknowledgements. */ | 33 | * features and one for Guest acknowledgements. */ |
| 30 | __u8 feature_len; | 34 | __u8 feature_len; |
| 31 | /* The number of bytes of the config array after virtqueues. */ | 35 | /* The number of bytes of the config array after virtqueues. */ |
| 32 | __u8 config_len; | 36 | __u8 config_len; |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 269cdba09578..b064bfeb69ee 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -295,6 +295,7 @@ enum { | |||
| 295 | ATA_EH_SOFTRESET = (1 << 1), | 295 | ATA_EH_SOFTRESET = (1 << 1), |
| 296 | ATA_EH_HARDRESET = (1 << 2), | 296 | ATA_EH_HARDRESET = (1 << 2), |
| 297 | ATA_EH_ENABLE_LINK = (1 << 3), | 297 | ATA_EH_ENABLE_LINK = (1 << 3), |
| 298 | ATA_EH_LPM = (1 << 4), /* link power management action */ | ||
| 298 | 299 | ||
| 299 | ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET, | 300 | ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET, |
| 300 | ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE, | 301 | ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE, |
| @@ -304,7 +305,6 @@ enum { | |||
| 304 | ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ | 305 | ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ |
| 305 | ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ | 306 | ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ |
| 306 | ATA_EHI_QUIET = (1 << 3), /* be quiet */ | 307 | ATA_EHI_QUIET = (1 << 3), /* be quiet */ |
| 307 | ATA_EHI_LPM = (1 << 4), /* link power management action */ | ||
| 308 | 308 | ||
| 309 | ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ | 309 | ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ |
| 310 | ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ | 310 | ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ |
diff --git a/include/linux/mount.h b/include/linux/mount.h index 6d3047d8c91c..5ee2df217cdf 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h | |||
| @@ -61,6 +61,7 @@ struct vfsmount { | |||
| 61 | atomic_t mnt_count; | 61 | atomic_t mnt_count; |
| 62 | int mnt_expiry_mark; /* true if marked for expiry */ | 62 | int mnt_expiry_mark; /* true if marked for expiry */ |
| 63 | int mnt_pinned; | 63 | int mnt_pinned; |
| 64 | int mnt_ghosts; | ||
| 64 | }; | 65 | }; |
| 65 | 66 | ||
| 66 | static inline struct vfsmount *mntget(struct vfsmount *mnt) | 67 | static inline struct vfsmount *mntget(struct vfsmount *mnt) |
| @@ -98,7 +99,6 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd, | |||
| 98 | int mnt_flags, struct list_head *fslist); | 99 | int mnt_flags, struct list_head *fslist); |
| 99 | 100 | ||
| 100 | extern void mark_mounts_for_expiry(struct list_head *mounts); | 101 | extern void mark_mounts_for_expiry(struct list_head *mounts); |
| 101 | extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts); | ||
| 102 | 102 | ||
| 103 | extern spinlock_t vfsmount_lock; | 103 | extern spinlock_t vfsmount_lock; |
| 104 | extern dev_t name_to_dev_t(char *name); | 104 | extern dev_t name_to_dev_t(char *name); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index fed07d03364e..6a1e7afb099b 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1541,6 +1541,12 @@ static inline void idle_task_exit(void) {} | |||
| 1541 | 1541 | ||
| 1542 | extern void sched_idle_next(void); | 1542 | extern void sched_idle_next(void); |
| 1543 | 1543 | ||
| 1544 | #if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP) | ||
| 1545 | extern void wake_up_idle_cpu(int cpu); | ||
| 1546 | #else | ||
| 1547 | static inline void wake_up_idle_cpu(int cpu) { } | ||
| 1548 | #endif | ||
| 1549 | |||
| 1544 | #ifdef CONFIG_SCHED_DEBUG | 1550 | #ifdef CONFIG_SCHED_DEBUG |
| 1545 | extern unsigned int sysctl_sched_latency; | 1551 | extern unsigned int sysctl_sched_latency; |
| 1546 | extern unsigned int sysctl_sched_min_granularity; | 1552 | extern unsigned int sysctl_sched_min_granularity; |
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index ebbfb509822e..64a5f0120b52 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
| @@ -218,6 +218,10 @@ extern unsigned long neigh_rand_reach_time(unsigned long base); | |||
| 218 | extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, | 218 | extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, |
| 219 | struct sk_buff *skb); | 219 | struct sk_buff *skb); |
| 220 | extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat); | 220 | extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat); |
| 221 | extern struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl, | ||
| 222 | struct net *net, | ||
| 223 | const void *key, | ||
| 224 | struct net_device *dev); | ||
| 221 | extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev); | 225 | extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev); |
| 222 | 226 | ||
| 223 | extern void neigh_app_ns(struct neighbour *n); | 227 | extern void neigh_app_ns(struct neighbour *n); |
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 619c53bc3cd2..0d255ae008b6 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -204,6 +204,7 @@ struct xfrm_state | |||
| 204 | * transformer. */ | 204 | * transformer. */ |
| 205 | const struct xfrm_type *type; | 205 | const struct xfrm_type *type; |
| 206 | struct xfrm_mode *inner_mode; | 206 | struct xfrm_mode *inner_mode; |
| 207 | struct xfrm_mode *inner_mode_iaf; | ||
| 207 | struct xfrm_mode *outer_mode; | 208 | struct xfrm_mode *outer_mode; |
| 208 | 209 | ||
| 209 | /* Security context */ | 210 | /* Security context */ |
| @@ -387,6 +388,27 @@ enum { | |||
| 387 | extern int xfrm_register_mode(struct xfrm_mode *mode, int family); | 388 | extern int xfrm_register_mode(struct xfrm_mode *mode, int family); |
| 388 | extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family); | 389 | extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family); |
| 389 | 390 | ||
| 391 | static inline int xfrm_af2proto(unsigned int family) | ||
| 392 | { | ||
| 393 | switch(family) { | ||
| 394 | case AF_INET: | ||
| 395 | return IPPROTO_IPIP; | ||
| 396 | case AF_INET6: | ||
| 397 | return IPPROTO_IPV6; | ||
| 398 | default: | ||
| 399 | return 0; | ||
| 400 | } | ||
| 401 | } | ||
| 402 | |||
| 403 | static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipproto) | ||
| 404 | { | ||
| 405 | if ((ipproto == IPPROTO_IPIP && x->props.family == AF_INET) || | ||
| 406 | (ipproto == IPPROTO_IPV6 && x->props.family == AF_INET6)) | ||
| 407 | return x->inner_mode; | ||
| 408 | else | ||
| 409 | return x->inner_mode_iaf; | ||
| 410 | } | ||
| 411 | |||
| 390 | struct xfrm_tmpl | 412 | struct xfrm_tmpl |
| 391 | { | 413 | { |
| 392 | /* id in template is interpreted as: | 414 | /* id in template is interpreted as: |
| @@ -530,6 +552,9 @@ struct xfrm_mode_skb_cb { | |||
| 530 | __be16 id; | 552 | __be16 id; |
| 531 | __be16 frag_off; | 553 | __be16 frag_off; |
| 532 | 554 | ||
| 555 | /* IP header length (excluding options or extension headers). */ | ||
| 556 | u8 ihl; | ||
| 557 | |||
| 533 | /* TOS for IPv4, class for IPv6. */ | 558 | /* TOS for IPv4, class for IPv6. */ |
| 534 | u8 tos; | 559 | u8 tos; |
| 535 | 560 | ||
| @@ -539,6 +564,9 @@ struct xfrm_mode_skb_cb { | |||
| 539 | /* Protocol for IPv4, NH for IPv6. */ | 564 | /* Protocol for IPv4, NH for IPv6. */ |
| 540 | u8 protocol; | 565 | u8 protocol; |
| 541 | 566 | ||
| 567 | /* Option length for IPv4, zero for IPv6. */ | ||
| 568 | u8 optlen; | ||
| 569 | |||
| 542 | /* Used by IPv6 only, zero for IPv4. */ | 570 | /* Used by IPv6 only, zero for IPv4. */ |
| 543 | u8 flow_lbl[3]; | 571 | u8 flow_lbl[3]; |
| 544 | }; | 572 | }; |
| @@ -1253,6 +1281,7 @@ extern int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, | |||
| 1253 | extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr); | 1281 | extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr); |
| 1254 | extern int xfrm_output_resume(struct sk_buff *skb, int err); | 1282 | extern int xfrm_output_resume(struct sk_buff *skb, int err); |
| 1255 | extern int xfrm_output(struct sk_buff *skb); | 1283 | extern int xfrm_output(struct sk_buff *skb); |
| 1284 | extern int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb); | ||
| 1256 | extern int xfrm4_extract_header(struct sk_buff *skb); | 1285 | extern int xfrm4_extract_header(struct sk_buff *skb); |
| 1257 | extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb); | 1286 | extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb); |
| 1258 | extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi, | 1287 | extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi, |
