summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acpi.h97
-rw-r--r--include/linux/fs.h8
-rw-r--r--include/linux/i2o.h475
-rw-r--r--include/linux/irda.h106
-rw-r--r--include/linux/major.h1
-rw-r--r--include/linux/mm.h101
-rw-r--r--include/linux/nfsd/export.h5
-rw-r--r--include/linux/nfsd/nfsfh.h3
-rw-r--r--include/linux/pagemap.h39
-rw-r--r--include/linux/resource.h11
-rw-r--r--include/linux/serialP.h4
-rw-r--r--include/linux/swap.h2
-rw-r--r--include/linux/sysctl.h3
-rw-r--r--include/linux/tty.h1
14 files changed, 512 insertions, 344 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 1f5ec5f7a..5b53842be 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -24,9 +24,6 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-/* /dev/acpi minor number */
-#define ACPI_MINOR_DEV 167
-
/* RSDP location */
#define ACPI_BIOS_ROM_BASE (0x0e0000)
#define ACPI_BIOS_ROM_END (0x100000)
@@ -40,7 +37,7 @@
/* PM1_STS/EN flags */
#define ACPI_TMR 0x0001
-#define ACPI_BM 0x0010
+#define ACPI_BM 0x0010
#define ACPI_GBL 0x0020
#define ACPI_PWRBTN 0x0100
#define ACPI_SLPBTN 0x0200
@@ -57,27 +54,33 @@
#define ACPI_SLP_EN 0x2000
/* PM_TMR masks */
-#define ACPI_TMR_MASK 0x00ffffff
+#define ACPI_TMR_MASK 0x00ffffff
#define ACPI_TMR_HZ 3580000 /* 3.58 MHz */
/* strangess to avoid integer overflow */
#define ACPI_uS_TO_TMR_TICKS(val) \
(((val) * (ACPI_TMR_HZ / 10000)) / 100)
+/* CPU cycles -> PM timer cycles, looks somewhat heuristic but
+ (ticks = 3/11 * CPU_MHz + 2) comes pretty close for my systems
+ */
+#define ACPI_CPU_TO_TMR_TICKS(cycles) \
+ ((cycles) / (3 * (loops_per_sec + 2500) / 500000 / 11 + 2))
+
/* PM2_CNT flags */
#define ACPI_ARB_DIS 0x01
/* FACP flags */
-#define ACPI_WBINVD 0x00000001
+#define ACPI_WBINVD 0x00000001
#define ACPI_WBINVD_FLUSH 0x00000002
-#define ACPI_PROC_C1 0x00000004
-#define ACPI_P_LVL2_UP 0x00000008
-#define ACPI_PWR_BUTTON 0x00000010
-#define ACPI_SLP_BUTTON 0x00000020
-#define ACPI_FIX_RTC 0x00000040
-#define ACPI_RTC_64 0x00000080
+#define ACPI_PROC_C1 0x00000004
+#define ACPI_P_LVL2_UP 0x00000008
+#define ACPI_PWR_BUTTON 0x00000010
+#define ACPI_SLP_BUTTON 0x00000020
+#define ACPI_FIX_RTC 0x00000040
+#define ACPI_RTC_64 0x00000080
#define ACPI_TMR_VAL_EXT 0x00000100
-#define ACPI_DCK_CAP 0x00000200
+#define ACPI_DCK_CAP 0x00000200
struct acpi_rsdp {
__u32 signature[2];
@@ -142,25 +145,65 @@ struct acpi_facp {
__u32 flags;
};
-#define ACPI_FIND_TABLES _IOR('A', 1, struct acpi_find_tables)
-#define ACPI_ENABLE_EVENT _IOW('A', 2, struct acpi_enable_event)
-#define ACPI_WAIT_EVENT _IOR('A', 3, struct acpi_wait_event)
+/*
+ * Sysctl declarations
+ */
-struct acpi_find_tables {
- unsigned long facp; /* FACP physical address */
- unsigned long dsdt; /* DSDT physical address */
+enum
+{
+ CTL_ACPI = 10
};
-struct acpi_enable_event {
- __u32 pm1_enable; /* fixed events */
- __u32 gpe_enable; /* general-purpose events (GPEs) */
- __u32 gpe_level; /* level-triggered GPEs */
+enum
+{
+ ACPI_FACP = 1,
+ ACPI_DSDT,
+ ACPI_PM1_ENABLE,
+ ACPI_GPE_ENABLE,
+ ACPI_GPE_LEVEL,
+ ACPI_EVENT,
+ ACPI_P_LVL2,
+ ACPI_P_LVL3,
+ ACPI_P_LVL2_LAT,
+ ACPI_P_LVL3_LAT,
};
-struct acpi_wait_event {
- __u32 pm1_status; /* fixed events */
- __u32 gpe_status; /* general-purpose events */
-};
+/*
+ * PIIX4-specific ACPI info (for systems with PIIX4 but no ACPI tables)
+ */
+
+#define ACPI_PIIX4_INT_MODEL 0x00
+#define ACPI_PIIX4_SCI_INT 0x0009
+
+#define ACPI_PIIX4_SMI_CMD 0x00b2
+#define ACPI_PIIX4_ACPI_ENABLE 0xf0
+#define ACPI_PIIX4_ACPI_DISABLE 0xf1
+#define ACPI_PIIX4_S4BIOS_REQ 0xf2
+
+#define ACPI_PIIX4_PM1_EVT 0x0000
+#define ACPI_PIIX4_PM1_CNT 0x0004
+#define ACPI_PIIX4_S0_MASK (0x0005 << 10)
+#define ACPI_PIIX4_S1_MASK (0x0004 << 10)
+#define ACPI_PIIX4_S2_MASK (0x0003 << 10)
+#define ACPI_PIIX4_S3_MASK (0x0002 << 10)
+#define ACPI_PIIX4_S4_MASK (0x0001 << 10)
+#define ACPI_PIIX4_S5_MASK (0x0000 << 10)
+#define ACPI_PIIX4_PM_TMR 0x0008
+#define ACPI_PIIX4_GPE0 0x000c
+#define ACPI_PIIX4_P_CNT 0x0010
+#define ACPI_PIIX4_P_LVL2 0x0014
+#define ACPI_PIIX4_P_LVL3 0x0015
+
+#define ACPI_PIIX4_PM1_EVT_LEN 0x04
+#define ACPI_PIIX4_PM1_CNT_LEN 0x02
+#define ACPI_PIIX4_PM_TM_LEN 0x04
+#define ACPI_PIIX4_GPE0_LEN 0x04
+
+#define ACPI_PIIX4_PM2_CNT 0x0022
+#define ACPI_PIIX4_PM2_CNT_LEN 0x01
+
+#define ACPI_PIIX4_PMREGMISC 0x80
+#define ACPI_PIIX4_PMIOSE 0x01
#ifdef __KERNEL__
diff --git a/include/linux/fs.h b/include/linux/fs.h
index c6c7d76d2..58fc251ac 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -328,6 +328,11 @@ struct iattr {
*/
struct page;
+struct address_space {
+ struct list_head pages;
+ unsigned long nrpages;
+};
+
struct inode {
struct list_head i_hash;
struct list_head i_list;
@@ -348,14 +353,13 @@ struct inode {
unsigned long i_blksize;
unsigned long i_blocks;
unsigned long i_version;
- unsigned long i_nrpages;
struct semaphore i_sem;
struct inode_operations *i_op;
struct super_block *i_sb;
wait_queue_head_t i_wait;
struct file_lock *i_flock;
struct vm_area_struct *i_mmap;
- struct list_head i_pages;
+ struct address_space i_data;
spinlock_t i_shared_lock;
struct dquot *i_dquot[MAXQUOTAS];
struct pipe_inode_info *i_pipe;
diff --git a/include/linux/i2o.h b/include/linux/i2o.h
index d11ff1f09..9ddcb7bb8 100644
--- a/include/linux/i2o.h
+++ b/include/linux/i2o.h
@@ -10,6 +10,209 @@
/* How many controllers are we allowing */
#define MAX_I2O_CONTROLLERS 32
+#include <linux/ioctl.h>
+
+/*
+ * I2O Control IOCTLs and structures
+ */
+#define I2O_MAGIC_NUMBER 'i'
+#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,u8[MAX_I2O_CONTROLLERS])
+#define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
+#define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
+#define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
+#define I2OPARMGET _IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget)
+#define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
+#define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
+#define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
+#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,u32)
+#define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
+
+/* On hold until we figure this out
+#define I2OEVTREG _IO(I2O_MAGIC_NUMBER,10)
+#define I2OEVTCLR _IO(I2O_MAGIC_NUMBER,11)
+#define I2OEVTGET _IO(I2O_MAGIC_NUMBER,12)
+ */
+
+struct i2o_cmd_hrtlct
+{
+ unsigned int iop; /* IOP unit number */
+ void *resbuf; /* Buffer for result */
+ unsigned int *reslen; /* Buffer length in bytes */
+};
+
+struct i2o_cmd_psetget
+{
+ unsigned int iop; /* IOP unit number */
+ unsigned int tid; /* Target device TID */
+ void *opbuf; /* Operation List buffer */
+ unsigned int oplen; /* Operation List buffer length in bytes */
+ void *resbuf; /* Result List buffer */
+ unsigned int *reslen; /* Result List buffer length in bytes */
+};
+
+struct i2o_sw_xfer
+{
+ unsigned int iop; /* IOP unit number */
+ unsigned char flags; /* Flags field */
+ unsigned char sw_type; /* Software type */
+ unsigned int sw_id; /* Software ID */
+ void *buf; /* Pointer to software buffer */
+ unsigned int *swlen; /* Length of software data */
+ unsigned int *maxfrag; /* Maximum fragment count */
+ unsigned int *curfrag; /* Current fragment count */
+};
+
+struct i2o_html
+{
+ unsigned int iop; /* IOP unit number */
+ unsigned int tid; /* Target device ID */
+ unsigned int page; /* HTML page */
+ void *resbuf; /* Buffer for reply HTML page */
+ unsigned int *reslen; /* Length in bytes of reply buffer */
+ void *qbuf; /* Pointer to HTTP query string */
+ unsigned int qlen; /* Length in bytes of query string buffer */
+};
+
+
+/**************************************************************************
+ * HRT related constants and structures
+ **************************************************************************/
+#define I2O_BUS_LOCAL 0
+#define I2O_BUS_ISA 1
+#define I2O_BUS_EISA 2
+#define I2O_BUS_MCA 3
+#define I2O_BUS_PCI 4
+#define I2O_BUS_PCMCIA 5
+#define I2O_BUS_NUBUS 6
+#define I2O_BUS_CARDBUS 7
+#define I2O_BUS_UNKNOWN 0x80
+
+#ifndef __KERNEL__
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+#endif /* __KERNEL__ */
+
+typedef struct _i2o_pci_bus {
+ u8 PciFunctionNumber;
+ u8 PciDeviceNumber;
+ u8 PciBusNumber;
+ u8 reserved;
+ u16 PciVendorID;
+ u16 PciDeviceID;
+} i2o_pci_bus, *pi2o_pci_bus;
+
+typedef struct _i2o_local_bus {
+ u16 LbBaseIOPort;
+ u16 reserved;
+ u32 LbBaseMemoryAddress;
+} i2o_local_bus, *pi2o_local_bus;
+
+typedef struct _i2o_isa_bus {
+ u16 IsaBaseIOPort;
+ u8 CSN;
+ u8 reserved;
+ u32 IsaBaseMemoryAddress;
+} i2o_isa_bus, *pi2o_isa_bus;
+
+typedef struct _i2o_eisa_bus_info {
+ u16 EisaBaseIOPort;
+ u8 reserved;
+ u8 EisaSlotNumber;
+ u32 EisaBaseMemoryAddress;
+} i2o_eisa_bus, *pi2o_eisa_bus;
+
+typedef struct _i2o_mca_bus {
+ u16 McaBaseIOPort;
+ u8 reserved;
+ u8 McaSlotNumber;
+ u32 McaBaseMemoryAddress;
+} i2o_mca_bus, *pi2o_mca_bus;
+
+typedef struct _i2o_other_bus {
+ u16 BaseIOPort;
+ u16 reserved;
+ u32 BaseMemoryAddress;
+} i2o_other_bus, *pi2o_other_bus;
+
+typedef struct _i2o_hrt_entry {
+ u32 adapter_id;
+ u32 parent_tid:12;
+ u32 state:4;
+ u32 bus_num:8;
+ u32 bus_type:8;
+ union {
+ i2o_pci_bus pci_bus;
+ i2o_local_bus local_bus;
+ i2o_isa_bus isa_bus;
+ i2o_eisa_bus eisa_bus;
+ i2o_mca_bus mca_bus;
+ i2o_other_bus other_bus;
+ } bus;
+} i2o_hrt_entry, *pi2o_hrt_entry;
+
+typedef struct _i2o_hrt {
+ u16 num_entries;
+ u8 entry_len;
+ u8 hrt_version;
+ u32 change_ind;
+ i2o_hrt_entry hrt_entry[1];
+} i2o_hrt, *pi2o_hrt;
+
+typedef struct _i2o_lct_entry {
+ u32 entry_size:16;
+ u32 tid:12;
+ u32 reserved:4;
+ u32 change_ind;
+ u32 device_flags;
+ u32 class_id:12;
+ u32 version:4;
+ u32 vendor_id:16;
+ u32 sub_class;
+ u32 user_tid:12;
+ u32 parent_tid:12;
+ u32 bios_info:8;
+ u8 identity_tag[8];
+ u32 event_capabilities;
+} i2o_lct_entry, *pi2o_lct_entry;
+
+typedef struct _i2o_lct {
+ u32 table_size:16;
+ u32 boot_tid:12;
+ u32 lct_ver:4;
+ u32 iop_flags;
+ u32 current_change_ind;
+ i2o_lct_entry lct_entry[1];
+} i2o_lct, *pi2o_lct;
+
+typedef struct _i2o_status_block {
+ u16 org_id;
+ u16 reserved;
+ u16 iop_id:12;
+ u16 reserved1:4;
+ u16 host_unit_id;
+ u16 segment_number:12;
+ u16 i2o_version:4;
+ u8 iop_state;
+ u8 msg_type;
+ u16 inbound_frame_size;
+ u8 init_code;
+ u8 reserved2;
+ u32 max_inbound_frames;
+ u32 max_outbound_frames;
+ char product_id[24];
+ u32 expected_lct_size;
+ u32 iop_capabilities;
+ u32 desired_mem_size;
+ u32 current_mem_size;
+ u32 current_mem_base;
+ u32 desired_io_size;
+ u32 current_io_size;
+ u32 current_io_base;
+ u32 reserved3:24;
+ u32 cmd_status:8;
+} i2o_status_block, *pi2o_status_block;
+
#ifdef __KERNEL__ /* ioctl stuff only thing exported to users */
@@ -43,13 +246,11 @@ struct i2o_message
struct i2o_device
{
- int class; /* Block, Net, SCSI etc (from spec) */
- int subclass; /* eth, fddi, tr etc (from spec) */
- int id; /* I2O ID assigned by the controller */
- int parent; /* Parent device */
- int flags; /* Control flags */
+ pi2o_lct_entry lct_data;/* Device LCT information */
+ u32 flags;
int i2oversion; /* I2O version supported. Actually there
* should be high and low version */
+
struct proc_dir_entry* proc_entry; /* /proc dir */
/* Primary user */
@@ -70,6 +271,9 @@ struct i2o_device
struct i2o_pci
{
int irq;
+#ifdef CONFIG_MTRR
+ int mtrr_reg;
+#endif
};
@@ -81,8 +285,6 @@ struct i2o_controller
{
char name[16];
int unit;
- int status; /* I2O status */
- int i2oversion;
int type;
#define I2O_TYPE_PCI 0x01 /* PCI I2O controller */
@@ -94,10 +296,14 @@ struct i2o_controller
volatile u32 *post_port; /* Messaging ports */
volatile u32 *reply_port;
volatile u32 *irq_mask; /* Interrupt port */
- u32 *lct;
- u32 *hrt;
+
+ pi2o_status_block status_block; /* IOP status block */
+ pi2o_lct lct;
+ pi2o_hrt hrt;
+
u32 mem_offset; /* MFA offset */
u32 mem_phys; /* MFA physical */
+
u32 priv_mem;
u32 priv_mem_size;
u32 priv_io;
@@ -115,6 +321,9 @@ struct i2o_controller
int (*bind)(struct i2o_controller *, struct i2o_device *);
/* Bus specific initiator */
int (*unbind)(struct i2o_controller *, struct i2o_device *);
+ /* Bus specific enable/disable */
+ void (*bus_enable)(struct i2o_controller *c);
+ void (*bus_disable)(struct i2o_controller *c);
void *page_frame; /* Message buffers */
int inbound_size; /* Inbound queue size */
@@ -144,8 +353,7 @@ struct i2o_core_func_table
{
int (*install)(struct i2o_controller *);
int (*activate)(struct i2o_controller *);
- struct i2o_controller*
- (*find)(int);
+ struct i2o_controller* (*find)(int);
void (*unlock)(struct i2o_controller *);
void (*run_queue)(struct i2o_controller *c);
int (*delete)(struct i2o_controller *);
@@ -153,9 +361,40 @@ struct i2o_core_func_table
#endif
/*
- * Messenger inlines
+ * I2O System table entry
*/
+struct i2o_sys_tbl_entry
+{
+ u16 org_id;
+ u16 reserved1;
+ u32 iop_id:12;
+ u32 reserved2:20;
+ u16 seg_num:12;
+ u16 i2o_version:4;
+ u8 iop_state;
+ u8 msg_type;
+ u16 frame_size;
+ u16 reserved3;
+ u32 last_changed;
+ u32 iop_capabilities;
+ u32 inbound_low;
+ u32 inbound_high;
+};
+
+struct i2o_sys_tbl
+{
+ u8 num_entries;
+ u8 version;
+ u16 reserved1;
+ u32 change_ind;
+ u32 reserved2;
+ u32 reserved3;
+ struct i2o_sys_tbl_entry iops[0];
+};
+/*
+ * Messenger inlines
+ */
extern inline u32 I2O_POST_READ32(struct i2o_controller *c)
{
return *c->post_port;
@@ -211,6 +450,7 @@ extern int i2o_delete_controller(struct i2o_controller *);
extern int i2o_activate_controller(struct i2o_controller *);
extern void i2o_unlock_controller(struct i2o_controller *);
extern struct i2o_controller *i2o_find_controller(int);
+extern int i2o_status_get(struct i2o_controller *);
extern int i2o_num_controllers;
extern int i2o_install_handler(struct i2o_handler *);
@@ -221,24 +461,24 @@ extern int i2o_delete_device(struct i2o_device *);
extern int i2o_claim_device(struct i2o_device *, struct i2o_handler *, u32);
extern int i2o_release_device(struct i2o_device *, struct i2o_handler *, u32);
-extern int i2o_post_this(struct i2o_controller *, int, u32 *, int);
-extern int i2o_post_wait(struct i2o_controller *, int, u32 *, int, int *, int);
+extern int i2o_post_this(struct i2o_controller *, u32 *, int);
+extern int i2o_post_wait(struct i2o_controller *, u32 *, int, int);
extern int i2o_issue_claim(struct i2o_controller *, int, int, int, int *, u32);
-extern int i2o_issue_params(int, struct i2o_controller *, int, int, void *,
- int, void *, int, int *);
-
-extern int i2o_query_scalar(struct i2o_controller *, int, int, int, int,
- void *, int, int *);
-extern int i2o_set_scalar(struct i2o_controller *, int, int, int, int,
- void *, int, int *);
-
-extern int i2o_query_table(int, struct i2o_controller *, int, int, int, int,
- void *, int, void *, int, int *);
-extern int i2o_clear_table(struct i2o_controller *, int, int, int, int *);
-extern int i2o_row_add_table(struct i2o_controller *, int, int, int, int,
- void *, int, int *);
-extern int i2o_row_delete_table(struct i2o_controller *, int, int, int, int,
- void *, int, int *);
+extern int i2o_issue_params(int, struct i2o_controller *, int, void *,
+ int, void *, int);
+
+extern int i2o_query_scalar(struct i2o_controller *, int, int, int,
+ void *, int);
+extern int i2o_set_scalar(struct i2o_controller *, int, int, int,
+ void *, int);
+
+extern int i2o_query_table(int, struct i2o_controller *, int, int, int,
+ void *, int, void *, int);
+extern int i2o_clear_table(struct i2o_controller *, int, int);
+extern int i2o_row_add_table(struct i2o_controller *, int, int, int,
+ void *, int);
+extern int i2o_row_delete_table(struct i2o_controller *, int, int, int,
+ void *, int);
extern void i2o_run_queue(struct i2o_controller *);
extern void i2o_report_status(const char *, const char *, u32 *);
@@ -551,182 +791,9 @@ extern const char *i2o_get_class_name(int);
#define MSG_POOL_SIZE 16384
-#define I2O_POST_WAIT_OK 1
+#define I2O_POST_WAIT_OK 0
#define I2O_POST_WAIT_TIMEOUT -ETIMEDOUT
#endif /* __KERNEL__ */
-#include <linux/ioctl.h>
-
-/*
- * I2O Control IOCTLs and structures
- */
-#define I2O_MAGIC_NUMBER 'i'
-#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,u8[MAX_I2O_CONTROLLERS])
-#define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
-#define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
-#define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
-#define I2OPARMGET _IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget)
-#define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
-#define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
-#define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
-#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,u32)
-#define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
-
-/* On hold until we figure this out
-#define I2OEVTREG _IO(I2O_MAGIC_NUMBER,10)
-#define I2OEVTCLR _IO(I2O_MAGIC_NUMBER,11)
-#define I2OEVTGET _IO(I2O_MAGIC_NUMBER,12)
- */
-
-struct i2o_cmd_hrtlct
-{
- unsigned int iop; /* IOP unit number */
- void *resbuf; /* Buffer for result */
- unsigned int *reslen; /* Buffer length in bytes */
-};
-
-struct i2o_cmd_psetget
-{
- unsigned int iop; /* IOP unit number */
- unsigned int tid; /* Target device TID */
- void *opbuf; /* Operation List buffer */
- unsigned int oplen; /* Operation List buffer length in bytes */
- void *resbuf; /* Result List buffer */
- unsigned int *reslen; /* Result List buffer length in bytes */
-};
-
-struct i2o_sw_xfer
-{
- unsigned int iop; /* IOP unit number */
- unsigned char flags; /* Flags field */
- unsigned char sw_type; /* Software type */
- unsigned int sw_id; /* Software ID */
- void *buf; /* Pointer to software buffer */
- unsigned int *swlen; /* Length of software data */
- unsigned int *maxfrag; /* Maximum fragment count */
- unsigned int *curfrag; /* Current fragment count */
-};
-
-struct i2o_html
-{
- unsigned int iop; /* IOP unit number */
- unsigned int tid; /* Target device ID */
- unsigned int page; /* HTML page */
- void *resbuf; /* Buffer for reply HTML page */
- unsigned int *reslen; /* Length in bytes of reply buffer */
- void *qbuf; /* Pointer to HTTP query string */
- unsigned int qlen; /* Length in bytes of query string buffer */
-};
-
-
-/**************************************************************************
- * HRT related constants and structures
- **************************************************************************/
-#define I2O_BUS_LOCAL 0
-#define I2O_BUS_ISA 1
-#define I2O_BUS_EISA 2
-#define I2O_BUS_MCA 3
-#define I2O_BUS_PCI 4
-#define I2O_BUS_PCMCIA 5
-#define I2O_BUS_NUBUS 6
-#define I2O_BUS_CARDBUS 7
-#define I2O_BUS_UNKNOWN 0x80
-
-#ifndef __KERNEL__
-typedef unsigned char u8;
-typedef unsigned short u16;
-typedef unsigned int u32;
-#endif /* __KERNEL__ */
-
-typedef struct _i2o_pci_bus {
- u8 PciFunctionNumber;
- u8 PciDeviceNumber;
- u8 PciBusNumber;
- u8 reserved;
- u16 PciVendorID;
- u16 PciDeviceID;
-} i2o_pci_bus, *pi2o_pci_bus;
-
-typedef struct _i2o_local_bus {
- u16 LbBaseIOPort;
- u16 reserved;
- u32 LbBaseMemoryAddress;
-} i2o_local_bus, *pi2o_local_bus;
-
-typedef struct _i2o_isa_bus {
- u16 IsaBaseIOPort;
- u8 CSN;
- u8 reserved;
- u32 IsaBaseMemoryAddress;
-} i2o_isa_bus, *pi2o_isa_bus;
-
-typedef struct _i2o_eisa_bus_info {
- u16 EisaBaseIOPort;
- u8 reserved;
- u8 EisaSlotNumber;
- u32 EisaBaseMemoryAddress;
-} i2o_eisa_bus, *pi2o_eisa_bus;
-
-typedef struct _i2o_mca_bus {
- u16 McaBaseIOPort;
- u8 reserved;
- u8 McaSlotNumber;
- u32 McaBaseMemoryAddress;
-} i2o_mca_bus, *pi2o_mca_bus;
-
-typedef struct _i2o_other_bus {
- u16 BaseIOPort;
- u16 reserved;
- u32 BaseMemoryAddress;
-} i2o_other_bus, *pi2o_other_bus;
-
-typedef struct _i2o_hrt_entry {
- u32 adapter_id;
- u32 parent_tid:12;
- u32 state:4;
- u32 bus_num:8;
- u32 bus_type:8;
- union {
- i2o_pci_bus pci_bus;
- i2o_local_bus local_bus;
- i2o_isa_bus isa_bus;
- i2o_eisa_bus eisa_bus;
- i2o_mca_bus mca_bus;
- i2o_other_bus other_bus;
- } bus;
-} i2o_hrt_entry, *pi2o_hrt_entry;
-
-typedef struct _i2o_hrt {
- u16 num_entries;
- u8 entry_len;
- u8 hrt_version;
- u32 change_ind;
- i2o_hrt_entry hrt_entry[1];
-} i2o_hrt, *pi2o_hrt;
-
-typedef struct _i2o_lct_entry {
- u32 entry_size:16;
- u32 tid:12;
- u32 reserved:4;
- u32 change_ind;
- u32 device_flags;
- u32 class_id;
- u32 sub_class;
- u32 user_tid:12;
- u32 parent_tid:12;
- u32 bios_info:8;
- u8 identity_tag[8];
- u32 event_capabilities;
-} i2o_lct_entry, *pi2o_lct_entry;
-
-typedef struct _i2o_lct {
- u32 table_size:16;
- u32 boot_tid:12;
- u32 lct_ver:4;
- u32 iop_flags;
- u32 current_change_ind;
- i2o_lct_entry lct_entry[1];
-} i2o_lct, *pi2o_lct;
-
-#endif
+#endif /* _I2O_H */
diff --git a/include/linux/irda.h b/include/linux/irda.h
index 5d547a99f..712b2aa9a 100644
--- a/include/linux/irda.h
+++ b/include/linux/irda.h
@@ -1,12 +1,12 @@
/*********************************************************************
*
* Filename: irda.h
- * Version: 1.0
- * Description: Exported IrDA sockets interface
+ * Version:
+ * Description:
* Status: Experimental.
* Author: Dag Brattli <dagb@cs.uit.no>
* Created at: Mon Mar 8 14:06:12 1999
- * Modified at: Mon Sep 27 12:11:49 1999
+ * Modified at: Sun Oct 10 23:00:59 1999
* Modified by: Dag Brattli <dagb@cs.uit.no>
*
* Copyright (c) 1999 Dag Brattli, All Rights Reserved.
@@ -19,7 +19,7 @@
* Neither Dag Brattli nor University of Tromsų admit liability nor
* provide warranty for any of this software. This material is
* provided "AS-IS" and at no charge.
- *
+ *
********************************************************************/
#ifndef KERNEL_IRDA_H
@@ -44,17 +44,28 @@
#define HINT_OBEX 0x20
/* IrLMP character code values */
-#define CS_ASCII 0x00
-#define CS_ISO_8859_1 0x01
-#define CS_ISO_8859_2 0x02
-#define CS_ISO_8859_3 0x03
-#define CS_ISO_8859_4 0x04
-#define CS_ISO_8859_5 0x05
-#define CS_ISO_8859_6 0x06
-#define CS_ISO_8859_7 0x07
-#define CS_ISO_8859_8 0x08
-#define CS_ISO_8859_9 0x09
-#define CS_UNICODE 0xff
+#define CS_ASCII 0x00
+#define CS_ISO_8859_1 0x01
+#define CS_ISO_8859_2 0x02
+#define CS_ISO_8859_3 0x03
+#define CS_ISO_8859_4 0x04
+#define CS_ISO_8859_5 0x05
+#define CS_ISO_8859_6 0x06
+#define CS_ISO_8859_7 0x07
+#define CS_ISO_8859_8 0x08
+#define CS_ISO_8859_9 0x09
+#define CS_UNICODE 0xff
+
+/* These are the currently known dongles */
+typedef enum {
+ IRDA_TEKRAM_DONGLE,
+ IRDA_ESI_DONGLE,
+ IRDA_ACTISYS_DONGLE,
+ IRDA_ACTISYS_PLUS_DONGLE,
+ IRDA_GIRBIL_DONGLE,
+ IRDA_LITELINK_DONGLE,
+ IRDA_AIRPORT_DONGLE,
+} IRDA_DONGLE;
#define SOL_IRLMP 266 /* Same as SOL_IRDA for now */
#define SOL_IRTTP 266 /* Same as SOL_IRDA for now */
@@ -68,12 +79,12 @@
#define IRTTP_QOS_GET 6
#define IRTTP_MAX_SDU_SIZE 7
-#define IAS_MAX_STRING 256
-#define IAS_MAX_OCTET_STRING 1024
-#define IAS_MAX_CLASSNAME 64
-#define IAS_MAX_ATTRIBNAME 256
+#define IAS_MAX_STRING 256
+#define IAS_MAX_OCTET_STRING 1024
+#define IAS_MAX_CLASSNAME 64
+#define IAS_MAX_ATTRIBNAME 256
-#define LSAP_ANY 0xff
+#define LSAP_ANY 0xff
struct sockaddr_irda {
sa_family_t sir_family; /* AF_IRDA */
@@ -113,6 +124,61 @@ struct irda_ias_set {
} attribute;
};
+/* Some private IOCTL's (max 16) */
+#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
+#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
+#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
+#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
+#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
+#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
+#define SIOCSRAWMODE (SIOCDEVPRIVATE + 6)
+#define SIOCSDTRRTS (SIOCDEVPRIVATE + 7)
+#define SIOCGQOS (SIOCDEVPRIVATE + 8)
+
+/* No reason to include <linux/if.h> just because of this one ;-) */
+#define IRNAMSIZ 16
+
+/* IrDA quality of service information (must not exceed 16 bytes) */
+struct if_irda_qos {
+ unsigned long baudrate;
+ unsigned short data_size;
+ unsigned short window_size;
+ unsigned short min_turn_time;
+ unsigned short max_turn_time;
+ unsigned char add_bofs;
+ unsigned char link_disc;
+};
+
+/* For setting RTS and DTR lines of a dongle */
+struct if_irda_line {
+ unsigned char dtr;
+ unsigned char rts;
+};
+
+/* IrDA interface configuration (data part must not exceed 16 bytes) */
+struct if_irda_req {
+ union {
+ char ifrn_name[IRNAMSIZ]; /* if name, e.g. "irda0" */
+ } ifr_ifrn;
+
+ /* Data part */
+ union {
+ struct if_irda_line ifru_line;
+ struct if_irda_qos ifru_qos;
+ unsigned short ifru_flags;
+ unsigned int ifru_receiving;
+ unsigned int ifru_raw_mode;
+ unsigned int ifru_dongle;
+ } ifr_ifru;
+};
+
+#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
+#define ifr_receiving ifr_ifru.ifru_receiving
+#define ifr_dongle ifr_ifru.ifru_dongle
+#define ifr_raw_mode ifr_ifru.ifru_raw_mode
+#define ifr_dtr ifr_ifru.ifru_line.dtr
+#define ifr_rts ifr_ifru.ifru_line.rts
+
#endif /* KERNEL_IRDA_H */
diff --git a/include/linux/major.h b/include/linux/major.h
index 5af26c50d..dfca27dc5 100644
--- a/include/linux/major.h
+++ b/include/linux/major.h
@@ -117,6 +117,7 @@
#define AURORA_MAJOR 79
+#define RTF_MAJOR 150
#define RAW_MAJOR 162
#define UNIX98_PTY_MASTER_MAJOR 128
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 778511f6f..1f23dac1c 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -106,7 +106,7 @@ struct vm_operations_struct {
void (*advise)(struct vm_area_struct *area, unsigned long, size_t, unsigned int advise);
struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int write_access);
struct page * (*wppage)(struct vm_area_struct * area, unsigned long address, struct page * page);
- int (*swapout)(struct vm_area_struct *, struct page *);
+ int (*swapout)(struct page *, struct file *);
};
/*
@@ -120,7 +120,7 @@ struct vm_operations_struct {
typedef struct page {
/* these must be first (free area handling) */
struct list_head list;
- struct inode *inode;
+ struct address_space *mapping;
unsigned long offset;
struct page *next_hash;
atomic_t count;
@@ -129,17 +129,13 @@ typedef struct page {
wait_queue_head_t wait;
struct page **pprev_hash;
struct buffer_head * buffers;
- void *owner; /* temporary debugging check */
} mem_map_t;
-#define get_page(p) do { atomic_inc(&(p)->count); \
- } while (0)
-#define put_page(p) __free_page(p)
-#define put_page_testzero(p) ({ int __ret = atomic_dec_and_test(&(p)->count);\
- __ret; })
-#define page_count(p) atomic_read(&(p)->count)
-#define set_page_count(p,v) do { atomic_set(&(p)->count, v); \
- } while (0)
+#define get_page(p) atomic_inc(&(p)->count)
+#define put_page(p) __free_page(p)
+#define put_page_testzero(p) atomic_dec_and_test(&(p)->count)
+#define page_count(p) atomic_read(&(p)->count)
+#define set_page_count(p,v) atomic_set(&(p)->count, v)
/* Page flag bit values */
#define PG_locked 0
@@ -158,54 +154,44 @@ typedef struct page {
/* Make it prettier to test the above... */
-#define Page_Uptodate(page) (test_bit(PG_uptodate, &(page)->flags))
-#define SetPageUptodate(page) do { set_bit(PG_uptodate, &(page)->flags); \
- } while (0)
-#define ClearPageUptodate(page) do { clear_bit(PG_uptodate, &(page)->flags); \
- } while (0)
-#define PageLocked(page) (test_bit(PG_locked, &(page)->flags))
-#define LockPage(page) \
- do { int _ret = test_and_set_bit(PG_locked, &(page)->flags); \
- if (_ret) PAGE_BUG(page); \
- if (page->owner) PAGE_BUG(page); \
- page->owner = current; } while (0)
-#define TryLockPage(page) ({ int _ret = test_and_set_bit(PG_locked, &(page)->flags); \
- if (!_ret) page->owner = current; _ret; })
+#define Page_Uptodate(page) test_bit(PG_uptodate, &(page)->flags)
+#define SetPageUptodate(page) set_bit(PG_uptodate, &(page)->flags)
+#define ClearPageUptodate(page) clear_bit(PG_uptodate, &(page)->flags)
+#define PageLocked(page) test_bit(PG_locked, &(page)->flags)
+#define LockPage(page) set_bit(PG_locked, &(page)->flags)
+#define TryLockPage(page) test_and_set_bit(PG_locked, &(page)->flags)
#define UnlockPage(page) do { \
- if (page->owner != current) { \
-BUG(); } page->owner = 0; \
-if (!test_and_clear_bit(PG_locked, &(page)->flags)) { \
- PAGE_BUG(page); } wake_up(&page->wait); } while (0)
-#define PageError(page) (test_bit(PG_error, &(page)->flags))
-#define SetPageError(page) ({ int _ret = test_and_set_bit(PG_error, &(page)->flags); _ret; })
-#define ClearPageError(page) do { if (!test_and_clear_bit(PG_error, &(page)->flags)) BUG(); } while (0)
-#define PageReferenced(page) (test_bit(PG_referenced, &(page)->flags))
-#define PageDecrAfter(page) (test_bit(PG_decr_after, &(page)->flags))
-#define PageDMA(page) (test_bit(PG_DMA, &(page)->flags))
-#define PageSlab(page) (test_bit(PG_slab, &(page)->flags))
-#define PageSwapCache(page) (test_bit(PG_swap_cache, &(page)->flags))
-#define PageReserved(page) (test_bit(PG_reserved, &(page)->flags))
-
-#define PageSetSlab(page) (set_bit(PG_slab, &(page)->flags))
-#define PageSetSwapCache(page) (set_bit(PG_swap_cache, &(page)->flags))
-
-#define PageTestandSetSwapCache(page) \
- (test_and_set_bit(PG_swap_cache, &(page)->flags))
-
-#define PageClearSlab(page) (clear_bit(PG_slab, &(page)->flags))
-#define PageClearSwapCache(page)(clear_bit(PG_swap_cache, &(page)->flags))
-
-#define PageTestandClearSwapCache(page) \
- (test_and_clear_bit(PG_swap_cache, &(page)->flags))
+ clear_bit(PG_locked, &(page)->flags); \
+ wake_up(&page->wait); \
+ } while (0)
+#define PageError(page) test_bit(PG_error, &(page)->flags)
+#define SetPageError(page) test_and_set_bit(PG_error, &(page)->flags)
+#define ClearPageError(page) clear_bit(PG_error, &(page)->flags)
+#define PageReferenced(page) test_bit(PG_referenced, &(page)->flags)
+#define PageDecrAfter(page) test_bit(PG_decr_after, &(page)->flags)
+#define PageDMA(page) test_bit(PG_DMA, &(page)->flags)
+#define PageSlab(page) test_bit(PG_slab, &(page)->flags)
+#define PageSwapCache(page) test_bit(PG_swap_cache, &(page)->flags)
+#define PageReserved(page) test_bit(PG_reserved, &(page)->flags)
+
+#define PageSetSlab(page) set_bit(PG_slab, &(page)->flags)
+#define PageSetSwapCache(page) set_bit(PG_swap_cache, &(page)->flags)
+
+#define PageTestandSetSwapCache(page) test_and_set_bit(PG_swap_cache, &(page)->flags)
+
+#define PageClearSlab(page) clear_bit(PG_slab, &(page)->flags)
+#define PageClearSwapCache(page) clear_bit(PG_swap_cache, &(page)->flags)
+
+#define PageTestandClearSwapCache(page) test_and_clear_bit(PG_swap_cache, &(page)->flags)
+
#ifdef CONFIG_HIGHMEM
-#define PageHighMem(page) (test_bit(PG_highmem, &(page)->flags))
+#define PageHighMem(page) test_bit(PG_highmem, &(page)->flags)
#else
-#define PageHighMem(page) 0 /* needed to optimize away at compile time */
+#define PageHighMem(page) 0 /* needed to optimize away at compile time */
#endif
-#define SetPageReserved(page) do { set_bit(PG_reserved, &(page)->flags); \
- } while (0)
-#define ClearPageReserved(page) do { test_and_clear_bit(PG_reserved, &(page)->flags); } while (0)
+#define SetPageReserved(page) set_bit(PG_reserved, &(page)->flags)
+#define ClearPageReserved(page) clear_bit(PG_reserved, &(page)->flags)
/*
@@ -359,7 +345,6 @@ extern void remove_inode_page(struct page *);
extern unsigned long page_unuse(struct page *);
extern int shrink_mmap(int, int);
extern void truncate_inode_pages(struct inode *, unsigned long);
-extern unsigned long get_cached_page(struct inode *, unsigned long, int);
extern void put_cached_page(unsigned long);
/*
@@ -414,10 +399,8 @@ static inline int expand_stack(struct vm_area_struct * vma, unsigned long addres
address &= PAGE_MASK;
grow = vma->vm_start - address;
- if (vma->vm_end - address
- > (unsigned long) current->rlim[RLIMIT_STACK].rlim_cur ||
- (vma->vm_mm->total_vm << PAGE_SHIFT) + grow
- > (unsigned long) current->rlim[RLIMIT_AS].rlim_cur)
+ if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur ||
+ (vma->vm_mm->total_vm << PAGE_SHIFT) + grow > current->rlim[RLIMIT_AS].rlim_cur)
return -ENOMEM;
vma->vm_start = address;
vma->vm_offset -= grow;
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h
index 3370208ae..1f3a61486 100644
--- a/include/linux/nfsd/export.h
+++ b/include/linux/nfsd/export.h
@@ -34,8 +34,9 @@
#define NFSEXP_UIDMAP 0x0040
#define NFSEXP_KERBEROS 0x0080 /* not available */
#define NFSEXP_SUNSECURE 0x0100
-#define NFSEXP_CROSSMNT 0x0200 /* not available */
-#define NFSEXP_ALLFLAGS 0x03FF
+#define NFSEXP_CROSSMNT 0x0200
+#define NFSEXP_NOSUBTREECHECK 0x0400
+#define NFSEXP_ALLFLAGS 0x07FF
#ifdef __KERNEL__
diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h
index 5c0d673f2..ca34d85e3 100644
--- a/include/linux/nfsd/nfsfh.h
+++ b/include/linux/nfsd/nfsfh.h
@@ -109,9 +109,6 @@ void nfsd_fh_flush(kdev_t);
void nfsd_fh_init(void);
void nfsd_fh_free(void);
-void expire_all(void);
-void expire_by_dentry(struct dentry *);
-
static __inline__ struct svc_fh *
fh_copy(struct svc_fh *dst, struct svc_fh *src)
{
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 6410d3d1e..de5514574 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -59,10 +59,13 @@ extern void page_cache_init(unsigned long);
* and get a reasonable hash by knowing roughly how the
* inode pointer and offsets are distributed (ie, we
* roughly know which bits are "significant")
+ *
+ * For the time being it will work for struct address_space too (most of
+ * them sitting inside the inodes). We might want to change it later.
*/
-extern inline unsigned long _page_hashfn(struct inode * inode, unsigned long offset)
+extern inline unsigned long _page_hashfn(struct address_space * mapping, unsigned long offset)
{
-#define i (((unsigned long) inode)/(sizeof(struct inode) & ~ (sizeof(struct inode) - 1)))
+#define i (((unsigned long) mapping)/(sizeof(struct inode) & ~ (sizeof(struct inode) - 1)))
#define o (offset >> PAGE_SHIFT)
#define s(x) ((x)+((x)>>PAGE_HASH_BITS))
return s(i+o) & (PAGE_HASH_SIZE-1);
@@ -71,33 +74,33 @@ extern inline unsigned long _page_hashfn(struct inode * inode, unsigned long off
#undef s
}
-#define page_hash(inode,offset) (page_hash_table+_page_hashfn(inode,offset))
+#define page_hash(mapping,offset) (page_hash_table+_page_hashfn(mapping,offset))
-extern struct page * __find_get_page (struct inode * inode,
+extern struct page * __find_get_page (struct address_space *mapping,
unsigned long offset, struct page **hash);
-#define find_get_page(inode, offset) \
- __find_get_page(inode, offset, page_hash(inode, offset))
-extern struct page * __find_lock_page (struct inode * inode,
+#define find_get_page(mapping, offset) \
+ __find_get_page(mapping, offset, page_hash(mapping, offset))
+extern struct page * __find_lock_page (struct address_space * mapping,
unsigned long offset, struct page **hash);
extern void lock_page(struct page *page);
-#define find_lock_page(inode, offset) \
- __find_lock_page(inode, offset, page_hash(inode, offset))
+#define find_lock_page(mapping, offset) \
+ __find_lock_page(mapping, offset, page_hash(mapping, offset))
extern void __add_page_to_hash_queue(struct page * page, struct page **p);
-extern void add_to_page_cache(struct page * page, struct inode * inode, unsigned long offset);
-extern int add_to_page_cache_unique(struct page * page, struct inode * inode, unsigned long offset, struct page **hash);
+extern void add_to_page_cache(struct page * page, struct address_space *mapping, unsigned long offset);
+extern int add_to_page_cache_unique(struct page * page, struct address_space *mapping, unsigned long offset, struct page **hash);
extern inline void add_page_to_hash_queue(struct page * page, struct inode * inode, unsigned long offset)
{
- __add_page_to_hash_queue(page, page_hash(inode,offset));
+ __add_page_to_hash_queue(page, page_hash(&inode->i_data,offset));
}
-extern inline void add_page_to_inode_queue(struct inode * inode, struct page * page)
+extern inline void add_page_to_inode_queue(struct address_space *mapping, struct page * page)
{
- struct list_head *head = &inode->i_pages;
+ struct list_head *head = &mapping->pages;
- if (!inode->i_nrpages++) {
+ if (!mapping->nrpages++) {
if (!list_empty(head))
BUG();
} else {
@@ -105,14 +108,14 @@ extern inline void add_page_to_inode_queue(struct inode * inode, struct page * p
BUG();
}
list_add(&page->list, head);
- page->inode = inode;
+ page->mapping = mapping;
}
extern inline void remove_page_from_inode_queue(struct page * page)
{
- struct inode * inode = page->inode;
+ struct address_space * mapping = page->mapping;
- inode->i_nrpages--;
+ mapping->nrpages--;
list_del(&page->list);
}
diff --git a/include/linux/resource.h b/include/linux/resource.h
index f3bffbd7f..5b38bb9e9 100644
--- a/include/linux/resource.h
+++ b/include/linux/resource.h
@@ -37,11 +37,16 @@ struct rusage {
long ru_nivcsw; /* involuntary " */
};
-#define RLIM_INFINITY ((long)(~0UL>>1))
+/*
+ * SuS says limits have to be unsigned.
+ *
+ * Which makes a ton more sense anyway.
+ */
+#define RLIM_INFINITY (~0UL)
struct rlimit {
- long rlim_cur;
- long rlim_max;
+ unsigned long rlim_cur;
+ unsigned long rlim_max;
};
#define PRIO_MIN (-20)
diff --git a/include/linux/serialP.h b/include/linux/serialP.h
index 3726d9b5d..9f8af3dec 100644
--- a/include/linux/serialP.h
+++ b/include/linux/serialP.h
@@ -23,9 +23,6 @@
#include <linux/termios.h>
#include <linux/tqueue.h>
#include <linux/wait.h>
-#ifdef CONFIG_PCI
-#include <linux/pci.h>
-#endif
/*
* Counters of the input lines (CTS, DSR, RI, CD) interrupts
@@ -151,6 +148,7 @@ struct rs_multiport_struct {
/*
* Structures and definitions for PCI support
*/
+struct pci_dev;
struct pci_board {
unsigned short vendor;
unsigned short device;
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 7030b788d..0e186d76b 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -65,7 +65,7 @@ extern int nr_free_pages;
extern int nr_lru_pages;
extern struct list_head lru_cache;
extern atomic_t nr_async_pages;
-extern struct inode swapper_inode;
+extern struct address_space swapper_space;
extern atomic_t page_cache_size;
extern atomic_t buffermem_pages;
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index c5ba9895f..0e1e65a70 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -103,7 +103,8 @@ enum
KERN_MSGPOOL=37, /* int: Maximum system message pool size */
KERN_SYSRQ=38, /* int: Sysreq enable */
KERN_MAX_THREADS=39, /* int: Maximum nr of threads in the system */
- KERN_RANDOM=40 /* Random driver */
+ KERN_RANDOM=40, /* Random driver */
+ KERN_SHMALL=41 /* int: Maximum size of shared memory */
};
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 69050c8a8..5d85bca76 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -23,7 +23,6 @@
#include <linux/tqueue.h>
#include <linux/tty_driver.h>
#include <linux/tty_ldisc.h>
-#include <linux/serialP.h>
#include <asm/system.h>