diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:56:46 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:56:46 -0800 |
| commit | 5d12a58c4049a4839abbbdf87dd189505513b1b6 (patch) | |
| tree | 3bbde32337e8ec19cf556a0e1f53b037e01e3122 /include/linux | |
| parent | 1644c00da2252cb979743060056b2e2778884e99 (diff) | |
v2.4.1.1 -> v2.4.1.2
- driver sync up with Alan
- Andrew Morton: wakeup cleanup and race fix
- Paul Mackerras: macintosh driver updates.
- don't trust "page_count()" on reserved pages!
- Russell King: fix serious IDE multimode write bug!
- me, Jens, others: fix elevator problem
- ARM, MIPS and cris architecture updates
- alpha updates: better page clear/copy, avoid kernel lock in execve
- USB and firewire updates
- ISDN updates
- Irda updates
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/dcache.h | 9 | ||||
| -rw-r--r-- | include/linux/elf.h | 2 | ||||
| -rw-r--r-- | include/linux/fs.h | 8 | ||||
| -rw-r--r-- | include/linux/isdn.h | 20 | ||||
| -rw-r--r-- | include/linux/kernelcapi.h | 6 | ||||
| -rw-r--r-- | include/linux/mtd/ftl.h | 2 | ||||
| -rw-r--r-- | include/linux/mtd/map.h | 8 | ||||
| -rw-r--r-- | include/linux/parport.h | 2 | ||||
| -rw-r--r-- | include/linux/sched.h | 2 | ||||
| -rw-r--r-- | include/linux/telephony.h | 7 | ||||
| -rw-r--r-- | include/linux/wait.h | 93 |
11 files changed, 95 insertions, 64 deletions
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 0d6f9ac13bfe..738d3b1906f8 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -27,6 +27,15 @@ struct qstr { unsigned int hash; }; +struct dentry_stat_t { + int nr_dentry; + int nr_unused; + int age_limit; /* age in seconds */ + int want_pages; /* pages requested by system */ + int dummy[2]; +}; +extern struct dentry_stat_t dentry_stat; + /* Name hashing routines. Initial hash value */ #define init_name_hash() 0 diff --git a/include/linux/elf.h b/include/linux/elf.h index 3fe04c45e671..34d8e93ae485 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h @@ -74,6 +74,8 @@ typedef __u64 Elf64_Word; #define EM_X8664 62 /* AMD x86-64 */ +#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ + /* * This is an interim value that we will use until the committee comes * up with a final number. diff --git a/include/linux/fs.h b/include/linux/fs.h index 686aef31a600..a5f4cddafaaf 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -53,6 +53,14 @@ struct files_stat_struct { int max_files; /* tunable */ }; extern struct files_stat_struct files_stat; + +struct inodes_stat_t { + int nr_inodes; + int nr_unused; + int dummy[5]; +}; +extern struct inodes_stat_t inodes_stat; + extern int max_super_blocks, nr_super_blocks; extern int leases_enable, dir_notify_enable, lease_break_time; diff --git a/include/linux/isdn.h b/include/linux/isdn.h index 23cf7ed73626..c8c807068ec7 100644 --- a/include/linux/isdn.h +++ b/include/linux/isdn.h @@ -1,4 +1,4 @@ -/* $Id: isdn.h,v 1.111 2000/11/25 17:01:02 kai Exp $ +/* $Id: isdn.h,v 1.111.6.1 2001/02/07 11:31:31 kai Exp $ * Main header for the Linux ISDN subsystem (linklevel). * @@ -592,23 +592,6 @@ typedef struct { char *private; } infostruct; -typedef struct isdn_module { - struct isdn_module *prev; - struct isdn_module *next; - char *name; - int (*get_free_channel)(int, int, int, int, int); - int (*free_channel)(int, int, int); - int (*status_callback)(isdn_ctrl *); - int (*command)(isdn_ctrl *); - int (*receive_callback)(int, int, struct sk_buff *); - int (*writebuf_skb)(int, int, int, struct sk_buff *); - int (*net_start_xmit)(struct sk_buff *, struct net_device *); - int (*net_receive)(struct net_device *, struct sk_buff *); - int (*net_open)(struct net_device *); - int (*net_close)(struct net_device *); - int priority; -} isdn_module; - #define DRV_FLAG_RUNNING 1 #define DRV_FLAG_REJBUS 2 #define DRV_FLAG_LOADED 4 @@ -668,7 +651,6 @@ typedef struct isdn_devt { atomic_t v110use[ISDN_MAX_CHANNELS];/* Usage-Semaphore for stream */ isdn_v110_stream *v110[ISDN_MAX_CHANNELS]; /* V.110 private data */ struct semaphore sem; /* serialize list access*/ - isdn_module *modules; unsigned long global_features; #ifdef CONFIG_DEVFS_FS devfs_handle_t devfs_handle_isdninfo; diff --git a/include/linux/kernelcapi.h b/include/linux/kernelcapi.h index 2677f9646505..5bdcd805e312 100644 --- a/include/linux/kernelcapi.h +++ b/include/linux/kernelcapi.h @@ -1,5 +1,5 @@ /* - * $Id: kernelcapi.h,v 1.8.6.1 2000/11/28 09:36:56 kai Exp $ + * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $ * * Kernel CAPI 2.0 Interface for Linux * @@ -10,8 +10,8 @@ #ifndef __KERNELCAPI_H__ #define __KERNELCAPI_H__ -#define CAPI_MAXAPPL 20 /* maximum number of applications */ -#define CAPI_MAXCONTR 10 /* maximum number of controller */ +#define CAPI_MAXAPPL 128 /* maximum number of applications */ +#define CAPI_MAXCONTR 16 /* maximum number of controller */ #define CAPI_MAXDATAWINDOW 8 diff --git a/include/linux/mtd/ftl.h b/include/linux/mtd/ftl.h index 4fc425262ba3..2745605c08e8 100644 --- a/include/linux/mtd/ftl.h +++ b/include/linux/mtd/ftl.h @@ -16,7 +16,7 @@ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * Alternatively, the contents of this file may be used under the - * terms of the GNU Public License version 2 (the "GPL"), in which + * terms of the GNU General Public License version 2 (the "GPL"), in which * case the provisions of the GPL are applicable instead of the * above. If you wish to allow the use of your version of this file * only under the terms of the GPL and not to allow others to use diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index f7f8ad01fb28..e8d101049ddb 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h @@ -1,6 +1,6 @@ /* Overhauled routines for dealing with different mmap regions of flash */ -/* $Id: map.h,v 1.10 2000/12/04 13:18:33 dwmw2 Exp $ */ +/* $Id: map.h,v 1.10.2.2 2001/01/09 00:44:51 dwmw2 Exp $ */ #ifndef __LINUX_MTD_MAP_H__ #define __LINUX_MTD_MAP_H__ @@ -44,7 +44,7 @@ struct map_info { void (*write32)(struct map_info *, __u32, unsigned long); void (*copy_to)(struct map_info *, unsigned long, const void *, ssize_t); - void (*set_vpp)(int); + void (*set_vpp)(struct map_info *, int); /* We put these two here rather than a single void *map_priv, because we want mappers to be able to have quickly-accessible cache for the 'currently-mapped page' without the _extra_ @@ -108,7 +108,7 @@ static inline void map_destroy(struct mtd_info *mtd) kfree(mtd); } -#define ENABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(1); } while(0) -#define DISABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(0); } while(0) +#define ENABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(map, 1); } while(0) +#define DISABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(map, 0); } while(0) #endif /* __LINUX_MTD_MAP_H__ */ diff --git a/include/linux/parport.h b/include/linux/parport.h index 71fc1398b799..8f0cd76ce935 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h @@ -229,7 +229,7 @@ struct pardevice { unsigned long int time; unsigned long int timeslice; volatile long int timeout; - unsigned int waiting; + unsigned long waiting; /* long req'd for set_bit --RR */ struct pardevice *waitprev; struct pardevice *waitnext; void * sysctl_table; diff --git a/include/linux/sched.h b/include/linux/sched.h index d139801f4041..4186c24aa34c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -551,7 +551,7 @@ extern long FASTCALL(sleep_on_timeout(wait_queue_head_t *q, extern void FASTCALL(interruptible_sleep_on(wait_queue_head_t *q)); extern long FASTCALL(interruptible_sleep_on_timeout(wait_queue_head_t *q, signed long timeout)); -extern void FASTCALL(wake_up_process(struct task_struct * tsk)); +extern int FASTCALL(wake_up_process(struct task_struct * tsk)); #define wake_up(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1) #define wake_up_nr(x, nr) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr) diff --git a/include/linux/telephony.h b/include/linux/telephony.h index 4e38e8ccb32d..01a87694cf8d 100644 --- a/include/linux/telephony.h +++ b/include/linux/telephony.h @@ -43,6 +43,11 @@ * the telephony products they support under Linux) * *****************************************************************************/ +#define QTI_PHONEJACK 100 +#define QTI_LINEJACK 300 +#define QTI_PHONEJACK_LITE 400 +#define QTI_PHONEJACK_PCI 500 +#define QTI_PHONECARD 600 /****************************************************************************** * @@ -91,7 +96,7 @@ typedef struct { int namelen; char name[80]; } PHONE_CID; - + #define PHONE_RING _IO ('q', 0x83) #define PHONE_HOOKSTATE _IO ('q', 0x84) #define PHONE_MAXRINGS _IOW ('q', 0x85, char) diff --git a/include/linux/wait.h b/include/linux/wait.h index 6b281ccad3f4..61cd98962bbe 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -19,30 +19,10 @@ #include <asm/processor.h> /* - * Temporary debugging help until all code is converted to the new - * waitqueue usage. + * Debug control. Slow but useful. */ #define WAITQUEUE_DEBUG 0 -#if WAITQUEUE_DEBUG -extern int printk(const char *fmt, ...); -#define WQ_BUG() do { \ - printk("wq bug, forcing oops.\n"); \ - BUG(); \ -} while (0) - -#define CHECK_MAGIC(x) if (x != (long)&(x)) \ - { printk("bad magic %lx (should be %lx), ", (long)x, (long)&(x)); WQ_BUG(); } - -#define CHECK_MAGIC_WQHEAD(x) do { \ - if (x->__magic != (long)&(x->__magic)) { \ - printk("bad magic %lx (should be %lx, creator %lx), ", \ - x->__magic, (long)&(x->__magic), x->__creator); \ - WQ_BUG(); \ - } \ -} while (0) -#endif - struct __wait_queue { unsigned int flags; #define WQ_FLAG_EXCLUSIVE 0x01 @@ -99,24 +79,70 @@ struct __wait_queue_head { }; typedef struct __wait_queue_head wait_queue_head_t; + +/* + * Debugging macros. We eschew `do { } while (0)' because gcc can generate + * spurious .aligns. + */ +#if WAITQUEUE_DEBUG +#define WQ_BUG() BUG() +#define CHECK_MAGIC(x) \ + do { \ + if ((x) != (long)&(x)) { \ + printk("bad magic %lx (should be %lx), ", \ + (long)x, (long)&(x)); \ + WQ_BUG(); \ + } \ + } while (0) +#define CHECK_MAGIC_WQHEAD(x) \ + do { \ + if ((x)->__magic != (long)&((x)->__magic)) { \ + printk("bad magic %lx (should be %lx, creator %lx), ", \ + (x)->__magic, (long)&((x)->__magic), (x)->__creator); \ + WQ_BUG(); \ + } \ + } while (0) +#define WQ_CHECK_LIST_HEAD(list) \ + do { \ + if (!list->next || !list->prev) \ + WQ_BUG(); \ + } while(0) +#define WQ_NOTE_WAKER(tsk) \ + do { \ + tsk->__waker = (long)__builtin_return_address(0); \ + } while (0) +#else +#define WQ_BUG() +#define CHECK_MAGIC(x) +#define CHECK_MAGIC_WQHEAD(x) +#define WQ_CHECK_LIST_HEAD(list) +#define WQ_NOTE_WAKER(tsk) +#endif + +/* + * Macros for declaration and initialisaton of the datatypes + */ + #if WAITQUEUE_DEBUG -# define __WAITQUEUE_DEBUG_INIT(name) \ - , (long)&(name).__magic, 0 -# define __WAITQUEUE_HEAD_DEBUG_INIT(name) \ - , (long)&(name).__magic, (long)&(name).__magic +# define __WAITQUEUE_DEBUG_INIT(name) (long)&(name).__magic, 0 +# define __WAITQUEUE_HEAD_DEBUG_INIT(name) (long)&(name).__magic, (long)&(name).__magic #else # define __WAITQUEUE_DEBUG_INIT(name) # define __WAITQUEUE_HEAD_DEBUG_INIT(name) #endif -#define __WAITQUEUE_INITIALIZER(name,task) \ - { 0x0, task, { NULL, NULL } __WAITQUEUE_DEBUG_INIT(name)} -#define DECLARE_WAITQUEUE(name,task) \ - wait_queue_t name = __WAITQUEUE_INITIALIZER(name,task) +#define __WAITQUEUE_INITIALIZER(name, tsk) { \ + task: tsk, \ + task_list: { NULL, NULL }, \ + __WAITQUEUE_DEBUG_INIT(name)} + +#define DECLARE_WAITQUEUE(name, tsk) \ + wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk) -#define __WAIT_QUEUE_HEAD_INITIALIZER(name) \ -{ WAITQUEUE_RW_LOCK_UNLOCKED, { &(name).task_list, &(name).task_list } \ - __WAITQUEUE_HEAD_DEBUG_INIT(name)} +#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \ + lock: WAITQUEUE_RW_LOCK_UNLOCKED, \ + task_list: { &(name).task_list, &(name).task_list }, \ + __WAITQUEUE_HEAD_DEBUG_INIT(name)} #define DECLARE_WAIT_QUEUE_HEAD(name) \ wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name) @@ -135,8 +161,7 @@ static inline void init_waitqueue_head(wait_queue_head_t *q) #endif } -static inline void init_waitqueue_entry(wait_queue_t *q, - struct task_struct *p) +static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p) { #if WAITQUEUE_DEBUG if (!q || !p) |
