diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
commit | 546db14ee74118296f425f3b91634fb767d67290 (patch) | |
tree | 22b613a3da8d4bf663eec5e155af01b87fdf9094 /include/linux | |
parent | 1e25e41c4f5474e14452094492dbc169b800e4c8 (diff) |
Merge with Linux 2.3.23. The new bootmem stuff has broken various
platforms. At this time I've only verified that IP22 support compiles
and IP27 actually works.
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 4 | ||||
-rw-r--r-- | include/linux/bigmem.h | 48 | ||||
-rw-r--r-- | include/linux/binfmts.h | 2 | ||||
-rw-r--r-- | include/linux/bootmem.h | 29 | ||||
-rw-r--r-- | include/linux/cdrom.h | 84 | ||||
-rw-r--r-- | include/linux/fs.h | 23 | ||||
-rw-r--r-- | include/linux/hdreg.h | 2 | ||||
-rw-r--r-- | include/linux/highmem.h | 77 | ||||
-rw-r--r-- | include/linux/ide.h | 5 | ||||
-rw-r--r-- | include/linux/iobuf.h | 1 | ||||
-rw-r--r-- | include/linux/joystick.h | 14 | ||||
-rw-r--r-- | include/linux/kernel.h | 7 | ||||
-rw-r--r-- | include/linux/mm.h | 74 | ||||
-rw-r--r-- | include/linux/nfs.h | 15 | ||||
-rw-r--r-- | include/linux/nfs_fs.h | 20 | ||||
-rw-r--r-- | include/linux/nfs_fs_i.h | 8 | ||||
-rw-r--r-- | include/linux/pagemap.h | 47 | ||||
-rw-r--r-- | include/linux/pci.h | 11 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 5 | ||||
-rw-r--r-- | include/linux/proc_fs.h | 1 | ||||
-rw-r--r-- | include/linux/sched.h | 5 | ||||
-rw-r--r-- | include/linux/shm.h | 4 | ||||
-rw-r--r-- | include/linux/slab.h | 2 | ||||
-rw-r--r-- | include/linux/swap.h | 27 | ||||
-rw-r--r-- | include/linux/sysv_fs.h | 1 | ||||
-rw-r--r-- | include/linux/tty.h | 7 |
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 */ |