diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/coda.h | 6 | ||||
-rw-r--r-- | include/linux/dcache.h | 9 | ||||
-rw-r--r-- | include/linux/elevator.h | 8 | ||||
-rw-r--r-- | include/linux/fb.h | 3 | ||||
-rw-r--r-- | include/linux/fs.h | 9 | ||||
-rw-r--r-- | include/linux/hdreg.h | 15 | ||||
-rw-r--r-- | include/linux/hdsmart.h | 205 | ||||
-rw-r--r-- | include/linux/ide.h | 52 | ||||
-rw-r--r-- | include/linux/if_pppox.h | 5 | ||||
-rw-r--r-- | include/linux/lvm.h | 6 | ||||
-rw-r--r-- | include/linux/mount.h | 1 | ||||
-rw-r--r-- | include/linux/netfilter_ipv6.h | 10 | ||||
-rw-r--r-- | include/linux/netfilter_ipv6/ip6_tables.h | 452 | ||||
-rw-r--r-- | include/linux/nfs_fs.h | 13 | ||||
-rw-r--r-- | include/linux/nfs_mount.h | 7 | ||||
-rw-r--r-- | include/linux/nfs_page.h | 2 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 9 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 22 | ||||
-rw-r--r-- | include/linux/proc_fs.h | 3 | ||||
-rw-r--r-- | include/linux/smb_fs.h | 1 | ||||
-rw-r--r-- | include/linux/smb_fs_i.h | 1 | ||||
-rw-r--r-- | include/linux/sunrpc/auth.h | 5 | ||||
-rw-r--r-- | include/linux/umsdos_fs.p | 8 | ||||
-rw-r--r-- | include/linux/usbdevice_fs.h | 2 | ||||
-rw-r--r-- | include/linux/vmalloc.h | 50 | ||||
-rw-r--r-- | include/linux/wait.h | 2 | ||||
-rw-r--r-- | include/linux/wrapper.h | 1 |
27 files changed, 700 insertions, 207 deletions
diff --git a/include/linux/coda.h b/include/linux/coda.h index 6e1a939be..cbd042242 100644 --- a/include/linux/coda.h +++ b/include/linux/coda.h @@ -61,8 +61,9 @@ Mellon the rights to redistribute these changes without encumbrance. -/* Catch new _KERNEL defn for NetBSD */ -#ifdef __NetBSD__ +/* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */ +#if defined(__NetBSD__) || \ + ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)) #include <sys/types.h> #endif @@ -91,7 +92,6 @@ struct timespec { long ts_nsec; }; #else /* DJGPP but not KERNEL */ -#include <sys/types.h> #include <sys/time.h> typedef unsigned long long u_quad_t; #endif /* !KERNEL */ diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 7eccee7b9..12bbfbdc1 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -80,7 +80,7 @@ struct dentry_operations { int (*d_revalidate)(struct dentry *, int); int (*d_hash) (struct dentry *, struct qstr *); int (*d_compare) (struct dentry *, struct qstr *, struct qstr *); - void (*d_delete)(struct dentry *); + int (*d_delete)(struct dentry *); void (*d_release)(struct dentry *); void (*d_iput)(struct dentry *, struct inode *); }; @@ -160,8 +160,11 @@ extern void prune_icache(int); /* only used at mount-time */ extern struct dentry * d_alloc_root(struct inode *); -/* test whether root is busy without destroying dcache */ -extern int d_active_refs(struct dentry *); +/* <clickety>-<click> the ramfs-type tree */ +extern void d_genocide(struct dentry *); + +extern struct dentry *d_find_alias(struct inode *); +extern void d_prune_aliases(struct inode *); /* test whether we have any submounts in a subdir tree */ extern int have_submounts(struct dentry *); diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 748a9834c..88d3770b9 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h @@ -22,6 +22,8 @@ struct elevator_s int read_pendings; elevator_fn * elevator_fn; + + unsigned int queue_ID; }; #define ELEVATOR_DEFAULTS \ @@ -40,14 +42,14 @@ struct elevator_s typedef struct blkelv_ioctl_arg_s { - void * queue_ID; + int queue_ID; int read_latency; int write_latency; int max_bomb_segments; } blkelv_ioctl_arg_t; -#define BLKELVGET _IO(0x12,106) -#define BLKELVSET _IO(0x12,107) +#define BLKELVGET _IOR(0x12,106,sizeof(blkelv_ioctl_arg_t)) +#define BLKELVSET _IOW(0x12,107,sizeof(blkelv_ioctl_arg_t)) extern int blkelvget_ioctl(elevator_t *, blkelv_ioctl_arg_t *); extern int blkelvset_ioctl(elevator_t *, const blkelv_ioctl_arg_t *); diff --git a/include/linux/fb.h b/include/linux/fb.h index f2bc40f4d..733f7fb00 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -25,6 +25,8 @@ #define FBIOPUT_CON2FBMAP 0x4610 #define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */ #define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank) +#define FBIO_ALLOC 0x4613 +#define FBIO_FREE 0x4614 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ @@ -85,6 +87,7 @@ #define FB_ACCEL_IGS_CYBER2000 33 /* CyberPro 2000 */ #define FB_ACCEL_IGS_CYBER2010 34 /* CyberPro 2010 */ #define FB_ACCEL_IGS_CYBER5000 35 /* CyberPro 5000 */ +#define FB_ACCEL_SIS_GLAMOUR 36 /* SiS 300/630/540 */ struct fb_fix_screeninfo { char id[16]; /* identification string eg "TT Builtin" */ diff --git a/include/linux/fs.h b/include/linux/fs.h index 4eb593aba..d147dfe1c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -165,8 +165,8 @@ extern int max_super_blocks, nr_super_blocks; #define BLKSSZGET _IO(0x12,104)/* get block device sector size */ #if 0 #define BLKPG _IO(0x12,105)/* See blkpg.h */ -#define BLKELVGET _IO(0x12,106)/* elevator get */ -#define BLKELVSET _IO(0x12,107)/* elevator set */ +#define BLKELVGET _IOR(0x12,106,sizeof(blkelv_ioctl_arg_t))/* elevator get */ +#define BLKELVSET _IOW(0x12,107,sizeof(blkelv_ioctl_arg_t))/* elevator set */ /* This was here just to show that the number is taken - probably all these _IO(0x12,*) ioctls should be moved to blkpg.h. */ #endif @@ -794,6 +794,8 @@ extern int unregister_filesystem(struct file_system_type *); extern struct vfsmount *kern_mount(struct file_system_type *); extern void kern_umount(struct vfsmount *); extern int may_umount(struct vfsmount *); +extern long do_mount(char *, char *, char *, unsigned long, void *); + extern int vfs_statfs(struct super_block *, struct statfs *); @@ -900,7 +902,7 @@ extern struct file_operations rdwr_pipe_fops; extern int fs_may_remount_ro(struct super_block *); -extern int try_to_free_buffers(struct page *); +extern int try_to_free_buffers(struct page *, int); extern void refile_buffer(struct buffer_head * buf); #define BUF_CLEAN 0 @@ -1116,6 +1118,7 @@ extern int page_follow_link(struct dentry *, struct nameidata *); extern struct inode_operations page_symlink_inode_operations; extern int vfs_readdir(struct file *, filldir_t, void *); +extern int dcache_readdir(struct file *, void *, filldir_t); extern struct super_block *get_super(kdev_t); struct super_block *get_empty_super(void); diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h index e28f6bfff..e229fa2b4 100644 --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h @@ -181,6 +181,8 @@ struct hd_geometry { #define HDIO_GET_DMA 0x030b /* get use-dma flag */ #define HDIO_GET_NICE 0x030c /* get nice flags */ #define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */ +#define HDIO_DRIVE_CMD_AEB 0x031e +#define HDIO_DRIVE_TASK 0x031e #define HDIO_DRIVE_CMD 0x031f /* execute a special drive command */ /* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */ @@ -207,7 +209,6 @@ struct hd_big_geometry { #define HDIO_GETGEO_BIG 0x0330 /* */ #define HDIO_GETGEO_BIG_RAW 0x0331 /* */ - #define __NEW_HD_DRIVE_ID /* structure returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec */ struct hd_driveid { @@ -272,7 +273,7 @@ struct hd_driveid { unsigned short CurAPMvalues; /* current APM values */ unsigned short word92; /* reserved (word 92) */ unsigned short hw_config; /* hardware config */ - unsigned short words94_125[31];/* reserved words 94-125 */ + unsigned short words94_125[32];/* reserved words 94-125 */ unsigned short last_lun; /* reserved (word 126) */ unsigned short word127; /* reserved (word 127) */ unsigned short dlf; /* device lock function @@ -293,8 +294,10 @@ struct hd_driveid { * 1 read-look-ahead * 0 write cache */ - unsigned short words130_159[30];/* reserved vendor words 130-159 */ - unsigned short words160_255[96];/* reserved words 160-255 */ + unsigned short words130_155[26];/* reserved vendor words 130-155 */ + unsigned short word156; + unsigned short words157_159[3];/* reserved vendor words 157-159 */ + unsigned short words160_255[95];/* reserved words 160-255 */ }; /* @@ -314,10 +317,6 @@ struct hd_driveid { */ #include <linux/config.h> -#ifdef CONFIG_BLK_DEV_HD -void hd_setup(char *, int *); -#endif /* CONFIG_BLK_DEV_HD */ - #if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) int ide_register(int io_port, int ctl_port, int irq); void ide_unregister(unsigned int); diff --git a/include/linux/hdsmart.h b/include/linux/hdsmart.h index 509b591d2..7974a47fe 100644 --- a/include/linux/hdsmart.h +++ b/include/linux/hdsmart.h @@ -17,123 +17,108 @@ #ifndef _LINUX_HDSMART_H #define _LINUX_HDSMART_H +#define OFFLINE_FULL_SCAN 0 +#define SHORT_SELF_TEST 1 +#define EXTEND_SELF_TEST 2 +#define SHORT_CAPTIVE_SELF_TEST 129 +#define EXTEND_CAPTIVE_SELF_TEST 130 + /* smart_attribute is the vendor specific in SFF-8035 spec */ -struct ata_smart_attribute { - unsigned char id; - unsigned short status_flag; - unsigned char normalized; - unsigned char worse_normal; - unsigned char raw[6]; - unsigned char reserv; -} __attribute__ ((packed)); +typedef struct ata_smart_attribute_s { + unsigned char id; + unsigned short status_flag; + unsigned char normalized; + unsigned char worse_normal; + unsigned char raw[6]; + unsigned char reserv; +} __attribute__ ((packed)) ata_smart_attribute_t; /* smart_values is format of the read drive Atrribute command */ -struct ata_smart_values { - unsigned short revnumber; - struct ata_smart_attribute vendor_attributes [30]; - unsigned char offline_data_collection_status; - unsigned char self_test_exec_status; - unsigned short total_time_to_complete_off_line; - unsigned char vendor_specific_366; - unsigned char offline_data_collection_capability; - unsigned short smart_capability; - unsigned char errorlog_capability; - unsigned char vendor_specific_371; - unsigned char short_test_completion_time; - unsigned char extend_test_completion_time; - unsigned char reserved_374_385 [12]; - unsigned char vendor_specific_386_509 [125]; - unsigned char chksum; -} __attribute__ ((packed)); +typedef struct ata_smart_values_s { + unsigned short revnumber; + ata_smart_attribute_t vendor_attributes [30]; + unsigned char offline_data_collection_status; + unsigned char self_test_exec_status; + unsigned short total_time_to_complete_off_line; + unsigned char vendor_specific_366; + unsigned char offline_data_collection_capability; + unsigned short smart_capability; + unsigned char errorlog_capability; + unsigned char vendor_specific_371; + unsigned char short_test_completion_time; + unsigned char extend_test_completion_time; + unsigned char reserved_374_385 [12]; + unsigned char vendor_specific_386_509 [125]; + unsigned char chksum; +} __attribute__ ((packed)) ata_smart_values_t; /* Smart Threshold data structures */ /* Vendor attribute of SMART Threshold */ -struct ata_smart_threshold_entry { - unsigned char id; - unsigned char normalized_threshold; - unsigned char reserved[10]; -} __attribute__ ((packed)); +typedef struct ata_smart_threshold_entry_s { + unsigned char id; + unsigned char normalized_threshold; + unsigned char reserved[10]; +} __attribute__ ((packed)) ata_smart_threshold_entry_t; /* Format of Read SMART THreshold Command */ -struct ata_smart_thresholds { - unsigned short revnumber; - struct ata_smart_threshold_entry thres_entries[30]; - unsigned char reserved[149]; - unsigned char chksum; -} __attribute__ ((packed)); - -struct ata_smart_errorlog_command_struct { - unsigned char devicecontrolreg; - unsigned char featuresreg; - unsigned char sector_count; - unsigned char sector_number; - unsigned char cylinder_low; - unsigned char cylinder_high; - unsigned char drive_head; - unsigned char commandreg; - unsigned int timestamp; -} __attribute__ ((packed)); - -struct ata_smart_errorlog_error_struct { - unsigned char error_condition; - unsigned char extended_error[14]; - unsigned char state; - unsigned short timestamp; -} __attribute__ ((packed)); - -struct ata_smart_errorlog_struct { - struct ata_smart_errorlog_command_struct commands[6]; - struct ata_smart_errorlog_error_struct error_struct; -} __attribute__ ((packed)); - -struct ata_smart_errorlog { - unsigned char revnumber; - unsigned char error_log_pointer; - struct ata_smart_errorlog_struct errorlog_struct[5]; - unsigned short ata_error_count; - unsigned short non_fatal_count; - unsigned short drive_timeout_count; - unsigned char reserved[53]; -} __attribute__ ((packed)); - -struct ata_smart_selftestlog_struct { - unsigned char selftestnumber; - unsigned char selfteststatus; - unsigned short timestamp; - unsigned char selftestfailurecheckpoint; - unsigned int lbafirstfailure; - unsigned char vendorspecific[15]; -} __attribute__ ((packed)); - -struct ata_smart_selftestlog { - unsigned short revnumber; - struct ata_smart_selftestlog_struct selftest_struct[21]; - unsigned char vendorspecific[2]; - unsigned char mostrecenttest; - unsigned char resevered[2]; - unsigned char chksum; -} __attribute__ ((packed)); - -#if !defined(__KERNEL__) || defined(_IDE_DISK_C) -/* smartctl version number */ -#define VERSION_MAJOR 1 -#define VERSION_MINOR 2 - -/* Number of ata device to scan */ -int numdevices; - -/* how often SMART is checks in seconds */ -int checktime = 1800; - -typedef struct atadevices_s { - int fd; - char devicename[14]; - int selftest; - struct hd_driveid drive; - struct ata_smart_values smartval; - struct ata_smart_thresholds smartthres; -} atadevices_t; - -#endif /* !defined(__KERNEL__) || defined(_IDE_DISK_C) */ +typedef struct ata_smart_thresholds_s { + unsigned short revnumber; + ata_smart_threshold_entry_t thres_entries[30]; + unsigned char reserved[149]; + unsigned char chksum; +} __attribute__ ((packed)) ata_smart_thresholds_t; + +typedef struct ata_smart_errorlog_command_struct_s { + unsigned char devicecontrolreg; + unsigned char featuresreg; + unsigned char sector_count; + unsigned char sector_number; + unsigned char cylinder_low; + unsigned char cylinder_high; + unsigned char drive_head; + unsigned char commandreg; + unsigned int timestamp; +} __attribute__ ((packed)) ata_smart_errorlog_command_struct_t; + +typedef struct ata_smart_errorlog_error_struct_s { + unsigned char error_condition; + unsigned char extended_error[14]; + unsigned char state; + unsigned short timestamp; +} __attribute__ ((packed)) ata_smart_errorlog_error_struct_t; + +typedef struct ata_smart_errorlog_struct_s { + ata_smart_errorlog_command_struct_t commands[6]; + ata_smart_errorlog_error_struct_t error_struct; +} __attribute__ ((packed)) ata_smart_errorlog_struct_t; + +typedef struct ata_smart_errorlog_s { + unsigned char revnumber; + unsigned char error_log_pointer; + ata_smart_errorlog_struct_t errorlog_struct[5]; + unsigned short ata_error_count; + unsigned short non_fatal_count; + unsigned short drive_timeout_count; + unsigned char reserved[53]; + unsigned char chksum; +} __attribute__ ((packed)) ata_smart_errorlog_t; + +typedef struct ata_smart_selftestlog_struct_s { + unsigned char selftestnumber; + unsigned char selfteststatus; + unsigned short timestamp; + unsigned char selftestfailurecheckpoint; + unsigned int lbafirstfailure; + unsigned char vendorspecific[15]; +} __attribute__ ((packed)) ata_smart_selftestlog_struct_t; + +typedef struct ata_smart_selftestlog_s { + unsigned short revnumber; + ata_smart_selftestlog_struct_t selftest_struct[21]; + unsigned char vendorspecific[2]; + unsigned char mostrecenttest; + unsigned char resevered[2]; + unsigned char chksum; +} __attribute__ ((packed)) ata_smart_selftestlog_t; #endif /* _LINUX_HDSMART_H */ diff --git a/include/linux/ide.h b/include/linux/ide.h index ea395aaa8..8804c9777 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -64,6 +64,12 @@ void cmd640_dump_regs (void); #define IDE_DRIVE_CMD 99 /* (magic) undef to reduce kernel size*/ /* + * IDE_DRIVE_TASK is used to implement many features needed for raw tasks + */ +#define IDE_DRIVE_TASK 98 +#define IDE_DRIVE_CMD_AEB 98 + +/* * "No user-serviceable parts" beyond this point :) *****************************************************************************/ @@ -302,6 +308,10 @@ typedef struct ide_drive_s { char driver_req[10]; /* requests specific driver */ int last_lun; /* last logical unit */ int forced_lun; /* if hdxlun was given at boot */ + int lun; /* logical unit */ + byte init_speed; /* transfer rate set at boot */ + byte current_speed; /* current transfer rate set */ + byte dn; /* now wide spread use */ } ide_drive_t; /* @@ -336,7 +346,8 @@ typedef int (ide_dmaproc_t)(ide_dma_action_t, ide_drive_t *); * support all possible PIO settings. They may silently ignore * or round values as they see fit. */ -typedef void (ide_tuneproc_t)(ide_drive_t *, byte); +typedef void (ide_tuneproc_t) (ide_drive_t *, byte); +typedef int (ide_speedproc_t) (ide_drive_t *, byte); /* * This is used to provide support for strange interfaces @@ -374,6 +385,7 @@ typedef struct hwif_s { ide_drive_t drives[MAX_DRIVES]; /* drive info */ struct gendisk *gd; /* gendisk structure */ ide_tuneproc_t *tuneproc; /* routine to tune PIO mode for drives */ + ide_speedproc_t *speedproc; /* routine to retune DMA modes 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 */ @@ -409,6 +421,7 @@ typedef struct hwif_s { unsigned long last_time; /* time when previous rq was done */ #endif byte straight8; /* Alan's straight 8 check */ + void *hwif_data; /* extra hwif data */ } ide_hwif_t; /* @@ -728,14 +741,16 @@ void ide_end_drive_cmd (ide_drive_t *drive, byte stat, byte err); * Issue ATA command and wait for completion. */ int ide_wait_cmd (ide_drive_t *drive, int cmd, int nsect, int feature, int sectors, byte *buf); +int ide_wait_cmd_task (ide_drive_t *drive, byte *buf); void ide_delay_50ms (void); int system_bus_clock(void); +byte ide_auto_reduce_xfer (ide_drive_t *drive); int ide_driveid_update (ide_drive_t *drive); -int ide_ata66_check (ide_drive_t *drive, int cmd, int nsect, int feature); +int ide_ata66_check (ide_drive_t *drive, byte cmd, byte nsect, byte feature); int ide_config_drive_speed (ide_drive_t *drive, byte speed); -int set_transfer (ide_drive_t *drive, int cmd, int nsect, int feature); +int set_transfer (ide_drive_t *drive, byte cmd, byte nsect, byte feature); /* * ide_system_bus_speed() returns what we think is the system VESA/PCI @@ -769,37 +784,10 @@ request_queue_t *ide_get_queue (kdev_t dev); */ int drive_is_flashcard (ide_drive_t *drive); -int ide_spin_wait_hwgroup(ide_drive_t *drive, unsigned long *flags); +int ide_spin_wait_hwgroup (ide_drive_t *drive); void ide_timer_expiry (unsigned long data); void ide_intr (int irq, void *dev_id, struct pt_regs *regs); -void do_ide0_request (request_queue_t * q); -#if MAX_HWIFS > 1 -void do_ide1_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 2 -void do_ide2_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 3 -void do_ide3_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 4 -void do_ide4_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 5 -void do_ide5_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 6 -void do_ide6_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 7 -void do_ide7_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 8 -void do_ide8_request (request_queue_t * q); -#endif -#if MAX_HWIFS > 9 -void do_ide9_request (request_queue_t * q); -#endif +void do_ide_request (request_queue_t * q); void ide_init_subdrivers (void); #ifndef _IDE_C diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h index 873a7d9d6..0129c67b9 100644 --- a/include/linux/if_pppox.h +++ b/include/linux/if_pppox.h @@ -16,12 +16,13 @@ #ifndef __LINUX_IF_PPPOX_H #define __LINUX_IF_PPPOX_H -#include <linux/if_ether.h> -#include <linux/if.h> #include <asm/types.h> #include <asm/byteorder.h> + #ifdef __KERNEL__ +#include <linux/if_ether.h> +#include <linux/if.h> #include <linux/netdevice.h> #include <linux/sched.h> #include <asm/semaphore.h> diff --git a/include/linux/lvm.h b/include/linux/lvm.h index 703d8f72e..7afbc1178 100644 --- a/include/linux/lvm.h +++ b/include/linux/lvm.h @@ -83,11 +83,13 @@ #include <linux/version.h> #ifndef __KERNEL__ +#define ____NOT_KERNEL____ #define __KERNEL__ +#endif #include <linux/kdev_t.h> +#ifdef ____NOT_KERNEL____ +#undef ____NOT_KERNEL____ #undef __KERNEL__ -#else -#include <linux/kdev_t.h> #endif #include <linux/major.h> diff --git a/include/linux/mount.h b/include/linux/mount.h index fcec95647..61ab19b1f 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h @@ -28,6 +28,7 @@ struct vfsmount char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */ char *mnt_dirname; /* Name of directory mounted on */ struct list_head mnt_list; + uid_t mnt_owner; }; static inline struct vfsmount *mntget(struct vfsmount *mnt) diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index be5ea2afa..aa1ad6f0f 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h @@ -54,4 +54,14 @@ #define NF_IP6_NUMHOOKS 5 +enum nf_ip_hook_priorities { + NF_IP6_PRI_FIRST = INT_MIN, + NF_IP6_PRI_CONNTRACK = -200, + NF_IP6_PRI_MANGLE = -150, + NF_IP6_PRI_NAT_DST = -100, + NF_IP6_PRI_FILTER = 0, + NF_IP6_PRI_NAT_SRC = 100, + NF_IP6_PRI_LAST = INT_MAX, +}; + #endif /*__LINUX_IP6_NETFILTER_H*/ diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h new file mode 100644 index 000000000..f3617397c --- /dev/null +++ b/include/linux/netfilter_ipv6/ip6_tables.h @@ -0,0 +1,452 @@ +/* + * 25-Jul-1998 Major changes to allow for ip chain table + * + * 3-Jan-2000 Named tables to allow packet selection for different uses. + */ + +/* + * Format of an IP6 firewall descriptor + * + * src, dst, src_mask, dst_mask are always stored in network byte order. + * flags are stored in host byte order (of course). + * Port numbers are stored in HOST byte order. + */ + +#ifndef _IP6_TABLES_H +#define _IP6_TABLES_H + +#ifdef __KERNEL__ +#include <linux/if.h> +#include <linux/types.h> +#include <linux/in6.h> +#include <linux/ipv6.h> +#include <linux/skbuff.h> +#endif +#include <linux/netfilter_ipv6.h> + +#define IP6T_FUNCTION_MAXNAMELEN 30 +#define IP6T_TABLE_MAXNAMELEN 32 + +/* Yes, Virginia, you have to zero the padding. */ +struct ip6t_ip6 { + /* Source and destination IP6 addr */ + struct in6_addr src, dst; + /* Mask for src and dest IP6 addr */ + struct in6_addr smsk, dmsk; + char iniface[IFNAMSIZ], outiface[IFNAMSIZ]; + unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ]; + + /* ARGH, HopByHop uses 0, so can't do 0 = ANY, + instead IP6T_F_NOPROTO must be set */ + u_int16_t proto; + /* TOS to match iff flags & IP6T_F_TOS */ + u_int8_t tos; + + /* Flags word */ + u_int8_t flags; + /* Inverse flags */ + u_int8_t invflags; +}; + +/* FIXME: If alignment in kernel different from userspace? --RR */ +struct ip6t_entry_match +{ + union { + struct { + u_int16_t match_size; + + /* Used by userspace */ + char name[IP6T_FUNCTION_MAXNAMELEN]; + } user; + struct { + u_int16_t match_size; + + /* Used inside the kernel */ + struct ip6t_match *match; + } kernel; + + /* Total length */ + u_int16_t match_size; + } u; + + unsigned char data[0]; +}; + +struct ip6t_entry_target +{ + union { + struct { + u_int16_t target_size; + + /* Used by userspace */ + char name[IP6T_FUNCTION_MAXNAMELEN]; + } user; + struct { + u_int16_t target_size; + + /* Used inside the kernel */ + struct ip6t_target *target; + } kernel; + + /* Total length */ + u_int16_t target_size; + } u; + + unsigned char data[0]; +}; + +struct ip6t_standard_target +{ + struct ip6t_entry_target target; + int verdict; +}; + +struct ip6t_counters +{ + u_int64_t pcnt, bcnt; /* Packet and byte counters */ +}; + +/* Values for "flag" field in struct ip6t_ip6 (general ip6 structure). */ +#define IP6T_F_PROTO 0x01 /* Set if rule cares about upper + protocols */ +#define IP6T_F_TOS 0x02 /* Match the TOS. */ +#define IP6T_F_MASK 0x03 /* All possible flag bits mask. */ + +/* Values for "inv" field in struct ip6t_ip6. */ +#define IP6T_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */ +#define IP6T_INV_VIA_OUT 0x02 /* Invert the sense of OUT IFACE */ +#define IP6T_INV_TOS 0x04 /* Invert the sense of TOS. */ +#define IP6T_INV_SRCIP 0x08 /* Invert the sense of SRC IP. */ +#define IP6T_INV_DSTIP 0x10 /* Invert the sense of DST OP. */ +#define IP6T_INV_FRAG 0x20 /* Invert the sense of FRAG. */ +#define IP6T_INV_PROTO 0x40 /* Invert the sense of PROTO. */ +#define IP6T_INV_MASK 0x7F /* All possible flag bits mask. */ + +/* This structure defines each of the firewall rules. Consists of 3 + parts which are 1) general IP header stuff 2) match specific + stuff 3) the target to perform if the rule matches */ +struct ip6t_entry +{ + struct ip6t_ip6 ipv6; + + /* Mark with fields that we care about. */ + unsigned int nfcache; + + /* Size of ipt_entry + matches */ + u_int16_t target_offset; + /* Size of ipt_entry + matches + target */ + u_int16_t next_offset; + + /* Back pointer */ + unsigned int comefrom; + + /* Packet and byte counters. */ + struct ip6t_counters counters; + + /* The matches (if any), then the target. */ + unsigned char elems[0]; +}; + +/* + * New IP firewall options for [gs]etsockopt at the RAW IP level. + * Unlike BSD Linux inherits IP options so you don't have to use + * a raw socket for this. Instead we check rights in the calls. */ +#define IP6T_BASE_CTL 64 /* base for firewall socket options */ + +#define IP6T_SO_SET_REPLACE (IP6T_BASE_CTL) +#define IP6T_SO_SET_ADD_COUNTERS (IP6T_BASE_CTL + 1) +#define IP6T_SO_SET_MAX IP6T_SO_SET_ADD_COUNTERS + +#define IP6T_SO_GET_INFO (IP6T_BASE_CTL) +#define IP6T_SO_GET_ENTRIES (IP6T_BASE_CTL + 1) +#define IP6T_SO_GET_MAX IP6T_SO_GET_ENTRIES + +/* CONTINUE verdict for targets */ +#define IP6T_CONTINUE 0xFFFFFFFF + +/* For standard target */ +#define IP6T_RETURN (-NF_MAX_VERDICT - 1) + +/* TCP matching stuff */ +struct ip6t_tcp +{ + u_int16_t spts[2]; /* Source port range. */ + u_int16_t dpts[2]; /* Destination port range. */ + u_int8_t option; /* TCP Option iff non-zero*/ + u_int8_t flg_mask; /* TCP flags mask byte */ + u_int8_t flg_cmp; /* TCP flags compare byte */ + u_int8_t invflags; /* Inverse flags */ +}; + +/* Values for "inv" field in struct ipt_tcp. */ +#define IP6T_TCP_INV_SRCPT 0x01 /* Invert the sense of source ports. */ +#define IP6T_TCP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */ +#define IP6T_TCP_INV_FLAGS 0x04 /* Invert the sense of TCP flags. */ +#define IP6T_TCP_INV_OPTION 0x08 /* Invert the sense of option test. */ +#define IP6T_TCP_INV_MASK 0x0F /* All possible flags. */ + +/* UDP matching stuff */ +struct ip6t_udp +{ + u_int16_t spts[2]; /* Source port range. */ + u_int16_t dpts[2]; /* Destination port range. */ + u_int8_t invflags; /* Inverse flags */ +}; + +/* Values for "invflags" field in struct ipt_udp. */ +#define IP6T_UDP_INV_SRCPT 0x01 /* Invert the sense of source ports. */ +#define IP6T_UDP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */ +#define IP6T_UDP_INV_MASK 0x03 /* All possible flags. */ + +/* ICMP matching stuff */ +struct ip6t_icmp +{ + u_int8_t type; /* type to match */ + u_int8_t code[2]; /* range of code */ + u_int8_t invflags; /* Inverse flags */ +}; + +/* Values for "inv" field for struct ipt_icmp. */ +#define IP6T_ICMP_INV 0x01 /* Invert the sense of type/code test */ + +/* The argument to IP6T_SO_GET_INFO */ +struct ip6t_getinfo +{ + /* Which table: caller fills this in. */ + char name[IP6T_TABLE_MAXNAMELEN]; + + /* Kernel fills these in. */ + /* Which hook entry points are valid: bitmask */ + unsigned int valid_hooks; + + /* Hook entry points: one per netfilter hook. */ + unsigned int hook_entry[NF_IP6_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_IP6_NUMHOOKS]; + + /* Number of entries */ + unsigned int num_entries; + + /* Size of entries. */ + unsigned int size; +}; + +/* The argument to IP6T_SO_SET_REPLACE. */ +struct ip6t_replace +{ + /* Which table. */ + char name[IP6T_TABLE_MAXNAMELEN]; + + /* Which hook entry points are valid: bitmask. You can't + change this. */ + unsigned int valid_hooks; + + /* Number of entries */ + unsigned int num_entries; + + /* Total size of new entries */ + unsigned int size; + + /* Hook entry points. */ + unsigned int hook_entry[NF_IP6_NUMHOOKS]; + + /* Underflow points. */ + unsigned int underflow[NF_IP6_NUMHOOKS]; + + /* Information about old entries: */ + /* Number of counters (must be equal to current number of entries). */ + unsigned int num_counters; + /* The old entries' counters. */ + struct ip6t_counters *counters; + + /* The entries (hang off end: not really an array). */ + struct ip6t_entry entries[0]; +}; + +/* The argument to IP6T_SO_ADD_COUNTERS. */ +struct ip6t_counters_info +{ + /* Which table. */ + char name[IP6T_TABLE_MAXNAMELEN]; + + unsigned int num_counters; + + /* The counters (actually `number' of these). */ + struct ip6t_counters counters[0]; +}; + +/* The argument to IP6T_SO_GET_ENTRIES. */ +struct ip6t_get_entries +{ + /* Which table: user fills this in. */ + char name[IP6T_TABLE_MAXNAMELEN]; + + /* User fills this in: total entry size. */ + unsigned int size; + + /* The entries. */ + unsigned char entries[0]; +}; + +/* Standard return verdict, or do jump. */ +#define IP6T_STANDARD_TARGET "" +/* Error verdict. */ +#define IP6T_ERROR_TARGET "ERROR" + +/* Helper functions */ +extern __inline__ struct ip6t_entry_target * +ip6t_get_target(struct ip6t_entry *e) +{ + return (void *)e + e->target_offset; +} + +/* fn returns 0 to continue iteration */ +#define IP6T_MATCH_ITERATE(e, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct ip6t_entry_match *__m; \ + \ + for (__i = sizeof(struct ip6t_entry); \ + __i < (e)->target_offset; \ + __i += __m->u.match_size) { \ + __m = (void *)(e) + __i; \ + \ + __ret = fn(__m , ## args); \ + if (__ret != 0) \ + break; \ + } \ + __ret; \ +}) + +/* fn returns 0 to continue iteration */ +#define IP6T_ENTRY_ITERATE(entries, size, fn, args...) \ +({ \ + unsigned int __i; \ + int __ret = 0; \ + struct ip6t_entry *__e; \ + \ + for (__i = 0; __i < (size); __i += __e->next_offset) { \ + __e = (void *)(entries) + __i; \ + \ + __ret = fn(__e , ## args); \ + if (__ret != 0) \ + break; \ + } \ + __ret; \ +}) + +/* + * Main firewall chains definitions and global var's definitions. + */ + +#ifdef __KERNEL__ + +#include <linux/init.h> +extern void ip6t_init(void) __init; + +struct ip6t_match +{ + struct list_head list; + + const char name[IP6T_FUNCTION_MAXNAMELEN]; + + /* Return true or false: return FALSE and set *hotdrop = 1 to + force immediate packet drop. */ + int (*match)(const struct sk_buff *skb, + const struct net_device *in, + const struct net_device *out, + const void *matchinfo, + int offset, + const void *hdr, + u_int16_t datalen, + int *hotdrop); + + /* Called when user tries to insert an entry of this type. */ + /* Should return true or false. */ + int (*checkentry)(const char *tablename, + const struct ip6t_ip6 *ip, + void *matchinfo, + unsigned int matchinfosize, + unsigned int hook_mask); + + /* Called when entry of this type deleted. */ + void (*destroy)(void *matchinfo, unsigned int matchinfosize); + + /* Set this to THIS_MODULE if you are a module, otherwise NULL */ + struct module *me; +}; + +/* Registration hooks for targets. */ +struct ip6t_target +{ + struct list_head list; + + const char name[IP6T_FUNCTION_MAXNAMELEN]; + + /* Returns verdict. */ + unsigned int (*target)(struct sk_buff **pskb, + unsigned int hooknum, + const struct net_device *in, + const struct net_device *out, + const void *targinfo, + void *userdata); + + /* Called when user tries to insert an entry of this type: + hook_mask is a bitmask of hooks from which it can be + called. */ + /* Should return true or false. */ + int (*checkentry)(const char *tablename, + const struct ip6t_entry *e, + void *targinfo, + unsigned int targinfosize, + unsigned int hook_mask); + + /* Called when entry of this type deleted. */ + void (*destroy)(void *targinfo, unsigned int targinfosize); + + /* Set this to THIS_MODULE if you are a module, otherwise NULL */ + struct module *me; +}; + +extern int ip6t_register_target(struct ip6t_target *target); +extern void ip6t_unregister_target(struct ip6t_target *target); + +extern int ip6t_register_match(struct ip6t_match *match); +extern void ip6t_unregister_match(struct ip6t_match *match); + +/* Furniture shopping... */ +struct ip6t_table +{ + struct list_head list; + + /* A unique name... */ + char name[IP6T_TABLE_MAXNAMELEN]; + + /* Seed table: copied in register_table */ + struct ip6t_replace *table; + + /* What hooks you will enter on */ + unsigned int valid_hooks; + + /* Lock for the curtain */ + rwlock_t lock; + + /* Man behind the curtain... */ + struct ip6t_table_info *private; +}; + +extern int ip6t_register_table(struct ip6t_table *table); +extern void ip6t_unregister_table(struct ip6t_table *table); +extern unsigned int ip6t_do_table(struct sk_buff **pskb, + unsigned int hook, + const struct net_device *in, + const struct net_device *out, + struct ip6t_table *table, + void *userdata); + +#define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1)) + +#endif /*__KERNEL__*/ +#endif /* _IP6_TABLES_H */ diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 0c84b76c4..ddd0563a5 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -15,6 +15,7 @@ #include <linux/pagemap.h> #include <linux/sunrpc/debug.h> +#include <linux/sunrpc/auth.h> #include <linux/nfs.h> #include <linux/nfs2.h> @@ -98,7 +99,6 @@ do { \ /* Inode Flags */ #define NFS_USE_READDIRPLUS(inode) ((NFS_FLAGS(inode) & NFS_INO_ADVISE_RDPLUS) ? 1 : 0) -#define NFS_MONOTONE_COOKIES(inode) ((NFS_SERVER(inode)->flags & NFS_NONMONOTONE_COOKIES) ? 0 : 1) /* * These are the default flags for swap requests @@ -155,6 +155,17 @@ extern struct inode_operations nfs_file_inode_operations; extern struct file_operations nfs_file_operations; extern struct address_space_operations nfs_file_aops; +static __inline__ struct rpc_cred * +nfs_file_cred(struct file *file) +{ + struct rpc_cred *cred = (struct rpc_cred *)(file->private_data); +#ifdef RPC_DEBUG + if (cred && cred->cr_magic != RPCAUTH_CRED_MAGIC) + BUG(); +#endif + return cred; +} + /* * linux/fs/nfs/dir.c */ diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h index 8e11ef368..7b7df5b06 100644 --- a/include/linux/nfs_mount.h +++ b/include/linux/nfs_mount.h @@ -54,11 +54,4 @@ struct nfs_mount_data { #define NFS_MOUNT_NONLM 0x0200 /* 3 */ #define NFS_MOUNT_FLAGMASK 0xFFFF -/* - * Private flags - not to be set by mount program - */ -#ifdef __KERNEL__ -#define NFS_NONMONOTONE_COOKIES 0x00010000 -#endif /* __KERNEL__ */ - #endif diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 475fced7c..5f6572b22 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h @@ -40,7 +40,7 @@ struct nfs_page { #define NFS_WBACK_BUSY(req) ((req)->wb_flags & PG_BUSY) -extern struct nfs_page *nfs_create_request(struct dentry *dentry, +extern struct nfs_page *nfs_create_request(struct file *file, struct page *page, unsigned int offset, unsigned int count); diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index eca3e1b2d..63c3e1c7b 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -106,7 +106,6 @@ struct nfs_writeres { * Argument struct for decode_entry function */ struct nfs_entry { - struct page * page; __u64 ino; __u64 cookie, prev_cookie; @@ -115,8 +114,6 @@ struct nfs_entry { int eof; struct nfs_fh fh; struct nfs_fattr fattr; - unsigned long offset, - prev; }; /* @@ -326,10 +323,10 @@ struct nfs_rpc_ops { struct nfs_fh *, struct nfs_fattr *); int (*access) (struct dentry *, int , int); int (*readlink)(struct dentry *, void *, unsigned int); - int (*read) (struct dentry *, struct nfs_fattr *, + int (*read) (struct file *, struct nfs_fattr *, int, loff_t, unsigned int, void *buffer, int *eofp); - int (*write) (struct dentry *, struct nfs_fattr *, + int (*write) (struct file *, struct nfs_fattr *, int, loff_t, unsigned int, void *buffer, struct nfs_writeverf *verfp); int (*commit) (struct dentry *, struct nfs_fattr *, @@ -346,7 +343,7 @@ struct nfs_rpc_ops { int (*mkdir) (struct dentry *, struct qstr *, struct iattr *, struct nfs_fh *, struct nfs_fattr *); int (*rmdir) (struct dentry *, struct qstr *); - int (*readdir) (struct dentry *, u64 cookie, void *, unsigned int, + int (*readdir) (struct file *, u64 cookie, void *, unsigned int, int); int (*mknod) (struct dentry *, struct qstr *, struct iattr *, dev_t, struct nfs_fh *, struct nfs_fattr *); diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index bfdf6c03a..499afe2d6 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -790,9 +790,12 @@ #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_SERVERWORKS 0x1166 +#define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 +#define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 +#define PCI_DEVICE_ID_SERVERWORKS_CIOB30 0x0010 +#define PCI_DEVICE_ID_SERVERWORKS_CMIC_HE 0x0011 +#define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 #define PCI_VENDOR_ID_TOSHIBA 0x1179 #define PCI_DEVICE_ID_TOSHIBA_601 0x0601 @@ -1176,7 +1179,15 @@ #define PCI_DEVICE_ID_INTEL_82443BX_0 0x7190 #define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191 #define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192 +#define PCI_DEVICE_ID_INTEL_82440MX_1 0x7194 +#define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198 +#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199 +#define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a +#define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b +#define PCI_DEVICE_ID_INTEL_82372FB_0 0x7600 #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 +#define PCI_DEVICE_ID_INTEL_82372FB_2 0x7602 +#define PCI_DEVICE_ID_INTEL_82372FB_3 0x7603 #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 #define PCI_DEVICE_ID_INTEL_82450GX 0x84c5 #define PCI_DEVICE_ID_INTEL_82451NX 0x84ca @@ -1254,4 +1265,7 @@ #define PCI_DEVICE_ID_ARK_STINGARK 0xa099 #define PCI_DEVICE_ID_ARK_2000MT 0xa0a1 - +#define PCI_VENDOR_ID_SIS 0x1039 +#define PCI_DEVICE_ID_SIS_300 0x0300 +#define PCI_DEVICE_ID_SIS_540 0x5300 +#define PCI_DEVICE_ID_SIS_630 0x6300 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index b7621b293..d0487c3df 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -90,8 +90,6 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry); void proc_pid_delete_inode(struct inode *inode); int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); -extern int proc_register(struct proc_dir_entry *, struct proc_dir_entry *); - extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent); extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); @@ -167,7 +165,6 @@ extern inline void proc_net_remove(const char *name) #else -extern inline int proc_register(struct proc_dir_entry *a, struct proc_dir_entry *b) { return 0; } extern inline struct proc_dir_entry *proc_net_create(const char *name, mode_t mode, get_info_t *get_info) {return NULL;} extern inline void proc_net_remove(const char *name) {} diff --git a/include/linux/smb_fs.h b/include/linux/smb_fs.h index 5df1ef295..9eb6c28bd 100644 --- a/include/linux/smb_fs.h +++ b/include/linux/smb_fs.h @@ -130,7 +130,6 @@ int smb_get_wsize(struct smb_sb_info *); int smb_newconn(struct smb_sb_info *, struct smb_conn_opt *); int smb_errno(struct smb_sb_info *); int smb_close(struct inode *); -void smb_close_dentry(struct dentry *); int smb_close_fileid(struct dentry *, __u16); int smb_open(struct dentry *, int); int smb_proc_read(struct dentry *, off_t, int, char *); diff --git a/include/linux/smb_fs_i.h b/include/linux/smb_fs_i.h index 4aea02c3c..8dca9066b 100644 --- a/include/linux/smb_fs_i.h +++ b/include/linux/smb_fs_i.h @@ -29,6 +29,7 @@ struct smb_inode_info { __u16 cache_valid; /* dircache valid? */ unsigned long oldmtime; /* last time refreshed */ unsigned long closed; /* timestamp when closed */ + unsigned openers; /* number of fileid users */ }; #endif diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h index d106c881a..242be9730 100644 --- a/include/linux/sunrpc/auth.h +++ b/include/linux/sunrpc/auth.h @@ -25,6 +25,9 @@ struct rpc_cred { unsigned long cr_expire; /* when to gc */ unsigned short cr_count; /* ref count */ unsigned short cr_flags; /* various flags */ +#ifdef RPC_DEBUG + unsigned long cr_magic; /* 0x0f4aa4f0 */ +#endif uid_t cr_uid; @@ -34,6 +37,8 @@ struct rpc_cred { #define RPCAUTH_CRED_UPTODATE 0x0002 #define RPCAUTH_CRED_DEAD 0x0004 +#define RPCAUTH_CRED_MAGIC 0x0f4aa4f0 + /* * Client authentication handle */ diff --git a/include/linux/umsdos_fs.p b/include/linux/umsdos_fs.p index de436f0e8..76436a479 100644 --- a/include/linux/umsdos_fs.p +++ b/include/linux/umsdos_fs.p @@ -108,11 +108,3 @@ int UMSDOS_rename (struct inode *old_dir, /* rdir.c 22/03/95 03.31.42 */ struct dentry *umsdos_rlookup_x (struct inode *dir, struct dentry *dentry, int nopseudo); struct dentry *UMSDOS_rlookup (struct inode *dir, struct dentry *dentry); - -/* symlink.c 23/01/95 03.38.30 */ - -/* check.c */ -void checkd_inode (struct inode *inode); -void check_inode (struct inode *inode); -void check_dentry (struct dentry *dentry); -void check_dentry_path (struct dentry *dentry, const char *desc); diff --git a/include/linux/usbdevice_fs.h b/include/linux/usbdevice_fs.h index 95eaa937a..7fa98fcb5 100644 --- a/include/linux/usbdevice_fs.h +++ b/include/linux/usbdevice_fs.h @@ -31,6 +31,8 @@ #ifndef _LINUX_USBDEVICE_FS_H #define _LINUX_USBDEVICE_FS_H +#include <linux/types.h> + /* --------------------------------------------------------------------- */ #define USBDEVICE_SUPER_MAGIC 0x9fa2 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index d360d41bc..bba1e159e 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h @@ -3,6 +3,7 @@ #include <linux/sched.h> #include <linux/mm.h> +#include <linux/spinlock.h> #include <asm/pgtable.h> @@ -17,16 +18,49 @@ struct vm_struct { struct vm_struct * next; }; -struct vm_struct * get_vm_area(unsigned long size, unsigned long flags); -void vfree(void * addr); -void * vmalloc_prot(unsigned long size, pgprot_t prot); -void * vmalloc_uncached(unsigned long size); -extern void * vmalloc(unsigned long size); +extern struct vm_struct * get_vm_area (unsigned long size, unsigned long flags); +extern void vfree(void * addr); +extern void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot); +extern long vread(char *buf, char *addr, unsigned long count); +extern void vmfree_area_pages(unsigned long address, unsigned long size); +extern int vmalloc_area_pages(unsigned long address, unsigned long size, + int gfp_mask, pgprot_t prot); +extern struct vm_struct * vmlist; + + +/* + * Allocate any pages + */ + +static inline void * vmalloc (unsigned long size) +{ + return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL); +} + +/* + * Allocate ISA addressable pages for broke crap + */ + +static inline void * vmalloc_dma (unsigned long size) +{ + return __vmalloc(size, GFP_KERNEL|GFP_DMA, PAGE_KERNEL); +} + +/* + * vmalloc 32bit PA addressable pages - eg for PCI 32bit devices + */ + +static inline void * vmalloc_32(unsigned long size) +{ + return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); +} -long vread(char *buf, char *addr, unsigned long count); -void vmfree_area_pages(unsigned long address, unsigned long size); -int vmalloc_area_pages(unsigned long address, unsigned long size, pgprot_t prot); +/* + * vmlist_lock is a read-write spinlock that protects vmlist + * Used in mm/vmalloc.c (get_vm_area() and vfree()) and fs/proc/kcore.c. + */ +extern rwlock_t vmlist_lock; extern struct vm_struct * vmlist; #endif diff --git a/include/linux/wait.h b/include/linux/wait.h index 6d8f5dae6..6ac1f0e88 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -27,7 +27,7 @@ extern int printk(const char *fmt, ...); #define WQ_BUG() do { \ printk("wq bug, forcing oops.\n"); \ - *(int*)0 = 0; \ + BUG(); \ } while (0) #define CHECK_MAGIC(x) if (x != (long)&(x)) \ diff --git a/include/linux/wrapper.h b/include/linux/wrapper.h index bc719bfc5..bcfaff073 100644 --- a/include/linux/wrapper.h +++ b/include/linux/wrapper.h @@ -5,7 +5,6 @@ #define inode_handle struct inode #define select_table_handle select_table #define vm_area_handle struct vm_area_struct -#define file_operation_handle file_operations #define connect_wrapper(x) 0 #define current_got_fatal_signal() (signal_pending(current)) |