Merge /spare/repo/linux-2.6/
This commit is contained in:
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -339,13 +339,6 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
|
||||
#define kern_addr_valid(addr) (1)
|
||||
#endif
|
||||
|
||||
#define io_remap_page_range(vma, start, busaddr, size, prot) \
|
||||
({ \
|
||||
void *va = (void __force *)ioremap(busaddr, size); \
|
||||
unsigned long pfn = virt_to_phys(va) >> PAGE_SHIFT; \
|
||||
remap_pfn_range(vma, start, pfn, size, prot); \
|
||||
})
|
||||
|
||||
#define io_remap_pfn_range(vma, start, pfn, size, prot) \
|
||||
remap_pfn_range(vma, start, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -64,10 +64,6 @@
|
||||
#define NODE_MAX_MEM_SHIFT 26
|
||||
#define NODE_MAX_MEM_SIZE (1 << NODE_MAX_MEM_SHIFT)
|
||||
|
||||
#else
|
||||
|
||||
#define PFN_TO_NID(addr) (0)
|
||||
|
||||
#endif /* CONFIG_DISCONTIGMEM */
|
||||
|
||||
#endif /* __ASM_ARCH_MEMORY_H */
|
||||
|
||||
@@ -36,6 +36,4 @@
|
||||
|
||||
#endif
|
||||
|
||||
#define PFN_TO_NID(addr) (0)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -370,8 +370,6 @@
|
||||
#define GLOBAL_REG_BASE (IXP2000_GLOBAL_REG_VIRT_BASE + 0x0a00)
|
||||
#define GLOBAL_REG(x) (volatile unsigned long*)(GLOBAL_REG_BASE | (x))
|
||||
|
||||
#define IXP2000_PROD_ID GLOBAL_REG(0x00)
|
||||
|
||||
#define IXP2000_MAJ_PROD_TYPE_MASK 0x001F0000
|
||||
#define IXP2000_MAJ_PROD_TYPE_IXP2000 0x00000000
|
||||
#define IXP2000_MIN_PROD_TYPE_MASK 0x0000FF00
|
||||
|
||||
@@ -31,20 +31,24 @@
|
||||
|
||||
#include <asm/system.h> /* Pickup local_irq_ functions */
|
||||
|
||||
static inline void ixp2000_reg_write(volatile unsigned long *reg, unsigned long val)
|
||||
static inline void ixp2000_reg_write(volatile void *reg, unsigned long val)
|
||||
{
|
||||
volatile unsigned long dummy;
|
||||
unsigned long dummy;
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
*reg = val;
|
||||
*((volatile unsigned long *)reg) = val;
|
||||
barrier();
|
||||
dummy = *reg;
|
||||
dummy = *((volatile unsigned long *)reg);
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
#else
|
||||
#define ixp2000_reg_write(reg, val) (*reg = val)
|
||||
static inline void ixp2000_reg_write(volatile void *reg, unsigned long val)
|
||||
{
|
||||
*((volatile unsigned long *)reg) = val;
|
||||
}
|
||||
#endif /* IXDP2400 || IXDP2401 */
|
||||
#define ixp2000_reg_read(reg) (*((volatile unsigned long *)reg))
|
||||
|
||||
/*
|
||||
* Boards may multiplex different devices on the 2nd channel of
|
||||
@@ -84,7 +88,7 @@ void ixp2000_release_slowport(struct slowport_cfg *);
|
||||
*/
|
||||
static inline unsigned ixp2000_has_broken_slowport(void)
|
||||
{
|
||||
unsigned long id = *IXP2000_PROD_ID;
|
||||
unsigned long id = *IXP2000_PRODUCT_ID;
|
||||
unsigned long id_prod = id & (IXP2000_MAJ_PROD_TYPE_MASK |
|
||||
IXP2000_MIN_PROD_TYPE_MASK);
|
||||
return (((id_prod ==
|
||||
|
||||
@@ -85,10 +85,6 @@
|
||||
(((unsigned long)(addr) & 0x01ffffff) >> PAGE_SHIFT)
|
||||
# endif
|
||||
|
||||
#else
|
||||
|
||||
# define PFN_TO_NID(addr) (0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -86,6 +86,5 @@
|
||||
|
||||
#endif /* CONFIG_ARCH_OMAP1510 */
|
||||
|
||||
#define PHYS_TO_NID(addr) (0)
|
||||
#endif
|
||||
|
||||
|
||||
30
include/asm-arm/arch-pxa/akita.h
Normal file
30
include/asm-arm/arch-pxa/akita.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Hardware specific definitions for SL-C1000 (Akita)
|
||||
*
|
||||
* Copyright (c) 2005 Richard Purdie
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Akita IO Expander GPIOs */
|
||||
|
||||
#define AKITA_IOEXP_RESERVED_7 (1 << 7)
|
||||
#define AKITA_IOEXP_IR_ON (1 << 6)
|
||||
#define AKITA_IOEXP_AKIN_PULLUP (1 << 5)
|
||||
#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4)
|
||||
#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3)
|
||||
#define AKITA_IOEXP_MIC_BIAS (1 << 2)
|
||||
#define AKITA_IOEXP_RESERVED_1 (1 << 1)
|
||||
#define AKITA_IOEXP_RESERVED_0 (1 << 0)
|
||||
|
||||
/* Direction Bitfield 0=output 1=input */
|
||||
#define AKITA_IOEXP_IO_DIR 0
|
||||
/* Default Values */
|
||||
#define AKITA_IOEXP_IO_OUT (AKITA_IOEXP_IR_ON | AKITA_IOEXP_AKIN_PULLUP)
|
||||
|
||||
void akita_set_ioexp(struct device *dev, unsigned char bitmask);
|
||||
void akita_reset_ioexp(struct device *dev, unsigned char bitmask);
|
||||
|
||||
@@ -106,17 +106,5 @@ extern struct platform_device corgiscoop_device;
|
||||
extern struct platform_device corgissp_device;
|
||||
extern struct platform_device corgifb_device;
|
||||
|
||||
/*
|
||||
* External Functions
|
||||
*/
|
||||
extern unsigned long corgi_ssp_ads7846_putget(unsigned long);
|
||||
extern unsigned long corgi_ssp_ads7846_get(void);
|
||||
extern void corgi_ssp_ads7846_put(unsigned long data);
|
||||
extern void corgi_ssp_ads7846_lock(void);
|
||||
extern void corgi_ssp_ads7846_unlock(void);
|
||||
extern void corgi_ssp_lcdtg_send (unsigned char adrs, unsigned char data);
|
||||
extern void corgi_ssp_blduty_set(int duty);
|
||||
extern int corgi_ssp_max1111_get(unsigned long data);
|
||||
|
||||
#endif /* __ASM_ARCH_CORGI_H */
|
||||
|
||||
|
||||
@@ -67,10 +67,6 @@
|
||||
#define LOCAL_MAP_NR(addr) \
|
||||
(((unsigned long)(addr) & 0x03ffffff) >> PAGE_SHIFT)
|
||||
|
||||
#else
|
||||
|
||||
#define PFN_TO_NID(addr) (0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -37,24 +37,25 @@
|
||||
#define POODLE_GPIO_nSD_DETECT (9)
|
||||
#define POODLE_GPIO_MAIN_BAT_LOW (13)
|
||||
#define POODLE_GPIO_BAT_COVER (13)
|
||||
#define POODLE_GPIO_USB_PULLUP (20)
|
||||
#define POODLE_GPIO_ADC_TEMP_ON (21)
|
||||
#define POODLE_GPIO_BYPASS_ON (36)
|
||||
#define POODLE_GPIO_CHRG_ON (38)
|
||||
#define POODLE_GPIO_CHRG_FULL (16)
|
||||
|
||||
/* PXA GPIOs */
|
||||
#define POODLE_IRQ_GPIO_ON_KEY IRQ_GPIO0
|
||||
#define POODLE_IRQ_GPIO_AC_IN IRQ_GPIO1
|
||||
#define POODLE_IRQ_GPIO_HP_IN IRQ_GPIO4
|
||||
#define POODLE_IRQ_GPIO_CO IRQ_GPIO16
|
||||
#define POODLE_IRQ_GPIO_TP_INT IRQ_GPIO5
|
||||
#define POODLE_IRQ_GPIO_WAKEUP IRQ_GPIO11
|
||||
#define POODLE_IRQ_GPIO_GA_INT IRQ_GPIO10
|
||||
#define POODLE_IRQ_GPIO_CF_IRQ IRQ_GPIO17
|
||||
#define POODLE_IRQ_GPIO_CF_CD IRQ_GPIO14
|
||||
#define POODLE_IRQ_GPIO_nSD_INT IRQ_GPIO8
|
||||
#define POODLE_IRQ_GPIO_nSD_DETECT IRQ_GPIO9
|
||||
#define POODLE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO13
|
||||
#define POODLE_IRQ_GPIO_ON_KEY IRQ_GPIO(0)
|
||||
#define POODLE_IRQ_GPIO_AC_IN IRQ_GPIO(1)
|
||||
#define POODLE_IRQ_GPIO_HP_IN IRQ_GPIO(4)
|
||||
#define POODLE_IRQ_GPIO_CO IRQ_GPIO(16)
|
||||
#define POODLE_IRQ_GPIO_TP_INT IRQ_GPIO(5)
|
||||
#define POODLE_IRQ_GPIO_WAKEUP IRQ_GPIO(11)
|
||||
#define POODLE_IRQ_GPIO_GA_INT IRQ_GPIO(10)
|
||||
#define POODLE_IRQ_GPIO_CF_IRQ IRQ_GPIO(17)
|
||||
#define POODLE_IRQ_GPIO_CF_CD IRQ_GPIO(14)
|
||||
#define POODLE_IRQ_GPIO_nSD_INT IRQ_GPIO(8)
|
||||
#define POODLE_IRQ_GPIO_nSD_DETECT IRQ_GPIO(9)
|
||||
#define POODLE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO(13)
|
||||
|
||||
/* SCOOP GPIOs */
|
||||
#define POODLE_SCOOP_CHARGE_ON SCOOP_GPCR_PA11
|
||||
|
||||
32
include/asm-arm/arch-pxa/sharpsl.h
Normal file
32
include/asm-arm/arch-pxa/sharpsl.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* SharpSL SSP Driver
|
||||
*/
|
||||
|
||||
unsigned long corgi_ssp_ads7846_putget(unsigned long);
|
||||
unsigned long corgi_ssp_ads7846_get(void);
|
||||
void corgi_ssp_ads7846_put(unsigned long data);
|
||||
void corgi_ssp_ads7846_lock(void);
|
||||
void corgi_ssp_ads7846_unlock(void);
|
||||
void corgi_ssp_lcdtg_send (unsigned char adrs, unsigned char data);
|
||||
void corgi_ssp_blduty_set(int duty);
|
||||
int corgi_ssp_max1111_get(unsigned long data);
|
||||
|
||||
/*
|
||||
* SharpSL Touchscreen Driver
|
||||
*/
|
||||
|
||||
struct corgits_machinfo {
|
||||
unsigned long (*get_hsync_len)(void);
|
||||
void (*put_hsync)(void);
|
||||
void (*wait_hsync)(void);
|
||||
};
|
||||
|
||||
/*
|
||||
* SharpSL Backlight
|
||||
*/
|
||||
|
||||
struct corgibl_machinfo {
|
||||
int max_intensity;
|
||||
void (*set_bl_intensity)(int intensity);
|
||||
};
|
||||
|
||||
158
include/asm-arm/arch-pxa/spitz.h
Normal file
158
include/asm-arm/arch-pxa/spitz.h
Normal file
@@ -0,0 +1,158 @@
|
||||
/*
|
||||
* Hardware specific definitions for SL-Cx000 series of PDAs
|
||||
*
|
||||
* Copyright (c) 2005 Alexander Wykes
|
||||
* Copyright (c) 2005 Richard Purdie
|
||||
*
|
||||
* Based on Sharp's 2.4 kernel patches
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
#ifndef __ASM_ARCH_SPITZ_H
|
||||
#define __ASM_ARCH_SPITZ_H 1
|
||||
#endif
|
||||
|
||||
/* Spitz/Akita GPIOs */
|
||||
|
||||
#define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */
|
||||
#define SPITZ_GPIO_RESET (1)
|
||||
#define SPITZ_GPIO_nSD_DETECT (9)
|
||||
#define SPITZ_GPIO_TP_INT (11) /* Touch Panel interrupt */
|
||||
#define SPITZ_GPIO_AK_INT (13) /* Remote Control */
|
||||
#define SPITZ_GPIO_ADS7846_CS (14)
|
||||
#define SPITZ_GPIO_SYNC (16)
|
||||
#define SPITZ_GPIO_MAX1111_CS (20)
|
||||
#define SPITZ_GPIO_FATAL_BAT (21)
|
||||
#define SPITZ_GPIO_HSYNC (22)
|
||||
#define SPITZ_GPIO_nSD_CLK (32)
|
||||
#define SPITZ_GPIO_USB_DEVICE (35)
|
||||
#define SPITZ_GPIO_USB_HOST (37)
|
||||
#define SPITZ_GPIO_USB_CONNECT (41)
|
||||
#define SPITZ_GPIO_LCDCON_CS (53)
|
||||
#define SPITZ_GPIO_nPCE (54)
|
||||
#define SPITZ_GPIO_nSD_WP (81)
|
||||
#define SPITZ_GPIO_ON_RESET (89)
|
||||
#define SPITZ_GPIO_BAT_COVER (90)
|
||||
#define SPITZ_GPIO_CF_CD (94)
|
||||
#define SPITZ_GPIO_ON_KEY (95)
|
||||
#define SPITZ_GPIO_SWA (97)
|
||||
#define SPITZ_GPIO_SWB (96)
|
||||
#define SPITZ_GPIO_CHRG_FULL (101)
|
||||
#define SPITZ_GPIO_CO (101)
|
||||
#define SPITZ_GPIO_CF_IRQ (105)
|
||||
#define SPITZ_GPIO_AC_IN (115)
|
||||
#define SPITZ_GPIO_HP_IN (116)
|
||||
|
||||
/* Spitz Only GPIOs */
|
||||
|
||||
#define SPITZ_GPIO_CF2_IRQ (106) /* CF slot1 Ready */
|
||||
#define SPITZ_GPIO_CF2_CD (93)
|
||||
|
||||
|
||||
/* Spitz/Akita Keyboard Definitions */
|
||||
|
||||
#define SPITZ_KEY_STROBE_NUM (11)
|
||||
#define SPITZ_KEY_SENSE_NUM (7)
|
||||
#define SPITZ_GPIO_G0_STROBE_BIT 0x0f800000
|
||||
#define SPITZ_GPIO_G1_STROBE_BIT 0x00100000
|
||||
#define SPITZ_GPIO_G2_STROBE_BIT 0x01000000
|
||||
#define SPITZ_GPIO_G3_STROBE_BIT 0x00041880
|
||||
#define SPITZ_GPIO_G0_SENSE_BIT 0x00021000
|
||||
#define SPITZ_GPIO_G1_SENSE_BIT 0x000000d4
|
||||
#define SPITZ_GPIO_G2_SENSE_BIT 0x08000000
|
||||
#define SPITZ_GPIO_G3_SENSE_BIT 0x00000000
|
||||
|
||||
#define SPITZ_GPIO_KEY_STROBE0 88
|
||||
#define SPITZ_GPIO_KEY_STROBE1 23
|
||||
#define SPITZ_GPIO_KEY_STROBE2 24
|
||||
#define SPITZ_GPIO_KEY_STROBE3 25
|
||||
#define SPITZ_GPIO_KEY_STROBE4 26
|
||||
#define SPITZ_GPIO_KEY_STROBE5 27
|
||||
#define SPITZ_GPIO_KEY_STROBE6 52
|
||||
#define SPITZ_GPIO_KEY_STROBE7 103
|
||||
#define SPITZ_GPIO_KEY_STROBE8 107
|
||||
#define SPITZ_GPIO_KEY_STROBE9 108
|
||||
#define SPITZ_GPIO_KEY_STROBE10 114
|
||||
|
||||
#define SPITZ_GPIO_KEY_SENSE0 12
|
||||
#define SPITZ_GPIO_KEY_SENSE1 17
|
||||
#define SPITZ_GPIO_KEY_SENSE2 91
|
||||
#define SPITZ_GPIO_KEY_SENSE3 34
|
||||
#define SPITZ_GPIO_KEY_SENSE4 36
|
||||
#define SPITZ_GPIO_KEY_SENSE5 38
|
||||
#define SPITZ_GPIO_KEY_SENSE6 39
|
||||
|
||||
|
||||
/* Spitz Scoop Device (No. 1) GPIOs */
|
||||
/* Suspend States in comments */
|
||||
#define SPITZ_SCP_LED_GREEN SCOOP_GPCR_PA11 /* Keep */
|
||||
#define SPITZ_SCP_JK_B SCOOP_GPCR_PA12 /* Keep */
|
||||
#define SPITZ_SCP_CHRG_ON SCOOP_GPCR_PA13 /* Keep */
|
||||
#define SPITZ_SCP_MUTE_L SCOOP_GPCR_PA14 /* Low */
|
||||
#define SPITZ_SCP_MUTE_R SCOOP_GPCR_PA15 /* Low */
|
||||
#define SPITZ_SCP_CF_POWER SCOOP_GPCR_PA16 /* Keep */
|
||||
#define SPITZ_SCP_LED_ORANGE SCOOP_GPCR_PA17 /* Keep */
|
||||
#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Low */
|
||||
#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Low */
|
||||
|
||||
#define SPITZ_SCP_IO_DIR (SPITZ_SCP_LED_GREEN | SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \
|
||||
SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \
|
||||
SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
|
||||
#define SPITZ_SCP_IO_OUT (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R)
|
||||
#define SPITZ_SCP_SUS_CLR (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
|
||||
#define SPITZ_SCP_SUS_SET 0
|
||||
|
||||
/* Spitz Scoop Device (No. 2) GPIOs */
|
||||
/* Suspend States in comments */
|
||||
#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* High */
|
||||
#define SPITZ_SCP2_AKIN_PULLUP SCOOP_GPCR_PA12 /* Keep */
|
||||
#define SPITZ_SCP2_RESERVED_1 SCOOP_GPCR_PA13 /* High */
|
||||
#define SPITZ_SCP2_RESERVED_2 SCOOP_GPCR_PA14 /* Low */
|
||||
#define SPITZ_SCP2_RESERVED_3 SCOOP_GPCR_PA15 /* Low */
|
||||
#define SPITZ_SCP2_RESERVED_4 SCOOP_GPCR_PA16 /* Low */
|
||||
#define SPITZ_SCP2_BACKLIGHT_CONT SCOOP_GPCR_PA17 /* Low */
|
||||
#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Low */
|
||||
#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Low */
|
||||
|
||||
#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \
|
||||
SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
|
||||
SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
|
||||
#define SPITZ_SCP2_IO_OUT (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1)
|
||||
#define SPITZ_SCP2_SUS_CLR (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
|
||||
SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
#define SPITZ_SCP2_SUS_SET (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1)
|
||||
|
||||
|
||||
/* Spitz IRQ Definitions */
|
||||
|
||||
#define SPITZ_IRQ_GPIO_KEY_INT IRQ_GPIO(SPITZ_GPIO_KEY_INT)
|
||||
#define SPITZ_IRQ_GPIO_AC_IN IRQ_GPIO(SPITZ_GPIO_AC_IN)
|
||||
#define SPITZ_IRQ_GPIO_AK_INT IRQ_GPIO(SPITZ_GPIO_AK_INT)
|
||||
#define SPITZ_IRQ_GPIO_HP_IN IRQ_GPIO(SPITZ_GPIO_HP_IN)
|
||||
#define SPITZ_IRQ_GPIO_TP_INT IRQ_GPIO(SPITZ_GPIO_TP_INT)
|
||||
#define SPITZ_IRQ_GPIO_SYNC IRQ_GPIO(SPITZ_GPIO_SYNC)
|
||||
#define SPITZ_IRQ_GPIO_ON_KEY IRQ_GPIO(SPITZ_GPIO_ON_KEY)
|
||||
#define SPITZ_IRQ_GPIO_SWA IRQ_GPIO(SPITZ_GPIO_SWA)
|
||||
#define SPITZ_IRQ_GPIO_SWB IRQ_GPIO(SPITZ_GPIO_SWB)
|
||||
#define SPITZ_IRQ_GPIO_BAT_COVER IRQ_GPIO(SPITZ_GPIO_BAT_COVER)
|
||||
#define SPITZ_IRQ_GPIO_FATAL_BAT IRQ_GPIO(SPITZ_GPIO_FATAL_BAT)
|
||||
#define SPITZ_IRQ_GPIO_CO IRQ_GPIO(SPITZ_GPIO_CO)
|
||||
#define SPITZ_IRQ_GPIO_CF_IRQ IRQ_GPIO(SPITZ_GPIO_CF_IRQ)
|
||||
#define SPITZ_IRQ_GPIO_CF_CD IRQ_GPIO(SPITZ_GPIO_CF_CD)
|
||||
#define SPITZ_IRQ_GPIO_CF2_IRQ IRQ_GPIO(SPITZ_GPIO_CF2_IRQ)
|
||||
#define SPITZ_IRQ_GPIO_nSD_INT IRQ_GPIO(SPITZ_GPIO_nSD_INT)
|
||||
#define SPITZ_IRQ_GPIO_nSD_DETECT IRQ_GPIO(SPITZ_GPIO_nSD_DETECT)
|
||||
|
||||
/*
|
||||
* Shared data structures
|
||||
*/
|
||||
extern struct platform_device spitzscoop_device;
|
||||
extern struct platform_device spitzscoop2_device;
|
||||
extern struct platform_device spitzssp_device;
|
||||
extern struct sharpsl_charger_machinfo spitz_pm_machinfo;
|
||||
|
||||
extern void spitz_lcd_power(int on);
|
||||
@@ -99,10 +99,6 @@ __arch_adjust_zones(int node, unsigned long *size, unsigned long *holes)
|
||||
#define LOCAL_MAP_NR(addr) \
|
||||
(((unsigned long)(addr) & 0x07ffffff) >> PAGE_SHIFT)
|
||||
|
||||
#else
|
||||
|
||||
#define PFN_TO_NID(addr) (0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
16
include/asm-arm/hardware/arm_twd.h
Normal file
16
include/asm-arm/hardware/arm_twd.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef __ASM_HARDWARE_TWD_H
|
||||
#define __ASM_HARDWARE_TWD_H
|
||||
|
||||
#define TWD_TIMER_LOAD 0x00
|
||||
#define TWD_TIMER_COUNTER 0x04
|
||||
#define TWD_TIMER_CONTROL 0x08
|
||||
#define TWD_TIMER_INTSTAT 0x0C
|
||||
|
||||
#define TWD_WDOG_LOAD 0x20
|
||||
#define TWD_WDOG_COUNTER 0x24
|
||||
#define TWD_WDOG_CONTROL 0x28
|
||||
#define TWD_WDOG_INTSTAT 0x2C
|
||||
#define TWD_WDOG_RESETSTAT 0x30
|
||||
#define TWD_WDOG_DISABLE 0x34
|
||||
|
||||
#endif
|
||||
@@ -50,7 +50,7 @@ struct machine_desc {
|
||||
*/
|
||||
#define MACHINE_START(_type,_name) \
|
||||
const struct machine_desc __mach_desc_##_type \
|
||||
__attribute__((__section__(".arch.info"))) = { \
|
||||
__attribute__((__section__(".arch.info.init"))) = { \
|
||||
.nr = MACH_TYPE_##_type, \
|
||||
.name = _name,
|
||||
|
||||
|
||||
@@ -160,12 +160,25 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
|
||||
#define page_to_pfn(page) \
|
||||
(( (page) - page_zone(page)->zone_mem_map) \
|
||||
+ page_zone(page)->zone_start_pfn)
|
||||
|
||||
#define pfn_to_page(pfn) \
|
||||
(PFN_TO_MAPBASE(pfn) + LOCAL_MAP_NR((pfn) << PAGE_SHIFT))
|
||||
#define pfn_valid(pfn) (PFN_TO_NID(pfn) < MAX_NUMNODES)
|
||||
|
||||
#define pfn_valid(pfn) \
|
||||
({ \
|
||||
unsigned int nid = PFN_TO_NID(pfn); \
|
||||
int valid = nid < MAX_NUMNODES; \
|
||||
if (valid) { \
|
||||
pg_data_t *node = NODE_DATA(nid); \
|
||||
valid = (pfn - node->node_start_pfn) < \
|
||||
node->node_spanned_pages; \
|
||||
} \
|
||||
valid; \
|
||||
})
|
||||
|
||||
#define virt_to_page(kaddr) \
|
||||
(ADDR_TO_MAPBASE(kaddr) + LOCAL_MAP_NR(kaddr))
|
||||
|
||||
#define virt_addr_valid(kaddr) (KVADDR_TO_NID(kaddr) < MAX_NUMNODES)
|
||||
|
||||
/*
|
||||
|
||||
@@ -445,12 +445,9 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
||||
#define HAVE_ARCH_UNMAPPED_AREA
|
||||
|
||||
/*
|
||||
* remap a physical address `phys' of size `size' with page protection `prot'
|
||||
* remap a physical page `pfn' of size `size' with page protection `prot'
|
||||
* into virtual address `from'
|
||||
*/
|
||||
#define io_remap_page_range(vma,from,phys,size,prot) \
|
||||
remap_pfn_range(vma, from, (phys) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma,from,pfn,size,prot) \
|
||||
remap_pfn_range(vma, from, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ struct tagtable {
|
||||
int (*parse)(const struct tag *);
|
||||
};
|
||||
|
||||
#define __tag __attribute_used__ __attribute__((__section__(".taglist")))
|
||||
#define __tag __attribute_used__ __attribute__((__section__(".taglist.init")))
|
||||
#define __tagtable(tag, fn) \
|
||||
static struct tagtable __tagtable_##fn __tag = { tag, fn }
|
||||
|
||||
@@ -213,6 +213,6 @@ struct early_params {
|
||||
|
||||
#define __early_param(name,fn) \
|
||||
static struct early_params __early_##fn __attribute_used__ \
|
||||
__attribute__((__section__("__early_param"))) = { name, fn }
|
||||
__attribute__((__section__(".early_param.init"))) = { name, fn }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -294,12 +294,9 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
|
||||
#include <asm-generic/pgtable.h>
|
||||
|
||||
/*
|
||||
* remap a physical address `phys' of size `size' with page protection `prot'
|
||||
* remap a physical page `pfn' of size `size' with page protection `prot'
|
||||
* into virtual address `from'
|
||||
*/
|
||||
#define io_remap_page_range(vma,from,phys,size,prot) \
|
||||
remap_pfn_range(vma, from, (phys) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma,from,pfn,size,prot) \
|
||||
remap_pfn_range(vma, from, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -500,9 +500,6 @@ static inline int pte_file(pte_t pte)
|
||||
#define PageSkip(page) (0)
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -52,8 +52,6 @@ extern int is_in_rom(unsigned long);
|
||||
* No page table caches to initialise
|
||||
*/
|
||||
#define pgtable_cache_init() do { } while (0)
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
@@ -61,7 +61,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
if (op == FUTEX_OP_SET)
|
||||
__futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
|
||||
else {
|
||||
#ifndef CONFIG_X86_BSWAP
|
||||
#if !defined(CONFIG_X86_BSWAP) && !defined(CONFIG_UML)
|
||||
if (boot_cpu_data.x86 == 3)
|
||||
ret = -ENOSYS;
|
||||
else
|
||||
|
||||
@@ -431,9 +431,6 @@ extern void noexec_setup(const char *str);
|
||||
#define kern_addr_valid(addr) (1)
|
||||
#endif /* CONFIG_FLATMEM */
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -443,10 +443,6 @@ extern void paging_init (void);
|
||||
#define pte_to_pgoff(pte) ((pte_val(pte) << 1) >> 3)
|
||||
#define pgoff_to_pte(off) ((pte_t) { ((off) << 2) | _PAGE_FILE })
|
||||
|
||||
/* XXX is this right? */
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -57,7 +57,9 @@
|
||||
#include <linux/config.h>
|
||||
|
||||
#include <asm/fpu.h>
|
||||
#ifndef ASM_OFFSETS_C
|
||||
#include <asm/asm-offsets.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Base-2 logarithm of number of pages to allocate per task structure
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
#ifndef _ASM_IA64_THREAD_INFO_H
|
||||
#define _ASM_IA64_THREAD_INFO_H
|
||||
|
||||
#ifndef ASM_OFFSETS_C
|
||||
#include <asm/asm-offsets.h>
|
||||
#endif
|
||||
#include <asm/processor.h>
|
||||
#include <asm/ptrace.h>
|
||||
|
||||
@@ -51,9 +53,14 @@ struct thread_info {
|
||||
}, \
|
||||
}
|
||||
|
||||
#ifndef ASM_OFFSETS_C
|
||||
/* how to get the thread information struct from C */
|
||||
#define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE))
|
||||
#define alloc_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE))
|
||||
#else
|
||||
#define current_thread_info() ((struct thread_info *) 0)
|
||||
#define alloc_thread_info(tsk) ((struct thread_info *) 0)
|
||||
#endif
|
||||
#define free_thread_info(ti) /* nothing */
|
||||
|
||||
#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -378,9 +378,6 @@ static inline void pmd_set(pmd_t * pmdp, pte_t * ptep)
|
||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -141,9 +141,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -56,8 +56,6 @@ extern int is_in_rom(unsigned long);
|
||||
* No page table caches to initialise.
|
||||
*/
|
||||
#define pgtable_cache_init() do { } while (0)
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
@@ -358,16 +358,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
||||
extern phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size);
|
||||
extern int remap_pfn_range(struct vm_area_struct *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot);
|
||||
|
||||
static inline int io_remap_page_range(struct vm_area_struct *vma,
|
||||
unsigned long vaddr,
|
||||
unsigned long paddr,
|
||||
unsigned long size,
|
||||
pgprot_t prot)
|
||||
{
|
||||
phys_t phys_addr_high = fixup_bigphys_addr(paddr, size);
|
||||
return remap_pfn_range(vma, vaddr, phys_addr_high >> PAGE_SHIFT, size, prot);
|
||||
}
|
||||
|
||||
static inline int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
unsigned long vaddr,
|
||||
unsigned long pfn,
|
||||
@@ -378,8 +368,6 @@ static inline int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
return remap_pfn_range(vma, vaddr, pfn, size, prot);
|
||||
}
|
||||
#else
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -498,9 +498,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -138,6 +138,16 @@ irq_canonicalize(int irq)
|
||||
#define SIU_IRQ7 (14)
|
||||
#define SIU_LEVEL7 (15)
|
||||
|
||||
#define MPC8xx_INT_FEC1 SIU_LEVEL1
|
||||
#define MPC8xx_INT_FEC2 SIU_LEVEL3
|
||||
|
||||
#define MPC8xx_INT_SCC1 (CPM_IRQ_OFFSET + CPMVEC_SCC1)
|
||||
#define MPC8xx_INT_SCC2 (CPM_IRQ_OFFSET + CPMVEC_SCC2)
|
||||
#define MPC8xx_INT_SCC3 (CPM_IRQ_OFFSET + CPMVEC_SCC3)
|
||||
#define MPC8xx_INT_SCC4 (CPM_IRQ_OFFSET + CPMVEC_SCC4)
|
||||
#define MPC8xx_INT_SMC1 (CPM_IRQ_OFFSET + CPMVEC_SMC1)
|
||||
#define MPC8xx_INT_SMC2 (CPM_IRQ_OFFSET + CPMVEC_SMC2)
|
||||
|
||||
/* The internal interrupts we can configure as we see fit.
|
||||
* My personal preference is CPM at level 2, which puts it above the
|
||||
* MBX PCI/ISA/IDE interrupts.
|
||||
|
||||
@@ -97,6 +97,22 @@ extern unsigned char __res[];
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
enum ppc_sys_devices {
|
||||
MPC8xx_CPM_FEC1,
|
||||
MPC8xx_CPM_FEC2,
|
||||
MPC8xx_CPM_I2C,
|
||||
MPC8xx_CPM_SCC1,
|
||||
MPC8xx_CPM_SCC2,
|
||||
MPC8xx_CPM_SCC3,
|
||||
MPC8xx_CPM_SCC4,
|
||||
MPC8xx_CPM_SPI,
|
||||
MPC8xx_CPM_MCC1,
|
||||
MPC8xx_CPM_MCC2,
|
||||
MPC8xx_CPM_SMC1,
|
||||
MPC8xx_CPM_SMC2,
|
||||
MPC8xx_CPM_USB,
|
||||
};
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
#endif /* CONFIG_8xx */
|
||||
#endif /* __CONFIG_8xx_DEFS */
|
||||
|
||||
@@ -119,6 +119,14 @@ extern spinlock_t mv64x60_lock;
|
||||
|
||||
#define MV64x60_64BIT_WIN_COUNT 24
|
||||
|
||||
/* Watchdog Platform Device, Driver Data */
|
||||
#define MV64x60_WDT_NAME "wdt"
|
||||
|
||||
struct mv64x60_wdt_pdata {
|
||||
int timeout; /* watchdog expiry in seconds, default 10 */
|
||||
int bus_clk; /* bus clock in MHz, default 133 */
|
||||
};
|
||||
|
||||
/*
|
||||
* Define a structure that's used to pass in config information to the
|
||||
* core routines.
|
||||
|
||||
@@ -812,15 +812,6 @@ extern void kernel_set_cachemode (unsigned long address, unsigned long size,
|
||||
#ifdef CONFIG_PHYS_64BIT
|
||||
extern int remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
|
||||
unsigned long paddr, unsigned long size, pgprot_t prot);
|
||||
static inline int io_remap_page_range(struct vm_area_struct *vma,
|
||||
unsigned long vaddr,
|
||||
unsigned long paddr,
|
||||
unsigned long size,
|
||||
pgprot_t prot)
|
||||
{
|
||||
phys_addr_t paddr64 = fixup_bigphys_addr(paddr, size);
|
||||
return remap_pfn_range(vma, vaddr, paddr64 >> PAGE_SHIFT, size, prot);
|
||||
}
|
||||
|
||||
static inline int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
unsigned long vaddr,
|
||||
@@ -832,8 +823,6 @@ static inline int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
return remap_pfn_range(vma, vaddr, paddr64 >> PAGE_SHIFT, size, prot);
|
||||
}
|
||||
#else
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
#endif
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#include <asm/mpc83xx.h>
|
||||
#elif defined(CONFIG_85xx)
|
||||
#include <asm/mpc85xx.h>
|
||||
#elif defined(CONFIG_8xx)
|
||||
#include <asm/mpc8xx.h>
|
||||
#elif defined(CONFIG_PPC_MPC52xx)
|
||||
#include <asm/mpc52xx.h>
|
||||
#elif defined(CONFIG_MPC10X_BRIDGE)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm/uaccess.h>
|
||||
@@ -72,7 +72,7 @@ static inline void flush_tlb_page(struct vm_area_struct *vma,
|
||||
static inline void flush_tlb_page_nohash(struct vm_area_struct *vma,
|
||||
unsigned long vmaddr)
|
||||
{ _tlbie(vmaddr); }
|
||||
static inline void flush_tlb_range(struct mm_struct *mm,
|
||||
static inline void flush_tlb_range(struct vm_area_struct *vma,
|
||||
unsigned long start, unsigned long end)
|
||||
{ __tlbia(); }
|
||||
static inline void flush_tlb_kernel_range(unsigned long start,
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -277,9 +277,6 @@ typedef pte_t *pte_addr_t;
|
||||
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -482,9 +482,6 @@ extern void update_mmu_cache(struct vm_area_struct * vma,
|
||||
#define PageSkip(page) (0)
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
#include <linux/config.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/* Flushing for D-cache alias handling is only needed if
|
||||
* the page size is smaller than 16K.
|
||||
*/
|
||||
#if PAGE_SHIFT < 14
|
||||
#define DCACHE_ALIASING_POSSIBLE
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/mm.h>
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/spitfire.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#ifndef MAX_HWIFS
|
||||
# ifdef CONFIG_BLK_DEV_IDEPCI
|
||||
|
||||
@@ -21,6 +21,13 @@
|
||||
#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
|
||||
/* Flushing for D-cache alias handling is only needed if
|
||||
* the page size is smaller than 16K.
|
||||
*/
|
||||
#if PAGE_SHIFT < 14
|
||||
#define DCACHE_ALIASING_POSSIBLE
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <asm/spitfire.h>
|
||||
#include <asm/cpudata.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/* Page table allocation/freeing. */
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
@@ -24,21 +24,23 @@
|
||||
#include <asm/processor.h>
|
||||
#include <asm/const.h>
|
||||
|
||||
/* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 16MB).
|
||||
* The page copy blockops use 0x1000000 to 0x18000000 (16MB --> 24MB).
|
||||
/* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 32MB).
|
||||
* The page copy blockops can use 0x2000000 to 0x10000000.
|
||||
* The PROM resides in an area spanning 0xf0000000 to 0x100000000.
|
||||
* The vmalloc area spans 0x140000000 to 0x200000000.
|
||||
* The vmalloc area spans 0x100000000 to 0x200000000.
|
||||
* Since modules need to be in the lowest 32-bits of the address space,
|
||||
* we place them right before the OBP area from 0x10000000 to 0xf0000000.
|
||||
* There is a single static kernel PMD which maps from 0x0 to address
|
||||
* 0x400000000.
|
||||
*/
|
||||
#define TLBTEMP_BASE _AC(0x0000000001000000,UL)
|
||||
#define MODULES_VADDR _AC(0x0000000002000000,UL)
|
||||
#define MODULES_LEN _AC(0x000000007e000000,UL)
|
||||
#define MODULES_END _AC(0x0000000080000000,UL)
|
||||
#define VMALLOC_START _AC(0x0000000140000000,UL)
|
||||
#define VMALLOC_END _AC(0x0000000200000000,UL)
|
||||
#define TLBTEMP_BASE _AC(0x0000000002000000,UL)
|
||||
#define MODULES_VADDR _AC(0x0000000010000000,UL)
|
||||
#define MODULES_LEN _AC(0x00000000e0000000,UL)
|
||||
#define MODULES_END _AC(0x00000000f0000000,UL)
|
||||
#define LOW_OBP_ADDRESS _AC(0x00000000f0000000,UL)
|
||||
#define HI_OBP_ADDRESS _AC(0x0000000100000000,UL)
|
||||
#define VMALLOC_START _AC(0x0000000100000000,UL)
|
||||
#define VMALLOC_END _AC(0x0000000200000000,UL)
|
||||
|
||||
/* XXX All of this needs to be rethought so we can take advantage
|
||||
* XXX cheetah's full 64-bit virtual address space, ie. no more hole
|
||||
|
||||
@@ -1,53 +1,12 @@
|
||||
#ifndef _ASM_FUTEX_H
|
||||
#define _ASM_FUTEX_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifndef __UM_FUTEX_H
|
||||
#define __UM_FUTEX_H
|
||||
|
||||
#include <linux/futex.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
static inline int
|
||||
futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
{
|
||||
int op = (encoded_op >> 28) & 7;
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
|
||||
return -EFAULT;
|
||||
|
||||
inc_preempt_count();
|
||||
|
||||
switch (op) {
|
||||
case FUTEX_OP_SET:
|
||||
case FUTEX_OP_ADD:
|
||||
case FUTEX_OP_OR:
|
||||
case FUTEX_OP_ANDN:
|
||||
case FUTEX_OP_XOR:
|
||||
default:
|
||||
ret = -ENOSYS;
|
||||
}
|
||||
|
||||
dec_preempt_count();
|
||||
|
||||
if (!ret) {
|
||||
switch (cmp) {
|
||||
case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
|
||||
case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
|
||||
case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
|
||||
case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
|
||||
case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
|
||||
case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
|
||||
default: ret = -ENOSYS;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#include "asm/arch/futex.h"
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -21,6 +21,7 @@ struct thread_struct {
|
||||
* copy_thread) to mark that we are begin called from userspace (fork /
|
||||
* vfork / clone), and reset to 0 after. It is left to 0 when called
|
||||
* from kernelspace (i.e. kernel_thread() or fork_idle(), as of 2.6.11). */
|
||||
struct task_struct *saved_task;
|
||||
int forking;
|
||||
int nsyscalls;
|
||||
struct pt_regs regs;
|
||||
|
||||
@@ -3,6 +3,4 @@
|
||||
|
||||
#include "asm/system-generic.h"
|
||||
|
||||
#define __HAVE_ARCH_CMPXCHG 1
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
|
||||
int cmp = (encoded_op >> 24) & 15;
|
||||
int oparg = (encoded_op << 8) >> 20;
|
||||
int cmparg = (encoded_op << 20) >> 20;
|
||||
int oldval = 0, ret, tem;
|
||||
int oldval = 0, ret;
|
||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||
oparg = 1 << oparg;
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <linux/smp.h>
|
||||
|
||||
#include <asm/segment.h>
|
||||
#include <asm/mmu.h>
|
||||
|
||||
|
||||
@@ -421,9 +421,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||
|
||||
extern int kern_addr_valid(unsigned long addr);
|
||||
|
||||
#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
|
||||
|
||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||
|
||||
|
||||
@@ -441,11 +441,11 @@ extern void update_mmu_cache(struct vm_area_struct * vma,
|
||||
unsigned long address, pte_t pte);
|
||||
|
||||
/*
|
||||
* remap a physical address `phys' of size `size' with page protection `prot'
|
||||
* remap a physical page `pfn' of size `size' with page protection `prot'
|
||||
* into virtual address `from'
|
||||
*/
|
||||
#define io_remap_page_range(vma,from,phys,size,prot) \
|
||||
remap_pfn_range(vma, from, (phys) >> PAGE_SHIFT, size, prot)
|
||||
#define io_remap_pfn_range(vma,from,pfn,size,prot) \
|
||||
remap_pfn_range(vma, from, pfn, size, prot)
|
||||
|
||||
|
||||
/* No page table caches to init */
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */
|
||||
#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */
|
||||
|
||||
#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages uninteresting to kernel */
|
||||
#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
|
||||
#define AUDIT_USER_AVC 1107 /* We filter this differently */
|
||||
#define AUDIT_LAST_USER_MSG 1199
|
||||
|
||||
#define AUDIT_DAEMON_START 1200 /* Daemon startup record */
|
||||
@@ -75,10 +76,15 @@
|
||||
#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
|
||||
|
||||
/* Rule flags */
|
||||
#define AUDIT_PER_TASK 0x01 /* Apply rule at task creation (not syscall) */
|
||||
#define AUDIT_AT_ENTRY 0x02 /* Apply rule at syscall entry */
|
||||
#define AUDIT_AT_EXIT 0x04 /* Apply rule at syscall exit */
|
||||
#define AUDIT_PREPEND 0x10 /* Prepend to front of list */
|
||||
#define AUDIT_FILTER_USER 0x00 /* Apply rule to user-generated messages */
|
||||
#define AUDIT_FILTER_TASK 0x01 /* Apply rule at task creation (not syscall) */
|
||||
#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
|
||||
#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
|
||||
#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
|
||||
|
||||
#define AUDIT_NR_FILTERS 5
|
||||
|
||||
#define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */
|
||||
|
||||
/* Rule actions */
|
||||
#define AUDIT_NEVER 0 /* Do not build context if rule matches */
|
||||
@@ -199,6 +205,7 @@ struct audit_sig_info {
|
||||
struct audit_buffer;
|
||||
struct audit_context;
|
||||
struct inode;
|
||||
struct netlink_skb_parms;
|
||||
|
||||
#define AUDITSC_INVALID 0
|
||||
#define AUDITSC_SUCCESS 1
|
||||
@@ -215,7 +222,7 @@ extern void audit_syscall_entry(struct task_struct *task, int arch,
|
||||
extern void audit_syscall_exit(struct task_struct *task, int failed, long return_code);
|
||||
extern void audit_getname(const char *name);
|
||||
extern void audit_putname(const char *name);
|
||||
extern void audit_inode(const char *name, const struct inode *inode);
|
||||
extern void audit_inode(const char *name, const struct inode *inode, unsigned flags);
|
||||
|
||||
/* Private API (for audit.c only) */
|
||||
extern int audit_receive_filter(int type, int pid, int uid, int seq,
|
||||
@@ -230,6 +237,7 @@ extern int audit_socketcall(int nargs, unsigned long *args);
|
||||
extern int audit_sockaddr(int len, void *addr);
|
||||
extern int audit_avc_path(struct dentry *dentry, struct vfsmount *mnt);
|
||||
extern void audit_signal_info(int sig, struct task_struct *t);
|
||||
extern int audit_filter_user(struct netlink_skb_parms *cb, int type);
|
||||
#else
|
||||
#define audit_alloc(t) ({ 0; })
|
||||
#define audit_free(t) do { ; } while (0)
|
||||
@@ -237,7 +245,7 @@ extern void audit_signal_info(int sig, struct task_struct *t);
|
||||
#define audit_syscall_exit(t,f,r) do { ; } while (0)
|
||||
#define audit_getname(n) do { ; } while (0)
|
||||
#define audit_putname(n) do { ; } while (0)
|
||||
#define audit_inode(n,i) do { ; } while (0)
|
||||
#define audit_inode(n,i,f) do { ; } while (0)
|
||||
#define audit_receive_filter(t,p,u,s,d,l) ({ -EOPNOTSUPP; })
|
||||
#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0)
|
||||
#define audit_get_loginuid(c) ({ -1; })
|
||||
@@ -246,16 +254,17 @@ extern void audit_signal_info(int sig, struct task_struct *t);
|
||||
#define audit_sockaddr(len, addr) ({ 0; })
|
||||
#define audit_avc_path(dentry, mnt) ({ 0; })
|
||||
#define audit_signal_info(s,t) do { ; } while (0)
|
||||
#define audit_filter_user(cb,t) ({ 1; })
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AUDIT
|
||||
/* These are defined in audit.c */
|
||||
/* Public API */
|
||||
extern void audit_log(struct audit_context *ctx, int type,
|
||||
const char *fmt, ...)
|
||||
__attribute__((format(printf,3,4)));
|
||||
extern void audit_log(struct audit_context *ctx, int gfp_mask,
|
||||
int type, const char *fmt, ...)
|
||||
__attribute__((format(printf,4,5)));
|
||||
|
||||
extern struct audit_buffer *audit_log_start(struct audit_context *ctx,int type);
|
||||
extern struct audit_buffer *audit_log_start(struct audit_context *ctx, int gfp_mask, int type);
|
||||
extern void audit_log_format(struct audit_buffer *ab,
|
||||
const char *fmt, ...)
|
||||
__attribute__((format(printf,2,3)));
|
||||
@@ -274,9 +283,10 @@ extern void audit_send_reply(int pid, int seq, int type,
|
||||
int done, int multi,
|
||||
void *payload, int size);
|
||||
extern void audit_log_lost(const char *message);
|
||||
extern struct semaphore audit_netlink_sem;
|
||||
#else
|
||||
#define audit_log(c,t,f,...) do { ; } while (0)
|
||||
#define audit_log_start(c,t) ({ NULL; })
|
||||
#define audit_log(c,g,t,f,...) do { ; } while (0)
|
||||
#define audit_log_start(c,g,t) ({ NULL; })
|
||||
#define audit_log_vformat(b,f,a) do { ; } while (0)
|
||||
#define audit_log_format(b,f,...) do { ; } while (0)
|
||||
#define audit_log_end(b) do { ; } while (0)
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
* linux/byteorder_generic.h
|
||||
* Generic Byte-reordering support
|
||||
*
|
||||
* The "... p" macros, like le64_to_cpup, can be used with pointers
|
||||
* to unaligned data, but there will be a performance penalty on
|
||||
* some architectures. Use get_unaligned for unaligned data.
|
||||
*
|
||||
* Francois-Rene Rideau <fare@tunes.org> 19970707
|
||||
* gathered all the good ideas from all asm-foo/byteorder.h into one file,
|
||||
* cleaned them up.
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/* Structure describing an Internet (DCCP) socket address. */
|
||||
struct sockaddr_dccp {
|
||||
__u16 sdccp_family; /* Address family */
|
||||
__u16 sdccp_port; /* Port number */
|
||||
__u32 sdccp_addr; /* Internet address */
|
||||
__u32 sdccp_service; /* Service */
|
||||
/* Pad to size of `struct sockaddr': 16 bytes . */
|
||||
__u32 sdccp_pad;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dccp_hdr - generic part of DCCP packet header
|
||||
*
|
||||
@@ -188,6 +178,11 @@ enum {
|
||||
|
||||
/* DCCP socket options */
|
||||
#define DCCP_SOCKOPT_PACKET_SIZE 1
|
||||
#define DCCP_SOCKOPT_SERVICE 2
|
||||
#define DCCP_SOCKOPT_CCID_RX_INFO 128
|
||||
#define DCCP_SOCKOPT_CCID_TX_INFO 192
|
||||
|
||||
#define DCCP_SERVICE_LIST_MAX_LEN 32
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
@@ -337,7 +332,8 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb)
|
||||
*/
|
||||
struct dccp_options {
|
||||
__u64 dccpo_sequence_window;
|
||||
__u8 dccpo_ccid;
|
||||
__u8 dccpo_rx_ccid;
|
||||
__u8 dccpo_tx_ccid;
|
||||
__u8 dccpo_send_ack_vector;
|
||||
__u8 dccpo_send_ndp_count;
|
||||
};
|
||||
@@ -360,14 +356,8 @@ static inline struct dccp_request_sock *dccp_rsk(const struct request_sock *req)
|
||||
|
||||
extern struct inet_timewait_death_row dccp_death_row;
|
||||
|
||||
/* Read about the ECN nonce to see why it is 253 */
|
||||
#define DCCP_MAX_ACK_VECTOR_LEN 253
|
||||
|
||||
struct dccp_options_received {
|
||||
u32 dccpor_ndp:24,
|
||||
dccpor_ack_vector_len:8;
|
||||
u32 dccpor_ack_vector_idx:10;
|
||||
/* 22 bits hole, try to pack */
|
||||
u32 dccpor_ndp; /* only 24 bits */
|
||||
u32 dccpor_timestamp;
|
||||
u32 dccpor_timestamp_echo;
|
||||
u32 dccpor_elapsed_time;
|
||||
@@ -382,6 +372,27 @@ enum dccp_role {
|
||||
DCCP_ROLE_SERVER,
|
||||
};
|
||||
|
||||
struct dccp_service_list {
|
||||
__u32 dccpsl_nr;
|
||||
__u32 dccpsl_list[0];
|
||||
};
|
||||
|
||||
#define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1)
|
||||
|
||||
static inline int dccp_list_has_service(const struct dccp_service_list *sl,
|
||||
const u32 service)
|
||||
{
|
||||
if (likely(sl != NULL)) {
|
||||
u32 i = sl->dccpsl_nr;
|
||||
while (i--)
|
||||
if (sl->dccpsl_list[i] == service)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct dccp_ackvec;
|
||||
|
||||
/**
|
||||
* struct dccp_sock - DCCP socket state
|
||||
*
|
||||
@@ -402,7 +413,7 @@ enum dccp_role {
|
||||
* @dccps_packet_size - Set thru setsockopt
|
||||
* @dccps_role - Role of this sock, one of %dccp_role
|
||||
* @dccps_ndp_count - number of Non Data Packets since last data packet
|
||||
* @dccps_hc_rx_ackpkts - receiver half connection acked packets
|
||||
* @dccps_hc_rx_ackvec - rx half connection ack vector
|
||||
*/
|
||||
struct dccp_sock {
|
||||
/* inet_connection_sock has to be the first member of dccp_sock */
|
||||
@@ -417,7 +428,8 @@ struct dccp_sock {
|
||||
__u64 dccps_gss;
|
||||
__u64 dccps_gsr;
|
||||
__u64 dccps_gar;
|
||||
unsigned long dccps_service;
|
||||
__u32 dccps_service;
|
||||
struct dccp_service_list *dccps_service_list;
|
||||
struct timeval dccps_timestamp_time;
|
||||
__u32 dccps_timestamp_echo;
|
||||
__u32 dccps_packet_size;
|
||||
@@ -426,7 +438,7 @@ struct dccp_sock {
|
||||
__u32 dccps_pmtu_cookie;
|
||||
__u32 dccps_mss_cache;
|
||||
struct dccp_options dccps_options;
|
||||
struct dccp_ackpkts *dccps_hc_rx_ackpkts;
|
||||
struct dccp_ackvec *dccps_hc_rx_ackvec;
|
||||
void *dccps_hc_rx_ccid_private;
|
||||
void *dccps_hc_tx_ccid_private;
|
||||
struct ccid *dccps_hc_rx_ccid;
|
||||
@@ -443,6 +455,11 @@ static inline struct dccp_sock *dccp_sk(const struct sock *sk)
|
||||
return (struct dccp_sock *)sk;
|
||||
}
|
||||
|
||||
static inline int dccp_service_not_initialized(const struct sock *sk)
|
||||
{
|
||||
return dccp_sk(sk)->dccps_service == DCCP_SERVICE_INVALID_VALUE;
|
||||
}
|
||||
|
||||
static inline const char *dccp_role(const struct sock *sk)
|
||||
{
|
||||
switch (dccp_sk(sk)->dccps_role) {
|
||||
|
||||
@@ -619,7 +619,7 @@ struct fb_tilemap {
|
||||
__u32 height; /* height of each tile in scanlines */
|
||||
__u32 depth; /* color depth of each tile */
|
||||
__u32 length; /* number of tiles in the map */
|
||||
__u8 *data; /* actual tile map: a bitmap array, packed
|
||||
const __u8 *data; /* actual tile map: a bitmap array, packed
|
||||
to the nearest byte */
|
||||
};
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
|
||||
struct font_desc {
|
||||
int idx;
|
||||
char *name;
|
||||
const char *name;
|
||||
int width, height;
|
||||
void *data;
|
||||
const void *data;
|
||||
int pref;
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ struct font_desc {
|
||||
#define ACORN8x8_IDX 8
|
||||
#define MINI4x6_IDX 9
|
||||
|
||||
extern struct font_desc font_vga_8x8,
|
||||
extern const struct font_desc font_vga_8x8,
|
||||
font_vga_8x16,
|
||||
font_pearl_8x8,
|
||||
font_vga_6x11,
|
||||
@@ -45,11 +45,11 @@ extern struct font_desc font_vga_8x8,
|
||||
|
||||
/* Find a font with a specific name */
|
||||
|
||||
extern struct font_desc *find_font(char *name);
|
||||
extern const struct font_desc *find_font(const char *name);
|
||||
|
||||
/* Get the default font for a specific screen size */
|
||||
|
||||
extern struct font_desc *get_default_font(int xres, int yres);
|
||||
extern const struct font_desc *get_default_font(int xres, int yres);
|
||||
|
||||
/* Max. length for the name of a predefined font */
|
||||
#define MAX_FONT_NAME 32
|
||||
|
||||
@@ -230,11 +230,6 @@ struct i2c_adapter {
|
||||
struct device dev; /* the adapter device */
|
||||
struct class_device class_dev; /* the class device */
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
/* No need to set this when you initialize the adapter */
|
||||
int inode;
|
||||
#endif /* def CONFIG_PROC_FS */
|
||||
|
||||
int nr;
|
||||
struct list_head clients;
|
||||
struct list_head list;
|
||||
|
||||
@@ -42,8 +42,8 @@ struct hlist_node;
|
||||
struct vlan_ethhdr {
|
||||
unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
|
||||
unsigned char h_source[ETH_ALEN]; /* source ether addr */
|
||||
unsigned short h_vlan_proto; /* Should always be 0x8100 */
|
||||
unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */
|
||||
__be16 h_vlan_proto; /* Should always be 0x8100 */
|
||||
__be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */
|
||||
unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */
|
||||
};
|
||||
|
||||
@@ -55,8 +55,8 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb)
|
||||
}
|
||||
|
||||
struct vlan_hdr {
|
||||
unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */
|
||||
unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */
|
||||
__be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */
|
||||
__be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */
|
||||
};
|
||||
|
||||
#define VLAN_VID_MASK 0xfff
|
||||
|
||||
@@ -111,29 +111,30 @@ struct js_corr {
|
||||
#define JS_SET_ALL 8
|
||||
|
||||
struct JS_DATA_TYPE {
|
||||
__s32 buttons;
|
||||
__s32 x;
|
||||
__s32 y;
|
||||
int32_t buttons;
|
||||
int32_t x;
|
||||
int32_t y;
|
||||
};
|
||||
|
||||
struct JS_DATA_SAVE_TYPE_32 {
|
||||
__s32 JS_TIMEOUT;
|
||||
__s32 BUSY;
|
||||
__s32 JS_EXPIRETIME;
|
||||
__s32 JS_TIMELIMIT;
|
||||
int32_t JS_TIMEOUT;
|
||||
int32_t BUSY;
|
||||
int32_t JS_EXPIRETIME;
|
||||
int32_t JS_TIMELIMIT;
|
||||
struct JS_DATA_TYPE JS_SAVE;
|
||||
struct JS_DATA_TYPE JS_CORR;
|
||||
};
|
||||
|
||||
struct JS_DATA_SAVE_TYPE_64 {
|
||||
__s32 JS_TIMEOUT;
|
||||
__s32 BUSY;
|
||||
__s64 JS_EXPIRETIME;
|
||||
__s64 JS_TIMELIMIT;
|
||||
int32_t JS_TIMEOUT;
|
||||
int32_t BUSY;
|
||||
int64_t JS_EXPIRETIME;
|
||||
int64_t JS_TIMELIMIT;
|
||||
struct JS_DATA_TYPE JS_SAVE;
|
||||
struct JS_DATA_TYPE JS_CORR;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#if BITS_PER_LONG == 64
|
||||
#define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64
|
||||
#elif BITS_PER_LONG == 32
|
||||
@@ -141,5 +142,6 @@ struct JS_DATA_SAVE_TYPE_64 {
|
||||
#else
|
||||
#error Unexpected BITS_PER_LONG
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_JOYSTICK_H */
|
||||
|
||||
@@ -307,8 +307,8 @@ struct sysinfo {
|
||||
char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
|
||||
};
|
||||
|
||||
extern void BUILD_BUG(void);
|
||||
#define BUILD_BUG_ON(condition) do { if (condition) BUILD_BUG(); } while(0)
|
||||
/* Force a compilation error if condition is false */
|
||||
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
extern int randomize_va_space;
|
||||
|
||||
@@ -136,6 +136,7 @@ extern unsigned int kobjsize(const void *objp);
|
||||
#define VM_EXEC 0x00000004
|
||||
#define VM_SHARED 0x00000008
|
||||
|
||||
/* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */
|
||||
#define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */
|
||||
#define VM_MAYWRITE 0x00000020
|
||||
#define VM_MAYEXEC 0x00000040
|
||||
@@ -350,7 +351,8 @@ static inline void put_page(struct page *page)
|
||||
* only one copy in memory, at most, normally.
|
||||
*
|
||||
* For the non-reserved pages, page_count(page) denotes a reference count.
|
||||
* page_count() == 0 means the page is free.
|
||||
* page_count() == 0 means the page is free. page->lru is then used for
|
||||
* freelist management in the buddy allocator.
|
||||
* page_count() == 1 means the page is used for exactly one purpose
|
||||
* (e.g. a private data page of one process).
|
||||
*
|
||||
@@ -376,10 +378,8 @@ static inline void put_page(struct page *page)
|
||||
* attaches, plus 1 if `private' contains something, plus one for
|
||||
* the page cache itself.
|
||||
*
|
||||
* All pages belonging to an inode are in these doubly linked lists:
|
||||
* mapping->clean_pages, mapping->dirty_pages and mapping->locked_pages;
|
||||
* using the page->list list_head. These fields are also used for
|
||||
* freelist managemet (when page_count()==0).
|
||||
* Instead of keeping dirty/clean pages in per address-space lists, we instead
|
||||
* now tag pages as dirty/under writeback in the radix tree.
|
||||
*
|
||||
* There is also a per-mapping radix tree mapping index to the page
|
||||
* in memory if present. The tree is rooted at mapping->root.
|
||||
|
||||
@@ -133,11 +133,13 @@ enum ip_conntrack_expect_events {
|
||||
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_tcp.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_icmp.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_proto_gre.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_sctp.h>
|
||||
|
||||
/* per conntrack: protocol private data */
|
||||
union ip_conntrack_proto {
|
||||
/* insert conntrack proto private data here */
|
||||
struct ip_ct_gre gre;
|
||||
struct ip_ct_sctp sctp;
|
||||
struct ip_ct_tcp tcp;
|
||||
struct ip_ct_icmp icmp;
|
||||
@@ -148,6 +150,7 @@ union ip_conntrack_expect_proto {
|
||||
};
|
||||
|
||||
/* Add protocol helper include file here */
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_pptp.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_amanda.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_ftp.h>
|
||||
#include <linux/netfilter_ipv4/ip_conntrack_irc.h>
|
||||
@@ -155,12 +158,20 @@ union ip_conntrack_expect_proto {
|
||||
/* per conntrack: application helper private data */
|
||||
union ip_conntrack_help {
|
||||
/* insert conntrack helper private data (master) here */
|
||||
struct ip_ct_pptp_master ct_pptp_info;
|
||||
struct ip_ct_ftp_master ct_ftp_info;
|
||||
struct ip_ct_irc_master ct_irc_info;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IP_NF_NAT_NEEDED
|
||||
#include <linux/netfilter_ipv4/ip_nat.h>
|
||||
#include <linux/netfilter_ipv4/ip_nat_pptp.h>
|
||||
|
||||
/* per conntrack: nat application helper private data */
|
||||
union ip_conntrack_nat_help {
|
||||
/* insert nat helper private data here */
|
||||
struct ip_nat_pptp nat_pptp_info;
|
||||
};
|
||||
#endif
|
||||
|
||||
#include <linux/types.h>
|
||||
@@ -223,6 +234,7 @@ struct ip_conntrack
|
||||
#ifdef CONFIG_IP_NF_NAT_NEEDED
|
||||
struct {
|
||||
struct ip_nat_info info;
|
||||
union ip_conntrack_nat_help help;
|
||||
#if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \
|
||||
defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE)
|
||||
int masq_index;
|
||||
@@ -372,7 +384,7 @@ extern struct ip_conntrack_expect *
|
||||
__ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple);
|
||||
|
||||
extern struct ip_conntrack_expect *
|
||||
ip_conntrack_expect_find_get(const struct ip_conntrack_tuple *tuple);
|
||||
ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple);
|
||||
|
||||
extern struct ip_conntrack_tuple_hash *
|
||||
__ip_conntrack_find(const struct ip_conntrack_tuple *tuple,
|
||||
|
||||
332
include/linux/netfilter_ipv4/ip_conntrack_pptp.h
Normal file
332
include/linux/netfilter_ipv4/ip_conntrack_pptp.h
Normal file
@@ -0,0 +1,332 @@
|
||||
/* PPTP constants and structs */
|
||||
#ifndef _CONNTRACK_PPTP_H
|
||||
#define _CONNTRACK_PPTP_H
|
||||
|
||||
/* state of the control session */
|
||||
enum pptp_ctrlsess_state {
|
||||
PPTP_SESSION_NONE, /* no session present */
|
||||
PPTP_SESSION_ERROR, /* some session error */
|
||||
PPTP_SESSION_STOPREQ, /* stop_sess request seen */
|
||||
PPTP_SESSION_REQUESTED, /* start_sess request seen */
|
||||
PPTP_SESSION_CONFIRMED, /* session established */
|
||||
};
|
||||
|
||||
/* state of the call inside the control session */
|
||||
enum pptp_ctrlcall_state {
|
||||
PPTP_CALL_NONE,
|
||||
PPTP_CALL_ERROR,
|
||||
PPTP_CALL_OUT_REQ,
|
||||
PPTP_CALL_OUT_CONF,
|
||||
PPTP_CALL_IN_REQ,
|
||||
PPTP_CALL_IN_REP,
|
||||
PPTP_CALL_IN_CONF,
|
||||
PPTP_CALL_CLEAR_REQ,
|
||||
};
|
||||
|
||||
|
||||
/* conntrack private data */
|
||||
struct ip_ct_pptp_master {
|
||||
enum pptp_ctrlsess_state sstate; /* session state */
|
||||
|
||||
/* everything below is going to be per-expectation in newnat,
|
||||
* since there could be more than one call within one session */
|
||||
enum pptp_ctrlcall_state cstate; /* call state */
|
||||
u_int16_t pac_call_id; /* call id of PAC, host byte order */
|
||||
u_int16_t pns_call_id; /* call id of PNS, host byte order */
|
||||
|
||||
/* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack
|
||||
* and therefore imposes a fixed limit on the number of maps */
|
||||
struct ip_ct_gre_keymap *keymap_orig, *keymap_reply;
|
||||
};
|
||||
|
||||
/* conntrack_expect private member */
|
||||
struct ip_ct_pptp_expect {
|
||||
enum pptp_ctrlcall_state cstate; /* call state */
|
||||
u_int16_t pac_call_id; /* call id of PAC */
|
||||
u_int16_t pns_call_id; /* call id of PNS */
|
||||
};
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define IP_CONNTR_PPTP PPTP_CONTROL_PORT
|
||||
|
||||
#define PPTP_CONTROL_PORT 1723
|
||||
|
||||
#define PPTP_PACKET_CONTROL 1
|
||||
#define PPTP_PACKET_MGMT 2
|
||||
|
||||
#define PPTP_MAGIC_COOKIE 0x1a2b3c4d
|
||||
|
||||
struct pptp_pkt_hdr {
|
||||
__u16 packetLength;
|
||||
__u16 packetType;
|
||||
__u32 magicCookie;
|
||||
};
|
||||
|
||||
/* PptpControlMessageType values */
|
||||
#define PPTP_START_SESSION_REQUEST 1
|
||||
#define PPTP_START_SESSION_REPLY 2
|
||||
#define PPTP_STOP_SESSION_REQUEST 3
|
||||
#define PPTP_STOP_SESSION_REPLY 4
|
||||
#define PPTP_ECHO_REQUEST 5
|
||||
#define PPTP_ECHO_REPLY 6
|
||||
#define PPTP_OUT_CALL_REQUEST 7
|
||||
#define PPTP_OUT_CALL_REPLY 8
|
||||
#define PPTP_IN_CALL_REQUEST 9
|
||||
#define PPTP_IN_CALL_REPLY 10
|
||||
#define PPTP_IN_CALL_CONNECT 11
|
||||
#define PPTP_CALL_CLEAR_REQUEST 12
|
||||
#define PPTP_CALL_DISCONNECT_NOTIFY 13
|
||||
#define PPTP_WAN_ERROR_NOTIFY 14
|
||||
#define PPTP_SET_LINK_INFO 15
|
||||
|
||||
#define PPTP_MSG_MAX 15
|
||||
|
||||
/* PptpGeneralError values */
|
||||
#define PPTP_ERROR_CODE_NONE 0
|
||||
#define PPTP_NOT_CONNECTED 1
|
||||
#define PPTP_BAD_FORMAT 2
|
||||
#define PPTP_BAD_VALUE 3
|
||||
#define PPTP_NO_RESOURCE 4
|
||||
#define PPTP_BAD_CALLID 5
|
||||
#define PPTP_REMOVE_DEVICE_ERROR 6
|
||||
|
||||
struct PptpControlHeader {
|
||||
__u16 messageType;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
/* FramingCapability Bitmap Values */
|
||||
#define PPTP_FRAME_CAP_ASYNC 0x1
|
||||
#define PPTP_FRAME_CAP_SYNC 0x2
|
||||
|
||||
/* BearerCapability Bitmap Values */
|
||||
#define PPTP_BEARER_CAP_ANALOG 0x1
|
||||
#define PPTP_BEARER_CAP_DIGITAL 0x2
|
||||
|
||||
struct PptpStartSessionRequest {
|
||||
__u16 protocolVersion;
|
||||
__u8 reserved1;
|
||||
__u8 reserved2;
|
||||
__u32 framingCapability;
|
||||
__u32 bearerCapability;
|
||||
__u16 maxChannels;
|
||||
__u16 firmwareRevision;
|
||||
__u8 hostName[64];
|
||||
__u8 vendorString[64];
|
||||
};
|
||||
|
||||
/* PptpStartSessionResultCode Values */
|
||||
#define PPTP_START_OK 1
|
||||
#define PPTP_START_GENERAL_ERROR 2
|
||||
#define PPTP_START_ALREADY_CONNECTED 3
|
||||
#define PPTP_START_NOT_AUTHORIZED 4
|
||||
#define PPTP_START_UNKNOWN_PROTOCOL 5
|
||||
|
||||
struct PptpStartSessionReply {
|
||||
__u16 protocolVersion;
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
__u32 framingCapability;
|
||||
__u32 bearerCapability;
|
||||
__u16 maxChannels;
|
||||
__u16 firmwareRevision;
|
||||
__u8 hostName[64];
|
||||
__u8 vendorString[64];
|
||||
};
|
||||
|
||||
/* PptpStopReasons */
|
||||
#define PPTP_STOP_NONE 1
|
||||
#define PPTP_STOP_PROTOCOL 2
|
||||
#define PPTP_STOP_LOCAL_SHUTDOWN 3
|
||||
|
||||
struct PptpStopSessionRequest {
|
||||
__u8 reason;
|
||||
};
|
||||
|
||||
/* PptpStopSessionResultCode */
|
||||
#define PPTP_STOP_OK 1
|
||||
#define PPTP_STOP_GENERAL_ERROR 2
|
||||
|
||||
struct PptpStopSessionReply {
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
};
|
||||
|
||||
struct PptpEchoRequest {
|
||||
__u32 identNumber;
|
||||
};
|
||||
|
||||
/* PptpEchoReplyResultCode */
|
||||
#define PPTP_ECHO_OK 1
|
||||
#define PPTP_ECHO_GENERAL_ERROR 2
|
||||
|
||||
struct PptpEchoReply {
|
||||
__u32 identNumber;
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
/* PptpFramingType */
|
||||
#define PPTP_ASYNC_FRAMING 1
|
||||
#define PPTP_SYNC_FRAMING 2
|
||||
#define PPTP_DONT_CARE_FRAMING 3
|
||||
|
||||
/* PptpCallBearerType */
|
||||
#define PPTP_ANALOG_TYPE 1
|
||||
#define PPTP_DIGITAL_TYPE 2
|
||||
#define PPTP_DONT_CARE_BEARER_TYPE 3
|
||||
|
||||
struct PptpOutCallRequest {
|
||||
__u16 callID;
|
||||
__u16 callSerialNumber;
|
||||
__u32 minBPS;
|
||||
__u32 maxBPS;
|
||||
__u32 bearerType;
|
||||
__u32 framingType;
|
||||
__u16 packetWindow;
|
||||
__u16 packetProcDelay;
|
||||
__u16 reserved1;
|
||||
__u16 phoneNumberLength;
|
||||
__u16 reserved2;
|
||||
__u8 phoneNumber[64];
|
||||
__u8 subAddress[64];
|
||||
};
|
||||
|
||||
/* PptpCallResultCode */
|
||||
#define PPTP_OUTCALL_CONNECT 1
|
||||
#define PPTP_OUTCALL_GENERAL_ERROR 2
|
||||
#define PPTP_OUTCALL_NO_CARRIER 3
|
||||
#define PPTP_OUTCALL_BUSY 4
|
||||
#define PPTP_OUTCALL_NO_DIAL_TONE 5
|
||||
#define PPTP_OUTCALL_TIMEOUT 6
|
||||
#define PPTP_OUTCALL_DONT_ACCEPT 7
|
||||
|
||||
struct PptpOutCallReply {
|
||||
__u16 callID;
|
||||
__u16 peersCallID;
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
__u16 causeCode;
|
||||
__u32 connectSpeed;
|
||||
__u16 packetWindow;
|
||||
__u16 packetProcDelay;
|
||||
__u32 physChannelID;
|
||||
};
|
||||
|
||||
struct PptpInCallRequest {
|
||||
__u16 callID;
|
||||
__u16 callSerialNumber;
|
||||
__u32 callBearerType;
|
||||
__u32 physChannelID;
|
||||
__u16 dialedNumberLength;
|
||||
__u16 dialingNumberLength;
|
||||
__u8 dialedNumber[64];
|
||||
__u8 dialingNumber[64];
|
||||
__u8 subAddress[64];
|
||||
};
|
||||
|
||||
/* PptpInCallResultCode */
|
||||
#define PPTP_INCALL_ACCEPT 1
|
||||
#define PPTP_INCALL_GENERAL_ERROR 2
|
||||
#define PPTP_INCALL_DONT_ACCEPT 3
|
||||
|
||||
struct PptpInCallReply {
|
||||
__u16 callID;
|
||||
__u16 peersCallID;
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
__u16 packetWindow;
|
||||
__u16 packetProcDelay;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
struct PptpInCallConnected {
|
||||
__u16 peersCallID;
|
||||
__u16 reserved;
|
||||
__u32 connectSpeed;
|
||||
__u16 packetWindow;
|
||||
__u16 packetProcDelay;
|
||||
__u32 callFramingType;
|
||||
};
|
||||
|
||||
struct PptpClearCallRequest {
|
||||
__u16 callID;
|
||||
__u16 reserved;
|
||||
};
|
||||
|
||||
struct PptpCallDisconnectNotify {
|
||||
__u16 callID;
|
||||
__u8 resultCode;
|
||||
__u8 generalErrorCode;
|
||||
__u16 causeCode;
|
||||
__u16 reserved;
|
||||
__u8 callStatistics[128];
|
||||
};
|
||||
|
||||
struct PptpWanErrorNotify {
|
||||
__u16 peersCallID;
|
||||
__u16 reserved;
|
||||
__u32 crcErrors;
|
||||
__u32 framingErrors;
|
||||
__u32 hardwareOverRuns;
|
||||
__u32 bufferOverRuns;
|
||||
__u32 timeoutErrors;
|
||||
__u32 alignmentErrors;
|
||||
};
|
||||
|
||||
struct PptpSetLinkInfo {
|
||||
__u16 peersCallID;
|
||||
__u16 reserved;
|
||||
__u32 sendAccm;
|
||||
__u32 recvAccm;
|
||||
};
|
||||
|
||||
|
||||
struct pptp_priv_data {
|
||||
__u16 call_id;
|
||||
__u16 mcall_id;
|
||||
__u16 pcall_id;
|
||||
};
|
||||
|
||||
union pptp_ctrl_union {
|
||||
struct PptpStartSessionRequest sreq;
|
||||
struct PptpStartSessionReply srep;
|
||||
struct PptpStopSessionRequest streq;
|
||||
struct PptpStopSessionReply strep;
|
||||
struct PptpOutCallRequest ocreq;
|
||||
struct PptpOutCallReply ocack;
|
||||
struct PptpInCallRequest icreq;
|
||||
struct PptpInCallReply icack;
|
||||
struct PptpInCallConnected iccon;
|
||||
struct PptpClearCallRequest clrreq;
|
||||
struct PptpCallDisconnectNotify disc;
|
||||
struct PptpWanErrorNotify wanerr;
|
||||
struct PptpSetLinkInfo setlink;
|
||||
};
|
||||
|
||||
extern int
|
||||
(*ip_nat_pptp_hook_outbound)(struct sk_buff **pskb,
|
||||
struct ip_conntrack *ct,
|
||||
enum ip_conntrack_info ctinfo,
|
||||
struct PptpControlHeader *ctlh,
|
||||
union pptp_ctrl_union *pptpReq);
|
||||
|
||||
extern int
|
||||
(*ip_nat_pptp_hook_inbound)(struct sk_buff **pskb,
|
||||
struct ip_conntrack *ct,
|
||||
enum ip_conntrack_info ctinfo,
|
||||
struct PptpControlHeader *ctlh,
|
||||
union pptp_ctrl_union *pptpReq);
|
||||
|
||||
extern int
|
||||
(*ip_nat_pptp_hook_exp_gre)(struct ip_conntrack_expect *exp_orig,
|
||||
struct ip_conntrack_expect *exp_reply);
|
||||
|
||||
extern void
|
||||
(*ip_nat_pptp_hook_expectfn)(struct ip_conntrack *ct,
|
||||
struct ip_conntrack_expect *exp);
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _CONNTRACK_PPTP_H */
|
||||
114
include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h
Normal file
114
include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h
Normal file
@@ -0,0 +1,114 @@
|
||||
#ifndef _CONNTRACK_PROTO_GRE_H
|
||||
#define _CONNTRACK_PROTO_GRE_H
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/* GRE PROTOCOL HEADER */
|
||||
|
||||
/* GRE Version field */
|
||||
#define GRE_VERSION_1701 0x0
|
||||
#define GRE_VERSION_PPTP 0x1
|
||||
|
||||
/* GRE Protocol field */
|
||||
#define GRE_PROTOCOL_PPTP 0x880B
|
||||
|
||||
/* GRE Flags */
|
||||
#define GRE_FLAG_C 0x80
|
||||
#define GRE_FLAG_R 0x40
|
||||
#define GRE_FLAG_K 0x20
|
||||
#define GRE_FLAG_S 0x10
|
||||
#define GRE_FLAG_A 0x80
|
||||
|
||||
#define GRE_IS_C(f) ((f)&GRE_FLAG_C)
|
||||
#define GRE_IS_R(f) ((f)&GRE_FLAG_R)
|
||||
#define GRE_IS_K(f) ((f)&GRE_FLAG_K)
|
||||
#define GRE_IS_S(f) ((f)&GRE_FLAG_S)
|
||||
#define GRE_IS_A(f) ((f)&GRE_FLAG_A)
|
||||
|
||||
/* GRE is a mess: Four different standards */
|
||||
struct gre_hdr {
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u16 rec:3,
|
||||
srr:1,
|
||||
seq:1,
|
||||
key:1,
|
||||
routing:1,
|
||||
csum:1,
|
||||
version:3,
|
||||
reserved:4,
|
||||
ack:1;
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u16 csum:1,
|
||||
routing:1,
|
||||
key:1,
|
||||
seq:1,
|
||||
srr:1,
|
||||
rec:3,
|
||||
ack:1,
|
||||
reserved:4,
|
||||
version:3;
|
||||
#else
|
||||
#error "Adjust your <asm/byteorder.h> defines"
|
||||
#endif
|
||||
__u16 protocol;
|
||||
};
|
||||
|
||||
/* modified GRE header for PPTP */
|
||||
struct gre_hdr_pptp {
|
||||
__u8 flags; /* bitfield */
|
||||
__u8 version; /* should be GRE_VERSION_PPTP */
|
||||
__u16 protocol; /* should be GRE_PROTOCOL_PPTP */
|
||||
__u16 payload_len; /* size of ppp payload, not inc. gre header */
|
||||
__u16 call_id; /* peer's call_id for this session */
|
||||
__u32 seq; /* sequence number. Present if S==1 */
|
||||
__u32 ack; /* seq number of highest packet recieved by */
|
||||
/* sender in this session */
|
||||
};
|
||||
|
||||
|
||||
/* this is part of ip_conntrack */
|
||||
struct ip_ct_gre {
|
||||
unsigned int stream_timeout;
|
||||
unsigned int timeout;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
struct ip_conntrack_expect;
|
||||
struct ip_conntrack;
|
||||
|
||||
/* structure for original <-> reply keymap */
|
||||
struct ip_ct_gre_keymap {
|
||||
struct list_head list;
|
||||
|
||||
struct ip_conntrack_tuple tuple;
|
||||
};
|
||||
|
||||
/* add new tuple->key_reply pair to keymap */
|
||||
int ip_ct_gre_keymap_add(struct ip_conntrack *ct,
|
||||
struct ip_conntrack_tuple *t,
|
||||
int reply);
|
||||
|
||||
/* delete keymap entries */
|
||||
void ip_ct_gre_keymap_destroy(struct ip_conntrack *ct);
|
||||
|
||||
|
||||
/* get pointer to gre key, if present */
|
||||
static inline u_int32_t *gre_key(struct gre_hdr *greh)
|
||||
{
|
||||
if (!greh->key)
|
||||
return NULL;
|
||||
if (greh->csum || greh->routing)
|
||||
return (u_int32_t *) (greh+sizeof(*greh)+4);
|
||||
return (u_int32_t *) (greh+sizeof(*greh));
|
||||
}
|
||||
|
||||
/* get pointer ot gre csum, if present */
|
||||
static inline u_int16_t *gre_csum(struct gre_hdr *greh)
|
||||
{
|
||||
if (!greh->csum)
|
||||
return NULL;
|
||||
return (u_int16_t *) (greh+sizeof(*greh));
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _CONNTRACK_PROTO_GRE_H */
|
||||
@@ -28,6 +28,9 @@ union ip_conntrack_manip_proto
|
||||
struct {
|
||||
u_int16_t port;
|
||||
} sctp;
|
||||
struct {
|
||||
u_int16_t key; /* key is 32bit, pptp only uses 16 */
|
||||
} gre;
|
||||
};
|
||||
|
||||
/* The manipulable part of the tuple. */
|
||||
@@ -61,6 +64,10 @@ struct ip_conntrack_tuple
|
||||
struct {
|
||||
u_int16_t port;
|
||||
} sctp;
|
||||
struct {
|
||||
u_int16_t key; /* key is 32bit,
|
||||
* pptp only uses 16 */
|
||||
} gre;
|
||||
} u;
|
||||
|
||||
/* The protocol. */
|
||||
|
||||
11
include/linux/netfilter_ipv4/ip_nat_pptp.h
Normal file
11
include/linux/netfilter_ipv4/ip_nat_pptp.h
Normal file
@@ -0,0 +1,11 @@
|
||||
/* PPTP constants and structs */
|
||||
#ifndef _NAT_PPTP_H
|
||||
#define _NAT_PPTP_H
|
||||
|
||||
/* conntrack private data */
|
||||
struct ip_nat_pptp {
|
||||
u_int16_t pns_call_id; /* NAT'ed PNS call id */
|
||||
u_int16_t pac_call_id; /* NAT'ed PAC call id */
|
||||
};
|
||||
|
||||
#endif /* _NAT_PPTP_H */
|
||||
@@ -455,6 +455,9 @@ extern unsigned int ip6t_do_table(struct sk_buff **pskb,
|
||||
|
||||
/* Check for an extension */
|
||||
extern int ip6t_ext_hdr(u8 nexthdr);
|
||||
/* find specified header and get offset to it */
|
||||
extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
|
||||
u8 target);
|
||||
|
||||
#define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1))
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define NETLINK_IP6_FW 13
|
||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
||||
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
||||
#define NETLINK_GENERIC 16
|
||||
|
||||
#define MAX_LINKS 32
|
||||
|
||||
|
||||
@@ -438,17 +438,22 @@ extern int nfsd4_process_open1(struct nfsd4_open *open);
|
||||
extern int nfsd4_process_open2(struct svc_rqst *rqstp,
|
||||
struct svc_fh *current_fh, struct nfsd4_open *open);
|
||||
extern int nfsd4_open_confirm(struct svc_rqst *rqstp,
|
||||
struct svc_fh *current_fh, struct nfsd4_open_confirm *oc);
|
||||
struct svc_fh *current_fh, struct nfsd4_open_confirm *oc,
|
||||
struct nfs4_stateowner **);
|
||||
extern int nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh,
|
||||
struct nfsd4_close *close);
|
||||
struct nfsd4_close *close,
|
||||
struct nfs4_stateowner **replay_owner);
|
||||
extern int nfsd4_open_downgrade(struct svc_rqst *rqstp,
|
||||
struct svc_fh *current_fh, struct nfsd4_open_downgrade *od);
|
||||
struct svc_fh *current_fh, struct nfsd4_open_downgrade *od,
|
||||
struct nfs4_stateowner **replay_owner);
|
||||
extern int nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh,
|
||||
struct nfsd4_lock *lock);
|
||||
struct nfsd4_lock *lock,
|
||||
struct nfs4_stateowner **replay_owner);
|
||||
extern int nfsd4_lockt(struct svc_rqst *rqstp, struct svc_fh *current_fh,
|
||||
struct nfsd4_lockt *lockt);
|
||||
extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh,
|
||||
struct nfsd4_locku *locku);
|
||||
struct nfsd4_locku *locku,
|
||||
struct nfs4_stateowner **replay_owner);
|
||||
extern int
|
||||
nfsd4_release_lockowner(struct svc_rqst *rqstp,
|
||||
struct nfsd4_release_lockowner *rlockowner);
|
||||
|
||||
@@ -447,6 +447,10 @@
|
||||
#define PCI_DEVICE_ID_CIRRUS_7542 0x1200
|
||||
#define PCI_DEVICE_ID_CIRRUS_7543 0x1202
|
||||
#define PCI_DEVICE_ID_CIRRUS_7541 0x1204
|
||||
#define PCI_DEVICE_ID_CIRRUS_4610 0x6001
|
||||
#define PCI_DEVICE_ID_CIRRUS_4612 0x6003
|
||||
#define PCI_DEVICE_ID_CIRRUS_4615 0x6004
|
||||
#define PCI_DEVICE_ID_CIRRUS_4281 0x6005
|
||||
|
||||
#define PCI_VENDOR_ID_IBM 0x1014
|
||||
#define PCI_DEVICE_ID_IBM_FIRE_CORAL 0x000a
|
||||
@@ -487,6 +491,7 @@
|
||||
#define PCI_DEVICE_ID_AMI_MEGARAID2 0x9060
|
||||
|
||||
#define PCI_VENDOR_ID_AMD 0x1022
|
||||
#define PCI_DEVICE_ID_AMD_K8_NB 0x1100
|
||||
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
||||
#define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001
|
||||
#define PCI_DEVICE_ID_AMD_SCSI 0x2020
|
||||
@@ -682,7 +687,9 @@
|
||||
#define PCI_DEVICE_ID_SI_6326 0x6326
|
||||
#define PCI_DEVICE_ID_SI_7001 0x7001
|
||||
#define PCI_DEVICE_ID_SI_7012 0x7012
|
||||
#define PCI_DEVICE_ID_SI_7013 0x7013
|
||||
#define PCI_DEVICE_ID_SI_7016 0x7016
|
||||
#define PCI_DEVICE_ID_SI_7018 0x7018
|
||||
|
||||
#define PCI_VENDOR_ID_HP 0x103c
|
||||
#define PCI_DEVICE_ID_HP_VISUALIZE_EG 0x1005
|
||||
@@ -713,10 +720,12 @@
|
||||
#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
|
||||
#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
|
||||
#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
|
||||
#define PCI_DEVICE_ID_HP_CISS 0x3210
|
||||
#define PCI_DEVICE_ID_HP_CISSA 0x3220
|
||||
#define PCI_DEVICE_ID_HP_CISSB 0x3222
|
||||
#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
|
||||
#define PCI_DEVICE_ID_HP_CISSC 0x3230
|
||||
#define PCI_DEVICE_ID_HP_CISSD 0x3238
|
||||
#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
|
||||
|
||||
#define PCI_VENDOR_ID_PCTECH 0x1042
|
||||
#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
|
||||
@@ -991,6 +1000,7 @@
|
||||
#define PCI_DEVICE_ID_BROOKTREE_849A 0x0351
|
||||
#define PCI_DEVICE_ID_BROOKTREE_878_1 0x036e
|
||||
#define PCI_DEVICE_ID_BROOKTREE_878 0x0878
|
||||
#define PCI_DEVICE_ID_BROOKTREE_879 0x0879
|
||||
#define PCI_DEVICE_ID_BROOKTREE_8474 0x8474
|
||||
|
||||
#define PCI_VENDOR_ID_SIERRA 0x10a8
|
||||
@@ -1109,6 +1119,9 @@
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2160 0x0004
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_MAGICMEDIA_256AV 0x0005
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZVPLUS 0x0083
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006
|
||||
#define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016
|
||||
|
||||
#define PCI_VENDOR_ID_ASP 0x10cd
|
||||
#define PCI_DEVICE_ID_ASP_ABP940 0x1200
|
||||
@@ -1155,10 +1168,13 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP2_MODEM 0x0069
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_4 0x0086
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP2S_MODEM 0x0089
|
||||
#define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO 0x008a
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_5 0x008c
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
|
||||
#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
|
||||
@@ -1173,6 +1189,7 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP3_MODEM 0x00d9
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_7 0x00df
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1
|
||||
@@ -1180,6 +1197,7 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_6 0x00e6
|
||||
#define PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO 0x00ea
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
|
||||
@@ -1230,6 +1248,7 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP1_AUDIO 0x01b1
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP1_MODEM 0x01c1
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_1 0x01c3
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200
|
||||
@@ -1334,6 +1353,13 @@
|
||||
#define PCI_DEVICE_ID_REALTEK_8169 0x8169
|
||||
|
||||
#define PCI_VENDOR_ID_XILINX 0x10ee
|
||||
#define PCI_DEVICE_ID_RME_DIGI96 0x3fc0
|
||||
#define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1
|
||||
#define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2
|
||||
#define PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST 0x3fc3
|
||||
#define PCI_DEVICE_ID_XILINX_HAMMERFALL 0x3fc4
|
||||
#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5
|
||||
#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6
|
||||
#define PCI_DEVICE_ID_TURBOPAM 0x4020
|
||||
|
||||
#define PCI_VENDOR_ID_TRUEVISION 0x10fa
|
||||
@@ -1809,6 +1835,14 @@
|
||||
#define PCI_DEVICE_ID_ESS_ESS1968 0x1968
|
||||
#define PCI_DEVICE_ID_ESS_AUDIOPCI 0x1969
|
||||
#define PCI_DEVICE_ID_ESS_ESS1978 0x1978
|
||||
#define PCI_DEVICE_ID_ESS_ALLEGRO_1 0x1988
|
||||
#define PCI_DEVICE_ID_ESS_ALLEGRO 0x1989
|
||||
#define PCI_DEVICE_ID_ESS_CANYON3D_2LE 0x1990
|
||||
#define PCI_DEVICE_ID_ESS_CANYON3D_2 0x1992
|
||||
#define PCI_DEVICE_ID_ESS_MAESTRO3 0x1998
|
||||
#define PCI_DEVICE_ID_ESS_MAESTRO3_1 0x1999
|
||||
#define PCI_DEVICE_ID_ESS_MAESTRO3_HW 0x199a
|
||||
#define PCI_DEVICE_ID_ESS_MAESTRO3_2 0x199b
|
||||
|
||||
#define PCI_VENDOR_ID_SATSAGEM 0x1267
|
||||
#define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016
|
||||
@@ -1968,6 +2002,9 @@
|
||||
#define PCI_DEVICE_ID_LMC_SSI 0x0005
|
||||
#define PCI_DEVICE_ID_LMC_T1 0x0006
|
||||
|
||||
#define PCI_VENDOR_ID_MARIAN 0x1382
|
||||
#define PCI_DEVICE_ID_MARIAN_PRODIF_PLUS 0x2048
|
||||
|
||||
#define PCI_VENDOR_ID_NETGEAR 0x1385
|
||||
#define PCI_DEVICE_ID_NETGEAR_GA620 0x620a
|
||||
#define PCI_DEVICE_ID_NETGEAR_GA622 0x622a
|
||||
@@ -2056,6 +2093,10 @@
|
||||
#define PCI_VENDOR_ID_TIMEDIA 0x1409
|
||||
#define PCI_DEVICE_ID_TIMEDIA_1889 0x7168
|
||||
|
||||
#define PCI_VENDOR_ID_ICE 0x1412
|
||||
#define PCI_DEVICE_ID_ICE_1712 0x1712
|
||||
#define PCI_DEVICE_ID_VT1724 0x1724
|
||||
|
||||
#define PCI_VENDOR_ID_OXSEMI 0x1415
|
||||
#define PCI_DEVICE_ID_OXSEMI_12PCI840 0x8403
|
||||
#define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501
|
||||
@@ -2212,6 +2253,9 @@
|
||||
|
||||
#define PCI_VENDOR_ID_INFINICON 0x1820
|
||||
|
||||
#define PCI_VENDOR_ID_SITECOM 0x182d
|
||||
#define PCI_DEVICE_ID_SITECOM_DC105V2 0x3069
|
||||
|
||||
#define PCI_VENDOR_ID_TOPSPIN 0x1867
|
||||
|
||||
#define PCI_VENDOR_ID_TDI 0x192E
|
||||
@@ -2536,6 +2580,7 @@
|
||||
#define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191
|
||||
#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192
|
||||
#define PCI_DEVICE_ID_INTEL_440MX 0x7195
|
||||
#define PCI_DEVICE_ID_INTEL_440MX_6 0x7196
|
||||
#define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198
|
||||
#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199
|
||||
#define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a
|
||||
@@ -2642,6 +2687,11 @@
|
||||
#define PCI_VENDOR_ID_TTTECH 0x0357
|
||||
#define PCI_DEVICE_ID_TTTECH_MC322 0x000A
|
||||
|
||||
#define PCI_VENDOR_ID_XILINX_RME 0xea60
|
||||
#define PCI_DEVICE_ID_RME_DIGI32 0x9896
|
||||
#define PCI_DEVICE_ID_RME_DIGI32_PRO 0x9897
|
||||
#define PCI_DEVICE_ID_RME_DIGI32_8 0x9898
|
||||
|
||||
#define PCI_VENDOR_ID_ARK 0xedd8
|
||||
#define PCI_DEVICE_ID_ARK_STING 0xa091
|
||||
#define PCI_DEVICE_ID_ARK_STINGARK 0xa099
|
||||
|
||||
@@ -166,6 +166,9 @@ struct packet_iosched
|
||||
/*
|
||||
* 32 buffers of 2048 bytes
|
||||
*/
|
||||
#if (PAGE_SIZE % CD_FRAMESIZE) != 0
|
||||
#error "PAGE_SIZE must be a multiple of CD_FRAMESIZE"
|
||||
#endif
|
||||
#define PACKET_MAX_SIZE 32
|
||||
#define PAGES_PER_PACKET (PACKET_MAX_SIZE * CD_FRAMESIZE / PAGE_SIZE)
|
||||
#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9)
|
||||
|
||||
@@ -121,6 +121,17 @@ extern unsigned long nr_iowait(void);
|
||||
#define set_task_state(tsk, state_value) \
|
||||
set_mb((tsk)->state, (state_value))
|
||||
|
||||
/*
|
||||
* set_current_state() includes a barrier so that the write of current->state
|
||||
* is correctly serialised wrt the caller's subsequent test of whether to
|
||||
* actually sleep:
|
||||
*
|
||||
* set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
* if (do_i_need_to_sleep())
|
||||
* schedule();
|
||||
*
|
||||
* If the caller does not need such serialisation then use __set_current_state()
|
||||
*/
|
||||
#define __set_current_state(state_value) \
|
||||
do { current->state = (state_value); } while (0)
|
||||
#define set_current_state(state_value) \
|
||||
|
||||
@@ -1907,6 +1907,11 @@ extern int register_security (struct security_operations *ops);
|
||||
extern int unregister_security (struct security_operations *ops);
|
||||
extern int mod_reg_security (const char *name, struct security_operations *ops);
|
||||
extern int mod_unreg_security (const char *name, struct security_operations *ops);
|
||||
extern struct dentry *securityfs_create_file(const char *name, mode_t mode,
|
||||
struct dentry *parent, void *data,
|
||||
struct file_operations *fops);
|
||||
extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent);
|
||||
extern void securityfs_remove(struct dentry *dentry);
|
||||
|
||||
|
||||
#else /* CONFIG_SECURITY */
|
||||
|
||||
@@ -508,5 +508,7 @@ asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3,
|
||||
|
||||
asmlinkage long sys_ioprio_set(int which, int who, int ioprio);
|
||||
asmlinkage long sys_ioprio_get(int which, int who);
|
||||
asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
|
||||
unsigned long maxnode);
|
||||
|
||||
#endif
|
||||
|
||||
35
include/linux/tfrc.h
Normal file
35
include/linux/tfrc.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef _LINUX_TFRC_H_
|
||||
#define _LINUX_TFRC_H_
|
||||
/*
|
||||
* include/linux/tfrc.h
|
||||
*
|
||||
* Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
|
||||
* Copyright (c) 2005 Ian McDonald <iam4@cs.waikato.ac.nz>
|
||||
* Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
* Copyright (c) 2003 Nils-Erik Mattsson, Joacim Haggmark, Magnus Erixzon
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct tfrc_rx_info {
|
||||
__u32 tfrcrx_x_recv;
|
||||
__u32 tfrcrx_rtt;
|
||||
__u32 tfrcrx_p;
|
||||
};
|
||||
|
||||
struct tfrc_tx_info {
|
||||
__u32 tfrctx_x;
|
||||
__u32 tfrctx_x_recv;
|
||||
__u32 tfrctx_x_calc;
|
||||
__u32 tfrctx_rtt;
|
||||
__u32 tfrctx_p;
|
||||
__u32 tfrctx_rto;
|
||||
__u32 tfrctx_ipi;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_TFRC_H_ */
|
||||
@@ -60,12 +60,17 @@ enum v4l2_field {
|
||||
(field) == V4L2_FIELD_SEQ_BT)
|
||||
|
||||
enum v4l2_buf_type {
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
|
||||
V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
|
||||
V4L2_BUF_TYPE_VBI_CAPTURE = 4,
|
||||
V4L2_BUF_TYPE_VBI_OUTPUT = 5,
|
||||
V4L2_BUF_TYPE_PRIVATE = 0x80,
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
|
||||
V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
|
||||
V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
|
||||
V4L2_BUF_TYPE_VBI_CAPTURE = 4,
|
||||
V4L2_BUF_TYPE_VBI_OUTPUT = 5,
|
||||
#if 1
|
||||
/* Experimental Sliced VBI */
|
||||
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
|
||||
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
|
||||
#endif
|
||||
V4L2_BUF_TYPE_PRIVATE = 0x80,
|
||||
};
|
||||
|
||||
enum v4l2_ctrl_type {
|
||||
@@ -149,20 +154,24 @@ struct v4l2_capability
|
||||
};
|
||||
|
||||
/* Values for 'capabilities' field */
|
||||
#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
|
||||
#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
|
||||
#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
|
||||
#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a VBI capture device */
|
||||
#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a VBI output device */
|
||||
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
|
||||
#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
|
||||
#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
|
||||
#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
|
||||
#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */
|
||||
#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */
|
||||
#if 1
|
||||
#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */
|
||||
#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */
|
||||
#endif
|
||||
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
|
||||
|
||||
#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
|
||||
#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
|
||||
#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
|
||||
#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
|
||||
#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
|
||||
#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
|
||||
|
||||
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
|
||||
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
|
||||
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
|
||||
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
|
||||
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
|
||||
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
|
||||
|
||||
/*
|
||||
* V I D E O I M A G E F O R M A T
|
||||
@@ -809,6 +818,8 @@ struct v4l2_audioout
|
||||
* Data services API by Michael Schimek
|
||||
*/
|
||||
|
||||
/* Raw VBI */
|
||||
|
||||
struct v4l2_vbi_format
|
||||
{
|
||||
__u32 sampling_rate; /* in 1 Hz */
|
||||
@@ -825,6 +836,54 @@ struct v4l2_vbi_format
|
||||
#define V4L2_VBI_UNSYNC (1<< 0)
|
||||
#define V4L2_VBI_INTERLACED (1<< 1)
|
||||
|
||||
#if 1
|
||||
/* Sliced VBI
|
||||
*
|
||||
* This implements is a proposal V4L2 API to allow SLICED VBI
|
||||
* required for some hardware encoders. It should change without
|
||||
* notice in the definitive implementation.
|
||||
*/
|
||||
|
||||
struct v4l2_sliced_vbi_format
|
||||
{
|
||||
__u16 service_set;
|
||||
/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
|
||||
service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
|
||||
(equals frame lines 313-336 for 625 line video
|
||||
standards, 263-286 for 525 line standards) */
|
||||
__u16 service_lines[2][24];
|
||||
__u32 io_size;
|
||||
__u32 reserved[2]; /* must be zero */
|
||||
};
|
||||
|
||||
#define V4L2_SLICED_TELETEXT_B (0x0001)
|
||||
#define V4L2_SLICED_VPS (0x0400)
|
||||
#define V4L2_SLICED_CAPTION_525 (0x1000)
|
||||
#define V4L2_SLICED_WSS_625 (0x4000)
|
||||
|
||||
#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)
|
||||
#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
|
||||
|
||||
struct v4l2_sliced_vbi_cap
|
||||
{
|
||||
__u16 service_set;
|
||||
/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
|
||||
service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
|
||||
(equals frame lines 313-336 for 625 line video
|
||||
standards, 263-286 for 525 line standards) */
|
||||
__u16 service_lines[2][24];
|
||||
__u32 reserved[4]; /* must be 0 */
|
||||
};
|
||||
|
||||
struct v4l2_sliced_vbi_data
|
||||
{
|
||||
__u32 id;
|
||||
__u32 field; /* 0: first field, 1: second field */
|
||||
__u32 line; /* 1-23 */
|
||||
__u32 reserved; /* must be 0 */
|
||||
__u8 data[48];
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* A G G R E G A T E S T R U C T U R E S
|
||||
@@ -837,10 +896,13 @@ struct v4l2_format
|
||||
enum v4l2_buf_type type;
|
||||
union
|
||||
{
|
||||
struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
|
||||
struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
|
||||
struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
|
||||
__u8 raw_data[200]; // user-defined
|
||||
struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
|
||||
struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
|
||||
struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
|
||||
#if 1
|
||||
struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
|
||||
#endif
|
||||
__u8 raw_data[200]; // user-defined
|
||||
} fmt;
|
||||
};
|
||||
|
||||
@@ -916,6 +978,9 @@ struct v4l2_streamparm
|
||||
#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout)
|
||||
#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority)
|
||||
#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority)
|
||||
#if 1
|
||||
#define VIDIOC_G_SLICED_VBI_CAP _IOR ('V', 69, struct v4l2_sliced_vbi_cap)
|
||||
#endif
|
||||
|
||||
/* for compatibility, will go away some day */
|
||||
#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int)
|
||||
|
||||
@@ -463,6 +463,17 @@ struct inquiry_info_with_rssi_and_pscan_mode {
|
||||
__s8 rssi;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define HCI_EV_EXTENDED_INQUIRY_RESULT 0x2F
|
||||
struct extended_inquiry_info {
|
||||
bdaddr_t bdaddr;
|
||||
__u8 pscan_rep_mode;
|
||||
__u8 pscan_period_mode;
|
||||
__u8 dev_class[3];
|
||||
__u16 clock_offset;
|
||||
__s8 rssi;
|
||||
__u8 data[240];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define HCI_EV_CONN_COMPLETE 0x03
|
||||
struct hci_ev_conn_complete {
|
||||
__u8 status;
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
#define IP_VS_CONN_F_IN_SEQ 0x0400 /* must do input seq adjust */
|
||||
#define IP_VS_CONN_F_SEQ_MASK 0x0600 /* in/out sequence mask */
|
||||
#define IP_VS_CONN_F_NO_CPORT 0x0800 /* no client port set yet */
|
||||
#define IP_VS_CONN_F_TEMPLATE 0x1000 /* template, not connection */
|
||||
|
||||
/* Move it to better place one day, for now keep it unique */
|
||||
#define NFC_IPVS_PROPERTY 0x10000
|
||||
@@ -739,6 +740,8 @@ enum {
|
||||
|
||||
extern struct ip_vs_conn *ip_vs_conn_in_get
|
||||
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port);
|
||||
extern struct ip_vs_conn *ip_vs_ct_in_get
|
||||
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port);
|
||||
extern struct ip_vs_conn *ip_vs_conn_out_get
|
||||
(int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port);
|
||||
|
||||
|
||||
@@ -108,6 +108,13 @@
|
||||
#define IB_QP1_QKEY 0x80010000
|
||||
#define IB_QP_SET_QKEY 0x80000000
|
||||
|
||||
enum {
|
||||
IB_MGMT_MAD_DATA = 232,
|
||||
IB_MGMT_RMPP_DATA = 220,
|
||||
IB_MGMT_VENDOR_DATA = 216,
|
||||
IB_MGMT_SA_DATA = 200
|
||||
};
|
||||
|
||||
struct ib_mad_hdr {
|
||||
u8 base_version;
|
||||
u8 mgmt_class;
|
||||
@@ -149,20 +156,20 @@ struct ib_sa_hdr {
|
||||
|
||||
struct ib_mad {
|
||||
struct ib_mad_hdr mad_hdr;
|
||||
u8 data[232];
|
||||
u8 data[IB_MGMT_MAD_DATA];
|
||||
};
|
||||
|
||||
struct ib_rmpp_mad {
|
||||
struct ib_mad_hdr mad_hdr;
|
||||
struct ib_rmpp_hdr rmpp_hdr;
|
||||
u8 data[220];
|
||||
u8 data[IB_MGMT_RMPP_DATA];
|
||||
};
|
||||
|
||||
struct ib_sa_mad {
|
||||
struct ib_mad_hdr mad_hdr;
|
||||
struct ib_rmpp_hdr rmpp_hdr;
|
||||
struct ib_sa_hdr sa_hdr;
|
||||
u8 data[200];
|
||||
u8 data[IB_MGMT_SA_DATA];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct ib_vendor_mad {
|
||||
@@ -170,7 +177,7 @@ struct ib_vendor_mad {
|
||||
struct ib_rmpp_hdr rmpp_hdr;
|
||||
u8 reserved;
|
||||
u8 oui[3];
|
||||
u8 data[216];
|
||||
u8 data[IB_MGMT_VENDOR_DATA];
|
||||
};
|
||||
|
||||
struct ib_class_port_info
|
||||
|
||||
@@ -439,6 +439,8 @@ enum scsi_host_state {
|
||||
SHOST_CANCEL,
|
||||
SHOST_DEL,
|
||||
SHOST_RECOVERY,
|
||||
SHOST_CANCEL_RECOVERY,
|
||||
SHOST_DEL_RECOVERY,
|
||||
};
|
||||
|
||||
struct Scsi_Host {
|
||||
@@ -465,8 +467,6 @@ struct Scsi_Host {
|
||||
|
||||
struct list_head eh_cmd_q;
|
||||
struct task_struct * ehandler; /* Error recovery thread. */
|
||||
struct semaphore * eh_wait; /* The error recovery thread waits
|
||||
on this. */
|
||||
struct semaphore * eh_action; /* Wait for specific actions on the
|
||||
host. */
|
||||
unsigned int eh_active:1; /* Indicates the eh thread is awake and active if
|
||||
@@ -621,6 +621,13 @@ static inline struct Scsi_Host *dev_to_shost(struct device *dev)
|
||||
return container_of(dev, struct Scsi_Host, shost_gendev);
|
||||
}
|
||||
|
||||
static inline int scsi_host_in_recovery(struct Scsi_Host *shost)
|
||||
{
|
||||
return shost->shost_state == SHOST_RECOVERY ||
|
||||
shost->shost_state == SHOST_CANCEL_RECOVERY ||
|
||||
shost->shost_state == SHOST_DEL_RECOVERY;
|
||||
}
|
||||
|
||||
extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *);
|
||||
extern void scsi_flush_work(struct Scsi_Host *);
|
||||
|
||||
|
||||
@@ -103,8 +103,8 @@ enum fc_port_state {
|
||||
incapable of reporting */
|
||||
#define FC_PORTSPEED_1GBIT 1
|
||||
#define FC_PORTSPEED_2GBIT 2
|
||||
#define FC_PORTSPEED_10GBIT 4
|
||||
#define FC_PORTSPEED_4GBIT 8
|
||||
#define FC_PORTSPEED_4GBIT 4
|
||||
#define FC_PORTSPEED_10GBIT 8
|
||||
#define FC_PORTSPEED_NOT_NEGOTIATED (1 << 15) /* Speed not established */
|
||||
|
||||
/*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user