diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:13:37 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:13:37 -0800 |
| commit | 1c3cefa582a6b598d204bad02676df300e457efa (patch) | |
| tree | c56196ce6e35589c43b227887932a5caf1bbe576 /include/linux | |
| parent | 991b3ae8019276269816512425f102c4687f2291 (diff) | |
v2.4.9.4 -> v2.4.9.5
- Merge with Alan
- Trond Myklebust: NFS fixes - kmap and root inode special case
- Al Viro: more superblock cleanups, inode leak in rd.c, minix
directories in page cache
- Paul Mackerras: clean up rubbish from sl82c105.c
- Neil Brown: md/raid cleanups, NFS filehandles
- Johannes Erdfelt: USB update (usb-2.0 support, visor fix, Clie fix,
pl2303 driver update)
- David Miller: sparc and net update
- Eric Biederman: simplify and correct bootdata allocation - don't
overwrite ramdisks
- Tim Waugh: support multiple SuperIO devices, parport doc updates
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ac97_codec.h | 5 | ||||
| -rw-r--r-- | include/linux/fs.h | 2 | ||||
| -rw-r--r-- | include/linux/generic_serial.h | 1 | ||||
| -rw-r--r-- | include/linux/i2c-id.h | 4 | ||||
| -rw-r--r-- | include/linux/ide.h | 2 | ||||
| -rw-r--r-- | include/linux/lockd/xdr.h | 1 | ||||
| -rw-r--r-- | include/linux/minix_fs.h | 26 | ||||
| -rw-r--r-- | include/linux/mmzone.h | 4 | ||||
| -rw-r--r-- | include/linux/module.h | 28 | ||||
| -rw-r--r-- | include/linux/prefetch.h | 60 | ||||
| -rw-r--r-- | include/linux/sunrpc/xdr.h | 40 | ||||
| -rw-r--r-- | include/linux/telephony.h | 45 | ||||
| -rw-r--r-- | include/linux/usb.h | 24 |
13 files changed, 194 insertions, 48 deletions
diff --git a/include/linux/ac97_codec.h b/include/linux/ac97_codec.h index 986599666c2b..e2afb261601a 100644 --- a/include/linux/ac97_codec.h +++ b/include/linux/ac97_codec.h @@ -32,7 +32,7 @@ #define AC97_PCM_FRONT_DAC_RATE 0x002C /* PCM Front DAC Rate */ #define AC97_PCM_SURR_DAC_RATE 0x002E /* PCM Surround DAC Rate */ #define AC97_PCM_LFE_DAC_RATE 0x0030 /* PCM LFE DAC Rate */ -#define AC97_PCM_LR_DAC_RATE 0x0032 /* PCM LR DAC Rate */ +#define AC97_PCM_LR_ADC_RATE 0x0032 /* PCM LR DAC Rate */ #define AC97_PCM_MIC_ADC_RATE 0x0034 /* PCM MIC ADC Rate */ #define AC97_CENTER_LFE_MASTER 0x0036 /* Center + LFE Master Volume */ #define AC97_SURROUND_MASTER 0x0038 /* Surround (Rear) Master Volume */ @@ -200,5 +200,8 @@ struct ac97_ops extern int ac97_read_proc (char *page_out, char **start, off_t off, int count, int *eof, void *data); extern int ac97_probe_codec(struct ac97_codec *); +extern unsigned int ac97_set_adc_rate(struct ac97_codec *codec, unsigned int rate); +extern unsigned int ac97_set_dac_rate(struct ac97_codec *codec, unsigned int rate); + #endif /* _AC97_CODEC_H_ */ diff --git a/include/linux/fs.h b/include/linux/fs.h index 1a8efa4044ea..953d87b4e165 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -108,6 +108,7 @@ extern int leases_enable, dir_notify_enable, lease_break_time; #define MS_NOATIME 1024 /* Do not update access times. */ #define MS_NODIRATIME 2048 /* Do not update directory access times */ #define MS_BIND 4096 +#define MS_NOUSER (1<<31) /* * Flags that can be altered by MS_REMOUNT @@ -1297,7 +1298,6 @@ extern void insert_inode_hash(struct inode *); extern void remove_inode_hash(struct inode *); extern struct file * get_empty_filp(void); extern void file_move(struct file *f, struct list_head *list); -extern void file_moveto(struct file *new, struct file *old); extern struct buffer_head * get_hash_table(kdev_t, int, int); extern struct buffer_head * getblk(kdev_t, int, int); extern void ll_rw_block(int, int, struct buffer_head * bh[]); diff --git a/include/linux/generic_serial.h b/include/linux/generic_serial.h index cc89518003c5..1d8b041bfaae 100644 --- a/include/linux/generic_serial.h +++ b/include/linux/generic_serial.h @@ -99,6 +99,7 @@ void gs_set_termios (struct tty_struct * tty, int gs_init_port(struct gs_port *port); int gs_setserial(struct gs_port *port, struct serial_struct *sp); void gs_getserial(struct gs_port *port, struct serial_struct *sp); +void gs_got_break(struct gs_port *port); extern int gs_debug; diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h index b5793e818105..b0f62dd14386 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h @@ -109,6 +109,7 @@ #define I2C_ALGO_ISA 0x050000 /* lm_sensors ISA pseudo-adapter */ #define I2C_ALGO_SAA7146 0x060000 /* SAA 7146 video decoder bus */ #define I2C_ALGO_ACB 0x070000 /* ACCESS.bus algorithm */ +#define I2C_ALGO_IIC 0x080000 /* ITE IIC bus */ #define I2C_ALGO_EC 0x100000 /* ACPI embedded controller */ @@ -153,6 +154,9 @@ /* --- MPC8xx PowerPC adapters */ #define I2C_HW_MPC8XX_EPON 0x00 /* Eponymous MPC8xx I2C adapter */ +/* --- ITE based algorithms */ +#define I2C_HW_I_IIC 0x00 /* controller on the ITE */ + /* --- SMBus only adapters */ #define I2C_HW_SMBUS_PIIX4 0x00 #define I2C_HW_SMBUS_ALI15X3 0x01 diff --git a/include/linux/ide.h b/include/linux/ide.h index 5db43159a3be..97e3831a455f 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -446,7 +446,7 @@ typedef int (ide_busproc_t) (struct hwif_s *, int); */ typedef enum { ide_unknown, ide_generic, ide_pci, ide_cmd640, ide_dtc2278, ide_ali14xx, - ide_qd6580, ide_umc8672, ide_ht6560b, + ide_qd65xx, ide_umc8672, ide_ht6560b, ide_pdc4030, ide_rz1000, ide_trm290, ide_cmd646, ide_cy82c693, ide_4drives, ide_pmac, ide_etrax100 diff --git a/include/linux/lockd/xdr.h b/include/linux/lockd/xdr.h index 72752441ef8c..9354683a720f 100644 --- a/include/linux/lockd/xdr.h +++ b/include/linux/lockd/xdr.h @@ -82,7 +82,6 @@ struct nlm_reboot { */ #define NLMSVC_XDRSIZE sizeof(struct nlm_args) -void nlmxdr_init(void); int nlmsvc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *); int nlmsvc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *); int nlmsvc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *); diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h index b90790341ee4..cfa7eab9c322 100644 --- a/include/linux/minix_fs.h +++ b/include/linux/minix_fs.h @@ -89,6 +89,14 @@ struct minix_dir_entry { #ifdef __KERNEL__ +/* + * change the define below to 0 if you want names > info->s_namelen chars to be + * truncated. Else they will be disallowed (ENAMETOOLONG). + */ +#define NO_TRUNCATE 1 + +extern struct minix_inode * minix_V1_raw_inode(struct super_block *, ino_t, struct buffer_head **); +extern struct minix2_inode * minix_V2_raw_inode(struct super_block *, ino_t, struct buffer_head **); extern struct inode * minix_new_inode(const struct inode * dir, int * error); extern void minix_free_inode(struct inode * inode); extern unsigned long minix_count_free_inodes(struct super_block *sb); @@ -96,19 +104,25 @@ extern int minix_new_block(struct inode * inode); extern void minix_free_block(struct inode * inode, int block); extern unsigned long minix_count_free_blocks(struct super_block *sb); -extern struct buffer_head * minix_getblk(struct inode *, int, int); -extern struct buffer_head * minix_bread(struct inode *, int, int); - extern void V1_minix_truncate(struct inode *); extern void V2_minix_truncate(struct inode *); extern void minix_truncate(struct inode *); extern int minix_sync_inode(struct inode *); -extern int V1_minix_sync_file(struct inode *); -extern int V2_minix_sync_file(struct inode *); +extern void minix_set_inode(struct inode *, dev_t); extern int V1_minix_get_block(struct inode *, long, struct buffer_head *, int); extern int V2_minix_get_block(struct inode *, long, struct buffer_head *, int); -extern struct address_space_operations minix_aops; +extern struct minix_dir_entry *minix_find_entry(struct dentry*, struct page**); +extern int minix_add_link(struct dentry*, struct inode*); +extern int minix_delete_entry(struct minix_dir_entry*, struct page*); +extern int minix_make_empty(struct inode*, struct inode*); +extern int minix_empty_dir(struct inode*); +extern void minix_set_link(struct minix_dir_entry*, struct page*, struct inode*); +extern struct minix_dir_entry *minix_dotdot(struct inode*, struct page**); +extern ino_t minix_inode_by_name(struct dentry*); + +extern int minix_sync_file(struct file *, struct dentry *, int); + extern struct inode_operations minix_file_inode_operations; extern struct inode_operations minix_dir_inode_operations; extern struct file_operations minix_file_operations; diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 97e91217ad23..ab122514d508 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -12,7 +12,11 @@ * Free memory management - zoned buddy allocator. */ +#ifndef CONFIG_FORCE_MAX_ZONEORDER #define MAX_ORDER 10 +#else +#define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER +#endif typedef struct free_area_struct { struct list_head free_list; diff --git a/include/linux/module.h b/include/linux/module.h index afa2e66f0139..fda319cd35f9 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -250,6 +250,33 @@ static const struct gtype##_id * __module_##gtype##_table \ #define MODULE_DEVICE_TABLE(type,name) \ MODULE_GENERIC_TABLE(type##_device,name) +/* + * The following license idents are currently accepted as indicating free + * software modules + * + * "GPL" [GNU Public License v2 or later] + * "GPL and additional rights" [GNU Public License v2 rights and more] + * "Dual BSD/GPL" [GNU Public License v2 or BSD license choice] + * + * The following other idents are available + * + * "Proprietary" [Non free products] + * + * There are dual licensed components, but when running with Linux it is the + * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL + * is a GPL combined work. + * + * This exists for several reasons + * 1. So modinfo can show license info for users wanting to vet their setup + * is free + * 2. So the community can ignore bug reports including proprietary modules + * 3. So vendors can do likewise based on their own policies + */ + +#define MODULE_LICENSE(license) \ +static const char __module_license[] __attribute__((section(".modinfo"))) = \ +"license=" license + /* Define the module variable, and usage macros. */ extern struct module __this_module; @@ -269,6 +296,7 @@ static const char __module_using_checksums[] __attribute__((section(".modinfo")) #else /* MODULE */ #define MODULE_AUTHOR(name) +#define MODULE_LICENSE(license) #define MODULE_DESCRIPTION(desc) #define MODULE_SUPPORTED_DEVICE(name) #define MODULE_PARM(var,type) diff --git a/include/linux/prefetch.h b/include/linux/prefetch.h new file mode 100644 index 000000000000..0aaed1fd99db --- /dev/null +++ b/include/linux/prefetch.h @@ -0,0 +1,60 @@ +/* + * Generic cache management functions. Everything is arch-specific, + * but this header exists to make sure the defines/functions can be + * used in a generic way. + * + * 2000-11-13 Arjan van de Ven <arjan@fenrus.demon.nl> + * + */ + +#ifndef _LINUX_PREFETCH_H +#define _LINUX_PREFETCH_H + +#include <asm/processor.h> +#include <asm/cache.h> + +/* + prefetch(x) attempts to pre-emptively get the memory pointed to + by address "x" into the CPU L1 cache. + prefetch(x) should not cause any kind of exception, prefetch(0) is + specifically ok. + + prefetch() should be defined by the architecture, if not, the + #define below provides a no-op define. + + There are 3 prefetch() macros: + + prefetch(x) - prefetches the cacheline at "x" for read + prefetchw(x) - prefetches the cacheline at "x" for write + spin_lock_prefetch(x) - prefectches the spinlock *x for taking + + there is also PREFETCH_STRIDE which is the architecure-prefered + "lookahead" size for prefetching streamed operations. + +*/ + +/* + * These cannot be do{}while(0) macros. See the mental gymnastics in + * the loop macro. + */ + +#ifndef ARCH_HAS_PREFETCH +#define ARCH_HAS_PREFETCH +static inline void prefetch(const void *x) {;} +#endif + +#ifndef ARCH_HAS_PREFETCHW +#define ARCH_HAS_PREFETCHW +static inline void prefetchw(const void *x) {;} +#endif + +#ifndef ARCH_HAS_SPINLOCK_PREFETCH +#define ARCH_HAS_SPINLOCK_PREFETCH +#define spin_lock_prefetch(x) prefetchw(x) +#endif + +#ifndef PREFETCH_STRIDE +#define PREFETCH_STRIDE (4*L1_CACHE_BYTE) +#endif + +#endif diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index 98bf0ec20499..f0ec6e7b2e72 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h @@ -34,27 +34,27 @@ struct xdr_netobj { typedef int (*kxdrproc_t)(void *rqstp, u32 *data, void *obj); /* - * These variables contain pre-xdr'ed values for faster operation. - * FIXME: should be replaced by macros for big-endian machines. + * pre-xdr'ed macros. */ -extern u32 xdr_zero, xdr_one, xdr_two; - -extern u32 rpc_success, - rpc_prog_unavail, - rpc_prog_mismatch, - rpc_proc_unavail, - rpc_garbage_args, - rpc_system_err; - -extern u32 rpc_auth_ok, - rpc_autherr_badcred, - rpc_autherr_rejectedcred, - rpc_autherr_badverf, - rpc_autherr_rejectedverf, - rpc_autherr_tooweak, - rpc_autherr_dropit; - -void xdr_init(void); + +#define xdr_zero __constant_htonl(0) +#define xdr_one __constant_htonl(1) +#define xdr_two __constant_htonl(2) + +#define rpc_success __constant_htonl(RPC_SUCCESS) +#define rpc_prog_unavail __constant_htonl(RPC_PROG_UNAVAIL) +#define rpc_prog_mismatch __constant_htonl(RPC_PROG_MISMATCH) +#define rpc_proc_unavail __constant_htonl(RPC_PROC_UNAVAIL) +#define rpc_garbage_args __constant_htonl(RPC_GARBAGE_ARGS) +#define rpc_system_err __constant_htonl(RPC_SYSTEM_ERR) + +#define rpc_auth_ok __constant_htonl(RPC_AUTH_OK) +#define rpc_autherr_badcred __constant_htonl(RPC_AUTH_BADCRED) +#define rpc_autherr_rejectedcred __constant_htonl(RPC_AUTH_REJECTEDCRED) +#define rpc_autherr_badverf __constant_htonl(RPC_AUTH_BADVERF) +#define rpc_autherr_rejectedverf __constant_htonl(RPC_AUTH_REJECTEDVERF) +#define rpc_autherr_tooweak __constant_htonl(RPC_AUTH_TOOWEAK) + /* * Miscellaneous XDR helper functions diff --git a/include/linux/telephony.h b/include/linux/telephony.h index 01a87694cf8d..32f3b852a1f8 100644 --- a/include/linux/telephony.h +++ b/include/linux/telephony.h @@ -4,7 +4,7 @@ * * Basic Linux Telephony Interface * - * (c) Copyright 1999 Quicknet Technologies, Inc. + * (c) Copyright 1999-2001 Quicknet Technologies, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -17,15 +17,28 @@ * Contributors: Alan Cox, <alan@redhat.com> * David W. Erhart, <derhart@quicknet.net> * - * Version: 0.1.0 - December 19, 1999 + * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET + * TECHNOLOGIES, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION + * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Version: $Revision: 4.2 $ + * + * $Id: telephony.h,v 4.2 2001/08/06 07:09:43 craigs Exp $ * - * Fixes: - * *****************************************************************************/ #ifndef TELEPHONY_H #define TELEPHONY_H +#define TELEPHONY_VERSION 3013 + #define PHONE_VENDOR_IXJ 1 #define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ #define PHONE_VENDOR_VOICETRONIX 2 @@ -101,7 +114,7 @@ typedef struct { #define PHONE_HOOKSTATE _IO ('q', 0x84) #define PHONE_MAXRINGS _IOW ('q', 0x85, char) #define PHONE_RING_CADENCE _IOW ('q', 0x86, short) -#define OLD_PHONE_RING_START _IO ('q', 0x87) +#define OLD_PHONE_RING_START _IO ('q', 0x87) #define PHONE_RING_START _IOW ('q', 0x87, PHONE_CID *) #define PHONE_RING_STOP _IO ('q', 0x88) @@ -113,6 +126,7 @@ typedef struct { #define PHONE_REC_DEPTH _IOW ('q', 0x8C, int) #define PHONE_FRAME _IOW ('q', 0x8D, int) #define PHONE_REC_VOLUME _IOW ('q', 0x8E, int) +#define PHONE_REC_VOLUME_LINEAR _IOW ('q', 0xDB, int) #define PHONE_REC_LEVEL _IO ('q', 0x8F) #define PHONE_PLAY_CODEC _IOW ('q', 0x90, int) @@ -120,6 +134,7 @@ typedef struct { #define PHONE_PLAY_STOP _IO ('q', 0x92) #define PHONE_PLAY_DEPTH _IOW ('q', 0x93, int) #define PHONE_PLAY_VOLUME _IOW ('q', 0x94, int) +#define PHONE_PLAY_VOLUME_LINEAR _IOW ('q', 0xDC, int) #define PHONE_PLAY_LEVEL _IO ('q', 0x95) #define PHONE_DTMF_READY _IOR ('q', 0x96, int) #define PHONE_GET_DTMF _IOR ('q', 0x97, int) @@ -153,7 +168,7 @@ typedef struct { * ******************************************************************************/ #define PHONE_WINK_DURATION _IOW ('q', 0xA6, int) - +#define PHONE_WINK _IOW ('q', 0xAA, int) /****************************************************************************** * @@ -172,17 +187,18 @@ typedef enum { ALAW = 9, LINEAR16 = 10, LINEAR8 = 11, - WSS = 12 + WSS = 12, + G729B = 13 } phone_codec; struct phone_codec_data { - phone_codec type; - unsigned short buf_min, buf_opt, buf_max; + phone_codec type; + unsigned short buf_min, buf_opt, buf_max; }; -#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *) -#define PHONE_PSTN_LINETEST _IO ('q', 0xA8) +#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *) +#define PHONE_PSTN_LINETEST _IO ('q', 0xA8) /****************************************************************************** * @@ -212,8 +228,8 @@ struct phone_codec_data * indicate the current state of the hookswitch. The pstn_ring bit * indicates that the DAA on a LineJACK card has detected ring voltage on * the PSTN port. The caller_id bit indicates that caller_id data has been -* received and is available. The pstn_wink bit indicates that the DAA on -* the LineJACK has received a wink from the telco switch. The f0, f1, f2 +* recieved and is available. The pstn_wink bit indicates that the DAA on +* the LineJACK has recieved a wink from the telco switch. The f0, f1, f2 * and f3 bits indicate that the filter has been triggered by detecting the * frequency programmed into that filter. * @@ -246,4 +262,5 @@ union telephony_exception { }; -#endif /* TELEPHONY_H */ +#endif /* TELEPHONY_H */ + diff --git a/include/linux/usb.h b/include/linux/usb.h index 9fc2074b2d78..542156a0b262 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -589,11 +589,23 @@ struct usb_bus { atomic_t refcnt; }; -#define USB_MAXCHILDREN (16) /* This is arbitrary */ +/* This is arbitrary. + * From USB 2.0 spec Table 11-13, offset 7, a hub can + * have up to 255 ports. The most yet reported is 10. + */ +#define USB_MAXCHILDREN (16) struct usb_device { int devnum; /* Device number on USB bus */ - int slow; /* Slow device? */ + + enum { + USB_SPEED_UNKNOWN = 0, /* enumerating */ + USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */ + USB_SPEED_HIGH /* usb 2.0 */ + } speed; + + struct usb_device *tt; /* usb1.1 device on usb2.0 bus */ + int ttport; /* device/hub port on that tt */ atomic_t refcnt; /* Reference count */ struct semaphore serialize; @@ -704,6 +716,9 @@ int usb_get_current_frame_number (struct usb_device *usb_dev); * up to us. This one happens to share a lot of bit positions with the UHCI * specification, so that much of the uhci driver can just mask the bits * appropriately. + * + * NOTE: there's no encoding (yet?) for a "high speed" endpoint; treat them + * like full speed devices. */ #define PIPE_ISOCHRONOUS 0 @@ -744,12 +759,13 @@ int usb_get_current_frame_number (struct usb_device *usb_dev); static inline unsigned int __create_pipe(struct usb_device *dev, unsigned int endpoint) { - return (dev->devnum << 8) | (endpoint << 15) | (dev->slow << 26); + return (dev->devnum << 8) | (endpoint << 15) | + ((dev->speed == USB_SPEED_LOW) << 26); } static inline unsigned int __default_pipe(struct usb_device *dev) { - return (dev->slow << 26); + return ((dev->speed == USB_SPEED_LOW) << 26); } /* Create various pipes... */ |
