diff options
| author | Patrick Mochel <mochel@osdl.org> | 2003-09-21 08:47:10 -0700 |
|---|---|---|
| committer | Patrick Mochel <mochel@osdl.org> | 2003-09-21 08:47:10 -0700 |
| commit | 525ae82073bf9723386c4aaffcd35e49812c2e05 (patch) | |
| tree | daed70969bd8c7cd287296bc72085d04f0ee8068 /include/linux | |
| parent | 49824db2751e56f8e79ad47ccc91a83f5bc4539b (diff) | |
| parent | 1c20618e2767bdcbe27e331a118a6f0e58eb64d2 (diff) | |
Merge osdl.org:/home/mochel/src/kernel/linux-2.5-virgin
into osdl.org:/home/mochel/src/kernel/linux-2.5-power
Diffstat (limited to 'include/linux')
29 files changed, 202 insertions, 92 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index 6ad6d20d3778..0ac6a27ea0db 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -20,7 +20,6 @@ #ifndef __LINUX_BIO_H #define __LINUX_BIO_H -#include <linux/kdev_t.h> #include <linux/highmem.h> #include <linux/mempool.h> diff --git a/include/linux/compiler-gcc+.h b/include/linux/compiler-gcc+.h new file mode 100644 index 000000000000..f6ae9e76b825 --- /dev/null +++ b/include/linux/compiler-gcc+.h @@ -0,0 +1,14 @@ +/* Never include this file directly. Include <linux/compiler.h> instead. */ + +/* + * These definitions are for Ueber-GCC: always newer than the latest + * version and hence sporting everything plus a kitchen-sink. + */ +#include <linux/compiler-gcc.h> + +#define inline __inline__ __attribute__((always_inline)) +#define __inline__ __inline__ __attribute__((always_inline)) +#define __inline __inline__ __attribute__((always_inline)) +#define __deprecated __attribute__((deprecated)) +#define __attribute_used__ __attribute__((__used__)) +#define __attribute_pure__ __attribute__((pure)) diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h new file mode 100644 index 000000000000..152734055403 --- /dev/null +++ b/include/linux/compiler-gcc.h @@ -0,0 +1,17 @@ +/* Never include this file directly. Include <linux/compiler.h> instead. */ + +/* + * Common definitions for all gcc versions go here. + */ + + +/* Optimization barrier */ +/* The "volatile" is due to gcc bugs */ +#define barrier() __asm__ __volatile__("": : :"memory") + +/* This macro obfuscates arithmetic on a variable address so that gcc + shouldn't recognize the original var, and make assumptions about it */ +#define RELOC_HIDE(ptr, off) \ + ({ unsigned long __ptr; \ + __asm__ ("" : "=g"(__ptr) : "0"(ptr)); \ + (typeof(ptr)) (__ptr + (off)); }) diff --git a/include/linux/compiler-gcc2.h b/include/linux/compiler-gcc2.h new file mode 100644 index 000000000000..6f4f9d526abe --- /dev/null +++ b/include/linux/compiler-gcc2.h @@ -0,0 +1,23 @@ +/* Never include this file directly. Include <linux/compiler.h> instead. */ + +/* These definitions are for GCC v2.x. */ + +/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented + a mechanism by which the user can annotate likely branch directions and + expect the blocks to be reordered appropriately. Define __builtin_expect + to nothing for earlier compilers. */ +#include <linux/compiler-gcc.h> + +#if __GNUC_MINOR__ < 96 +# define __builtin_expect(x, expected_value) (x) +#endif + +#define __attribute_used__ __attribute__((__unused__)) + +/* + * The attribute `pure' is not implemented in GCC versions earlier + * than 2.96. + */ +#if __GNUC_MINOR__ >= 96 +# define __attribute_pure__ __attribute__((pure)) +#endif diff --git a/include/linux/compiler-gcc3.h b/include/linux/compiler-gcc3.h new file mode 100644 index 000000000000..4eac3db89fda --- /dev/null +++ b/include/linux/compiler-gcc3.h @@ -0,0 +1,22 @@ +/* Never include this file directly. Include <linux/compiler.h> instead. */ + +/* These definitions are for GCC v3.x. */ +#include <linux/compiler-gcc.h> + +#if __GNUC_MINOR__ >= 1 +# define inline __inline__ __attribute__((always_inline)) +# define __inline__ __inline__ __attribute__((always_inline)) +# define __inline __inline__ __attribute__((always_inline)) +#endif + +#if __GNUC_MINOR__ > 0 +# define __deprecated __attribute__((deprecated)) +#endif + +#if __GNUC_MINOR__ >= 3 +# define __attribute_used__ __attribute__((__used__)) +#else +# define __attribute_used__ __attribute__((__unused__)) +#endif + +#define __attribute_pure__ __attribute__((pure)) diff --git a/include/linux/compiler-intel.h b/include/linux/compiler-intel.h new file mode 100644 index 000000000000..1d1c3ceaff4e --- /dev/null +++ b/include/linux/compiler-intel.h @@ -0,0 +1,24 @@ +/* Never include this file directly. Include <linux/compiler.h> instead. */ + +#ifdef __ECC + +/* Some compiler specific definitions are overwritten here + * for Intel ECC compiler + */ + +#include <asm/intrinsics.h> + +/* Intel ECC compiler doesn't support gcc specific asm stmts. + * It uses intrinsics to do the equivalent things. + */ +#undef barrier +#undef RELOC_HIDE + +#define barrier() __memory_barrier() + +#define RELOC_HIDE(ptr, off) \ + ({ unsigned long __ptr; \ + __ptr = (unsigned long) (ptr); \ + (typeof(ptr)) (__ptr + (off)); }) + +#endif diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 356428f649fc..528641f69043 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -2,28 +2,36 @@ #define __LINUX_COMPILER_H #ifdef __CHECKER__ - #define __user __attribute__((noderef, address_space(1))) - #define __kernel /* default address space */ +# define __user __attribute__((noderef, address_space(1))) +# define __kernel /* default address space */ #else - #define __user - #define __kernel +# define __user +# define __kernel #endif -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -#define inline __inline__ __attribute__((always_inline)) -#define __inline__ __inline__ __attribute__((always_inline)) -#define __inline __inline__ __attribute__((always_inline)) +#if __GNUC__ > 3 +# include <linux/compiler-gcc+.h> /* catch-all for GCC 4, 5, etc. */ +#elif __GNUC__ == 3 +# include <linux/compiler-gcc3.h> +#elif __GNUC__ == 2 +# include <linux/compiler-gcc2.h> +#else +# error Sorry, your compiler is too old/not recognized. #endif -/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented - a mechanism by which the user can annotate likely branch directions and - expect the blocks to be reordered appropriately. Define __builtin_expect - to nothing for earlier compilers. */ - -#if __GNUC__ == 2 && __GNUC_MINOR__ < 96 -#define __builtin_expect(x, expected_value) (x) +/* Intel compiler defines __GNUC__. So we will overwrite implementations + * coming from above header files here + */ +#ifdef __INTEL_COMPILER +# include <linux/compiler-intel.h> #endif +/* + * Generic compiler-dependent macros required for kernel + * build go below this comment. Actual compiler/compiler version + * specific implementations come from the above header files + */ + #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) @@ -33,10 +41,8 @@ * Usage is: * int __deprecated foo(void) */ -#if ( __GNUC__ == 3 && __GNUC_MINOR__ > 0 ) || __GNUC__ > 3 -#define __deprecated __attribute__((deprecated)) -#else -#define __deprecated +#ifndef __deprecated +# define __deprecated /* unimplemented */ #endif /* @@ -50,10 +56,8 @@ * In prior versions of gcc, such functions and data would be emitted, but * would be warned about except with attribute((unused)). */ -#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3 -#define __attribute_used__ __attribute__((__used__)) -#else -#define __attribute_used__ __attribute__((__unused__)) +#ifndef __attribute_used__ +# define __attribute_used__ /* unimplemented */ #endif /* @@ -65,19 +69,21 @@ * elimination and loop optimization just as an arithmetic operator * would be. * [...] - * The attribute `pure' is not implemented in GCC versions earlier - * than 2.96. */ -#if (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || __GNUC__ > 2 -#define __attribute_pure__ __attribute__((pure)) -#else -#define __attribute_pure__ /* unimplemented */ +#ifndef __attribute_pure__ +# define __attribute_pure__ /* unimplemented */ +#endif + +/* Optimization barrier */ +#ifndef barrier +# define barrier() __memory_barrier() #endif -/* This macro obfuscates arithmetic on a variable address so that gcc - shouldn't recognize the original var, and make assumptions about it */ -#define RELOC_HIDE(ptr, off) \ +#ifndef RELOC_HIDE +# define RELOC_HIDE(ptr, off) \ ({ unsigned long __ptr; \ - __asm__ ("" : "=g"(__ptr) : "0"(ptr)); \ + __ptr = (unsigned long) (ptr); \ (typeof(ptr)) (__ptr + (off)); }) +#endif + #endif /* __LINUX_COMPILER_H */ diff --git a/include/linux/console.h b/include/linux/console.h index 414ebe159d67..cdff9de7ee71 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -15,7 +15,6 @@ #define _LINUX_CONSOLE_H_ 1 #include <linux/types.h> -#include <linux/kdev_t.h> #include <linux/spinlock.h> struct vc_data; diff --git a/include/linux/devfs_fs_kernel.h b/include/linux/devfs_fs_kernel.h index f12addd1daeb..16c78f54f427 100644 --- a/include/linux/devfs_fs_kernel.h +++ b/include/linux/devfs_fs_kernel.h @@ -4,7 +4,6 @@ #include <linux/fs.h> #include <linux/config.h> #include <linux/spinlock.h> -#include <linux/kdev_t.h> #include <linux/types.h> #include <asm/semaphore.h> diff --git a/include/linux/eisa.h b/include/linux/eisa.h index 2ef648847879..dc76d57b10d0 100644 --- a/include/linux/eisa.h +++ b/include/linux/eisa.h @@ -1,6 +1,19 @@ #ifndef _LINUX_EISA_H #define _LINUX_EISA_H +#include <linux/ioport.h> +#include <linux/device.h> + +#ifdef CONFIG_EISA +# ifdef CONFIG_EISA_ALWAYS +# define EISA_bus 1 +# else + extern int EISA_bus; +# endif +#else +# define EISA_bus 0 +#endif + #define EISA_SIG_LEN 8 #define EISA_MAX_SLOTS 8 diff --git a/include/linux/elevator.h b/include/linux/elevator.h index e43d670c1371..cbd038b665e8 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h @@ -15,7 +15,6 @@ typedef int (elevator_queue_empty_fn) (request_queue_t *); typedef void (elevator_remove_req_fn) (request_queue_t *, struct request *); typedef void (elevator_requeue_req_fn) (request_queue_t *, struct request *); typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *); -typedef struct list_head *(elevator_get_sort_head_fn) (request_queue_t *, struct request *); typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *); typedef int (elevator_may_queue_fn) (request_queue_t *, int); diff --git a/include/linux/ftape.h b/include/linux/ftape.h index 99b3535a4e20..e21d4b442843 100644 --- a/include/linux/ftape.h +++ b/include/linux/ftape.h @@ -199,8 +199,6 @@ typedef union { #define ABS(a) ((a) < 0 ? -(a) : (a)) #define NR_ITEMS(x) (int)(sizeof(x)/ sizeof(*x)) -extern int ftape_init(void); - #endif /* __KERNEL__ */ #endif diff --git a/include/linux/input.h b/include/linux/input.h index da49f7ee0f18..c98e6fc575fe 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -751,7 +751,7 @@ struct ff_effect { #define LONG(x) ((x)/BITS_PER_LONG) #define INPUT_KEYCODE(dev, scancode) ((dev->keycodesize == 1) ? ((u8*)dev->keycode)[scancode] : \ - ((dev->keycodesize == 1) ? ((u16*)dev->keycode)[scancode] : (((u32*)dev->keycode)[scancode]))) + ((dev->keycodesize == 2) ? ((u16*)dev->keycode)[scancode] : (((u32*)dev->keycode)[scancode]))) #define init_input_dev(dev) do { INIT_LIST_HEAD(&((dev)->h_list)); INIT_LIST_HEAD(&((dev)->node)); } while (0) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index b2d17ea0dac0..6403c9ef2210 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -15,10 +15,6 @@ #include <asm/byteorder.h> #include <asm/bug.h> -/* Optimization barrier */ -/* The "volatile" is due to gcc bugs */ -#define barrier() __asm__ __volatile__("": : :"memory") - #define INT_MAX ((int)(~0U>>1)) #define INT_MIN (-INT_MAX - 1) #define UINT_MAX (~0U) diff --git a/include/linux/llc.h b/include/linux/llc.h index 77ac5d9df544..c9085baaf74d 100644 --- a/include/linux/llc.h +++ b/include/linux/llc.h @@ -79,13 +79,5 @@ enum llc_sockopts { #define LLC_SAP_DYN_TRIES 4 #define llc_ui_skb_cb(__skb) ((struct sockaddr_llc *)&((__skb)->cb[0])) - -#ifdef CONFIG_LLC_UI -extern int llc_ui_init(void); -extern void llc_ui_exit(void); -#else -#define llc_ui_init() -#define llc_ui_exit() -#endif #endif /* __KERNEL__ */ #endif /* __LINUX_LLC_H */ diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index d3af91351521..6b7f9c1fa5cd 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h @@ -36,8 +36,6 @@ #define TUN_MINOR 200 -extern int misc_init(void); - struct miscdevice { int minor; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 0175e588f33b..a69f0c920d20 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -502,7 +502,11 @@ extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); extern void dev_add_pack(struct packet_type *pt); extern void dev_remove_pack(struct packet_type *pt); extern void __dev_remove_pack(struct packet_type *pt); -extern int dev_get(const char *name); +extern int __dev_get(const char *name); +static inline int __deprecated dev_get(const char *name) +{ + return __dev_get(name); +} extern struct net_device *dev_get_by_flags(unsigned short flags, unsigned short mask); extern struct net_device *__dev_get_by_flags(unsigned short flags, diff --git a/include/linux/netfilter_ipv4/ipt_physdev.h b/include/linux/netfilter_ipv4/ipt_physdev.h index 01684a12d672..7538c8655ec0 100644 --- a/include/linux/netfilter_ipv4/ipt_physdev.h +++ b/include/linux/netfilter_ipv4/ipt_physdev.h @@ -13,12 +13,12 @@ #define IPT_PHYSDEV_OP_MASK (0x20 - 1) struct ipt_physdev_info { - u_int8_t invert; - u_int8_t bitmask; char physindev[IFNAMSIZ]; char in_mask[IFNAMSIZ]; char physoutdev[IFNAMSIZ]; char out_mask[IFNAMSIZ]; + u_int8_t invert; + u_int8_t bitmask; }; #endif /*_IPT_PHYSDEV_H*/ diff --git a/include/linux/nls.h b/include/linux/nls.h index 2ab6466f8043..1c657d4f0cf3 100644 --- a/include/linux/nls.h +++ b/include/linux/nls.h @@ -8,6 +8,7 @@ typedef __u16 wchar_t; struct nls_table { char *charset; + char *alias; int (*uni2char) (wchar_t uni, unsigned char *out, int boundlen); int (*char2uni) (const unsigned char *rawstring, int boundlen, wchar_t *uni); @@ -32,5 +33,7 @@ extern int utf8_mbstowcs(wchar_t *, const __u8 *, int); extern int utf8_wctomb(__u8 *, wchar_t, int); extern int utf8_wcstombs(__u8 *, const wchar_t *, int); +#define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) + #endif /* _LINUX_NLS_H */ diff --git a/include/linux/pnpbios.h b/include/linux/pnpbios.h index 5b0e599dd5e2..0720cd72d63a 100644 --- a/include/linux/pnpbios.h +++ b/include/linux/pnpbios.h @@ -26,7 +26,7 @@ #ifdef __KERNEL__ #include <linux/types.h> -#include <linux/pci.h> +#include <linux/pnp.h> /* * Return codes @@ -131,13 +131,7 @@ struct pnp_bios_node { #ifdef CONFIG_PNPBIOS /* non-exported */ -extern int pnpbios_dont_use_current_config; extern struct pnp_dev_node_info node_info; -extern void *pnpbios_kmalloc(size_t size, int f); -extern int pnpbios_init (void); -extern int pnpbios_interface_attach_device(struct pnp_bios_node * node); -extern int pnpbios_proc_init (void); -extern void pnpbios_proc_exit (void); extern int pnp_bios_dev_node_info (struct pnp_dev_node_info *data); extern int pnp_bios_get_dev_node (u8 *nodenum, char config, struct pnp_bios_node *data); diff --git a/include/linux/random.h b/include/linux/random.h index ca0e460941a5..9ccb52fa0a01 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -42,7 +42,6 @@ struct rand_pool_info { #ifdef __KERNEL__ -extern void rand_initialize(void); extern void rand_initialize_irq(int irq); extern void batch_entropy_store(u32 a, u32 b, int num); diff --git a/include/linux/sched.h b/include/linux/sched.h index 3c6e3129144d..1618ae7f42d4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -281,7 +281,9 @@ struct signal_struct { #define MAX_RT_PRIO MAX_USER_RT_PRIO #define MAX_PRIO (MAX_RT_PRIO + 40) - + +#define rt_task(p) ((p)->prio < MAX_RT_PRIO) + /* * Some day this will be a full-fledged user tracking system.. */ @@ -340,7 +342,9 @@ struct task_struct { prio_array_t *array; unsigned long sleep_avg; - unsigned long last_run; + long interactive_credit; + unsigned long long timestamp; + int activated; unsigned long policy; cpumask_t cpus_allowed; @@ -360,7 +364,7 @@ struct task_struct { unsigned long personality; int did_exec:1; pid_t pid; - pid_t pgrp; + pid_t __pgrp; /* Accessed via process_group() */ pid_t tty_old_pgrp; pid_t session; pid_t tgid; @@ -375,7 +379,7 @@ struct task_struct { struct task_struct *parent; /* parent process */ struct list_head children; /* list of my children */ struct list_head sibling; /* linkage in my parent's children list */ - struct task_struct *group_leader; + struct task_struct *group_leader; /* threadgroup leader */ /* PID/PID hash table linkage. */ struct pid_link pids[PIDTYPE_MAX]; @@ -461,6 +465,11 @@ struct task_struct { siginfo_t *last_siginfo; /* For ptrace use. */ }; +static inline pid_t process_group(struct task_struct *tsk) +{ + return tsk->group_leader->__pgrp; +} + extern void __put_task_struct(struct task_struct *tsk); #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) #define put_task_struct(tsk) \ @@ -499,6 +508,8 @@ static inline int set_cpus_allowed(task_t *p, cpumask_t new_mask) } #endif +extern unsigned long long sched_clock(void); + #ifdef CONFIG_NUMA extern void sched_balance_exec(void); extern void node_nr_running_init(void); diff --git a/include/linux/serio.h b/include/linux/serio.h index f1c67ff70f2a..66fdaf9b1be5 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h @@ -65,7 +65,9 @@ void serio_rescan(struct serio *serio); irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs); void serio_register_port(struct serio *serio); +void serio_register_slave_port(struct serio *serio); void serio_unregister_port(struct serio *serio); +void serio_unregister_slave_port(struct serio *serio); void serio_register_device(struct serio_dev *dev); void serio_unregister_device(struct serio_dev *dev); @@ -104,6 +106,7 @@ static __inline__ void serio_cleanup(struct serio *serio) #define SERIO_RS232 0x02000000UL #define SERIO_HIL_MLC 0x03000000UL #define SERIO_PC9800 0x04000000UL +#define SERIO_PS_PSTHRU 0x05000000UL #define SERIO_PROTO 0xFFUL #define SERIO_MSC 0x01 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 4b5f057f8bfb..de8758a5e709 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -306,7 +306,7 @@ extern void skb_under_panic(struct sk_buff *skb, int len, * * Returns true if the queue is empty, false otherwise. */ -static inline int skb_queue_empty(struct sk_buff_head *list) +static inline int skb_queue_empty(const struct sk_buff_head *list) { return list->next == (struct sk_buff *)list; } @@ -357,7 +357,7 @@ static inline void kfree_skb_fast(struct sk_buff *skb) * one of multiple shared copies of the buffer. Cloned buffers are * shared data so must not be written to under normal circumstances. */ -static inline int skb_cloned(struct sk_buff *skb) +static inline int skb_cloned(const struct sk_buff *skb) { return skb->cloned && atomic_read(&skb_shinfo(skb)->dataref) != 1; } @@ -369,7 +369,7 @@ static inline int skb_cloned(struct sk_buff *skb) * Returns true if more than one person has a reference to this * buffer. */ -static inline int skb_shared(struct sk_buff *skb) +static inline int skb_shared(const struct sk_buff *skb) { return atomic_read(&skb->users) != 1; } @@ -477,7 +477,7 @@ static inline struct sk_buff *skb_peek_tail(struct sk_buff_head *list_) * * Return the length of an &sk_buff queue. */ -static inline __u32 skb_queue_len(struct sk_buff_head *list_) +static inline __u32 skb_queue_len(const struct sk_buff_head *list_) { return list_->qlen; } diff --git a/include/linux/swap.h b/include/linux/swap.h index 147e5bf40cbf..1f3517e965f3 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -3,7 +3,6 @@ #include <linux/config.h> #include <linux/spinlock.h> -#include <linux/kdev_t.h> #include <linux/linkage.h> #include <linux/mmzone.h> #include <linux/list.h> diff --git a/include/linux/tty.h b/include/linux/tty.h index 205e27af55a2..c575197f00b3 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -351,7 +351,6 @@ extern void console_init(void); extern int lp_init(void); extern int pty_init(void); -extern void tty_init(void); extern int mxser_init(void); extern int moxa_init(void); extern int ip2_init(void); diff --git a/include/linux/usb.h b/include/linux/usb.h index a20b33d953aa..5575ebfb276d 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -80,7 +80,6 @@ struct usb_host_interface { * @act_altsetting: index of current altsetting. this number is always * less than num_altsetting. after the device is configured, each * interface uses its default setting of zero. - * @max_altsetting: the max number of altsettings for this interface. * @driver: the USB driver that is bound to this interface. * @minor: the minor number assigned to this interface, if this * interface is bound to a driver that uses the USB major number. @@ -118,7 +117,6 @@ struct usb_interface { unsigned act_altsetting; /* active alternate setting */ unsigned num_altsetting; /* number of alternate settings */ - unsigned max_altsetting; /* total memory allocated */ struct usb_driver *driver; /* driver */ int minor; /* minor number this interface is bound to */ diff --git a/include/linux/usb_gadget.h b/include/linux/usb_gadget.h index c98a95dbe250..da2d9749baf6 100644 --- a/include/linux/usb_gadget.h +++ b/include/linux/usb_gadget.h @@ -72,9 +72,9 @@ struct usb_request { unsigned length; dma_addr_t dma; - unsigned no_interrupt : 1, - zero : 1, - short_not_ok : 1; + unsigned no_interrupt:1; + unsigned zero:1; + unsigned short_not_ok:1; void (*complete)(struct usb_ep *ep, struct usb_request *req); @@ -122,9 +122,11 @@ struct usb_ep_ops { /** * struct usb_ep - device side representation of USB endpoint * @name:identifier for the endpoint, such as "ep-a" or "ep9in-bulk" + * @ops: Function pointers used to access hardware-specific operations. * @ep_list:the gadget's ep_list holds all of its endpoints - * @maxpacket:the maximum packet size used on this endpoint, as - * configured when the endpoint was enabled. + * @maxpacket:The maximum packet size used on this endpoint. The initial + * value can sometimes be reduced (hardware allowing), according to + * the endpoint descriptor used to configure the endpoint. * @driver_data:for use by the gadget driver. all other fields are * read-only to gadget drivers. * @@ -138,7 +140,7 @@ struct usb_ep { const char *name; const struct usb_ep_ops *ops; struct list_head ep_list; - unsigned maxpacket : 16; + unsigned maxpacket:16; }; /*-------------------------------------------------------------------------*/ @@ -443,18 +445,21 @@ struct usb_gadget_ops { /** * struct usb_gadget - represents a usb slave device + * @ops: Function pointers used to access hardware-specific operations. * @ep0: Endpoint zero, used when reading or writing responses to * driver setup() requests * @ep_list: List of other endpoints supported by the device. * @speed: Speed of current connection to USB host. * @name: Identifies the controller hardware type. Used in diagnostics * and sometimes configuration. + * @dev: Driver model state for this abstract device. * * Gadgets have a mostly-portable "gadget driver" implementing device - * functions, handling all usb configurations and interfaces. They - * also have a hardware-specific driver (accessed through ops vectors), - * which insulates the gadget driver from hardware details and packages - * the hardware endpoints through generic i/o queues. + * functions, handling all usb configurations and interfaces. Gadget + * drivers talk to hardware-specific code indirectly, through ops vectors. + * That insulates the gadget driver from hardware details, and packages + * the hardware endpoints through generic i/o queues. The "usb_gadget" + * and "usb_ep" interfaces provide that insulation from the hardware. * * Except for the driver data, all fields in this structure are * read-only to the gadget driver. That driver data is part of the @@ -469,10 +474,6 @@ struct usb_gadget { struct list_head ep_list; /* of usb_ep */ enum usb_device_speed speed; const char *name; - - /* use this to allocate dma-coherent buffers or set up - * dma mappings. or print diagnostics, etc. - */ struct device dev; }; @@ -576,6 +577,7 @@ usb_gadget_clear_selfpowered (struct usb_gadget *gadget) * Called in a context that permits sleeping. * @suspend: Invoked on USB suspend. May be called in_interrupt. * @resume: Invoked on USB resume. May be called in_interrupt. + * @driver: Driver model state for this driver. * * Devices are disabled till a gadget driver successfully bind()s, which * means the driver will handle setup() requests needed to enumerate (and diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 373e58fee2d4..1424811e1eab 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -84,7 +84,6 @@ int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *, void __user *, size_t *); void page_writeback_init(void); -void balance_dirty_pages(struct address_space *mapping); void balance_dirty_pages_ratelimited(struct address_space *mapping); int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0); int do_writepages(struct address_space *mapping, struct writeback_control *wbc); |
