summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/adfs_fs.h2
-rw-r--r--include/linux/adfs_fs_sb.h4
-rw-r--r--include/linux/affs_fs.h2
-rw-r--r--include/linux/awe_voice.h6
-rw-r--r--include/linux/capability.h1
-rw-r--r--include/linux/cdrom.h10
-rw-r--r--include/linux/console.h2
-rw-r--r--include/linux/cyclades.h34
-rw-r--r--include/linux/dcache.h7
-rw-r--r--include/linux/dtlk.h104
-rw-r--r--include/linux/ext2_fs.h2
-rw-r--r--include/linux/ext2_fs_sb.h2
-rw-r--r--include/linux/fb.h13
-rw-r--r--include/linux/filter.h49
-rw-r--r--include/linux/fs.h46
-rw-r--r--include/linux/genhd.h1
-rw-r--r--include/linux/hippidevice.h1
-rw-r--r--include/linux/if_arp.h7
-rw-r--r--include/linux/if_ppp.h15
-rw-r--r--include/linux/if_pppvar.h3
-rw-r--r--include/linux/if_shaper.h2
-rw-r--r--include/linux/in.h1
-rw-r--r--include/linux/in6.h38
-rw-r--r--include/linux/irda.h120
-rw-r--r--include/linux/iso_fs.h2
-rw-r--r--include/linux/kbd_ll.h2
-rw-r--r--include/linux/lockd/lockd.h2
-rw-r--r--include/linux/lockd/xdr.h15
-rw-r--r--include/linux/mca.h30
-rw-r--r--include/linux/minix_fs.h2
-rw-r--r--include/linux/miscdevice.h2
-rw-r--r--include/linux/mm.h30
-rw-r--r--include/linux/msdos_fs.h6
-rw-r--r--include/linux/nbd.h11
-rw-r--r--include/linux/ncp.h15
-rw-r--r--include/linux/ncp_fs.h30
-rw-r--r--include/linux/ncp_fs_sb.h4
-rw-r--r--include/linux/ncp_mount.h12
-rw-r--r--include/linux/netdevice.h57
-rw-r--r--include/linux/nfs.h1
-rw-r--r--include/linux/nfs_fs.h15
-rw-r--r--include/linux/nfsd/nfsfh.h3
-rw-r--r--include/linux/openpic.h9
-rw-r--r--include/linux/pagemap.h25
-rw-r--r--include/linux/parport_pc.h20
-rw-r--r--include/linux/pc_keyb.h6
-rw-r--r--include/linux/pci.h28
-rw-r--r--include/linux/pkt_cls.h31
-rw-r--r--include/linux/proc_fs.h8
-rw-r--r--include/linux/qnx4_fs.h2
-rw-r--r--include/linux/quotaops.h10
-rw-r--r--include/linux/rtnetlink.h1
-rw-r--r--include/linux/sched.h63
-rw-r--r--include/linux/selection.h2
-rw-r--r--include/linux/smb_fs.h2
-rw-r--r--include/linux/smp.h19
-rw-r--r--include/linux/socket.h1
-rw-r--r--include/linux/sunrpc/svcsock.h2
-rw-r--r--include/linux/synclink.h243
-rw-r--r--include/linux/sysctl.h27
-rw-r--r--include/linux/sysv_fs.h3
-rw-r--r--include/linux/tqueue.h2
-rw-r--r--include/linux/ufs_fs.h39
-rw-r--r--include/linux/ufs_fs_sb.h33
-rw-r--r--include/linux/umsdos_fs.p9
-rw-r--r--include/linux/videodev.h6
-rw-r--r--include/linux/vt_buffer.h8
-rw-r--r--include/linux/wireless.h32
-rw-r--r--include/linux/zorro.h2
69 files changed, 1111 insertions, 233 deletions
diff --git a/include/linux/adfs_fs.h b/include/linux/adfs_fs.h
index fe4e79e4b..f6ed2d3b1 100644
--- a/include/linux/adfs_fs.h
+++ b/include/linux/adfs_fs.h
@@ -155,7 +155,7 @@ extern void adfs_read_inode (struct inode *inode);
extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);
/* namei.c */
-extern int adfs_lookup (struct inode *dir, struct dentry *dentry);
+extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);
/* super.c */
extern int init_adfs_fs (void);
diff --git a/include/linux/adfs_fs_sb.h b/include/linux/adfs_fs_sb.h
index 527c29fb6..649b61e45 100644
--- a/include/linux/adfs_fs_sb.h
+++ b/include/linux/adfs_fs_sb.h
@@ -15,6 +15,10 @@
struct adfs_sb_info {
struct buffer_head *s_sbh; /* buffer head containing disc record */
struct adfs_discrecord *s_dr; /* pointer to disc record in s_sbh */
+ uid_t s_uid; /* owner uid */
+ gid_t s_gid; /* owner gid */
+ int s_owner_mask; /* ADFS Owner perm -> unix perm */
+ int s_other_mask; /* ADFS Other perm -> unix perm */
__u16 s_zone_size; /* size of a map zone in bits */
__u16 s_ids_per_zone; /* max. no ids in one zone */
__u32 s_idlen; /* length of ID in map */
diff --git a/include/linux/affs_fs.h b/include/linux/affs_fs.h
index 6361a82a1..342ac2648 100644
--- a/include/linux/affs_fs.h
+++ b/include/linux/affs_fs.h
@@ -60,7 +60,7 @@ extern void affs_make_zones(struct super_block *sb);
/* namei.c */
extern int affs_hash_name(const unsigned char *name, int len, int intl, int hashsize);
-extern int affs_lookup(struct inode *dir, struct dentry *dentry);
+extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry);
extern int affs_unlink(struct inode *dir, struct dentry *dentry);
extern int affs_create(struct inode *dir, struct dentry *dentry, int mode);
extern int affs_mkdir(struct inode *dir, struct dentry *dentry, int mode);
diff --git a/include/linux/awe_voice.h b/include/linux/awe_voice.h
index 95fc207da..aed60f5c2 100644
--- a/include/linux/awe_voice.h
+++ b/include/linux/awe_voice.h
@@ -3,9 +3,9 @@
*
* Voice information definitions for the low level driver for the
* AWE32/SB32/AWE64 wave table synth.
- * version 0.4.3; Mar. 1, 1998
+ * version 0.4.3; Feb. 1, 1999
*
- * Copyright (C) 1996-1998 Takashi Iwai
+ * Copyright (C) 1996-1999 Takashi Iwai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -133,7 +133,7 @@ typedef struct _awe_voice_parm_block {
unsigned short moddelay; /* modulation delay (0x8000) */
unsigned char modatk, modhld;
unsigned char moddcy, modsus;
- unsigned short modrel, moddummy;
+ unsigned char modrel, moddummy;
short modkeyhold, modkeydecay; /* envelope change per key (not used) */
unsigned short voldelay; /* volume delay (0x8000) */
unsigned char volatk, volhld;
diff --git a/include/linux/capability.h b/include/linux/capability.h
index 07248ac5d..f6fb2c9c3 100644
--- a/include/linux/capability.h
+++ b/include/linux/capability.h
@@ -193,7 +193,6 @@ typedef __u32 kernel_cap_t;
/* Allow device administration (mknod)*/
/* Allow examination and configuration of disk quotas */
/* Allow configuring the kernel's syslog (printk behaviour) */
-/* Allow sending a signal to any process */
/* Allow setting the domainname */
/* Allow setting the hostname */
/* Allow calling bdflush() */
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
index c63d79037..a8c028fb3 100644
--- a/include/linux/cdrom.h
+++ b/include/linux/cdrom.h
@@ -112,6 +112,9 @@
#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
#define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */
#define CDROM_CHANGER_NSLOTS 0x5328 /* Get number of slots */
+#define CDROM_LOCKDOOR 0x5329 /* lock or unlock door */
+#define CDROM_DEBUG 0x5330 /* Turn debug messages on/off */
+#define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */
/* This ioctl is only used by sbpcd at the moment */
#define CDROMAUDIOBUFSIZ 0x5382 /* set the audio buffer size */
@@ -340,14 +343,15 @@ struct cdrom_blk
#define CDC_IOCTLS 0x400 /* driver has non-standard ioctls */
#define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */
-/* drive status possibilities used with the uniform CD-ROM driver */
-#define CDS_NO_INFO 0 /* if not implemented */
+/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
+#define CDS_NO_INFO 0 /* if not implemented */
#define CDS_NO_DISC 1
#define CDS_TRAY_OPEN 2
#define CDS_DRIVE_NOT_READY 3
#define CDS_DISC_OK 4
-/* disc status possibilities, other than CDS_NO_DISC and CDS_NO_INFO */
+/* return values for the CDROM_DISC_STATUS ioctl */
+/* can also return CDS_NO_[INFO|DISC], from above */
#define CDS_AUDIO 100
#define CDS_DATA_1 101
#define CDS_DATA_2 102
diff --git a/include/linux/console.h b/include/linux/console.h
index 35bc9984b..6df950101 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -42,6 +42,8 @@ struct consw {
void (*con_save_screen)(struct vc_data *);
u8 (*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8);
void (*con_invert_region)(struct vc_data *, u16 *, int);
+ u16 *(*con_screen_pos)(struct vc_data *, int);
+ unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
};
extern struct consw *conswitchp;
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h
index 6e67b5414..0f373ff5b 100644
--- a/include/linux/cyclades.h
+++ b/include/linux/cyclades.h
@@ -316,6 +316,7 @@ struct FIRM_ID {
#define C_IN_OVR_ERROR 0x00008000 /* overrun error */
#define C_IN_RXOFL 0x00010000 /* RX buffer overflow */
#define C_IN_IOCTLW 0x00020000 /* I/O control w/ wait */
+#define C_IN_MRTS 0x00040000 /* modem RTS drop */
/* flow control */
@@ -332,12 +333,14 @@ struct FIRM_ID {
/* rs_control/rs_status RS-232 signals */
+#define C_RS_PARAM 0x80000000 /* Indicates presence of parameter in
+ IOCTLM command */
+#define C_RS_RTS 0x00000001 /* RTS */
+#define C_RS_DTR 0x00000004 /* DTR */
#define C_RS_DCD 0x00000100 /* CD */
#define C_RS_DSR 0x00000200 /* DSR */
#define C_RS_RI 0x00000400 /* RI */
#define C_RS_CTS 0x00000800 /* CTS */
-#define C_RS_RTS 0x00000001 /* RTS */
-#define C_RS_DTR 0x00000004 /* DTR */
/* commands Host <-> Board */
@@ -353,13 +356,18 @@ struct FIRM_ID {
#define C_CM_SET_BREAK 0x43 /* Tx break on */
#define C_CM_CLR_BREAK 0x44 /* Tx break off */
#define C_CM_CMD_DONE 0x45 /* Previous command done */
+#define C_CM_INTBACK2 0x46 /* Alternate Interrupt back */
#define C_CM_TINACT 0x51 /* set inactivity detection */
#define C_CM_IRQ_ENBL 0x52 /* enable generation of interrupts */
#define C_CM_IRQ_DSBL 0x53 /* disable generation of interrupts */
-#define C_CM_ACK_ENBL 0x54 /* enable acknolowdged interrupt mode */
-#define C_CM_ACK_DSBL 0x55 /* disable acknolowdged intr mode */
+#define C_CM_ACK_ENBL 0x54 /* enable acknowledged interrupt mode */
+#define C_CM_ACK_DSBL 0x55 /* disable acknowledged intr mode */
#define C_CM_FLUSH_RX 0x56 /* flushes Rx buffer */
#define C_CM_FLUSH_TX 0x57 /* flushes Tx buffer */
+#define C_CM_Q_ENABLE 0x58 /* enables queue access from the
+ driver */
+#define C_CM_Q_DISABLE 0x59 /* disables queue access from the
+ driver */
#define C_CM_TXBEMPTY 0x60 /* Tx buffer is empty */
#define C_CM_TXLOWWM 0x61 /* Tx buffer low water mark */
@@ -369,6 +377,7 @@ struct FIRM_ID {
#define C_CM_MDSR 0x71 /* modem DSR change */
#define C_CM_MRI 0x72 /* modem RI change */
#define C_CM_MCTS 0x73 /* modem CTS change */
+#define C_CM_MRTS 0x74 /* modem RTS drop */
#define C_CM_RXBRK 0x84 /* Break received */
#define C_CM_PR_ERROR 0x85 /* Parity error */
#define C_CM_FR_ERROR 0x86 /* Frame error */
@@ -449,9 +458,22 @@ struct BOARD_CTRL {
/* FW to Host commands */
uclong fwcmd_channel; /* channel number */
uclong fwcmd_param; /* pointer to parameters */
+ uclong zf_int_queue_addr; /* offset for INT_QUEUE structure */
/* filler so the structures are aligned */
- uclong filler[7];
+ uclong filler[6];
+};
+
+/* Host Interrupt Queue */
+
+#define QUEUE_SIZE (10*MAX_CHAN)
+
+struct INT_QUEUE {
+ unsigned char intr_code[QUEUE_SIZE];
+ unsigned long channel[QUEUE_SIZE];
+ unsigned long param[QUEUE_SIZE];
+ unsigned long put;
+ unsigned long get;
};
/*
@@ -586,6 +608,8 @@ struct cyclades_port {
#define CyPCI_Zwin 0x80000
#define CyPCI_Ze_win (2 * CyPCI_Zwin)
+#define PCI_DEVICE_ID_MASK 0x06
+
/**** CD1400 registers ****/
#define CD1400_REV_G 0x46
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index ecf38fd06..84e1376b3 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -6,7 +6,10 @@
/*
* linux/include/linux/dcache.h
*
- * Directory cache data structures
+ * Dirent cache data structures
+ *
+ * (C) Copyright 1997 Thomas Schoebel-Theuer,
+ * with heavy changes by Linus Torvalds
*/
#define D_MAXLEN 1024
@@ -74,7 +77,7 @@ struct dentry {
};
struct dentry_operations {
- int (*d_revalidate)(struct dentry *);
+ 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 *);
diff --git a/include/linux/dtlk.h b/include/linux/dtlk.h
new file mode 100644
index 000000000..07a6b82bc
--- /dev/null
+++ b/include/linux/dtlk.h
@@ -0,0 +1,104 @@
+#if 0
+
+#define TRACE_TXT(text) \
+ { \
+ if(dtlk_trace) \
+ { \
+ console_print(text); \
+ console_print("\n"); \
+ } \
+ }
+
+#define TRACE_CHR(chr) \
+ { \
+ if(dtlk_trace) \
+ console_print(chr); \
+ } \
+
+#endif
+
+#define DTLK_MINOR 0
+#define DTLK_IO_EXTENT 0x02
+
+ /* ioctl's use magic number of 0xa3 */
+#define DTLK_INTERROGATE 0xa390 /* get settings from the DoubleTalk */
+#define DTLK_STATUS 0xa391 /* get status from the DoubleTalk */
+
+
+#define DTLK_CLEAR 0x18 /* stops speech */
+
+#define DTLK_MAX_RETRIES (loops_per_sec/10000)
+
+ /* TTS Port Status Flags */
+#define TTS_READABLE 0x80 /* mask for bit which is nonzero if a
+ byte can be read from the TTS port */
+#define TTS_SPEAKING 0x40 /* mask for SYNC bit, which is nonzero
+ while DoubleTalk is producing
+ output with TTS, PCM or CVSD
+ synthesizers or tone generators
+ (that is, all but LPC) */
+#define TTS_SPEAKING2 0x20 /* mask for SYNC2 bit,
+ which falls to zero up to 0.4 sec
+ before speech stops */
+#define TTS_WRITABLE 0x10 /* mask for RDY bit, which when set to
+ 1, indicates the TTS port is ready
+ to accept a byte of data. The RDY
+ bit goes zero 2-3 usec after
+ writing, and goes 1 again 180-190
+ usec later. */
+#define TTS_ALMOST_FULL 0x08 /* mask for AF bit: When set to 1,
+ indicates that less than 300 free
+ bytes are available in the TTS
+ input buffer. AF is always 0 in the
+ PCM, TGN and CVSD modes. */
+#define TTS_ALMOST_EMPTY 0x04 /* mask for AE bit: When set to 1,
+ indicates that less than 300 bytes
+ of data remain in DoubleTalk's
+ input (TTS or PCM) buffer. AE is
+ always 1 in the TGN and CVSD
+ modes. */
+
+ /* LPC speak commands */
+#define LPC_5220_NORMAL 0x60 /* 5220 format decoding table, normal rate */
+#define LPC_5220_FAST 0x64 /* 5220 format decoding table, fast rate */
+#define LPC_D6_NORMAL 0x20 /* D6 format decoding table, normal rate */
+#define LPC_D6_FAST 0x24 /* D6 format decoding table, fast rate */
+
+ /* LPC Port Status Flags (valid only after one of the LPC
+ speak commands) */
+#define LPC_SPEAKING 0x80 /* mask for TS bit: When set to 1,
+ indicates the LPC synthesizer is
+ producing speech.*/
+#define LPC_BUFFER_LOW 0x40 /* mask for BL bit: When set to 1,
+ indicates that the hardware LPC
+ data buffer has less than 30 bytes
+ remaining. (Total internal buffer
+ size = 4096 bytes.) */
+#define LPC_BUFFER_EMPTY 0x20 /* mask for BE bit: When set to 1,
+ indicates that the LPC data buffer
+ ran out of data (error condition if
+ TS is also 1). */
+
+ /* data returned by Interrogate command */
+struct dtlk_settings
+{
+ unsigned short serial_number; /* 0-7Fh:0-7Fh */
+ unsigned char rom_version[24]; /* null terminated string */
+ unsigned char mode; /* 0=Character; 1=Phoneme; 2=Text */
+ unsigned char punc_level; /* nB; 0-7 */
+ unsigned char formant_freq; /* nF; 0-9 */
+ unsigned char pitch; /* nP; 0-99 */
+ unsigned char speed; /* nS; 0-9 */
+ unsigned char volume; /* nV; 0-9 */
+ unsigned char tone; /* nX; 0-2 */
+ unsigned char expression; /* nE; 0-9 */
+ unsigned char ext_dict_loaded; /* 1=exception dictionary loaded */
+ unsigned char ext_dict_status; /* 1=exception dictionary enabled */
+ unsigned char free_ram; /* # pages (truncated) remaining for
+ text buffer */
+ unsigned char articulation; /* nA; 0-9 */
+ unsigned char reverb; /* nR; 0-9 */
+ unsigned char eob; /* 7Fh value indicating end of
+ parameter block */
+ unsigned char has_indexing; /* nonzero if indexing is implemented */
+};
diff --git a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h
index 96b1d1955..b1352dc02 100644
--- a/include/linux/ext2_fs.h
+++ b/include/linux/ext2_fs.h
@@ -572,7 +572,7 @@ extern int ext2_ioctl (struct inode *, struct file *, unsigned int,
/* namei.c */
extern void ext2_release (struct inode *, struct file *);
-extern int ext2_lookup (struct inode *, struct dentry *);
+extern struct dentry *ext2_lookup (struct inode *, struct dentry *);
extern int ext2_create (struct inode *,struct dentry *,int);
extern int ext2_mkdir (struct inode *,struct dentry *,int);
extern int ext2_rmdir (struct inode *,struct dentry *);
diff --git a/include/linux/ext2_fs_sb.h b/include/linux/ext2_fs_sb.h
index 9ce758116..207216323 100644
--- a/include/linux/ext2_fs_sb.h
+++ b/include/linux/ext2_fs_sb.h
@@ -49,8 +49,6 @@ struct ext2_sb_info {
struct buffer_head * s_inode_bitmap[EXT2_MAX_GROUP_LOADED];
unsigned long s_block_bitmap_number[EXT2_MAX_GROUP_LOADED];
struct buffer_head * s_block_bitmap[EXT2_MAX_GROUP_LOADED];
- int s_rename_lock;
- struct wait_queue * s_rename_wait;
unsigned long s_mount_opt;
unsigned short s_resuid;
unsigned short s_resgid;
diff --git a/include/linux/fb.h b/include/linux/fb.h
index f4c775db4..f084ca036 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -31,6 +31,7 @@
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
#define FB_TYPE_TEXT 3 /* Text/attributes */
+#define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */
#define FB_AUX_TEXT_MDA 0 /* Monochrome text */
#define FB_AUX_TEXT_CGA 1 /* CGA/EGA/VGA Color text */
@@ -67,6 +68,10 @@
#define FB_ACCEL_MATROX_MGA2164W_AGP 19 /* Matrox MGA2164W (Millenium II) */
#define FB_ACCEL_MATROX_MGAG100 20 /* Matrox G100 (Productiva G100) */
#define FB_ACCEL_MATROX_MGAG200 21 /* Matrox G200 (Myst, Mill, ...) */
+#define FB_ACCEL_SUN_CG14 22 /* Sun cgfourteen */
+#define FB_ACCEL_SUN_BWTWO 23 /* Sun bwtwo */
+#define FB_ACCEL_SUN_CGTHREE 24 /* Sun cgthree */
+#define FB_ACCEL_SUN_TCX 25 /* Sun tcx */
struct fb_fix_screeninfo {
char id[16]; /* identification string eg "TT Builtin" */
@@ -232,6 +237,8 @@ struct fb_ops {
unsigned long arg, int con, struct fb_info *info);
/* perform fb specific mmap */
int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);
+ /* switch to/from raster image mode */
+ int (*fb_rasterimg)(struct fb_info *info, int start);
};
@@ -291,7 +298,7 @@ struct display {
struct fb_info {
char modename[40]; /* default video mode */
- int node;
+ kdev_t node;
int flags;
#define FBINFO_FLAG_MODULE 1 /* Low-level driver is a module */
struct fb_ops *fbops;
@@ -340,8 +347,8 @@ struct fbgen_hwswitch {
int (*pan_display)(const struct fb_var_screeninfo *var,
struct fb_info_gen *info);
int (*blank)(int blank_mode, struct fb_info_gen *info);
- void (*set_dispsw)(const void *par, struct display *disp,
- struct fb_info_gen *info);
+ void (*set_disp)(const void *par, struct display *disp,
+ struct fb_info_gen *info);
};
struct fb_info_gen {
diff --git a/include/linux/filter.h b/include/linux/filter.h
index dcf33554e..58ad8b1bc 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -18,18 +18,32 @@
struct sock_filter /* Filter block */
{
- u16 code; /* Actual filter code */
- u8 jt; /* Jump true */
- u8 jf; /* Jump false */
- u32 k; /* Generic multiuse field */
+ __u16 code; /* Actual filter code */
+ __u8 jt; /* Jump true */
+ __u8 jf; /* Jump false */
+ __u32 k; /* Generic multiuse field */
};
struct sock_fprog /* Required for SO_ATTACH_FILTER. */
{
- unsigned short len; /* Number of filter blocks */
- struct sock_filter *filter;
+ unsigned short len; /* Number of filter blocks */
+ struct sock_filter *filter;
};
+#ifdef __KERNEL__
+struct sk_filter
+{
+ atomic_t refcnt;
+ unsigned int len; /* Number of filter blocks */
+ struct sock_filter insns[0];
+};
+
+extern __inline__ unsigned int sk_filter_len(struct sk_filter *fp)
+{
+ return fp->len*sizeof(struct sock_filter) + sizeof(*fp);
+}
+#endif
+
/*
* Instruction classes
*/
@@ -86,21 +100,40 @@ struct sock_fprog /* Required for SO_ATTACH_FILTER. */
#define BPF_TAX 0x00
#define BPF_TXA 0x80
-#define BPF_MAXINSNS 512
+#ifndef BPF_MAXINSNS
+#define BPF_MAXINSNS 4096
+#endif
/*
* Macros for filter block array initializers.
*/
+#ifndef BPF_STMT
#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k }
+#endif
+#ifndef BPF_JUMP
#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k }
+#endif
/*
* Number of scratch memory words for: BPF_ST and BPF_STX
*/
#define BPF_MEMWORDS 16
+/* RATIONALE. Negative offsets are invalid in BPF.
+ We use them to reference ancillary data.
+ Unlike introduction new instructions, it does not break
+ existing compilers/optimizers.
+ */
+#define SKF_AD_OFF (-0x1000)
+#define SKF_AD_PROTOCOL 0
+#define SKF_AD_PKTTYPE 4
+#define SKF_AD_IFINDEX 8
+#define SKF_AD_MAX 12
+#define SKF_NET_OFF (-0x100000)
+#define SKF_LL_OFF (-0x200000)
+
#ifdef __KERNEL__
-extern int sk_run_filter(unsigned char *data, int len, struct sock_filter *filter, int flen);
+extern int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen);
extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
#endif /* __KERNEL__ */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index ff6e28dc5..e4ea5197f 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -96,6 +96,10 @@ extern int max_super_blocks, nr_super_blocks;
#define MS_NOATIME 1024 /* Do not update access times. */
#define MS_NODIRATIME 2048 /* Do not update directory access times */
+#define MS_ODD_RENAME 32768 /* Temporary stuff; will go away as soon
+ * as nfs_rename() will be cleaned up
+ */
+
/*
* Flags that can be altered by MS_REMOUNT
*/
@@ -150,6 +154,7 @@ extern int max_super_blocks, nr_super_blocks;
#define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
#define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
#define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
+#define BLKSSZGET _IO(0x12,104)/* get block device sector size (reserved for) */
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
#define FIBMAP _IO(0x00,1) /* bmap access */
@@ -164,7 +169,7 @@ extern int max_super_blocks, nr_super_blocks;
extern void update_atime (struct inode *inode);
#define UPDATE_ATIME(inode) update_atime (inode)
-extern void buffer_init(void);
+extern void buffer_init(unsigned long);
extern void inode_init(void);
extern void file_table_init(void);
extern void dcache_init(void);
@@ -249,18 +254,8 @@ static inline int buffer_protected(struct buffer_head * bh)
return test_bit(BH_Protected, &bh->b_state);
}
-/*
- * Deprecated - we don't keep per-buffer reference flags
- * any more.
- *
- * We _could_ try to update the page reference, but that
- * doesn't seem to really be worth it either. If we did,
- * it would look something like this:
- *
- * #define buffer_page(bh) (mem_map + MAP_NR((bh)->b_data))
- * #define touch_buffer(bh) set_bit(PG_referenced, &buffer_page(bh)->flags)
- */
-#define touch_buffer(bh) do { } while (0)
+#define buffer_page(bh) (mem_map + MAP_NR((bh)->b_data))
+#define touch_buffer(bh) set_bit(PG_referenced, &buffer_page(bh)->flags)
#include <linux/pipe_fs_i.h>
#include <linux/minix_fs_i.h>
@@ -373,6 +368,7 @@ struct inode {
int i_writecount;
unsigned int i_attr_flags;
+ __u32 i_generation;
union {
struct pipe_inode_info pipe_i;
struct minix_inode_info minix_i;
@@ -425,6 +421,8 @@ struct file {
unsigned int f_count, f_flags;
unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;
struct fown_struct f_owner;
+ unsigned int f_uid, f_gid;
+ int f_error;
unsigned long f_version;
@@ -560,6 +558,11 @@ struct super_block {
struct qnx4_sb_info qnx4_sb;
void *generic_sbp;
} u;
+ /*
+ * The next field is for VFS *only*. No filesystems have any business
+ * even looking at it. You had been warned.
+ */
+ struct semaphore s_vfs_rename_sem; /* Kludge */
};
/*
@@ -598,7 +601,7 @@ struct file_operations {
struct inode_operations {
struct file_operations * default_file_ops;
int (*create) (struct inode *,struct dentry *,int);
- int (*lookup) (struct inode *,struct dentry *);
+ struct dentry * (*lookup) (struct inode *,struct dentry *);
int (*link) (struct dentry *,struct inode *,struct dentry *);
int (*unlink) (struct inode *,struct dentry *);
int (*symlink) (struct inode *,struct dentry *,const char *);
@@ -695,8 +698,9 @@ asmlinkage int sys_close(unsigned int); /* yes, it's really unsigned */
extern int do_truncate(struct dentry *, unsigned long);
extern int get_unused_fd(void);
extern void put_unused_fd(unsigned int);
-extern int close_fp(struct file *, fl_owner_t id);
+
extern struct file *filp_open(const char *, int, int);
+extern int filp_close(struct file *, fl_owner_t id);
extern char * getname(const char * filename);
#define __getname() ((char *) __get_free_page(GFP_KERNEL))
@@ -810,6 +814,18 @@ extern ino_t find_inode_number(struct dentry *, struct qstr *);
#define PTR_ERR(ptr) ((long)(ptr))
#define IS_ERR(ptr) ((unsigned long)(ptr) > (unsigned long)(-1000))
+/*
+ * The bitmask for a lookup event:
+ * - follow links at the end
+ * - require a directory
+ * - ending slashes ok even for nonexistent files
+ * - internal "there are more path compnents" flag
+ */
+#define LOOKUP_FOLLOW (1)
+#define LOOKUP_DIRECTORY (2)
+#define LOOKUP_SLASHOK (4)
+#define LOOKUP_CONTINUE (8)
+
extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
extern struct dentry * __namei(const char *, unsigned int);
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 20589194f..fdd93a0b4 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -10,6 +10,7 @@
*/
#include <linux/config.h>
+#include <linux/types.h>
#define CONFIG_MSDOS_PARTITION 1
diff --git a/include/linux/hippidevice.h b/include/linux/hippidevice.h
index f3b3310e3..e345a9d22 100644
--- a/include/linux/hippidevice.h
+++ b/include/linux/hippidevice.h
@@ -52,6 +52,7 @@ extern void hippi_net_init(void);
void hippi_setup(struct device *dev);
extern struct device *init_hippi_dev(struct device *, int);
+extern void unregister_hipdev(struct device *dev);
#endif
#endif /* _LINUX_HIPPIDEVICE_H */
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h
index 30d8b8f0a..39007c8bf 100644
--- a/include/linux/if_arp.h
+++ b/include/linux/if_arp.h
@@ -66,6 +66,13 @@
#define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */
#define ARPHRD_ECONET 782 /* Acorn Econet */
#define ARPHRD_IRDA 783 /* Linux/IR */
+/* ARP works differently on different FC media .. so */
+#define ARPHRD_FCPP 784 /* Point to point fibrechanel */
+#define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */
+#define ARPHRD_FCPL 786 /* Fibrechannel public loop */
+#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */
+ /* 787->799 reserved for fibrechannel media types */
+
/* ARP protocol opcodes. */
#define ARPOP_REQUEST 1 /* ARP request */
diff --git a/include/linux/if_ppp.h b/include/linux/if_ppp.h
index bb7a98db3..1d103bdca 100644
--- a/include/linux/if_ppp.h
+++ b/include/linux/if_ppp.h
@@ -1,4 +1,4 @@
-/* $Id: if_ppp.h,v 1.14 1998/07/07 04:27:33 paulus Exp $ */
+/* $Id: if_ppp.h,v 1.19 1999/03/31 06:07:57 paulus Exp $ */
/*
* if_ppp.h - Point-to-Point Protocol definitions.
@@ -21,7 +21,7 @@
*/
/*
- * ==FILEVERSION 980704==
+ * ==FILEVERSION 990331==
*
* NOTE TO MAINTAINERS:
* If you modify this file at all, please set the above date.
@@ -35,19 +35,13 @@
#ifndef _IF_PPP_H_
#define _IF_PPP_H_
-#if defined(__linux__)
-#include <linux/if.h>
-#include <linux/ioctl.h>
-#include <linux/ppp_defs.h>
-#endif
-
/*
* Packet sizes
*/
#define PPP_MTU 1500 /* Default MTU (size of Info field) */
#define PPP_MAXMRU 65000 /* Largest MRU we allow */
-#define PPP_VERSION "2.3.3"
+#define PPP_VERSION "2.3.7"
#define PPP_MAGIC 0x5002 /* Magic value for the ppp structure */
#define PROTO_IPX 0x002b /* protocol numbers */
#define PROTO_DNA_RT 0x0027 /* DNA Routing */
@@ -73,7 +67,8 @@
#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
-#define SC_MASK 0x0f0000ff /* bits that user can change */
+#define SC_SYNC 0x00200000 /* synchronous serial mode */
+#define SC_MASK 0x0f2000ff /* bits that user can change */
/* state bits */
#define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */
diff --git a/include/linux/if_pppvar.h b/include/linux/if_pppvar.h
index 6fae4b94b..d6cd0c25b 100644
--- a/include/linux/if_pppvar.h
+++ b/include/linux/if_pppvar.h
@@ -42,7 +42,7 @@
*/
/*
- * ==FILEVERSION 990114==
+ * ==FILEVERSION 990325==
*
* NOTE TO MAINTAINERS:
* If you modify this file at all, please set the above date.
@@ -89,6 +89,7 @@ struct ppp {
__u8 escape; /* 0x20 if prev char was PPP_ESC */
__u8 toss; /* toss this frame */
volatile __u8 tty_pushing; /* internal state flag */
+ volatile __u8 woke_up; /* internal state flag */
__u32 xmit_async_map[8]; /* 1 bit means that given control
character is quoted on output*/
__u32 recv_async_map; /* 1 bit means that given control
diff --git a/include/linux/if_shaper.h b/include/linux/if_shaper.h
index 57ffd730a..8a3cbce1b 100644
--- a/include/linux/if_shaper.h
+++ b/include/linux/if_shaper.h
@@ -23,7 +23,7 @@ struct shaper
__u32 shapeclock;
__u32 recovery; /* Time we can next clock a packet out on
an empty queue */
- char locked;
+ unsigned long locked;
struct device *dev;
int (*hard_start_xmit) (struct sk_buff *skb,
struct device *dev);
diff --git a/include/linux/in.h b/include/linux/in.h
index 0dc2231a4..8d6c8b5b6 100644
--- a/include/linux/in.h
+++ b/include/linux/in.h
@@ -80,7 +80,6 @@ struct in_addr {
/* These need to appear somewhere around here */
#define IP_DEFAULT_MULTICAST_TTL 1
#define IP_DEFAULT_MULTICAST_LOOP 1
-#define IP_MAX_MEMBERSHIPS 20
/* Request struct for multicast socket ops */
diff --git a/include/linux/in6.h b/include/linux/in6.h
index 50f9d2d72..4f31677b9 100644
--- a/include/linux/in6.h
+++ b/include/linux/in6.h
@@ -67,6 +67,33 @@ struct ipv6_mreq {
int ipv6mr_ifindex;
};
+struct in6_flowlabel_req
+{
+ struct in6_addr flr_dst;
+ __u32 flr_label;
+ __u8 flr_action;
+ __u8 flr_share;
+ __u16 flr_flags;
+ __u16 flr_expires;
+ __u16 flr_linger;
+ __u32 __flr_pad;
+ /* Options in format of IPV6_PKTOPTIONS */
+};
+
+#define IPV6_FL_A_GET 0
+#define IPV6_FL_A_PUT 1
+#define IPV6_FL_A_RENEW 2
+
+#define IPV6_FL_F_CREATE 1
+#define IPV6_FL_F_EXCL 2
+
+#define IPV6_FL_S_NONE 0
+#define IPV6_FL_S_EXCL 1
+#define IPV6_FL_S_PROCESS 2
+#define IPV6_FL_S_USER 3
+#define IPV6_FL_S_ANY 255
+
+
/*
* Bitmask constant declarations to help applications select out the
* flow label and priority fields.
@@ -75,9 +102,10 @@ struct ipv6_mreq {
* sockaddr_in6 is in network byte order.
*/
-#define IPV6_FLOWINFO_FLOWLABEL 0x00ff
-#define IPV6_FLOWINFO_PRIORITY 0x0f00
+#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
+#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
+/* These defintions are obsolete */
#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
#define IPV6_PRIORITY_FILLER 0x0100
#define IPV6_PRIORITY_UNATTENDED 0x0200
@@ -129,6 +157,7 @@ struct ipv6_mreq {
#define IPV6_HOPLIMIT 8
#define IPV6_NEXTHOP 9
#define IPV6_AUTHHDR 10
+#define IPV6_FLOWINFO 11
#if 0
/* Aliases for obsolete names */
@@ -158,4 +187,9 @@ struct ipv6_mreq {
#define IPV6_PMTUDISC_WANT 1
#define IPV6_PMTUDISC_DO 2
+/* Flowlabel */
+#define IPV6_FLOWLABEL_MGR 32
+#define IPV6_FLOWINFO_SEND 33
+
+
#endif
diff --git a/include/linux/irda.h b/include/linux/irda.h
new file mode 100644
index 000000000..275d82fc9
--- /dev/null
+++ b/include/linux/irda.h
@@ -0,0 +1,120 @@
+/*********************************************************************
+ *
+ * Filename: irda.h
+ * Version:
+ * Description:
+ * Status: Experimental.
+ * Author: Dag Brattli <dagb@cs.uit.no>
+ * Created at: Mon Mar 8 14:06:12 1999
+ * Modified at: Mon Mar 22 14:14:54 1999
+ * Modified by: Dag Brattli <dagb@cs.uit.no>
+ *
+ * Copyright (c) 1999 Dag Brattli, All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * Neither Dag Brattli nor University of Tromsø admit liability nor
+ * provide warranty for any of this software. This material is
+ * provided "AS-IS" and at no charge.
+ *
+ ********************************************************************/
+
+#ifndef KERNEL_IRDA_H
+#define KERNEL_IRDA_H
+
+/* Hint bit positions for first hint byte */
+#define HINT_PNP 0x01
+#define HINT_PDA 0x02
+#define HINT_COMPUTER 0x04
+#define HINT_PRINTER 0x08
+#define HINT_MODEM 0x10
+#define HINT_FAX 0x20
+#define HINT_LAN 0x40
+#define HINT_EXTENSION 0x80
+
+/* Hint bit positions for second hint byte (first extension byte) */
+#define HINT_TELEPHONY 0x01
+#define HINT_FILE_SERVER 0x02
+#define HINT_COMM 0x04
+#define HINT_MESSAGE 0x08
+#define HINT_HTTP 0x10
+#define HINT_OBEX 0x20
+
+/* IrLMP character code values */
+#define CS_ASCII 0x00
+#define CS_ISO_8859_1 0x01
+#define CS_ISO_8859_2 0x02
+#define CS_ISO_8859_3 0x03
+#define CS_ISO_8859_4 0x04
+#define CS_ISO_8859_5 0x05
+#define CS_ISO_8859_6 0x06
+#define CS_ISO_8859_7 0x07
+#define CS_ISO_8859_8 0x08
+#define CS_ISO_8859_9 0x09
+#define CS_UNICODE 0xff
+
+#define SOL_IRLMP 266 /* Same as SOL_IRDA for now */
+#define SOL_IRTTP 266 /* Same as SOL_IRDA for now */
+
+#define IRLMP_ENUMDEVICES 1
+#define IRLMP_IAS_SET 2
+#define IRLMP_IAS_QUERY 3
+#define IRLMP_DISCOVERY_MASK_SET 4
+
+#define IRTTP_QOS_SET 5
+#define IRTTP_QOS_GET 6
+#define IRTTP_MAX_SDU_SIZE 7
+
+#define IAS_MAX_STRING 256
+#define IAS_MAX_OCTET_STRING 1024
+#define IAS_MAX_CLASSNAME 64
+#define IAS_MAX_ATTRIBNAME 256
+
+#define LSAP_ANY 0xff
+
+struct sockaddr_irda {
+ sa_family_t sir_family; /* AF_IRDA */
+ unsigned char sir_lsap_sel; /* LSAP/TSAP selector */
+ unsigned int sir_addr; /* Device address */
+ char sir_name[25]; /* Usually <service>:IrDA:TinyTP */
+};
+
+struct irda_device_info {
+ unsigned int saddr; /* Address of remote device */
+ unsigned int daddr; /* Link where it was discovered */
+ char info[22]; /* Description */
+ unsigned char charset; /* Charset used for description */
+ unsigned char hints[2]; /* Hint bits */
+};
+
+struct irda_device_list {
+ unsigned int len;
+ struct irda_device_info dev[0];
+};
+
+struct irda_ias_set {
+ char irda_class_name[IAS_MAX_CLASSNAME];
+ char irda_attrib_name[IAS_MAX_ATTRIBNAME];
+ unsigned int irda_attrib_type;
+ union {
+ unsigned int irda_attrib_int;
+ struct {
+ unsigned short len;
+ u_char OctetSeq[IAS_MAX_OCTET_STRING];
+ } irda_attrib_octet_seq;
+ struct {
+ unsigned char len;
+ unsigned char charset;
+ unsigned char string[IAS_MAX_STRING];
+ } irda_attrib_string;
+ } attribute;
+};
+
+#endif /* KERNEL_IRDA_H */
+
+
+
+
diff --git a/include/linux/iso_fs.h b/include/linux/iso_fs.h
index 30a14b169..0fcb4b822 100644
--- a/include/linux/iso_fs.h
+++ b/include/linux/iso_fs.h
@@ -189,7 +189,7 @@ int get_acorn_filename(struct iso_directory_record *, char *, struct inode *);
extern int isofs_open(struct inode * inode, struct file * filp);
extern void isofs_release(struct inode * inode, struct file * filp);
-extern int isofs_lookup(struct inode * dir, struct dentry *);
+extern struct dentry *isofs_lookup(struct inode * dir, struct dentry *);
extern unsigned long isofs_count_free_inodes(struct super_block *sb);
extern int isofs_new_block(int dev);
extern int isofs_free_block(int dev, int block);
diff --git a/include/linux/kbd_ll.h b/include/linux/kbd_ll.h
index d83f9ea8a..02ebf8ec8 100644
--- a/include/linux/kbd_ll.h
+++ b/include/linux/kbd_ll.h
@@ -7,6 +7,6 @@
extern struct pt_regs *kbd_pt_regs;
-void handle_scancode(unsigned char scancode);
+void handle_scancode(unsigned char scancode, int down);
#endif /* _KBD_LL_H */
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
index 5c1d0e4cc..384e14689 100644
--- a/include/linux/lockd/lockd.h
+++ b/include/linux/lockd/lockd.h
@@ -145,7 +145,7 @@ void nlm_shutdown_hosts(void);
* Server-side lock handling
*/
u32 nlmsvc_lock(struct svc_rqst *, struct nlm_file *,
- struct nlm_lock *, int, u32);
+ struct nlm_lock *, int, struct nlm_cookie *);
u32 nlmsvc_unlock(struct nlm_file *, struct nlm_lock *);
u32 nlmsvc_testlock(struct nlm_file *, struct nlm_lock *,
struct nlm_lock *);
diff --git a/include/linux/lockd/xdr.h b/include/linux/lockd/xdr.h
index 631a8fba8..f397306c4 100644
--- a/include/linux/lockd/xdr.h
+++ b/include/linux/lockd/xdr.h
@@ -25,10 +25,21 @@ struct nlm_lock {
};
/*
+ * NLM cookies. Technically they can be 1K, Nobody uses over 8 bytes
+ * however.
+ */
+
+struct nlm_cookie
+{
+ unsigned char data[8];
+ unsigned int len;
+};
+
+/*
* Generic lockd arguments for all but sm_notify
*/
struct nlm_args {
- u32 cookie;
+ struct nlm_cookie cookie;
struct nlm_lock lock;
u32 block;
u32 reclaim;
@@ -42,7 +53,7 @@ struct nlm_args {
* Generic lockd result
*/
struct nlm_res {
- u32 cookie;
+ struct nlm_cookie cookie;
u32 status;
struct nlm_lock lock;
};
diff --git a/include/linux/mca.h b/include/linux/mca.h
index 9dc61d00b..5b6a6ebf0 100644
--- a/include/linux/mca.h
+++ b/include/linux/mca.h
@@ -39,27 +39,27 @@ things. */
specify a starting slot beyond zero, to deal with detecting multiple
devices. Returns MCA_NOTFOUND if id not found. Also checks the
integrated adapters. */
-extern int mca_find_adapter( int id, int start );
-extern int mca_find_unused_adapter( int id, int start );
+extern int mca_find_adapter(int id, int start);
+extern int mca_find_unused_adapter(int id, int start);
/* adapter state info - returns 0 if no */
-extern int mca_isadapter( int slot );
-extern int mca_isenabled( int slot );
+extern int mca_isadapter(int slot);
+extern int mca_isenabled(int slot);
-extern int mca_is_adapter_used( int slot );
-extern int mca_mark_as_used( int slot );
-extern void mca_mark_as_unused( int slot );
+extern int mca_is_adapter_used(int slot);
+extern int mca_mark_as_used(int slot);
+extern void mca_mark_as_unused(int slot);
/* gets a byte out of POS register (stored in memory) */
-extern unsigned char mca_read_stored_pos( int slot, int reg );
+extern unsigned char mca_read_stored_pos(int slot, int reg);
/*
This can be expanded later. Right now, it gives us a way of
getting meaningful information into the MCA_info structure,
so we can have a more interesting /proc/mca.
*/
-extern void mca_set_adapter_name( int slot, char* name );
-extern char* mca_get_adapter_name( int slot );
+extern void mca_set_adapter_name(int slot, char* name);
+extern char* mca_get_adapter_name(int slot);
/*
This sets up an information callback for /proc/mca/slot?. The
@@ -73,8 +73,8 @@ extern char* mca_get_adapter_name( int slot );
unregisters, thus preventing kernel crashes and other such
nastiness.
*/
-typedef int (*MCA_ProcFn)( char* buf, int slot, void* dev );
-extern void mca_set_adapter_procfn( int slot, MCA_ProcFn, void* dev );
+typedef int (*MCA_ProcFn)(char* buf, int slot, void* dev);
+extern void mca_set_adapter_procfn(int slot, MCA_ProcFn, void* dev);
/* These routines actually mess with the hardware POS registers. They
temporarily disable the device (and interrupts), so make sure you know
@@ -88,13 +88,13 @@ limits.
*/
/* read a byte from the specified POS register. */
-extern unsigned char mca_read_pos( int slot, int reg );
+extern unsigned char mca_read_pos(int slot, int reg);
/* write a byte to the specified POS register. */
-extern void mca_write_pos( int slot, int reg, unsigned char byte );
+extern void mca_write_pos(int slot, int reg, unsigned char byte);
/* Should only be called by the NMI interrupt handler, this will do some
fancy stuff to figure out what might have generated a NMI. */
-extern void mca_handle_nmi( void );
+extern void mca_handle_nmi(void);
#endif /* _LINUX_MCA_H */
diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h
index 3a0635946..4682ee56e 100644
--- a/include/linux/minix_fs.h
+++ b/include/linux/minix_fs.h
@@ -89,7 +89,7 @@ struct minix_dir_entry {
#ifdef __KERNEL__
-extern int minix_lookup(struct inode * dir, struct dentry *dentry);
+extern struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry);
extern int minix_create(struct inode * dir, struct dentry *dentry, int mode);
extern int minix_mkdir(struct inode * dir, struct dentry *dentry, int mode);
extern int minix_rmdir(struct inode * dir, struct dentry *dentry);
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
index e3d5f237b..e04dc1b42 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -16,7 +16,7 @@
#define RTC_MINOR 135
#define SUN_OPENPROM_MINOR 139
#define NVRAM_MINOR 144
-#define RADIO_MINOR 152
+#define I2O_MINOR 166
#define MISC_DYNAMIC_MINOR 255
#define SGI_GRAPHICS_MINOR 146
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 2413bfedf..ed4eeca0c 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -177,10 +177,12 @@ typedef struct page {
(test_and_clear_bit(PG_swap_cache, &(page)->flags))
/*
- * page->reserved denotes a page which must never be accessed (which
+ * Various page->flags bits:
+ *
+ * PG_reserved is set for a page which must never be accessed (which
* may not even be present).
*
- * page->dma is set for those pages which lie in the range of
+ * PG_DMA is set for those pages which lie in the range of
* physical addresses capable of carrying DMA transfers.
*
* Multiple processes may "see" the same page. E.g. for untouched
@@ -204,8 +206,8 @@ typedef struct page {
* The following discussion applies only to them.
*
* A page may belong to an inode's memory mapping. In this case,
- * page->inode is the inode, and page->offset is the file offset
- * of the page (not necessarily a multiple of PAGE_SIZE).
+ * page->inode is the pointer to the inode, and page->offset is the
+ * file offset of the page (not necessarily a multiple of PAGE_SIZE).
*
* A page may have buffers allocated to it. In this case,
* page->buffers is a circular list of these buffer heads. Else,
@@ -219,7 +221,7 @@ typedef struct page {
* fields are also used for freelist management when page->count==0.)
* There is also a hash table mapping (inode,offset) to the page
* in memory if present. The lists for this hash table use the fields
- * page->next_hash and page->prev_hash.
+ * page->next_hash and page->pprev_hash.
*
* All process pages can do I/O:
* - inode pages may need to be read from disk,
@@ -227,18 +229,23 @@ typedef struct page {
* to be written to disk,
* - private pages which have been modified may need to be swapped out
* to swap space and (later) to be read back into memory.
- * During disk I/O, page->locked is true. This bit is set before I/O
+ * During disk I/O, PG_locked is used. This bit is set before I/O
* and reset when I/O completes. page->wait is a wait queue of all
* tasks waiting for the I/O on this page to complete.
- * page->uptodate tells whether the page's contents is valid.
+ * PG_uptodate tells whether the page's contents is valid.
* When a read completes, the page becomes uptodate, unless a disk I/O
* error happened.
- * When a write completes, and page->free_after is true, the page is
+ * When a write completes, and PG_free_after is set, the page is
* freed without any further delay.
*
* For choosing which pages to swap out, inode pages carry a
- * page->referenced bit, which is set any time the system accesses
+ * PG_referenced bit, which is set any time the system accesses
* that page through the (inode,offset) hash table.
+ *
+ * PG_skip is used on sparc/sparc64 architectures to "skip" certain
+ * parts of the address space.
+ *
+ * PG_error is set to indicate that an I/O error occurred on this page.
*/
extern mem_map_t * mem_map;
@@ -351,11 +358,6 @@ extern void put_cached_page(unsigned long);
#define GFP_LEVEL_MASK 0xf
-/*
- * Decide if we should try to do some swapout..
- */
-extern int free_memory_available(void);
-
/* vma is the first one with address < vma->vm_end,
* and even address < vma->vm_start. Have to extend vma. */
static inline int expand_stack(struct vm_area_struct * vma, unsigned long address)
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h
index bcf4d0134..7e27f1ac6 100644
--- a/include/linux/msdos_fs.h
+++ b/include/linux/msdos_fs.h
@@ -195,7 +195,7 @@ struct fat_cache {
};
/* misc.c */
-extern int is_binary(char conversion,char *extension);
+extern int fat_is_binary(char conversion,char *extension);
extern void lock_fat(struct super_block *sb);
extern void unlock_fat(struct super_block *sb);
extern int fat_add_cluster(struct inode *inode);
@@ -271,7 +271,7 @@ extern struct super_block *msdos_read_super(struct super_block *sb,void *data, i
/* msdos.c - these are for Umsdos */
extern void msdos_read_inode(struct inode *inode);
-extern int msdos_lookup(struct inode *dir,struct dentry *);
+extern struct dentry *msdos_lookup(struct inode *dir,struct dentry *);
extern int msdos_create(struct inode *dir,struct dentry *dentry,int mode);
extern int msdos_rmdir(struct inode *dir,struct dentry *dentry);
extern int msdos_mkdir(struct inode *dir,struct dentry *dentry,int mode);
@@ -312,7 +312,7 @@ extern void vfat_put_super(struct super_block *sb);
extern struct super_block *vfat_read_super(struct super_block *sb,void *data,
int silent);
extern void vfat_read_inode(struct inode *inode);
-extern int vfat_lookup(struct inode *dir,struct dentry *);
+extern struct dentry *vfat_lookup(struct inode *dir,struct dentry *);
/* vfat/vfatfs_syms.c */
extern struct file_system_type vfat_fs_type;
diff --git a/include/linux/nbd.h b/include/linux/nbd.h
index 45b060291..c2c0431f4 100644
--- a/include/linux/nbd.h
+++ b/include/linux/nbd.h
@@ -8,6 +8,7 @@
#define NBD_CLEAR_SOCK _IO( 0xab, 4 )
#define NBD_CLEAR_QUE _IO( 0xab, 5 )
#define NBD_PRINT_DEBUG _IO( 0xab, 6 )
+#define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 )
#ifdef MAJOR_NR
@@ -60,13 +61,21 @@ struct nbd_device {
#define NBD_REPLY_MAGIC 0x67446698
/* Do *not* use magics: 0x12560953 0x96744668. */
+/*
+ * This is packet used for communication between client and
+ * server. All data are in network byte order.
+ */
struct nbd_request {
u32 magic;
u32 type; /* == READ || == WRITE */
char handle[8];
u64 from;
u32 len;
-};
+}
+#ifdef __GNUC__
+ __attribute__ ((packed))
+#endif
+;
struct nbd_reply {
u32 magic;
diff --git a/include/linux/ncp.h b/include/linux/ncp.h
index 83ad3f723..666ffff0f 100644
--- a/include/linux/ncp.h
+++ b/include/linux/ncp.h
@@ -3,6 +3,7 @@
*
* Copyright (C) 1995 by Volker Lendecke
* Modified for sparc by J.F. Chadima
+ * Modified for __constant_ntoh by Frank A. Vorstenbosch
*
*/
@@ -58,11 +59,21 @@ struct ncp_volume_info {
/* these define the attribute byte as seen by NCP */
#define aRONLY (ntohl(0x01000000))
-#define aHIDDEN (ntohl(0x02000000))
-#define aSYSTEM (ntohl(0x04000000))
+#define aHIDDEN (__constant_ntohl(0x02000000))
+#define aSYSTEM (__constant_ntohl(0x04000000))
#define aEXECUTE (ntohl(0x08000000))
#define aDIR (ntohl(0x10000000))
#define aARCH (ntohl(0x20000000))
+#define aSHARED (ntohl(0x80000000))
+#define aDONTSUBALLOCATE (ntohl(1L<<(11+8)))
+#define aTRANSACTIONAL (ntohl(1L<<(12+8)))
+#define aPURGE (ntohl(1L<<(16-8)))
+#define aRENAMEINHIBIT (ntohl(1L<<(17-8)))
+#define aDELETEINHIBIT (ntohl(1L<<(18-8)))
+#define aDONTCOMPRESS (nothl(1L<<(27-24)))
+
+#define NCP_MIN_SYMLINK_SIZE 8
+#define NCP_MAX_SYMLINK_SIZE 512
#define AR_READ (ntohs(0x0100))
#define AR_WRITE (ntohs(0x0200))
diff --git a/include/linux/ncp_fs.h b/include/linux/ncp_fs.h
index eb83cfe01..b30fd0610 100644
--- a/include/linux/ncp_fs.h
+++ b/include/linux/ncp_fs.h
@@ -13,6 +13,15 @@
#include <linux/types.h>
#include <linux/ncp_mount.h>
+
+/* NLS charsets by ioctl */
+#define NCP_IOCSNAME_LEN 20
+struct ncp_nls_ioctl
+{
+ unsigned char codepage[NCP_IOCSNAME_LEN+1];
+ unsigned char iocharset[NCP_IOCSNAME_LEN+1];
+};
+
#include <linux/ncp_fs_sb.h>
#include <linux/ncp_fs_i.h>
@@ -111,6 +120,9 @@ struct ncp_privatedata_ioctl
#define NCP_IOC_GETPRIVATEDATA _IOWR('n', 10, struct ncp_privatedata_ioctl)
#define NCP_IOC_SETPRIVATEDATA _IOR('n', 10, struct ncp_privatedata_ioctl)
+#define NCP_IOC_GETCHARSETS _IOWR('n', 11, struct ncp_nls_ioctl)
+#define NCP_IOC_SETCHARSETS _IOR('n', 11, struct ncp_nls_ioctl)
+
/*
* The packet size to allocate. One page should be enough.
*/
@@ -155,6 +167,12 @@ struct ncpfs_i {
__u32 dirEntNum __attribute__((packed));
__u32 DosDirNum __attribute__((packed));
__u32 volNumber __attribute__((packed));
+#ifdef CONFIG_NCPFS_SMALLDOS
+ __u32 origNS;
+#endif
+#ifdef CONFIG_NCPFS_STRONG
+ __u32 nwattr;
+#endif
int opened;
int access;
__u32 server_file_handle __attribute__((packed));
@@ -272,11 +290,14 @@ static inline int ncp_namespace(struct inode *inode)
return server->name_space[NCP_FINFO(inode)->volNumber];
}
-static inline int ncp_preserve_case(struct inode *i)
-{
+static inline int ncp_preserve_entry_case(struct inode *i, __u32 nscreator) {
#if defined(CONFIG_NCPFS_NFS_NS) || defined(CONFIG_NCPFS_OS2_NS)
int ns = ncp_namespace(i);
#endif
+#if defined(CONFIG_NCPFS_SMALLDOS) && defined(CONFIG_NCPFS_OS2_NS)
+ if ((ns == NW_NS_OS2) && (nscreator == NW_NS_DOS))
+ return 0;
+#endif
return
#ifdef CONFIG_NCPFS_OS2_NS
(ns == NW_NS_OS2) ||
@@ -287,6 +308,11 @@ static inline int ncp_preserve_case(struct inode *i)
0;
}
+static inline int ncp_preserve_case(struct inode *i)
+{
+ return ncp_preserve_entry_case(i, NW_NS_OS2);
+}
+
static inline int ncp_case_sensitive(struct inode *i)
{
#ifdef CONFIG_NCPFS_NFS_NS
diff --git a/include/linux/ncp_fs_sb.h b/include/linux/ncp_fs_sb.h
index 38492fc92..adf1eef66 100644
--- a/include/linux/ncp_fs_sb.h
+++ b/include/linux/ncp_fs_sb.h
@@ -73,6 +73,10 @@ struct ncp_server {
size_t len;
void* data;
} priv;
+
+ struct ncp_nls_ioctl nls_charsets; /* NLS user data */
+ struct nls_table *nls_vol; /* codepage used on volume */
+ struct nls_table *nls_io; /* charset used for input and display */
};
static inline int ncp_conn_valid(struct ncp_server *server)
diff --git a/include/linux/ncp_mount.h b/include/linux/ncp_mount.h
index 54bc5b943..a214372a5 100644
--- a/include/linux/ncp_mount.h
+++ b/include/linux/ncp_mount.h
@@ -16,11 +16,13 @@
#define NCP_MOUNT_VERSION 3
/* Values for flags */
-#define NCP_MOUNT_SOFT 0x0001
-#define NCP_MOUNT_INTR 0x0002
-#define NCP_MOUNT_STRONG 0x0004 /* enable delete/rename of r/o files */
-#define NCP_MOUNT_NO_OS2 0x0008
-#define NCP_MOUNT_NO_NFS 0x0010
+#define NCP_MOUNT_SOFT 0x0001
+#define NCP_MOUNT_INTR 0x0002
+#define NCP_MOUNT_STRONG 0x0004 /* enable delete/rename of r/o files */
+#define NCP_MOUNT_NO_OS2 0x0008 /* do not use OS/2 (LONG) namespace */
+#define NCP_MOUNT_NO_NFS 0x0010 /* do not use NFS namespace */
+#define NCP_MOUNT_EXTRAS 0x0020
+#define NCP_MOUNT_SYMLINKS 0x0040 /* enable symlinks */
struct ncp_mount_data {
int version;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 41f6405ee..18e7fde28 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -65,33 +65,6 @@
#define MAX_HEADER (LL_MAX_HEADER + 48)
#endif
-struct neighbour;
-struct neigh_parms;
-struct sk_buff;
-
-/*
- * We tag multicasts with these structures.
- */
-
-struct dev_mc_list
-{
- struct dev_mc_list *next;
- __u8 dmi_addr[MAX_ADDR_LEN];
- unsigned char dmi_addrlen;
- int dmi_users;
- int dmi_gusers;
-};
-
-struct hh_cache
-{
- struct hh_cache *hh_next; /* Next entry */
- atomic_t hh_refcnt; /* number of users */
- unsigned short hh_type; /* protocol identifier, f.e ETH_P_IP */
- int (*hh_output)(struct sk_buff *skb);
- /* cached hardware header; allow for machine alignment needs. */
- unsigned long hh_data[16/sizeof(unsigned long)];
-};
-
/*
* Network device statistics. Akin to the 2.0 ether stats but
* with byte counters.
@@ -157,6 +130,35 @@ extern const char *if_port_text[];
#include <linux/skbuff.h>
+struct neighbour;
+struct neigh_parms;
+struct sk_buff;
+
+/*
+ * We tag multicasts with these structures.
+ */
+
+struct dev_mc_list
+{
+ struct dev_mc_list *next;
+ __u8 dmi_addr[MAX_ADDR_LEN];
+ unsigned char dmi_addrlen;
+ int dmi_users;
+ int dmi_gusers;
+};
+
+struct hh_cache
+{
+ struct hh_cache *hh_next; /* Next entry */
+ atomic_t hh_refcnt; /* number of users */
+ unsigned short hh_type; /* protocol identifier, f.e ETH_P_IP */
+ int (*hh_output)(struct sk_buff *skb);
+ rwlock_t hh_lock;
+ /* cached hardware header; allow for machine alignment needs. */
+ unsigned long hh_data[16/sizeof(unsigned long)];
+};
+
+
/*
* The DEVICE structure.
* Actually, this whole structure is a big mistake. It mixes I/O
@@ -432,6 +434,7 @@ extern int dev_mc_add(struct device *dev, void *addr, int alen, int newonly);
extern void dev_mc_discard(struct device *dev);
extern void dev_set_promiscuity(struct device *dev, int inc);
extern void dev_set_allmulti(struct device *dev, int inc);
+extern void netdev_state_change(struct device *dev);
/* Load a device via the kmod */
extern void dev_load(const char *name);
extern void dev_mcast_init(void);
diff --git a/include/linux/nfs.h b/include/linux/nfs.h
index c4aab89e1..7936d5a71 100644
--- a/include/linux/nfs.h
+++ b/include/linux/nfs.h
@@ -41,6 +41,7 @@ enum nfs_stat {
NFSERR_FBIG = 27,
NFSERR_NOSPC = 28,
NFSERR_ROFS = 30,
+ NFSERR_OPNOTSUPP = 45,
NFSERR_NAMETOOLONG = 63,
NFSERR_NOTEMPTY = 66,
NFSERR_DQUOT = 69,
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index afd52c619..af9615066 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -98,8 +98,7 @@ do { \
struct nfs_wreq {
struct rpc_listitem wb_list; /* linked list of req's */
struct rpc_task wb_task; /* RPC task */
- struct dentry * wb_dentry; /* dentry referenced */
- struct inode * wb_inode; /* inode referenced */
+ struct file * wb_file; /* dentry referenced */
struct page * wb_page; /* page to be written */
struct wait_queue * wb_wait; /* wait for completion */
unsigned int wb_offset; /* offset within page */
@@ -182,6 +181,8 @@ 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 *);
/*
@@ -213,7 +214,6 @@ extern int nfs_lock(struct file *, int, struct file_lock *);
*/
extern int nfs_writepage(struct file *, struct page *);
extern int nfs_check_failed_request(struct inode *);
-extern int nfs_check_error(struct inode *);
/*
* Try to write back everything synchronously (but check the
@@ -221,8 +221,7 @@ extern int nfs_check_error(struct inode *);
*/
extern int nfs_wb_all(struct inode *);
extern int nfs_wb_page(struct inode *, struct page *);
-extern int nfs_wb_pid(struct inode *, pid_t);
-extern int nfs_flush_trunc(struct inode *, unsigned long);
+extern int nfs_wb_file(struct inode *, struct file *);
/*
* Invalidate write-backs, possibly trying to write them
@@ -254,12 +253,6 @@ nfs_revalidate_inode(struct nfs_server *server, struct dentry *dentry)
return _nfs_revalidate_inode(server, dentry);
}
-static inline int
-nfs_write_error(struct inode *inode)
-{
- return NFS_WRITEBACK(inode) && nfs_check_error(inode);
-}
-
/* NFS root */
extern int nfs_root_mount(struct super_block *sb);
diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h
index e33eaa418..dc16282e1 100644
--- a/include/linux/nfsd/nfsfh.h
+++ b/include/linux/nfsd/nfsfh.h
@@ -107,6 +107,9 @@ void nfsd_fh_flush(kdev_t);
void nfsd_fh_init(void);
void nfsd_fh_free(void);
+void expire_all(void);
+void expire_by_dentry(struct dentry *);
+
static __inline__ struct svc_fh *
fh_copy(struct svc_fh *dst, struct svc_fh *src)
{
diff --git a/include/linux/openpic.h b/include/linux/openpic.h
index ea3123483..9cf18c5da 100644
--- a/include/linux/openpic.h
+++ b/include/linux/openpic.h
@@ -313,15 +313,6 @@ extern u_char *OpenPIC_InitSenses;
#define Vector_Priority _Vector_Priority.Reg
#define Destination _Destination.Reg
-
- /*
- * Vendor and Device IDs
- */
-
-#define OPENPIC_VENDOR_ID_APPLE 0x14
-#define OPENPIC_DEVICE_ID_APPLE_HYDRA 0x46
-
-
/*
* OpenPIC Operations
*/
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index e9305f9b8..3e1e89b44 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -17,10 +17,29 @@ static inline unsigned long page_address(struct page * page)
return PAGE_OFFSET + PAGE_SIZE * (page - mem_map);
}
-#define PAGE_HASH_BITS 11
-#define PAGE_HASH_SIZE (1 << PAGE_HASH_BITS)
+/*
+ * The page cache can done in larger chunks than
+ * one page, because it allows for more efficient
+ * throughput (it can then be mapped into user
+ * space in smaller chunks for same flexibility).
+ *
+ * Or rather, it _will_ be done in larger chunks.
+ */
+#define PAGE_CACHE_SHIFT PAGE_SHIFT
+#define PAGE_CACHE_SIZE PAGE_SIZE
+#define PAGE_CACHE_MASK PAGE_MASK
+
+#define page_cache_alloc() __get_free_page(GFP_USER)
+#define page_cache_free(x) free_page(x)
+#define page_cache_release(x) __free_page(x)
-#define PAGE_AGE_VALUE 16
+/*
+ * From a kernel address, get the "struct page *"
+ */
+#define page_cache_entry(x) (mem_map + MAP_NR(x))
+
+#define PAGE_HASH_BITS 12
+#define PAGE_HASH_SIZE (1 << PAGE_HASH_BITS)
extern unsigned long page_cache_size; /* # of pages currently in the hash table */
extern struct page * page_hash_table[PAGE_HASH_SIZE];
diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h
index 65d8209e5..a74c7a121 100644
--- a/include/linux/parport_pc.h
+++ b/include/linux/parport_pc.h
@@ -14,8 +14,15 @@
#define STATUS 0x1
#define DATA 0
+/* Private data for PC low-level driver. */
+struct parport_pc_private {
+ /* Contents of CTR. */
+ unsigned char ctr;
+};
+
extern int parport_pc_epp_clear_timeout(struct parport *pb);
+extern volatile unsigned char parport_pc_ctr;
extern __inline__ void parport_pc_write_epp(struct parport *p, unsigned char d)
{
@@ -62,19 +69,24 @@ extern __inline__ unsigned char parport_pc_read_data(struct parport *p)
extern __inline__ void parport_pc_write_control(struct parport *p, unsigned char d)
{
+ struct parport_pc_private *priv = p->private_data;
+ priv->ctr = d;/* update soft copy */
outb(d, p->base+CONTROL);
}
extern __inline__ unsigned char parport_pc_read_control(struct parport *p)
{
- return inb(p->base+CONTROL);
+ struct parport_pc_private *priv = p->private_data;
+ return priv->ctr;
}
extern __inline__ unsigned char parport_pc_frob_control(struct parport *p, unsigned char mask, unsigned char val)
{
- unsigned char old = inb(p->base+CONTROL);
- outb(((old & ~mask) ^ val), p->base+CONTROL);
- return old;
+ struct parport_pc_private *priv = p->private_data;
+ unsigned char ctr = priv->ctr;
+ ctr = (ctr & ~mask) ^ val;
+ outb (ctr, p->base+CONTROL);
+ return priv->ctr = ctr; /* update soft copy */
}
extern __inline__ void parport_pc_write_status(struct parport *p, unsigned char d)
diff --git a/include/linux/pc_keyb.h b/include/linux/pc_keyb.h
index b79ecf0eb..29ccd3956 100644
--- a/include/linux/pc_keyb.h
+++ b/include/linux/pc_keyb.h
@@ -114,8 +114,12 @@ extern unsigned char aux_device_present;
#define AUX_ENABLE_DEV 0xF4 /* Enable aux device */
#define AUX_DISABLE_DEV 0xF5 /* Disable aux device */
#define AUX_RESET 0xFF /* Reset aux device */
+#define AUX_ACK 0xFA /* Command byte ACK. */
-#define AUX_BUF_SIZE 2048
+#define AUX_BUF_SIZE 2048 /* This might be better divisible by
+ three to make overruns stay in sync
+ but then the read function would need
+ a lock etc - ick */
struct aux_queue {
unsigned long head;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 6ba04c1d3..a4e4b9dfe 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -3,7 +3,7 @@
*
* PCI defines and function prototypes
* Copyright 1994, Drew Eckhardt
- * Copyright 1997, 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
+ * Copyright 1997--1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*
* For more information, please consult the following manuals (look at
* http://www.pcisig.com/ for how to get them):
@@ -36,9 +36,9 @@
#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */
#define PCI_STATUS 0x06 /* 16 bits */
+#define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */
#define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */
#define PCI_STATUS_UDF 0x40 /* Support User Definable Features */
-
#define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */
#define PCI_STATUS_PARITY 0x100 /* Detected parity error */
#define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */
@@ -101,7 +101,9 @@
#define PCI_ROM_ADDRESS_ENABLE 0x01
#define PCI_ROM_ADDRESS_MASK (~0x7ffUL)
-/* 0x34-0x3b are reserved */
+#define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */
+
+/* 0x35-0x3b are reserved */
#define PCI_INTERRUPT_LINE 0x3c /* 8 bits */
#define PCI_INTERRUPT_PIN 0x3d /* 8 bits */
#define PCI_MIN_GNT 0x3e /* 8 bits */
@@ -182,6 +184,12 @@
#define PCI_CB_LEGACY_MODE_BASE 0x44 /* 16-bit PC Card legacy mode base address (ExCa) */
/* 0x48-0x7f reserved */
+/* Capability lists */
+#define PCI_CAP_LIST_ID 0 /* Capability ID */
+#define PCI_CAP_ID_PM 0x01 /* Power Management */
+#define PCI_CAP_ID_AGP 0x02 /* Accelerated Graphics Port */
+#define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */
+
/* Device classes and subclasses */
#define PCI_CLASS_NOT_DEFINED 0x0000
@@ -356,6 +364,7 @@
#define PCI_DEVICE_ID_DEC_21052 0x0021
#define PCI_DEVICE_ID_DEC_21150 0x0022
#define PCI_DEVICE_ID_DEC_21152 0x0024
+#define PCI_DEVICE_ID_DEC_21153 0x0025
#define PCI_VENDOR_ID_CIRRUS 0x1013
#define PCI_DEVICE_ID_CIRRUS_7548 0x0038
@@ -379,6 +388,7 @@
#define PCI_DEVICE_ID_IBM_82G2675 0x001d
#define PCI_DEVICE_ID_IBM_MCA 0x0020
#define PCI_DEVICE_ID_IBM_82351 0x0022
+#define PCI_DEVICE_ID_IBM_PYTHON 0x002d
#define PCI_DEVICE_ID_IBM_SERVERAID 0x002e
#define PCI_DEVICE_ID_IBM_TR_WAKE 0x003e
#define PCI_DEVICE_ID_IBM_MPIC 0x0046
@@ -894,6 +904,10 @@
#define PCI_VENDOR_ID_CYCLADES 0x120e
#define PCI_DEVICE_ID_CYCLOM_Y_Lo 0x0100
#define PCI_DEVICE_ID_CYCLOM_Y_Hi 0x0101
+#define PCI_DEVICE_ID_CYCLOM_4Y_Lo 0x0102
+#define PCI_DEVICE_ID_CYCLOM_4Y_Hi 0x0103
+#define PCI_DEVICE_ID_CYCLOM_8Y_Lo 0x0104
+#define PCI_DEVICE_ID_CYCLOM_8Y_Hi 0x0105
#define PCI_DEVICE_ID_CYCLOM_Z_Lo 0x0200
#define PCI_DEVICE_ID_CYCLOM_Z_Hi 0x0201
@@ -916,6 +930,9 @@
#define PCI_VENDOR_ID_CCUBE 0x123f
+#define PCI_VENDOR_ID_AVM 0x1244
+#define PCI_DEVICE_ID_AVM_A1 0x0a00
+
#define PCI_VENDOR_ID_DIPIX 0x1246
#define PCI_VENDOR_ID_STALLION 0x124d
@@ -952,6 +969,9 @@
#define PCI_VENDOR_ID_CBOARDS 0x1307
#define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001
+#define PCI_VENDOR_ID_NETGEAR 0x1385
+#define PCI_DEVICE_ID_NETGEAR_GA620 0x620a
+
#define PCI_VENDOR_ID_SYMPHONY 0x1c1c
#define PCI_DEVICE_ID_SYMPHONY_101 0x0001
@@ -1037,6 +1057,7 @@
#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192
#define PCI_DEVICE_ID_INTEL_P6 0x84c4
#define PCI_DEVICE_ID_INTEL_82450GX 0x84c5
+#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca
#define PCI_VENDOR_ID_KTI 0x8e2e
#define PCI_DEVICE_ID_KTI_ET32P2 0x3000
@@ -1203,6 +1224,7 @@ void pci_init(void);
void pci_setup(char *str, int *ints);
void pci_quirks_init(void);
unsigned int pci_scan_bus(struct pci_bus *bus);
+struct pci_bus *pci_scan_peer_bridge(int bus);
void pci_proc_init(void);
void proc_old_pci_init(void);
int get_pci_list(char *buf);
diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
index 0c38cac86..36935ed3a 100644
--- a/include/linux/pkt_cls.h
+++ b/include/linux/pkt_cls.h
@@ -23,9 +23,12 @@ enum
TCA_POLICE_TBF,
TCA_POLICE_RATE,
TCA_POLICE_PEAKRATE,
+ TCA_POLICE_AVRATE,
+ TCA_POLICE_RESULT
+#define TCA_POLICE_RESULT TCA_POLICE_RESULT
};
-#define TCA_POLICE_MAX TCA_POLICE_PEAKRATE
+#define TCA_POLICE_MAX TCA_POLICE_RESULT
/* U32 filters */
@@ -114,4 +117,30 @@ struct tc_rsvp_pinfo
__u8 tunnelhdr;
};
+/* ROUTE filter */
+
+enum
+{
+ TCA_ROUTE4_UNSPEC,
+ TCA_ROUTE4_CLASSID,
+ TCA_ROUTE4_TO,
+ TCA_ROUTE4_FROM,
+ TCA_ROUTE4_IIF,
+ TCA_ROUTE4_POLICE,
+};
+
+#define TCA_ROUTE4_MAX TCA_ROUTE4_POLICE
+
+
+/* FW filter */
+
+enum
+{
+ TCA_FW_UNSPEC,
+ TCA_FW_CLASSID,
+ TCA_FW_POLICE,
+};
+
+#define TCA_FW_MAX TCA_FW_POLICE
+
#endif
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index e02d072f7..1de3fe2ec 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -174,6 +174,7 @@ enum scsi_directory_inos {
PROC_SCSI_SEAGATE,
PROC_SCSI_T128,
PROC_SCSI_NCR53C7xx,
+ PROC_SCSI_SYM53C8XX,
PROC_SCSI_NCR53C8XX,
PROC_SCSI_ULTRASTOR,
PROC_SCSI_7000FASST,
@@ -184,6 +185,7 @@ enum scsi_directory_inos {
PROC_SCSI_AM53C974,
PROC_SCSI_SSC,
PROC_SCSI_NCR53C406A,
+ PROC_SCSI_SYM53C416,
PROC_SCSI_MEGARAID,
PROC_SCSI_PPA,
PROC_SCSI_ATP870U,
@@ -203,6 +205,8 @@ enum scsi_directory_inos {
PROC_SCSI_53C94,
PROC_SCSI_PLUTO,
PROC_SCSI_INI9100U,
+ PROC_SCSI_INIA100,
+ PROC_SCSI_FCAL,
PROC_SCSI_SCSI_DEBUG,
PROC_SCSI_NOT_PRESENT,
PROC_SCSI_FILE, /* I'm assuming here that we */
@@ -379,7 +383,7 @@ extern int proc_match(int, const char *,struct proc_dir_entry *);
* of the /proc/<pid> subdirectories.
*/
extern int proc_readdir(struct file *, void *, filldir_t);
-extern int proc_lookup(struct inode *, struct dentry *);
+extern struct dentry *proc_lookup(struct inode *, struct dentry *);
struct openpromfs_dev {
struct openpromfs_dev *next;
@@ -391,7 +395,7 @@ struct openpromfs_dev {
};
extern struct inode_operations *
proc_openprom_register(int (*readdir)(struct file *, void *, filldir_t),
- int (*lookup)(struct inode *, struct dentry *),
+ struct dentry * (*lookup)(struct inode *, struct dentry *),
void (*use)(struct inode *, int),
struct openpromfs_dev ***);
extern void proc_openprom_deregister(void);
diff --git a/include/linux/qnx4_fs.h b/include/linux/qnx4_fs.h
index eb2b3dc08..c5a010394 100644
--- a/include/linux/qnx4_fs.h
+++ b/include/linux/qnx4_fs.h
@@ -95,7 +95,7 @@ struct qnx4_super_block {
#define QNX4DEBUG(X) (void) 0
#endif
-extern int qnx4_lookup(struct inode *dir, struct dentry *dentry);
+extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry);
extern unsigned long qnx4_count_free_inodes(struct super_block *sb);
extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index a2a00a04c..b31daec41 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -55,7 +55,7 @@ extern __inline__ int DQUOT_PREALLOC_BLOCK(struct super_block *sb, const struct
{
if (sb->dq_op) {
if (sb->dq_op->alloc_block(inode, fs_to_dq_blocks(nr, sb->s_blocksize),
- current->euid, 0) == NO_QUOTA)
+ current->fsuid, 0) == NO_QUOTA)
return 1;
}
return 0;
@@ -65,7 +65,7 @@ extern __inline__ int DQUOT_ALLOC_BLOCK(struct super_block *sb, const struct ino
{
if (sb->dq_op) {
if (sb->dq_op->alloc_block(inode, fs_to_dq_blocks(nr, sb->s_blocksize),
- current->euid, 1) == NO_QUOTA)
+ current->fsuid, 1) == NO_QUOTA)
return 1;
}
return 0;
@@ -75,7 +75,7 @@ extern __inline__ int DQUOT_ALLOC_INODE(struct super_block *sb, struct inode *in
{
if (sb->dq_op) {
sb->dq_op->initialize (inode, -1);
- if (sb->dq_op->alloc_inode (inode, 1, current->euid))
+ if (sb->dq_op->alloc_inode (inode, 1, current->fsuid))
return 1;
}
inode->i_flags |= S_QUOTA;
@@ -101,11 +101,11 @@ extern __inline__ int DQUOT_TRANSFER(struct dentry *dentry, struct iattr *iattr)
if (dentry->d_inode->i_sb->dq_op) {
if (IS_QUOTAINIT(dentry->d_inode) == 0)
dentry->d_inode->i_sb->dq_op->initialize(dentry->d_inode, -1);
- if (dentry->d_inode->i_sb->dq_op->transfer(dentry->d_inode, iattr, 0, current->euid))
+ if (dentry->d_inode->i_sb->dq_op->transfer(dentry->d_inode, iattr, 0, current->fsuid))
goto out;
error = notify_change(dentry, iattr);
if (error)
- dentry->d_inode->i_sb->dq_op->transfer(dentry->d_inode, iattr, 1, current->euid);
+ dentry->d_inode->i_sb->dq_op->transfer(dentry->d_inode, iattr, 1, current->fsuid);
} else {
error = notify_change(dentry, iattr);
}
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index be607392c..b339f6528 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -139,6 +139,7 @@ enum
#define RTPROT_RA 9 /* RDISC/ND router advertisments */
#define RTPROT_MRT 10 /* Merit MRT */
#define RTPROT_ZEBRA 11 /* Zebra */
+#define RTPROT_BIRD 12 /* BIRD */
/* rtm_scope
diff --git a/include/linux/sched.h b/include/linux/sched.h
index b37bce2cc..e0066b3f6 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -112,9 +112,10 @@ struct sched_param {
* a separate lock).
*/
extern rwlock_t tasklist_lock;
-extern spinlock_t scheduler_lock;
+extern spinlock_t runqueue_lock;
extern void sched_init(void);
+extern void init_idle(void);
extern void show_state(void);
extern void trap_init(void);
@@ -174,6 +175,8 @@ struct mm_struct {
unsigned long rss, total_vm, locked_vm;
unsigned long def_flags;
unsigned long cpu_vm_mask;
+ unsigned long swap_cnt; /* number of pages to swap on next pass */
+ unsigned long swap_address;
/*
* This is an architecture-specific pointer: the portable
* part of Linux does not know about any segments.
@@ -191,7 +194,7 @@ struct mm_struct {
0, 0, 0, \
0, 0, 0, 0, \
0, 0, 0, \
- 0, 0, NULL }
+ 0, 0, 0, 0, NULL }
struct signal_struct {
atomic_t count;
@@ -276,8 +279,6 @@ struct task_struct {
/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;
int swappable:1;
- unsigned long swap_address;
- unsigned long swap_cnt; /* number of pages to swap on next pass */
/* process credentials */
uid_t uid,euid,suid,fsuid;
gid_t gid,egid,sgid,fsgid;
@@ -361,7 +362,7 @@ struct task_struct {
/* utime */ {0,0,0,0},0, \
/* per CPU times */ {0, }, {0, }, \
/* flt */ 0,0,0,0,0,0, \
-/* swp */ 0,0,0, \
+/* swp */ 0, \
/* process credentials */ \
/* uid etc */ 0,0,0,0,0,0,0,0, \
/* suppl grps*/ 0, {0,}, \
@@ -673,6 +674,58 @@ extern inline void remove_wait_queue(struct wait_queue ** p, struct wait_queue *
write_unlock_irqrestore(&waitqueue_lock, flags);
}
+#define __wait_event(wq, condition) \
+do { \
+ struct wait_queue __wait; \
+ \
+ __wait.task = current; \
+ add_wait_queue(&wq, &__wait); \
+ for (;;) { \
+ current->state = TASK_UNINTERRUPTIBLE; \
+ if (condition) \
+ break; \
+ schedule(); \
+ } \
+ current->state = TASK_RUNNING; \
+ remove_wait_queue(&wq, &__wait); \
+} while (0)
+
+#define wait_event(wq, condition) \
+do { \
+ if (condition) \
+ break; \
+ __wait_event(wq, condition); \
+} while (0)
+
+#define __wait_event_interruptible(wq, condition, ret) \
+do { \
+ struct wait_queue __wait; \
+ \
+ __wait.task = current; \
+ add_wait_queue(&wq, &__wait); \
+ for (;;) { \
+ current->state = TASK_INTERRUPTIBLE; \
+ if (condition) \
+ break; \
+ if (!signal_pending(current)) { \
+ schedule(); \
+ continue; \
+ } \
+ ret = -ERESTARTSYS; \
+ break; \
+ } \
+ current->state = TASK_RUNNING; \
+ remove_wait_queue(&wq, &__wait); \
+} while (0)
+
+#define wait_event_interruptible(wq, condition) \
+({ \
+ int __ret = 0; \
+ if (!(condition)) \
+ __wait_event_interruptible(wq, condition, __ret); \
+ __ret; \
+})
+
#define REMOVE_LINKS(p) do { \
(p)->next_task->prev_task = (p)->prev_task; \
(p)->prev_task->next_task = (p)->next_task; \
diff --git a/include/linux/selection.h b/include/linux/selection.h
index 45e4712b4..74d1b24d6 100644
--- a/include/linux/selection.h
+++ b/include/linux/selection.h
@@ -38,7 +38,7 @@ extern void invert_screen(int currcons, int offset, int count, int shift);
extern void getconsxy(int currcons, char *p);
extern void putconsxy(int currcons, char *p);
-extern u16 vcs_scr_readw(int currcons, u16 *org);
+extern u16 vcs_scr_readw(int currcons, const u16 *org);
extern void vcs_scr_writew(int currcons, u16 val, u16 *org);
#endif
diff --git a/include/linux/smb_fs.h b/include/linux/smb_fs.h
index 35478fe4d..a151a75e6 100644
--- a/include/linux/smb_fs.h
+++ b/include/linux/smb_fs.h
@@ -14,7 +14,7 @@
/*
* ioctl commands
*/
-#define SMB_IOC_GETMOUNTUID _IOR('u', 1, uid_t)
+#define SMB_IOC_GETMOUNTUID _IOR('u', 1, __kernel_uid_t)
#define SMB_IOC_NEWCONN _IOW('u', 2, struct smb_conn_opt)
#ifdef __KERNEL__
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 80ea3056f..75c34e87f 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -42,6 +42,12 @@ extern void smp_callin(void);
extern void smp_commence(void);
/*
+ * Call a function on all other processors
+ */
+extern int smp_call_function (void (*func) (void *info), void *info,
+ int retry, int wait);
+
+/*
* True once the per process idle is forked
*/
extern int smp_threads_ready;
@@ -60,7 +66,7 @@ extern volatile int smp_msg_id;
* when rebooting
*/
#define MSG_RESCHEDULE 0x0003 /* Reschedule request from master CPU*/
-#define MSG_MTRR_CHANGE 0x0004 /* Change MTRR */
+#define MSG_CALL_FUNCTION 0x0004 /* Call function on all other CPUs */
#else
@@ -68,12 +74,13 @@ extern volatile int smp_msg_id;
* These macros fold the SMP functionality into a single CPU system
*/
-#define smp_num_cpus 1
-#define smp_processor_id() 0
-#define hard_smp_processor_id() 0
-#define smp_threads_ready 1
+#define smp_num_cpus 1
+#define smp_processor_id() 0
+#define hard_smp_processor_id() 0
+#define smp_threads_ready 1
#define kernel_lock()
-#define cpu_logical_map(cpu) 0
+#define cpu_logical_map(cpu) 0
+#define smp_call_function(func,info,retry,wait)
#endif
#endif
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 41e759751..bcb7ce731 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -234,6 +234,7 @@ struct ucred {
#define SOL_PACKET 263
#define SOL_ATM 264 /* ATM layer (cell level) */
#define SOL_AAL 265 /* ATM Adaption Layer (packet level) */
+#define SOL_IRDA 266
/* IPX options */
#define IPX_TYPE 1
diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h
index 8563307a8..5f8dc8768 100644
--- a/include/linux/sunrpc/svcsock.h
+++ b/include/linux/sunrpc/svcsock.h
@@ -39,7 +39,7 @@ struct svc_sock {
void (*sk_odata)(struct sock *, int bytes);
/* private TCP part */
- unsigned long sk_reclen; /* length of record */
+ int sk_reclen; /* length of record */
int sk_tcplen; /* current read length */
/* Debugging */
diff --git a/include/linux/synclink.h b/include/linux/synclink.h
new file mode 100644
index 000000000..69dc86725
--- /dev/null
+++ b/include/linux/synclink.h
@@ -0,0 +1,243 @@
+/*
+ * SyncLink Multiprotocol Serial Adapter Driver
+ *
+ * Copyright (C) 1998 by Microgate Corporation
+ *
+ * Redistribution of this file is permitted under
+ * the terms of the GNU Public License (GPL)
+ */
+
+#ifndef _SYNCLINK_H_
+#define _SYNCLINK_H_
+
+#define BOOLEAN int
+#define TRUE 1
+#define FALSE 0
+
+#define BIT0 0x0001
+#define BIT1 0x0002
+#define BIT2 0x0004
+#define BIT3 0x0008
+#define BIT4 0x0010
+#define BIT5 0x0020
+#define BIT6 0x0040
+#define BIT7 0x0080
+#define BIT8 0x0100
+#define BIT9 0x0200
+#define BIT10 0x0400
+#define BIT11 0x0800
+#define BIT12 0x1000
+#define BIT13 0x2000
+#define BIT14 0x4000
+#define BIT15 0x8000
+#define BIT16 0x00010000
+#define BIT17 0x00020000
+#define BIT18 0x00040000
+#define BIT19 0x00080000
+#define BIT20 0x00100000
+#define BIT21 0x00200000
+#define BIT22 0x00400000
+#define BIT23 0x00800000
+#define BIT24 0x01000000
+#define BIT25 0x02000000
+#define BIT26 0x04000000
+#define BIT27 0x08000000
+#define BIT28 0x10000000
+#define BIT29 0x20000000
+#define BIT30 0x40000000
+#define BIT31 0x80000000
+
+
+#define HDLC_MAX_FRAME_SIZE 4096
+#define MAX_ASYNC_TRANSMIT 4096
+
+#define ASYNC_PARITY_NONE 0
+#define ASYNC_PARITY_EVEN 1
+#define ASYNC_PARITY_ODD 2
+#define ASYNC_PARITY_SPACE 3
+
+#define HDLC_FLAG_UNDERRUN_ABORT7 0x0000
+#define HDLC_FLAG_UNDERRUN_ABORT15 0x0001
+#define HDLC_FLAG_UNDERRUN_FLAG 0x0002
+#define HDLC_FLAG_UNDERRUN_CRC 0x0004
+#define HDLC_FLAG_SHARE_ZERO 0x0010
+#define HDLC_FLAG_AUTO_CTS 0x0020
+#define HDLC_FLAG_AUTO_DCD 0x0040
+#define HDLC_FLAG_AUTO_RTS 0x0080
+#define HDLC_FLAG_RXC_DPLL 0x0100
+#define HDLC_FLAG_RXC_BRG 0x0200
+#define HDLC_FLAG_TXC_DPLL 0x0400
+#define HDLC_FLAG_TXC_BRG 0x0800
+#define HDLC_FLAG_DPLL_DIV8 0x1000
+#define HDLC_FLAG_DPLL_DIV16 0x2000
+#define HDLC_FLAG_DPLL_DIV32 0x0000
+
+#define HDLC_CRC_NONE 0
+#define HDLC_CRC_16_CCITT 1
+
+#define HDLC_TXIDLE_FLAGS 0
+#define HDLC_TXIDLE_ALT_ZEROS_ONES 1
+#define HDLC_TXIDLE_ZEROS 2
+#define HDLC_TXIDLE_ONES 3
+#define HDLC_TXIDLE_ALT_MARK_SPACE 4
+#define HDLC_TXIDLE_SPACE 5
+#define HDLC_TXIDLE_MARK 6
+
+#define HDLC_ENCODING_NRZ 0
+#define HDLC_ENCODING_NRZB 1
+#define HDLC_ENCODING_NRZI_MARK 2
+#define HDLC_ENCODING_NRZI_SPACE 3
+#define HDLC_ENCODING_BIPHASE_MARK 4
+#define HDLC_ENCODING_BIPHASE_SPACE 5
+#define HDLC_ENCODING_BIPHASE_LEVEL 6
+#define HDLC_ENCODING_DIFF_BIPHASE_LEVEL 7
+
+#define HDLC_PREAMBLE_LENGTH_8BITS 0
+#define HDLC_PREAMBLE_LENGTH_16BITS 1
+#define HDLC_PREAMBLE_LENGTH_32BITS 2
+#define HDLC_PREAMBLE_LENGTH_64BITS 3
+
+#define HDLC_PREAMBLE_PATTERN_NONE 0
+#define HDLC_PREAMBLE_PATTERN_ZEROS 1
+#define HDLC_PREAMBLE_PATTERN_FLAGS 2
+#define HDLC_PREAMBLE_PATTERN_10 3
+#define HDLC_PREAMBLE_PATTERN_01 4
+#define HDLC_PREAMBLE_PATTERN_ONES 5
+
+#define MGSL_MODE_ASYNC 1
+#define MGSL_MODE_HDLC 2
+
+#define MGSL_BUS_TYPE_ISA 1
+#define MGSL_BUS_TYPE_EISA 2
+#define MGSL_BUS_TYPE_PCI 5
+
+typedef struct _MGSL_PARAMS
+{
+ /* Common */
+
+ unsigned long mode; /* Asynchronous or HDLC */
+ unsigned char loopback; /* internal loopback mode */
+
+ /* HDLC Only */
+
+ unsigned short flags;
+ unsigned char encoding; /* NRZ, NRZI, etc. */
+ unsigned long clock_speed; /* external clock speed in bits per second */
+ unsigned char addr_filter; /* receive HDLC address filter, 0xFF = disable */
+ unsigned short crc_type; /* None, CRC16 or CRC16-CCITT */
+ unsigned char preamble_length;
+ unsigned char preamble;
+
+ /* Async Only */
+
+ unsigned long data_rate; /* bits per second */
+ unsigned char data_bits; /* 7 or 8 data bits */
+ unsigned char stop_bits; /* 1 or 2 stop bits */
+ unsigned char parity; /* none, even, or odd */
+
+} MGSL_PARAMS, *PMGSL_PARAMS;
+
+#define MICROGATE_VENDOR_ID 0x13c0
+#define SYNCLINK_DEVICE_ID 0x0010
+#define MGSL_MAX_SERIAL_NUMBER 30
+
+/*
+** device diagnostics status
+*/
+
+#define DiagStatus_OK 0
+#define DiagStatus_AddressFailure 1
+#define DiagStatus_AddressConflict 2
+#define DiagStatus_IrqFailure 3
+#define DiagStatus_IrqConflict 4
+#define DiagStatus_DmaFailure 5
+#define DiagStatus_DmaConflict 6
+#define DiagStatus_PciAdapterNotFound 7
+#define DiagStatus_CantAssignPciResources 8
+#define DiagStatus_CantAssignPciMemAddr 9
+#define DiagStatus_CantAssignPciIoAddr 10
+#define DiagStatus_CantAssignPciIrq 11
+#define DiagStatus_MemoryError 12
+
+#define SerialSignal_DCD 0x01 /* Data Carrier Detect */
+#define SerialSignal_TXD 0x02 /* Transmit Data */
+#define SerialSignal_RI 0x04 /* Ring Indicator */
+#define SerialSignal_RXD 0x08 /* Receive Data */
+#define SerialSignal_CTS 0x10 /* Clear to Send */
+#define SerialSignal_RTS 0x20 /* Request to Send */
+#define SerialSignal_DSR 0x40 /* Data Set Ready */
+#define SerialSignal_DTR 0x80 /* Data Terminal Ready */
+
+
+/*
+ * Counters of the input lines (CTS, DSR, RI, CD) interrupts
+ */
+struct mgsl_icount {
+ __u32 cts, dsr, rng, dcd, tx, rx;
+ __u32 frame, parity, overrun, brk;
+ __u32 buf_overrun;
+ __u32 txok;
+ __u32 txunder;
+ __u32 txabort;
+ __u32 txtimeout;
+ __u32 rxshort;
+ __u32 rxlong;
+ __u32 rxabort;
+ __u32 rxover;
+ __u32 rxcrc;
+ __u32 rxok;
+ __u32 exithunt;
+ __u32 rxidle;
+};
+
+
+#define DEBUG_LEVEL_DATA 1
+#define DEBUG_LEVEL_ERROR 2
+#define DEBUG_LEVEL_INFO 3
+#define DEBUG_LEVEL_BH 4
+#define DEBUG_LEVEL_ISR 5
+
+/*
+** Event bit flags for use with MgslWaitEvent
+*/
+
+#define MgslEvent_DsrActive 0x0001
+#define MgslEvent_DsrInactive 0x0002
+#define MgslEvent_Dsr 0x0003
+#define MgslEvent_CtsActive 0x0004
+#define MgslEvent_CtsInactive 0x0008
+#define MgslEvent_Cts 0x000c
+#define MgslEvent_DcdActive 0x0010
+#define MgslEvent_DcdInactive 0x0020
+#define MgslEvent_Dcd 0x0030
+#define MgslEvent_RiActive 0x0040
+#define MgslEvent_RiInactive 0x0080
+#define MgslEvent_Ri 0x00c0
+#define MgslEvent_ExitHuntMode 0x0100
+#define MgslEvent_IdleReceived 0x0200
+
+/* Private IOCTL codes:
+ *
+ * MGSL_IOCSPARAMS set MGSL_PARAMS structure values
+ * MGSL_IOCGPARAMS get current MGSL_PARAMS structure values
+ * MGSL_IOCSTXIDLE set current transmit idle mode
+ * MGSL_IOCGTXIDLE get current transmit idle mode
+ * MGSL_IOCTXENABLE enable or disable transmitter
+ * MGSL_IOCRXENABLE enable or disable receiver
+ * MGSL_IOCTXABORT abort transmitting frame (HDLC)
+ * MGSL_IOCGSTATS return current statistics
+ * MGSL_IOCWAITEVENT wait for specified event to occur
+ */
+#define MGSL_MAGIC_IOC 'm'
+#define MGSL_IOCSPARAMS _IOW(MGSL_MAGIC_IOC,0,sizeof(MGSL_PARAMS))
+#define MGSL_IOCGPARAMS _IOR(MGSL_MAGIC_IOC,1,sizeof(MGSL_PARAMS))
+#define MGSL_IOCSTXIDLE _IO(MGSL_MAGIC_IOC,2)
+#define MGSL_IOCGTXIDLE _IO(MGSL_MAGIC_IOC,3)
+#define MGSL_IOCTXENABLE _IO(MGSL_MAGIC_IOC,4)
+#define MGSL_IOCRXENABLE _IO(MGSL_MAGIC_IOC,5)
+#define MGSL_IOCTXABORT _IO(MGSL_MAGIC_IOC,6)
+#define MGSL_IOCGSTATS _IO(MGSL_MAGIC_IOC,7)
+#define MGSL_IOCWAITEVENT _IO(MGSL_MAGIC_IOC,8)
+#define MGSL_IOCCLRMODCOUNT _IO(MGSL_MAGIC_IOC,15)
+
+#endif /* _SYNCLINK_H_ */
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 413864d40..db74f03be 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -56,9 +56,15 @@ enum
CTL_PROC=4, /* Process info */
CTL_FS=5, /* Filesystems */
CTL_DEBUG=6, /* Debugging */
- CTL_DEV=7 /* Devices */
+ CTL_DEV=7, /* Devices */
+ CTL_BUS=8 /* Buses */
};
+/* CTL_BUS names: */
+enum
+{
+ BUS_ISA=1 /* ISA */
+};
/* CTL_KERN names: */
enum
@@ -133,9 +139,17 @@ enum
NET_IPV6=12,
NET_X25=13,
NET_TR=14,
- NET_DECNET=15
+ NET_DECNET=15,
+ NET_ECONET=16
};
+/* /proc/sys/bus/isa */
+enum
+{
+ BUS_ISA_MEM_BASE=1,
+ BUS_ISA_PORT_BASE=2,
+ BUS_ISA_PORT_SHIFT=3
+};
/* /proc/sys/net/core */
enum
@@ -161,7 +175,8 @@ enum
enum
{
NET_UNIX_DESTROY_DELAY=1,
- NET_UNIX_DELETE_DELAY=2
+ NET_UNIX_DELETE_DELAY=2,
+ NET_UNIX_MAX_DGRAM_QLEN=3,
};
/* /proc/sys/net/ipv4 */
@@ -225,7 +240,8 @@ enum {
NET_IPV4_ROUTE_REDIRECT_SILENCE=11,
NET_IPV4_ROUTE_ERROR_COST=12,
NET_IPV4_ROUTE_ERROR_BURST=13,
- NET_IPV4_ROUTE_GC_ELASTICITY=14
+ NET_IPV4_ROUTE_GC_ELASTICITY=14,
+ NET_IPV4_ROUTE_MTU_EXPIRES=15
};
enum
@@ -265,7 +281,8 @@ enum {
NET_IPV6_ROUTE_GC_MIN_INTERVAL=4,
NET_IPV6_ROUTE_GC_TIMEOUT=5,
NET_IPV6_ROUTE_GC_INTERVAL=6,
- NET_IPV6_ROUTE_GC_ELASTICITY=7
+ NET_IPV6_ROUTE_GC_ELASTICITY=7,
+ NET_IPV6_ROUTE_MTU_EXPIRES=8
};
enum {
diff --git a/include/linux/sysv_fs.h b/include/linux/sysv_fs.h
index 547e5c2c1..49d9d24f1 100644
--- a/include/linux/sysv_fs.h
+++ b/include/linux/sysv_fs.h
@@ -367,7 +367,7 @@ sv_bread (struct super_block *sb, kdev_t dev, unsigned int block)
* Function prototypes
*/
-extern int sysv_lookup(struct inode * dir, struct dentry * dentry);
+extern struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry);
extern int sysv_create(struct inode * dir, struct dentry * dentry, int mode);
extern int sysv_mkdir(struct inode * dir, struct dentry * dentry, int mode);
extern int sysv_rmdir(struct inode * dir, struct dentry * dentry);
@@ -398,7 +398,6 @@ extern void sysv_write_super(struct super_block *);
extern void sysv_read_inode(struct inode *);
extern int sysv_notify_change(struct dentry *, struct iattr *);
extern void sysv_write_inode(struct inode *);
-extern void sysv_put_inode(struct inode *);
extern int sysv_statfs(struct super_block *, struct statfs *, int);
extern int sysv_sync_inode(struct inode *);
extern int sysv_sync_file(struct file *, struct dentry *);
diff --git a/include/linux/tqueue.h b/include/linux/tqueue.h
index 4d59ee872..d886f7533 100644
--- a/include/linux/tqueue.h
+++ b/include/linux/tqueue.h
@@ -59,7 +59,7 @@ extern task_queue tq_timer, tq_immediate, tq_scheduler, tq_disk;
*
* struct tq_struct *my_bh = NULL;
* struct tq_struct run_my_bh = {
- * 0, 0, (void *)(void *) run_task_queue, &my_bh
+ * 0, 0, (void (*)(void *)) run_task_queue, &my_bh
* };
*
* To activate a bottom half on your list, use:
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h
index 65d26195f..e36ceba9e 100644
--- a/include/linux/ufs_fs.h
+++ b/include/linux/ufs_fs.h
@@ -93,6 +93,7 @@
#define UFS_ST_OLD 0x00000000
#define UFS_ST_44BSD 0x00000100
#define UFS_ST_SUN 0x00000200
+#define UFS_ST_SUNx86 0x00000400
/*cylinder group encoding */
#define UFS_CG_MASK 0x00003000 /* mask for the following */
#define UFS_CG_OLD 0x00000000
@@ -110,12 +111,13 @@
#define UFS_MOUNT_ONERROR_UMOUNT 0x00000004
#define UFS_MOUNT_ONERROR_REPAIR 0x00000008
-#define UFS_MOUNT_UFSTYPE 0x000001F0
+#define UFS_MOUNT_UFSTYPE 0x000003F0
#define UFS_MOUNT_UFSTYPE_OLD 0x00000010
#define UFS_MOUNT_UFSTYPE_44BSD 0x00000020
#define UFS_MOUNT_UFSTYPE_SUN 0x00000040
-#define UFS_MOUNT_UFSTYPE_NEXT 0x00000080
+#define UFS_MOUNT_UFSTYPE_NEXTSTEP 0x00000080
#define UFS_MOUNT_UFSTYPE_OPENSTEP 0x00000100
+#define UFS_MOUNT_UFSTYPE_SUNx86 0x00000200
#define ufs_clear_opt(o,opt) o &= ~UFS_MOUNT_##opt
#define ufs_set_opt(o,opt) o |= UFS_MOUNT_##opt
@@ -203,7 +205,7 @@
#define UFS_MAXNAMLEN 255
#define UFS_MAXMNTLEN 512
#define UFS_MAXCSBUFS 31
-#define UFS_LINK_MAX EXT2_LINK_MAX
+#define UFS_LINK_MAX 32000
/*
* UFS_DIR_PAD defines the directory entries boundaries
@@ -294,7 +296,14 @@ struct ufs_super_block {
/* yet another configuration parameter */
__u32 fs_optim; /* optimization preference, see below */
/* these fields are derived from the hardware */
- __u32 fs_npsect; /* # sectors/track including spares */
+ union {
+ struct {
+ __u32 fs_npsect; /* # sectors/track including spares */
+ } fs_sun;
+ struct {
+ __s32 fs_state; /* file system state time stamp */
+ } fs_sunx86;
+ } fs_u1;
__u32 fs_interleave; /* hardware sector interleave */
__u32 fs_trackskew; /* sector 0 skew, per track */
/* a unique id for this filesystem (currently unused and unmaintained) */
@@ -319,11 +328,11 @@ struct ufs_super_block {
/* this data must be re-computed after crashes */
struct ufs_csum fs_cstotal; /* cylinder summary information */
/* these fields are cleared at mount time */
- __u8 fs_fmod; /* super block modified flag */
- __u8 fs_clean; /* file system is clean flag */
- __u8 fs_ronly; /* mounted read-only flag */
- __u8 fs_flags; /* currently unused flag */
- __u8 fs_fsmnt[UFS_MAXMNTLEN]; /* name mounted on */
+ __s8 fs_fmod; /* super block modified flag */
+ __s8 fs_clean; /* file system is clean flag */
+ __s8 fs_ronly; /* mounted read-only flag */
+ __s8 fs_flags; /* currently unused flag */
+ __s8 fs_fsmnt[UFS_MAXMNTLEN]; /* name mounted on */
/* these fields retain the current block allocation info */
__u32 fs_cgrotor; /* last cg searched */
__u32 fs_csp[UFS_MAXCSBUFS]; /* list of fs_cs info buffers */
@@ -340,6 +349,14 @@ struct ufs_super_block {
__u32 fs_qfmask[2]; /* ~usb_fmask */
} fs_sun;
struct {
+ __s32 fs_sparecon[53];/* reserved for future constants */
+ __s32 fs_reclaim;
+ __s32 fs_sparecon2[1];
+ __u32 fs_npsect; /* # sectors/track including spares */
+ __u32 fs_qbmask[2]; /* ~usb_bmask */
+ __u32 fs_qfmask[2]; /* ~usb_fmask */
+ } fs_sunx86;
+ struct {
__s32 fs_sparecon[50];/* reserved for future constants */
__s32 fs_contigsumsize;/* size of cluster summary array */
__s32 fs_maxsymlinklen;/* max length of an internal symlink */
@@ -349,7 +366,7 @@ struct ufs_super_block {
__u32 fs_qfmask[2]; /* ~usb_fmask */
__s32 fs_state; /* file system state time stamp */
} fs_44;
- } fs_u;
+ } fs_u2;
__s32 fs_postblformat; /* format of positional layout tables */
__s32 fs_nrpos; /* number of rotational positions */
__s32 fs_postbloff; /* (__s16) rotation block list head */
@@ -523,7 +540,7 @@ extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *);
extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
/* namei.c */
-extern int ufs_lookup (struct inode *, struct dentry *);
+extern struct dentry *ufs_lookup (struct inode *, struct dentry *);
extern int ufs_mkdir(struct inode *, struct dentry *, int);
extern int ufs_rmdir (struct inode *, struct dentry *);
extern int ufs_unlink (struct inode *, struct dentry *);
diff --git a/include/linux/ufs_fs_sb.h b/include/linux/ufs_fs_sb.h
index 6ad0e0d96..2fc49e99f 100644
--- a/include/linux/ufs_fs_sb.h
+++ b/include/linux/ufs_fs_sb.h
@@ -116,8 +116,6 @@ struct ufs_sb_private_info {
struct ufs_sb_info {
struct ufs_sb_private_info * s_uspi;
struct ufs_csum * s_csp[UFS_MAXCSBUFS];
- int s_rename_lock;
- struct wait_queue * s_rename_wait;
unsigned s_swab;
unsigned s_flags;
struct buffer_head ** s_ucg;
@@ -167,7 +165,14 @@ struct ufs_super_block_first {
__u32 fs_inopb;
__u32 fs_nspf;
__u32 fs_optim;
- __u32 fs_npsect;
+ union {
+ struct {
+ __u32 fs_npsect;
+ } fs_sun;
+ struct {
+ __s32 fs_state;
+ } fs_sunx86;
+ } fs_u1;
__u32 fs_interleave;
__u32 fs_trackskew;
__u32 fs_id[2];
@@ -182,16 +187,16 @@ struct ufs_super_block_first {
__u32 fs_ipg;
__u32 fs_fpg;
struct ufs_csum fs_cstotal;
- __u8 fs_fmod;
- __u8 fs_clean;
- __u8 fs_ronly;
- __u8 fs_flags;
- __u8 fs_fsmnt[UFS_MAXMNTLEN - 212];
+ __s8 fs_fmod;
+ __s8 fs_clean;
+ __s8 fs_ronly;
+ __s8 fs_flags;
+ __s8 fs_fsmnt[UFS_MAXMNTLEN - 212];
};
struct ufs_super_block_second {
- __u8 fs_fsmnt[212];
+ __s8 fs_fsmnt[212];
__u32 fs_cgrotor;
__u32 fs_csp[UFS_MAXCSBUFS];
__u32 fs_maxcluster;
@@ -211,6 +216,14 @@ struct ufs_super_block_third {
__u32 fs_qfmask[2]; /* ~usb_fmask */
} fs_sun;
struct {
+ __s32 fs_sparecon[53];/* reserved for future constants */
+ __s32 fs_reclaim;
+ __s32 fs_sparecon2[1];
+ __u32 fs_npsect; /* # sectors/track including spares */
+ __u32 fs_qbmask[2]; /* ~usb_bmask */
+ __u32 fs_qfmask[2]; /* ~usb_fmask */
+ } fs_sunx86;
+ struct {
__s32 fs_sparecon[50];/* reserved for future constants */
__s32 fs_contigsumsize;/* size of cluster summary array */
__s32 fs_maxsymlinklen;/* max length of an internal symlink */
@@ -220,7 +233,7 @@ struct ufs_super_block_third {
__u32 fs_qfmask[2]; /* ~usb_fmask */
__s32 fs_state; /* file system state time stamp */
} fs_44;
- } fs_u;
+ } fs_u2;
__s32 fs_postblformat;
__s32 fs_nrpos;
__s32 fs_postbloff;
diff --git a/include/linux/umsdos_fs.p b/include/linux/umsdos_fs.p
index 1bf76e560..de436f0e8 100644
--- a/include/linux/umsdos_fs.p
+++ b/include/linux/umsdos_fs.p
@@ -9,9 +9,10 @@ int dummy_dir_read ( struct file *filp,
char * umsdos_d_path(struct dentry *, char *, int);
void umsdos_lookup_patch_new(struct dentry *, struct umsdos_info *);
int umsdos_is_pseudodos (struct inode *dir, struct dentry *dentry);
-int umsdos_lookup_x ( struct inode *dir, struct dentry *dentry, int nopseudo);
-int UMSDOS_lookup(struct inode *, struct dentry *);
+struct dentry *umsdos_lookup_x ( struct inode *dir, struct dentry *dentry, int nopseudo);
+struct dentry *UMSDOS_lookup(struct inode *, struct dentry *);
struct dentry *umsdos_lookup_dentry(struct dentry *, char *, int, int);
+struct dentry *umsdos_covered(struct dentry *, char *, int);
struct dentry *umsdos_solve_hlink (struct dentry *hlink);
@@ -105,8 +106,8 @@ int UMSDOS_rename (struct inode *old_dir,
struct dentry *new_dentry);
/* rdir.c 22/03/95 03.31.42 */
-int umsdos_rlookup_x (struct inode *dir, struct dentry *dentry, int nopseudo);
-int UMSDOS_rlookup (struct inode *dir, struct dentry *dentry);
+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 */
diff --git a/include/linux/videodev.h b/include/linux/videodev.h
index a41428d20..119b60eec 100644
--- a/include/linux/videodev.h
+++ b/include/linux/videodev.h
@@ -95,6 +95,8 @@ struct video_tuner
#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */
#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */
#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON 256 /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON 512 /* Tuner is seeing an MBS datastream */
__u16 mode; /* PAL/NTSC/SECAM/OTHER */
#define VIDEO_MODE_PAL 0
#define VIDEO_MODE_NTSC 1
@@ -273,7 +275,9 @@ struct video_unit
#define VID_HARDWARE_PLANB 16 /* PowerMac motherboard video-in */
#define VID_HARDWARE_BROADWAY 17 /* Broadway project */
#define VID_HARDWARE_GEMTEK 18
-#define VID_HARDWARE_VINO 20 /* SGI Indy Vino */
+#define VID_HARDWARE_TYPHOON 19
+#define VID_HARDWARE_VINO 20 /* Reserved for SGI Indy Vino */
+#define VID_HARDWARE_CADET 21 /* Cadet radio */
/*
* Initialiser list
diff --git a/include/linux/vt_buffer.h b/include/linux/vt_buffer.h
index df0ee6ef1..ca1ec519d 100644
--- a/include/linux/vt_buffer.h
+++ b/include/linux/vt_buffer.h
@@ -41,7 +41,7 @@ extern inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
#endif
#ifndef VT_BUF_HAVE_MEMCPYW
-extern inline void scr_memcpyw(u16 *d, u16 *s, unsigned int count)
+extern inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
{
count /= 2;
while (count--)
@@ -50,7 +50,7 @@ extern inline void scr_memcpyw(u16 *d, u16 *s, unsigned int count)
#endif
#ifndef VT_BUF_HAVE_MEMMOVEW
-extern inline void scr_memmovew(u16 *d, u16 *s, unsigned int count)
+extern inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
{
if (d < s)
scr_memcpyw(d, s, count);
@@ -65,14 +65,14 @@ extern inline void scr_memmovew(u16 *d, u16 *s, unsigned int count)
#endif
#ifndef VT_BUF_HAVE_MEMCPYF
-extern inline void scr_memcpyw_from(u16 *d, u16 *s, unsigned int count)
+extern inline void scr_memcpyw_from(u16 *d, const u16 *s, unsigned int count)
{
count /= 2;
while (count--)
*d++ = scr_readw(s++);
}
-extern inline void scr_memcpyw_to(u16 *d, u16 *s, unsigned int count)
+extern inline void scr_memcpyw_to(u16 *d, const u16 *s, unsigned int count)
{
count /= 2;
while (count--)
diff --git a/include/linux/wireless.h b/include/linux/wireless.h
index 0c2e9fb2a..d3c59fff5 100644
--- a/include/linux/wireless.h
+++ b/include/linux/wireless.h
@@ -1,7 +1,7 @@
/*
* This file define a set of standard wireless extensions
*
- * Version : 4 12.2.97
+ * Version : 7 23.4.99
*
* Authors : Jean Tourrilhes - HPLB - <jt@hplb.hpl.hp.com>
*/
@@ -63,7 +63,7 @@
* (there is some stuff that will be added in the future...)
* I just plan to increment with each new version.
*/
-#define WIRELESS_EXT 5
+#define WIRELESS_EXT 6
/*
* Changes :
@@ -82,6 +82,14 @@
* --------
* - Missing encoding definitions in range
* - Access points stuff
+ *
+ * V5 to V6
+ * --------
+ * - 802.11 support (ESSID ioctls)
+ *
+ * V6 to V7
+ * --------
+ * - define IW_ESSID_MAX_SIZE and IW_MAX_AP
*/
/* -------------------------- IOCTL LIST -------------------------- */
@@ -113,11 +121,20 @@
#define SIOCGIWAP 0x8B15 /* get access point hardware addresses */
#define SIOCGIWAPLIST 0x8B17 /* get list of access point in range */
+/* 802.11 specific support */
+#define SIOCSIWESSID 0x8B1A /* set ESSID (network name) */
+#define SIOCGIWESSID 0x8B1B /* get ESSID */
+/* As the ESSID is a string up to 32 bytes long, it doesn't fit within the
+ * 'iwreq' structure, so we need to use the 'data' member to point to a
+ * string in user space, like it is done for RANGE...
+ * The "flags" member indicate if the ESSID is active or not.
+ */
+
/* ------------------------- IOCTL STUFF ------------------------- */
/* The first and the last (range) */
#define SIOCIWFIRST 0x8B00
-#define SIOCIWLAST 0x8B17
+#define SIOCIWLAST 0x8B1B
/* Even : get (world access), odd : set (root access) */
#define IW_IS_SET(cmd) (!((cmd) & 0x1))
@@ -157,6 +174,13 @@
/* Maximum of address that you may set with SPY */
#define IW_MAX_SPY 8
+/* Maximum of address that you may get in the
+ list of access points in range */
+#define IW_MAX_AP 8
+
+/* Maximum size of the ESSID string */
+#define IW_ESSID_MAX_SIZE 32
+
/****************************** TYPES ******************************/
/* --------------------------- SUBTYPES --------------------------- */
@@ -266,7 +290,7 @@ struct iwreq
caddr_t pointer; /* Pointer to the data
* (in user space) */
__u16 length; /* fields or byte size */
- __u16 flags; /* Unused */
+ __u16 flags; /* Optional params */
} data;
} u;
};
diff --git a/include/linux/zorro.h b/include/linux/zorro.h
index d2b68111f..9ec9ca719 100644
--- a/include/linux/zorro.h
+++ b/include/linux/zorro.h
@@ -301,7 +301,7 @@ typedef __u32 zorro_id;
#define ZORRO_PROD_BSC_MULTIFACE_I ZORRO_ID(BSC_ALFADATA_3, 0x10, 0)
#define ZORRO_PROD_BSC_MULTIFACE_II ZORRO_ID(BSC_ALFADATA_3, 0x11, 0)
#define ZORRO_PROD_BSC_MULTIFACE_III ZORRO_ID(BSC_ALFADATA_3, 0x12, 0)
-#define ZORRO_PROD_BSC_FRAMEBUFFER ZORRO_ID(BSC_ALFADATA_3, 0x20, 0)
+#define ZORRO_PROD_BSC_FRAMEMASTER_II ZORRO_ID(BSC_ALFADATA_3, 0x20, 0)
#define ZORRO_PROD_BSC_GRAFFITI_RAM ZORRO_ID(BSC_ALFADATA_3, 0x21, 0)
#define ZORRO_PROD_BSC_GRAFFITI_REG ZORRO_ID(BSC_ALFADATA_3, 0x22, 0)
#define ZORRO_PROD_BSC_ISDN_MASTERCARD ZORRO_ID(BSC_ALFADATA_3, 0x40, 0)