summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acpi.h4
-rw-r--r--include/linux/bigmem.h48
-rw-r--r--include/linux/binfmts.h2
-rw-r--r--include/linux/bootmem.h29
-rw-r--r--include/linux/cdrom.h84
-rw-r--r--include/linux/fs.h23
-rw-r--r--include/linux/hdreg.h2
-rw-r--r--include/linux/highmem.h77
-rw-r--r--include/linux/ide.h5
-rw-r--r--include/linux/iobuf.h1
-rw-r--r--include/linux/joystick.h14
-rw-r--r--include/linux/kernel.h7
-rw-r--r--include/linux/mm.h74
-rw-r--r--include/linux/nfs.h15
-rw-r--r--include/linux/nfs_fs.h20
-rw-r--r--include/linux/nfs_fs_i.h8
-rw-r--r--include/linux/pagemap.h47
-rw-r--r--include/linux/pci.h11
-rw-r--r--include/linux/pci_ids.h5
-rw-r--r--include/linux/proc_fs.h1
-rw-r--r--include/linux/sched.h5
-rw-r--r--include/linux/shm.h4
-rw-r--r--include/linux/slab.h2
-rw-r--r--include/linux/swap.h27
-rw-r--r--include/linux/sysv_fs.h1
-rw-r--r--include/linux/tty.h7
26 files changed, 351 insertions, 172 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index d6521ab67..1f5ec5f7a 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -28,8 +28,8 @@
#define ACPI_MINOR_DEV 167
/* RSDP location */
-#define ACPI_BIOS_ROM_BASE ((__u8*) 0xe0000)
-#define ACPI_BIOS_ROM_END ((__u8*) 0x100000)
+#define ACPI_BIOS_ROM_BASE (0x0e0000)
+#define ACPI_BIOS_ROM_END (0x100000)
/* Table signatures */
#define ACPI_RSDP1_SIG 0x20445352 /* 'RSD ' */
diff --git a/include/linux/bigmem.h b/include/linux/bigmem.h
deleted file mode 100644
index 289183bfe..000000000
--- a/include/linux/bigmem.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef _LINUX_BIGMEM_H
-#define _LINUX_BIGMEM_H
-
-#include <linux/config.h>
-
-#ifdef CONFIG_BIGMEM
-
-#include <asm/bigmem.h>
-
-/* declarations for linux/mm/bigmem.c */
-extern unsigned long bigmem_mapnr;
-extern int nr_free_bigpages;
-
-extern struct page * prepare_bigmem_swapout(struct page *);
-extern struct page * replace_with_bigmem(struct page *);
-
-#else /* CONFIG_BIGMEM */
-
-#define prepare_bigmem_swapout(page) page
-#define replace_with_bigmem(page) page
-#define kmap(kaddr, type) kaddr
-#define kunmap(vaddr, type) do { } while (0)
-#define nr_free_bigpages 0
-
-#endif /* CONFIG_BIGMEM */
-
-/* when CONFIG_BIGMEM is not set these will be plain clear/copy_page */
-extern inline void clear_bigpage(unsigned long kaddr)
-{
- unsigned long vaddr;
-
- vaddr = kmap(kaddr, KM_WRITE);
- clear_page(vaddr);
- kunmap(vaddr, KM_WRITE);
-}
-
-extern inline void copy_bigpage(unsigned long to, unsigned long from)
-{
- unsigned long vfrom, vto;
-
- vfrom = kmap(from, KM_READ);
- vto = kmap(to, KM_WRITE);
- copy_page(vto, vfrom);
- kunmap(vfrom, KM_READ);
- kunmap(vto, KM_WRITE);
-}
-
-#endif /* _LINUX_BIGMEM_H */
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
index 4f7fe13f7..31721c101 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -18,7 +18,7 @@
*/
struct linux_binprm{
char buf[128];
- unsigned long page[MAX_ARG_PAGES];
+ struct page *page[MAX_ARG_PAGES];
unsigned long p; /* current top of mem */
int sh_bang;
struct dentry * dentry;
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
new file mode 100644
index 000000000..a0727169e
--- /dev/null
+++ b/include/linux/bootmem.h
@@ -0,0 +1,29 @@
+#ifndef _LINUX_BOOTMEM_H
+#define _LINUX_BOOTMEM_H
+
+#include <linux/config.h>
+#include <asm/pgtable.h>
+#include <asm/dma.h>
+
+/*
+ * simple boot-time physical memory area allocator.
+ */
+
+extern unsigned long max_low_pfn;
+
+extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend);
+extern void __init reserve_bootmem (unsigned long addr, unsigned long size);
+extern void __init free_bootmem (unsigned long addr, unsigned long size);
+extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal);
+#define alloc_bootmem(x) \
+ __alloc_bootmem((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
+#define alloc_bootmem_pages(x) \
+ __alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
+#define alloc_bootmem_low_pages(x) \
+ __alloc_bootmem((x), PAGE_SIZE, 0)
+extern unsigned long __init free_all_bootmem (void);
+
+#endif /* _LINUX_BOOTMEM_H */
+
+
+
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
index bf3796692..bfcce8e71 100644
--- a/include/linux/cdrom.h
+++ b/include/linux/cdrom.h
@@ -273,6 +273,7 @@ struct cdrom_generic_command
unsigned char *buffer;
unsigned int buflen;
int stat;
+ void *reserved[4];
};
@@ -655,6 +656,14 @@ typedef union {
} dvd_authinfo;
#ifdef __KERNEL__
+
+struct cdrom_write_settings {
+ unsigned char fpacket; /* fixed/variable packets */
+ unsigned long packet_size; /* write out this number of packets */
+ unsigned long nwa; /* next writeable address */
+ unsigned char writeable; /* cdrom is writeable */
+};
+
/* Uniform cdrom data structures for cdrom.c */
struct cdrom_device_info {
struct cdrom_device_ops *ops; /* link to device_ops */
@@ -673,6 +682,7 @@ struct cdrom_device_info {
/* per-device flags */
__u8 sanyo_slot : 2; /* Sanyo 3 CD changer support */
__u8 reserved : 6; /* not used yet */
+ struct cdrom_write_settings write;
};
struct cdrom_device_ops {
@@ -760,8 +770,6 @@ typedef struct {
__u8 uru : 1;
__u8 dbc_v : 1;
__u8 did_v : 1;
-#else
-#error "Please fix <asm/byteorder.h>"
#endif
__u8 disc_type;
__u8 n_sessions_msb;
@@ -806,8 +814,6 @@ typedef struct {
__u8 nwa_v : 1;
__u8 lra_v : 1;
__u8 reserved3 : 6;
-#else
-#error "Please fix <asm/byteorder.h>"
#endif
__u32 track_start;
__u32 next_writable;
@@ -835,15 +841,12 @@ struct cdrom_mechstat_header {
__u8 reserved1 : 4;
__u8 door_open : 1;
__u8 mech_state : 3;
-#else
-#error "Please fix <asm/byteorder.h>"
#endif
__u8 curlba[3];
__u8 nslots;
__u8 short slot_tablelen;
};
-
struct cdrom_slot {
#if defined(__BIG_ENDIAN_BITFIELD)
__u8 disc_present : 1;
@@ -853,8 +856,6 @@ struct cdrom_slot {
__u8 change : 1;
__u8 reserved1 : 6;
__u8 disc_present : 1;
-#else
-#error "Please fix <asm/byteorder.h>"
#endif
__u8 reserved2[3];
};
@@ -872,6 +873,71 @@ typedef enum {
mechtype_cartridge_changer = 5
} mechtype_t;
+struct mode_page_header {
+ __u16 mode_data_length;
+ __u8 medium_type;
+ __u8 reserved1;
+ __u8 reserved2;
+ __u8 reserved3;
+ __u16 desc_length;
+};
+
+typedef struct {
+ struct mode_page_header header;
+#if defined(__BIG_ENDIAN_BITFIELD)
+ __u8 ps : 1;
+ __u8 reserved1 : 1;
+ __u8 page_code : 6;
+ __u8 page_length;
+ __u8 reserved2 : 1;
+ __u8 bufe : 1;
+ __u8 ls_v : 1;
+ __u8 test_write : 1;
+ __u8 write_type : 4;
+ __u8 multi_session : 2; /* or border, DVD */
+ __u8 fp : 1;
+ __u8 copy : 1;
+ __u8 track_mode : 4;
+ __u8 reserved3 : 4;
+ __u8 data_block_type : 4;
+#elif defined(__LITTLE_ENDIAN_BITFIELD)
+ __u8 page_code : 6;
+ __u8 reserved1 : 1;
+ __u8 ps : 1;
+ __u8 page_length;
+ __u8 write_type : 4;
+ __u8 test_write : 1;
+ __u8 ls_v : 1;
+ __u8 bufe : 1;
+ __u8 reserved2 : 1;
+ __u8 track_mode : 4;
+ __u8 copy : 1;
+ __u8 fp : 1;
+ __u8 multi_session : 2; /* or border, DVD */
+ __u8 data_block_type : 4;
+ __u8 reserved3 : 4;
+#endif
+ __u8 link_size;
+ __u8 reserved4;
+#if defined(__BIG_ENDIAN_BITFIELD)
+ __u8 reserved5 : 2;
+ __u8 app_code : 6;
+#elif defined(__LITTLE_ENDIAN_BITFIELD)
+ __u8 app_code : 6;
+ __u8 reserved5 : 2;
+#endif
+ __u8 session_format;
+ __u8 reserved6;
+ __u32 packet_size;
+ __u16 audio_pause;
+ __u8 mcn[16];
+ __u8 isrc[16];
+ __u8 subhdr0;
+ __u8 subhdr1;
+ __u8 subhdr2;
+ __u8 subhdr3;
+} write_param_page __attribute__((packed));
+
#endif /* End of kernel only stuff */
#endif /* _LINUX_CDROM_H */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6d88414ea..c6c7d76d2 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -323,6 +323,11 @@ struct iattr {
#include <linux/quota.h>
#include <linux/mount.h>
+/*
+ * oh the beauties of C type declarations.
+ */
+struct page;
+
struct inode {
struct list_head i_hash;
struct list_head i_list;
@@ -350,7 +355,7 @@ struct inode {
wait_queue_head_t i_wait;
struct file_lock *i_flock;
struct vm_area_struct *i_mmap;
- struct page *i_pages;
+ struct list_head i_pages;
spinlock_t i_shared_lock;
struct dquot *i_dquot[MAXQUOTAS];
struct pipe_inode_info *i_pipe;
@@ -769,8 +774,6 @@ extern int fs_may_mount(kdev_t);
extern int try_to_free_buffers(struct page *);
extern void refile_buffer(struct buffer_head * buf);
-extern atomic_t buffermem;
-
#define BUF_CLEAN 0
#define BUF_LOCKED 1 /* Buffers scheduled for write */
#define BUF_DIRTY 2 /* Dirty buffers, not yet scheduled for write */
@@ -874,7 +877,7 @@ typedef struct {
int error;
} read_descriptor_t;
-typedef int (*read_actor_t)(read_descriptor_t *, const char *, unsigned long);
+typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
@@ -886,7 +889,14 @@ extern struct dentry * __namei(const char *, unsigned int);
extern void iput(struct inode *);
extern struct inode * igrab(struct inode *);
extern ino_t iunique(struct super_block *, ino_t);
-extern struct inode * iget(struct super_block *, unsigned long);
+
+typedef int (*find_inode_t)(struct inode *, unsigned long, void *);
+extern struct inode * iget4(struct super_block *, unsigned long, find_inode_t, void *);
+static inline struct inode *iget(struct super_block *sb, unsigned long ino)
+{
+ return iget4(sb, ino, NULL, NULL);
+}
+
extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);
@@ -934,11 +944,14 @@ extern void do_generic_file_read(struct file * filp, loff_t *ppos, read_descript
extern struct super_block *get_super(kdev_t);
+struct super_block *get_empty_super(void);
+void remove_vfsmnt(kdev_t dev);
extern void put_super(kdev_t);
unsigned long generate_cluster(kdev_t, int b[], int);
unsigned long generate_cluster_swab32(kdev_t, int b[], int);
extern kdev_t ROOT_DEV;
+extern void show_buffers(void);
extern void mount_root(void);
#ifdef CONFIG_BLK_DEV_INITRD
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h
index 2fee75fec..df52d3ca9 100644
--- a/include/linux/hdreg.h
+++ b/include/linux/hdreg.h
@@ -81,6 +81,8 @@
#define WIN_SRST 0x08 /* ATAPI soft reset command */
#define WIN_PACKETCMD 0xa0 /* Send a packet command. */
+#define EXABYTE_ENABLE_NEST 0xf0
+
/* WIN_SMART sub-commands */
#define SMART_READ_VALUES 0xd0
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
new file mode 100644
index 000000000..3879d1e61
--- /dev/null
+++ b/include/linux/highmem.h
@@ -0,0 +1,77 @@
+#ifndef _LINUX_HIGHMEM_H
+#define _LINUX_HIGHMEM_H
+
+#include <linux/config.h>
+#include <asm/pgtable.h>
+
+#ifdef CONFIG_HIGHMEM
+
+extern struct page *highmem_start_page;
+
+#include <asm/highmem.h>
+
+/* declarations for linux/mm/highmem.c */
+extern unsigned long highmem_mapnr;
+extern unsigned long nr_free_highpages;
+
+extern struct page * prepare_highmem_swapout(struct page *);
+extern struct page * replace_with_highmem(struct page *);
+
+#else /* CONFIG_HIGHMEM */
+
+#define prepare_highmem_swapout(page) page
+#define replace_with_highmem(page) page
+#define kmap(page, type) page_address(page)
+#define kunmap(vaddr, type) do { } while (0)
+#define nr_free_highpages 0UL
+
+#endif /* CONFIG_HIGHMEM */
+
+/* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */
+extern inline void clear_highpage(struct page *page)
+{
+ unsigned long kaddr;
+
+ kaddr = kmap(page, KM_WRITE);
+ clear_page((void *)kaddr);
+ kunmap(kaddr, KM_WRITE);
+}
+
+extern inline void memclear_highpage(struct page *page, unsigned int offset, unsigned int size)
+{
+ unsigned long kaddr;
+
+ if (offset + size > PAGE_SIZE)
+ BUG();
+ kaddr = kmap(page, KM_WRITE);
+ memset((void *)(kaddr + offset), 0, size);
+ kunmap(kaddr, KM_WRITE);
+}
+
+/*
+ * Same but also flushes aliased cache contents to RAM.
+ */
+extern inline void memclear_highpage_flush(struct page *page, unsigned int offset, unsigned int size)
+{
+ unsigned long kaddr;
+
+ if (offset + size > PAGE_SIZE)
+ BUG();
+ kaddr = kmap(page, KM_WRITE);
+ memset((void *)(kaddr + offset), 0, size);
+ flush_page_to_ram(page);
+ kunmap(kaddr, KM_WRITE);
+}
+
+extern inline void copy_highpage(struct page *to, struct page *from)
+{
+ unsigned long vfrom, vto;
+
+ vfrom = kmap(from, KM_READ);
+ vto = kmap(to, KM_WRITE);
+ copy_page((void *)vto, (void *)vfrom);
+ kunmap(vfrom, KM_READ);
+ kunmap(vto, KM_WRITE);
+}
+
+#endif /* _LINUX_HIGHMEM_H */
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 3ebe6c211..4af0cd253 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -236,6 +236,7 @@ typedef struct ide_drive_s {
unsigned long sleep; /* sleep until this time */
unsigned long service_start; /* time we started last request */
unsigned long service_time; /* service time of last request */
+ unsigned long timeout; /* max time to wait for irq */
special_t special; /* special action flags */
byte keep_settings; /* restore settings after drive reset */
byte using_dma; /* disk is using dma for read/write */
@@ -338,6 +339,7 @@ typedef void (ide_tuneproc_t)(ide_drive_t *, byte);
* This is used to provide support for strange interfaces
*/
typedef void (ide_selectproc_t) (ide_drive_t *);
+typedef void (ide_resetproc_t) (ide_drive_t *);
/*
* hwif_chipset_t is used to keep track of the specific hardware
@@ -367,6 +369,7 @@ typedef struct hwif_s {
struct gendisk *gd; /* gendisk structure */
ide_tuneproc_t *tuneproc; /* routine to tune PIO mode for drives */
ide_selectproc_t *selectproc; /* tweaks hardware to select drive */
+ ide_resetproc_t *resetproc; /* routine to reset controller after a disk reset */
ide_dmaproc_t *dmaproc; /* dma read/write/abort routine */
unsigned long *dmatable; /* dma physical region descriptor table */
struct hwif_s *mate; /* other hwif from same PCI chip */
@@ -581,7 +584,7 @@ void atapi_output_bytes (ide_drive_t *drive, void *buffer, unsigned int bytecoun
* This is used on exit from the driver, to designate the next irq handler
* and also to start the safety timer.
*/
-void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler, unsigned int timeout);
+void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler);
/*
* Error reporting, in human readable form (luxurious, but a memory hog).
diff --git a/include/linux/iobuf.h b/include/linux/iobuf.h
index 9418888f2..420285faf 100644
--- a/include/linux/iobuf.h
+++ b/include/linux/iobuf.h
@@ -41,7 +41,6 @@ struct kiobuf
* region, there won't necessarily be page structs defined for
* every address. */
- unsigned long * pagelist;
struct page ** maplist;
unsigned int locked : 1; /* If set, pages has been locked */
diff --git a/include/linux/joystick.h b/include/linux/joystick.h
index 996babd51..ce6923de5 100644
--- a/include/linux/joystick.h
+++ b/include/linux/joystick.h
@@ -173,26 +173,16 @@ typedef struct { int something; } spinlock_t;
* Parport stuff
*/
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,0)
#define USE_PARPORT
-#endif
-#ifdef USE_PARPORT
#include <linux/parport.h>
+#include <linux/parport_pc.h>
#define JS_PAR_DATA_IN(y) parport_read_data(y->port)
#define JS_PAR_DATA_OUT(x,y) parport_write_data(y->port, x)
#define JS_PAR_STATUS(y) parport_read_status(y->port)
#define JS_PAR_CTRL_IN(y) parport_read_control(y->port)
#define JS_PAR_CTRL_OUT(x,y) parport_write_control(y->port, x)
-#define JS_PAR_ECTRL_OUT(x,y) parport_write_econtrol(y->port, x)
-#else
-#define JS_PAR_DATA_IN(y) inb(y)
-#define JS_PAR_DATA_OUT(x,y) outb(x,y)
-#define JS_PAR_STATUS(y) inb(y+1)
-#define JS_PAR_CTRL_IN(y) inb(y+2)
-#define JS_PAR_CTRL_OUT(x,y) outb(x,y+2)
-#define JS_PAR_ECTRL_OUT(x,y) outb(x,y+0x402)
-#endif
+#define JS_PAR_ECTRL_OUT(x,y) outb(x, ECONTROL(y->port))
#define JS_PAR_STATUS_INVERT (0x80)
#define JS_PAR_CTRL_INVERT (0x04)
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 89bea4477..d5b204c2c 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -94,9 +94,10 @@ struct sysinfo {
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
unsigned short procs; /* Number of current processes */
- unsigned long totalbig; /* Total big memory size */
- unsigned long freebig; /* Available big memory size */
- char _f[20-2*sizeof(long)]; /* Padding: libc5 uses this.. */
+ unsigned long totalhigh; /* Total high memory size */
+ unsigned long freehigh; /* Available high memory size */
+ unsigned int mem_unit; /* Memory unit size in bytes */
+ char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
};
#endif
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 281f6838e..778511f6f 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -8,6 +8,7 @@
#include <linux/config.h>
#include <linux/string.h>
+#include <linux/list.h>
extern unsigned long max_mapnr;
extern unsigned long num_physpages;
@@ -103,9 +104,8 @@ struct vm_operations_struct {
void (*protect)(struct vm_area_struct *area, unsigned long, size_t, unsigned int newprot);
int (*sync)(struct vm_area_struct *area, unsigned long, size_t, unsigned int flags);
void (*advise)(struct vm_area_struct *area, unsigned long, size_t, unsigned int advise);
- unsigned long (*nopage)(struct vm_area_struct * area, unsigned long address, int write_access);
- unsigned long (*wppage)(struct vm_area_struct * area, unsigned long address,
- unsigned long page);
+ 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 *);
};
@@ -119,8 +119,7 @@ struct vm_operations_struct {
*/
typedef struct page {
/* these must be first (free area handling) */
- struct page *next;
- struct page *prev;
+ struct list_head list;
struct inode *inode;
unsigned long offset;
struct page *next_hash;
@@ -149,11 +148,11 @@ typedef struct page {
#define PG_uptodate 3
#define PG_decr_after 5
#define PG_DMA 7
-#define PG_Slab 8
+#define PG_slab 8
#define PG_swap_cache 9
#define PG_skip 10
#define PG_swap_entry 11
-#define PG_BIGMEM 12
+#define PG_highmem 12
/* bits 21-30 unused */
#define PG_reserved 31
@@ -183,27 +182,32 @@ if (!test_and_clear_bit(PG_locked, &(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 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 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 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_BIGMEM
-#define PageBIGMEM(page) (test_bit(PG_BIGMEM, &(page)->flags))
+#ifdef CONFIG_HIGHMEM
+#define PageHighMem(page) (test_bit(PG_highmem, &(page)->flags))
#else
-#define PageBIGMEM(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)
+
+
/*
* Various page->flags bits:
*
@@ -224,7 +228,7 @@ if (!test_and_clear_bit(PG_locked, &(page)->flags)) { \
* (e.g. a private data page of one process).
*
* A page may be used for kmalloc() or anyone else who does a
- * get_free_page(). In this case the page->count is at least 1, and
+ * __get_free_page(). In this case the page->count is at least 1, and
* all other fields are unused but should be 0 or NULL. The
* management of this page is the responsibility of the one who uses
* it.
@@ -281,20 +285,27 @@ extern mem_map_t * mem_map;
* goes to clearing the page. If you want a page without the clearing
* overhead, just use __get_free_page() directly..
*/
+extern struct page * __get_pages(int gfp_mask, unsigned long order);
#define __get_free_page(gfp_mask) __get_free_pages((gfp_mask),0)
#define __get_dma_pages(gfp_mask, order) __get_free_pages((gfp_mask) | GFP_DMA,(order))
extern unsigned long FASTCALL(__get_free_pages(int gfp_mask, unsigned long gfp_order));
+extern struct page * get_free_highpage(int gfp_mask);
-extern inline unsigned long get_free_page(int gfp_mask)
+extern inline unsigned long get_zeroed_page(int gfp_mask)
{
unsigned long page;
page = __get_free_page(gfp_mask);
if (page)
- clear_page(page);
+ clear_page((void *)page);
return page;
}
+/*
+ * The old interface name will be removed in 2.5:
+ */
+#define get_free_page get_zeroed_page
+
/* memory.c & swap.c*/
#define free_page(addr) free_pages((addr),0)
@@ -302,7 +313,7 @@ extern int FASTCALL(free_pages(unsigned long addr, unsigned long order));
extern int FASTCALL(__free_page(struct page *));
extern void show_free_areas(void);
-extern unsigned long put_dirty_page(struct task_struct * tsk,unsigned long page,
+extern struct page * put_dirty_page(struct task_struct * tsk, struct page *page,
unsigned long address);
extern void clear_page_tables(struct mm_struct *, unsigned long, int);
@@ -322,12 +333,13 @@ extern int ptrace_writedata(struct task_struct *tsk, char * src, unsigned long d
extern int pgt_cache_water[2];
extern int check_pgt_cache(void);
-extern unsigned long paging_init(unsigned long start_mem, unsigned long end_mem);
-extern void mem_init(unsigned long start_mem, unsigned long end_mem);
+extern void paging_init(void);
+extern void free_area_init(unsigned long);
+extern void mem_init(void);
extern void show_mem(void);
extern void oom(struct task_struct * tsk);
extern void si_meminfo(struct sysinfo * val);
-extern void swapin_readahead(unsigned long);
+extern void swapin_readahead(pte_t);
/* mmap.c */
extern void vma_init(void);
@@ -359,19 +371,19 @@ extern void put_cached_page(unsigned long);
#define __GFP_HIGH 0x08
#define __GFP_IO 0x10
#define __GFP_SWAP 0x20
-#ifdef CONFIG_BIGMEM
-#define __GFP_BIGMEM 0x40
+#ifdef CONFIG_HIGHMEM
+#define __GFP_HIGHMEM 0x40
#else
-#define __GFP_BIGMEM 0x0 /* noop */
+#define __GFP_HIGHMEM 0x0 /* noop */
#endif
-#define __GFP_UNCACHED 0x40
#define __GFP_DMA 0x80
+#define __GFP_UNCACHED 0x100
#define GFP_BUFFER (__GFP_LOW | __GFP_WAIT)
#define GFP_ATOMIC (__GFP_HIGH)
-#define GFP_BIGUSER (__GFP_LOW | __GFP_WAIT | __GFP_IO | __GFP_BIGMEM)
#define GFP_USER (__GFP_LOW | __GFP_WAIT | __GFP_IO)
+#define GFP_HIGHUSER (GFP_USER | __GFP_HIGHMEM)
#define GFP_KERNEL (__GFP_MED | __GFP_WAIT | __GFP_IO)
#define GFP_NFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO)
#define GFP_KSWAPD (__GFP_IO | __GFP_SWAP)
@@ -389,10 +401,10 @@ extern void put_cached_page(unsigned long);
#define GFP_DMA __GFP_DMA
-/* Flag - indicates that the buffer can be taken from big memory which is not
+/* Flag - indicates that the buffer can be taken from high memory which is not
directly addressable by the kernel */
-#define GFP_BIGMEM __GFP_BIGMEM
+#define GFP_HIGHMEM __GFP_HIGHMEM
/* vma is the first one with address < vma->vm_end,
* and even address < vma->vm_start. Have to extend vma. */
@@ -431,11 +443,17 @@ static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * m
extern struct vm_area_struct *find_extend_vma(struct task_struct *tsk, unsigned long addr);
-#define buffer_under_min() ((atomic_read(&buffermem) >> PAGE_SHIFT) * 100 < \
+#define buffer_under_min() (atomic_read(&buffermem_pages) * 100 < \
buffer_mem.min_percent * num_physpages)
#define pgcache_under_min() (atomic_read(&page_cache_size) * 100 < \
page_cache.min_percent * num_physpages)
+#define vmlist_access_lock(mm) spin_lock(&mm->page_table_lock)
+#define vmlist_access_unlock(mm) spin_unlock(&mm->page_table_lock)
+#define vmlist_modify_lock(mm) vmlist_access_lock(mm)
+#define vmlist_modify_unlock(mm) vmlist_access_unlock(mm)
+
+
#endif /* __KERNEL__ */
#endif
diff --git a/include/linux/nfs.h b/include/linux/nfs.h
index 4f7d3230e..c188fc808 100644
--- a/include/linux/nfs.h
+++ b/include/linux/nfs.h
@@ -122,15 +122,6 @@ struct nfs_fattr {
struct nfs_time ctime;
};
-struct nfs_sattr {
- __u32 mode;
- __u32 uid;
- __u32 gid;
- __u32 size;
- struct nfs_time atime;
- struct nfs_time mtime;
-};
-
struct nfs_fsinfo {
__u32 tsize;
__u32 bsize;
@@ -150,7 +141,7 @@ struct nfs_writeargs {
struct nfs_sattrargs {
struct nfs_fh * fh;
- struct nfs_sattr * sattr;
+ struct iattr * sattr;
};
struct nfs_diropargs {
@@ -173,7 +164,7 @@ struct nfs_readargs {
struct nfs_createargs {
struct nfs_fh * fh;
const char * name;
- struct nfs_sattr * sattr;
+ struct iattr * sattr;
};
struct nfs_renameargs {
@@ -193,7 +184,7 @@ struct nfs_symlinkargs {
struct nfs_fh * fromfh;
const char * fromname;
const char * topath;
- struct nfs_sattr * sattr;
+ struct iattr * sattr;
};
struct nfs_readdirargs {
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index d91a0b641..df6b7c8df 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -77,11 +77,14 @@ do { \
: NFS_SERVER(inode)->acregmax)
#define NFS_FLAGS(inode) ((inode)->u.nfs_i.flags)
-#define NFS_REVALIDATING(inode) (NFS_FLAGS(inode) & NFS_INO_REVALIDATE)
+#define NFS_REVALIDATING(inode) (NFS_FLAGS(inode) & NFS_INO_REVALIDATING)
#define NFS_WRITEBACK(inode) ((inode)->u.nfs_i.writeback)
#define NFS_COOKIES(inode) ((inode)->u.nfs_i.cookies)
#define NFS_DIREOF(inode) ((inode)->u.nfs_i.direof)
+#define NFS_FILEID(inode) ((inode)->u.nfs_i.fileid)
+#define NFS_FSID(inode) ((inode)->u.nfs_i.fsid)
+
/*
* These are the default flags for swap requests
*/
@@ -137,7 +140,7 @@ struct nfs_wreq {
extern int nfs_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
struct nfs_fattr *fattr);
extern int nfs_proc_setattr(struct nfs_server *server, struct nfs_fh *fhandle,
- struct nfs_sattr *sattr, struct nfs_fattr *fattr);
+ struct nfs_fattr *fattr, struct iattr *sattr);
extern int nfs_proc_lookup(struct nfs_server *server, struct nfs_fh *dir,
const char *name, struct nfs_fh *fhandle,
struct nfs_fattr *fattr);
@@ -148,7 +151,7 @@ extern int nfs_proc_write(struct nfs_server *server, struct nfs_fh *fhandle,
int swap, unsigned long offset, unsigned int count,
const void *buffer, struct nfs_fattr *fattr);
extern int nfs_proc_create(struct nfs_server *server, struct nfs_fh *dir,
- const char *name, struct nfs_sattr *sattr,
+ const char *name, struct iattr *sattr,
struct nfs_fh *fhandle, struct nfs_fattr *fattr);
extern int nfs_proc_remove(struct nfs_server *server, struct nfs_fh *dir,
const char *name);
@@ -159,9 +162,9 @@ extern int nfs_proc_link(struct nfs_server *server, struct nfs_fh *fhandle,
struct nfs_fh *dir, const char *name);
extern int nfs_proc_symlink(struct nfs_server *server, struct nfs_fh *dir,
const char *name, const char *path,
- struct nfs_sattr *sattr);
+ struct iattr *sattr);
extern int nfs_proc_mkdir(struct nfs_server *server, struct nfs_fh *dir,
- const char *name, struct nfs_sattr *sattr,
+ const char *name, struct iattr *sattr,
struct nfs_fh *fhandle, struct nfs_fattr *fattr);
extern int nfs_proc_rmdir(struct nfs_server *server, struct nfs_fh *dir,
const char *name);
@@ -174,13 +177,14 @@ extern int nfs_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle,
*/
extern struct super_block *nfs_read_super(struct super_block *, void *, int);
extern int init_nfs_fs(void);
+extern void nfs_zap_caches(struct inode *);
extern struct inode *nfs_fhget(struct dentry *, struct nfs_fh *,
struct nfs_fattr *);
extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *);
extern int nfs_revalidate(struct dentry *);
extern int nfs_open(struct inode *, struct file *);
extern int nfs_release(struct inode *, struct file *);
-extern int _nfs_revalidate_inode(struct nfs_server *, struct dentry *);
+extern int __nfs_revalidate_inode(struct nfs_server *, struct dentry *);
/*
* linux/fs/nfs/file.c
@@ -244,9 +248,9 @@ static inline int
nfs_revalidate_inode(struct nfs_server *server, struct dentry *dentry)
{
struct inode *inode = dentry->d_inode;
- if (jiffies - NFS_READTIME(inode) < NFS_ATTRTIMEO(inode))
+ if (time_before(jiffies, NFS_READTIME(inode)+NFS_ATTRTIMEO(inode)))
return 0;
- return _nfs_revalidate_inode(server, dentry);
+ return __nfs_revalidate_inode(server, dentry);
}
/* NFS root */
diff --git a/include/linux/nfs_fs_i.h b/include/linux/nfs_fs_i.h
index 13bf610b6..22681be9d 100644
--- a/include/linux/nfs_fs_i.h
+++ b/include/linux/nfs_fs_i.h
@@ -9,6 +9,12 @@
*/
struct nfs_inode_info {
/*
+ * The 64bit 'inode number'
+ */
+ __u32 fsid;
+ __u32 fileid;
+
+ /*
* Various flags
*/
unsigned short flags;
@@ -49,7 +55,7 @@ struct nfs_inode_info {
/*
* Legal inode flag values
*/
-#define NFS_INO_REVALIDATE 0x0001 /* revalidating attrs */
+#define NFS_INO_REVALIDATING 0x0001 /* revalidating attrs */
#define NFS_IS_SNAPSHOT 0x0010 /* a snapshot file */
/*
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 0aff25c29..6410d3d1e 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -11,10 +11,16 @@
#include <linux/mm.h>
#include <linux/fs.h>
+#include <linux/highmem.h>
+#include <linux/list.h>
-static inline unsigned long page_address(struct page * page)
+extern inline pte_t get_pagecache_pte(struct page *page)
{
- return PAGE_OFFSET + ((page - mem_map) << PAGE_SHIFT);
+ /*
+ * the pagecache is still machineword sized. The rest of the VM
+ * can deal with arbitrary sized ptes.
+ */
+ return __pte(page->offset);
}
/*
@@ -30,8 +36,8 @@ static inline unsigned long page_address(struct page * page)
#define PAGE_CACHE_MASK PAGE_MASK
#define PAGE_CACHE_ALIGN(addr) (((addr)+PAGE_CACHE_SIZE-1)&PAGE_CACHE_MASK)
-#define page_cache_alloc() __get_free_page(GFP_USER)
-#define page_cache_free(x) free_page(x)
+#define page_cache_alloc() __get_pages(GFP_USER, 0)
+#define page_cache_free(x) __free_page(x)
#define page_cache_release(x) __free_page(x)
/*
@@ -54,7 +60,7 @@ extern void page_cache_init(unsigned long);
* inode pointer and offsets are distributed (ie, we
* roughly know which bits are "significant")
*/
-static inline unsigned long _page_hashfn(struct inode * inode, unsigned long offset)
+extern inline unsigned long _page_hashfn(struct inode * inode, unsigned long offset)
{
#define i (((unsigned long) inode)/(sizeof(struct inode) & ~ (sizeof(struct inode) - 1)))
#define o (offset >> PAGE_SHIFT)
@@ -82,26 +88,37 @@ 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);
-static inline void add_page_to_hash_queue(struct page * page, struct inode * inode, unsigned long offset)
+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));
}
-static inline void add_page_to_inode_queue(struct inode * inode, struct page * page)
+extern inline void add_page_to_inode_queue(struct inode * inode, struct page * page)
{
- struct page **p = &inode->i_pages;
-
- inode->i_nrpages++;
+ struct list_head *head = &inode->i_pages;
+
+ if (!inode->i_nrpages++) {
+ if (!list_empty(head))
+ BUG();
+ } else {
+ if (list_empty(head))
+ BUG();
+ }
+ list_add(&page->list, head);
page->inode = inode;
- page->prev = NULL;
- if ((page->next = *p) != NULL)
- page->next->prev = page;
- *p = page;
+}
+
+extern inline void remove_page_from_inode_queue(struct page * page)
+{
+ struct inode * inode = page->inode;
+
+ inode->i_nrpages--;
+ list_del(&page->list);
}
extern void ___wait_on_page(struct page *);
-static inline void wait_on_page(struct page * page)
+extern inline void wait_on_page(struct page * page)
{
if (PageLocked(page))
___wait_on_page(page);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 2fe52c2b4..a71f4c1be 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -406,6 +406,7 @@ struct pci_ops {
void pcibios_init(void);
void pcibios_fixup_bus(struct pci_bus *);
+int pcibios_enable_device(struct pci_dev *);
char *pcibios_setup (char *str);
void pcibios_update_resource(struct pci_dev *, struct resource *,
@@ -460,9 +461,11 @@ int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);
int pci_write_config_byte(struct pci_dev *dev, int where, u8 val);
int pci_write_config_word(struct pci_dev *dev, int where, u16 val);
int pci_write_config_dword(struct pci_dev *dev, int where, u32 val);
+int pci_enable_device(struct pci_dev *dev);
void pci_set_master(struct pci_dev *dev);
+int pci_set_power_state(struct pci_dev *dev, int state);
-/* Helper functions (drivers/pci/setup.c) */
+/* Helper functions for low-level code (drivers/pci/setup.c) */
int pci_claim_resource(struct pci_dev *, int);
void pci_assign_unassigned_resources(u32 min_io, u32 min_mem);
@@ -471,7 +474,7 @@ void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
int (*)(struct pci_dev *, u8, u8));
/*
- * simple PCI probing for drivers
+ * simple PCI probing for drivers (drivers/pci/helper.c)
*/
struct pci_simple_probe_entry;
@@ -524,8 +527,8 @@ extern inline struct pci_dev *pci_find_subsys(unsigned int vendor, unsigned int
unsigned int ss_vendor, unsigned int ss_device, struct pci_dev *from)
{ return NULL; }
-extern inline void pci_set_master(struct pci_dev *dev)
-{ return; }
+extern inline void pci_set_master(struct pci_dev *dev) { }
+extern inline int pci_enable_device(struct pci_dev *dev) { return 0; }
extern inline int pci_simple_probe (struct pci_simple_probe_entry *list, size_t match_limit,
pci_simple_probe_callback cb, void *drvr_data)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 062488c0d..e4bca6807 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -100,6 +100,7 @@
#define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508
#define PCI_DEVICE_ID_COMPAQ_1280 0x3033
#define PCI_DEVICE_ID_COMPAQ_TRIFLEX 0x4000
+#define PCI_DEVICE_ID_COMPAQ_6010 0x6010
#define PCI_DEVICE_ID_COMPAQ_SMART2P 0xae10
#define PCI_DEVICE_ID_COMPAQ_NETEL100 0xae32
#define PCI_DEVICE_ID_COMPAQ_NETEL10 0xae34
@@ -729,6 +730,10 @@
#define PCI_DEVICE_ID_RENDITION_VERITE 0x0001
#define PCI_DEVICE_ID_RENDITION_VERITE2100 0x2000
+#define PCI_VENDOR_ID_RCC 0x1166
+#define PCI_DEVICE_ID_RCC_HE 0x0008
+#define PCI_DEVICE_ID_RCC_LE 0x0009
+
#define PCI_VENDOR_ID_TOSHIBA 0x1179
#define PCI_DEVICE_ID_TOSHIBA_601 0x0601
#define PCI_DEVICE_ID_TOSHIBA_TOPIC95 0x060a
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index d863aaefe..35f730151 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -550,6 +550,7 @@ extern inline int proc_driver_register(const char *module_name)
return 0;
}
+extern struct proc_dir_entry proc_root;
#endif /* CONFIG_PROC_FS */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index b568a7b7b..c198260e0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -357,6 +357,10 @@ struct task_struct {
struct signal_queue *sigqueue, **sigqueue_tail;
unsigned long sas_ss_sp;
size_t sas_ss_size;
+
+/* Thread group tracking */
+ u32 parent_exec_id;
+ u32 self_exec_id;
};
/*
@@ -422,6 +426,7 @@ struct task_struct {
/* files */ &init_files, \
/* mm */ NULL, &init_mm, \
/* signals */ SPIN_LOCK_UNLOCKED, &init_signals, {{0}}, {{0}}, NULL, &init_task.sigqueue, 0, 0, \
+/* exec cts */ 0,0, \
}
#ifndef INIT_TASK_SIZE
diff --git a/include/linux/shm.h b/include/linux/shm.h
index d83787312..6ba237e92 100644
--- a/include/linux/shm.h
+++ b/include/linux/shm.h
@@ -24,7 +24,7 @@ struct shmid_kernel
struct shmid_ds u;
/* the following are private */
unsigned long shm_npages; /* size of segment (pages) */
- unsigned long *shm_pages; /* array of ptrs to frames -> SHMMAX */
+ pte_t *shm_pages; /* array of ptrs to frames -> SHMMAX */
struct vm_area_struct *attaches; /* descriptors for attaches */
};
@@ -72,7 +72,7 @@ asmlinkage long sys_shmget (key_t key, int size, int flag);
asmlinkage long sys_shmat (int shmid, char *shmaddr, int shmflg, unsigned long *addr);
asmlinkage long sys_shmdt (char *shmaddr);
asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds *buf);
-extern void shm_unuse(unsigned long entry, unsigned long page);
+extern void shm_unuse(pte_t entry, struct page *page);
#endif /* __KERNEL__ */
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 3097a8db2..fa344d816 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -45,7 +45,7 @@ typedef struct kmem_cache_s kmem_cache_t;
#define SLAB_CTOR_VERIFY 0x004UL /* tell constructor it's a verify call */
/* prototypes */
-extern long kmem_cache_init(long, long);
+extern void kmem_cache_init(void);
extern void kmem_cache_sizes_init(void);
extern kmem_cache_t *kmem_find_general_cachep(size_t);
extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long,
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 0b0baf1e8..7030b788d 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -35,8 +35,6 @@ union swap_header {
#define MAX_SWAP_BADPAGES \
((__swapoffset(magic.magic) - __swapoffset(info.badpages)) / sizeof(int))
-#undef DEBUG_SWAP
-
#include <asm/atomic.h>
#define SWP_USED 1
@@ -69,7 +67,7 @@ extern struct list_head lru_cache;
extern atomic_t nr_async_pages;
extern struct inode swapper_inode;
extern atomic_t page_cache_size;
-extern atomic_t buffermem;
+extern atomic_t buffermem_pages;
/* Incomplete types for prototype declarations: */
struct task_struct;
@@ -87,36 +85,35 @@ extern int try_to_free_pages(unsigned int gfp_mask);
/* linux/mm/page_io.c */
extern void rw_swap_page(int, struct page *, int);
-extern void rw_swap_page_nolock(int, unsigned long, char *, int);
-extern void swap_after_unlock_page (unsigned long entry);
+extern void rw_swap_page_nolock(int, pte_t, char *, int);
/* linux/mm/page_alloc.c */
/* linux/mm/swap_state.c */
extern void show_swap_cache_info(void);
-extern void add_to_swap_cache(struct page *, unsigned long);
-extern int swap_duplicate(unsigned long);
+extern void add_to_swap_cache(struct page *, pte_t);
+extern int swap_duplicate(pte_t);
extern int swap_check_entry(unsigned long);
-struct page * lookup_swap_cache(unsigned long);
-extern struct page * read_swap_cache_async(unsigned long, int);
+struct page * lookup_swap_cache(pte_t);
+extern struct page * read_swap_cache_async(pte_t, int);
#define read_swap_cache(entry) read_swap_cache_async(entry, 1);
-extern int FASTCALL(swap_count(unsigned long));
-extern unsigned long acquire_swap_entry(struct page *page);
+extern int swap_count(struct page *);
+extern pte_t acquire_swap_entry(struct page *page);
/*
* Make these inline later once they are working properly.
*/
extern void __delete_from_swap_cache(struct page *page);
extern void delete_from_swap_cache(struct page *page);
-extern void free_page_and_swap_cache(unsigned long addr);
+extern void free_page_and_swap_cache(struct page *page);
/* linux/mm/swapfile.c */
extern unsigned int nr_swapfiles;
extern struct swap_info_struct swap_info[];
extern int is_swap_partition(kdev_t);
void si_swapinfo(struct sysinfo *);
-unsigned long get_swap_page(void);
-extern void FASTCALL(swap_free(unsigned long));
+pte_t get_swap_page(void);
+extern void swap_free(pte_t);
struct swap_list_t {
int head; /* head of priority-ordered swapfile list */
int next; /* swapfile to be used next */
@@ -158,7 +155,7 @@ static inline int is_page_shared(struct page *page)
return 1;
count = page_count(page);
if (PageSwapCache(page))
- count += swap_count(page->offset) - 2;
+ count += swap_count(page) - 2;
return count > 1;
}
diff --git a/include/linux/sysv_fs.h b/include/linux/sysv_fs.h
index cf9cab749..5168218e0 100644
--- a/include/linux/sysv_fs.h
+++ b/include/linux/sysv_fs.h
@@ -384,7 +384,6 @@ extern int sysv_new_block(struct super_block * sb);
extern void sysv_free_block(struct super_block * sb, unsigned int block);
extern unsigned long sysv_count_free_blocks(struct super_block *sb);
-extern struct buffer_head * sysv_getblk(struct inode *, unsigned int, int);
extern int sysv_get_block(struct inode *, long, struct buffer_head *, int);
extern struct buffer_head * sysv_file_bread(struct inode *, int, int);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 6cb629d08..69050c8a8 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -344,12 +344,13 @@ extern int fg_console, last_console, want_console;
extern int kmsg_redirect;
-extern unsigned long con_init(unsigned long);
+extern void con_init(void);
+extern void console_init(void);
extern int rs_init(void);
extern int lp_init(void);
extern int pty_init(void);
-extern int tty_init(void);
+extern void tty_init(void);
extern int ip2_init(void);
extern int pcxe_init(void);
extern int pc_init(void);
@@ -398,7 +399,7 @@ extern int n_tty_ioctl(struct tty_struct * tty, struct file * file,
/* serial.c */
-extern long serial_console_init(long kmem_start, long kmem_end);
+extern void serial_console_init(void);
/* pcxx.c */