diff options
| author | Len Brown <len.brown@intel.com> | 2004-02-05 12:21:02 -0500 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2004-02-05 12:21:02 -0500 |
| commit | 151fa98b00778e62ebb74f8dd64a0f0cff9997ac (patch) | |
| tree | b50419187097dcb135c2c1f6bfa4e1429264fc36 /include/linux | |
| parent | cbd884c9feafad7e29214eeaee9a36e48053d31a (diff) | |
| parent | 12a981f8fd62fb34823626844a5c76d6614055fe (diff) | |
Merge intel.com:/home/lenb/bk/linux-2.6.3
into intel.com:/home/lenb/src/linux-acpi-test-2.6.3
Diffstat (limited to 'include/linux')
37 files changed, 240 insertions, 245 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index d3b4e9ed4052..c421c46bfbb2 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -231,18 +231,18 @@ extern void bio_put(struct bio *); extern void bio_endio(struct bio *, unsigned int, int); struct request_queue; -extern inline int bio_phys_segments(struct request_queue *, struct bio *); -extern inline int bio_hw_segments(struct request_queue *, struct bio *); +extern int bio_phys_segments(struct request_queue *, struct bio *); +extern int bio_hw_segments(struct request_queue *, struct bio *); -extern inline void __bio_clone(struct bio *, struct bio *); +extern void __bio_clone(struct bio *, struct bio *); extern struct bio *bio_clone(struct bio *, int); -extern inline void bio_init(struct bio *); +extern void bio_init(struct bio *); extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int); extern int bio_get_nr_vecs(struct block_device *); -extern struct bio *bio_map_user(struct block_device *, unsigned long, - unsigned int, int); +extern struct bio *bio_map_user(struct request_queue *, struct block_device *, + unsigned long, unsigned int, int); extern void bio_unmap_user(struct bio *, int); extern void bio_set_pages_dirty(struct bio *bio); extern void bio_check_pages_dirty(struct bio *bio); diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index b84caaebed87..97fec37b1029 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h @@ -41,6 +41,10 @@ void bitmap_and(unsigned long *dst, const unsigned long *bitmap1, void bitmap_or(unsigned long *dst, const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); int bitmap_weight(const unsigned long *bitmap, int bits); +int bitmap_snprintf(char *buf, unsigned int buflen, + const unsigned long *maskp, int bits); +int bitmap_parse(const char __user *ubuf, unsigned int ubuflen, + unsigned long *maskp, int bits); #endif /* __ASSEMBLY__ */ diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index d0ba766eca75..e4aa5cfac38c 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -508,7 +508,7 @@ extern int blk_remove_plug(request_queue_t *); extern void blk_recount_segments(request_queue_t *, struct bio *); extern inline int blk_phys_contig_segment(request_queue_t *q, struct bio *, struct bio *); extern inline int blk_hw_contig_segment(request_queue_t *q, struct bio *, struct bio *); -extern int scsi_cmd_ioctl(struct block_device *, unsigned int, unsigned long); +extern int scsi_cmd_ioctl(struct gendisk *, unsigned int, unsigned long); extern void blk_start_queue(request_queue_t *q); extern void blk_stop_queue(request_queue_t *q); extern void __blk_stop_queue(request_queue_t *q); diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h index 1b00b5f96c0b..513ac8f4e9a2 100644 --- a/include/linux/cdrom.h +++ b/include/linux/cdrom.h @@ -496,6 +496,7 @@ struct cdrom_generic_command #define GPCMD_GET_MEDIA_STATUS 0xda /* Mode page codes for mode sense/set */ +#define GPMODE_VENDOR_PAGE 0x00 #define GPMODE_R_W_ERROR_PAGE 0x01 #define GPMODE_WRITE_PARMS_PAGE 0x05 #define GPMODE_AUDIO_CTL_PAGE 0x0e diff --git a/include/linux/console.h b/include/linux/console.h index 6db0056fb4c9..f6ff116ccfb3 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -102,6 +102,14 @@ extern void acquire_console_sem(void); extern void release_console_sem(void); extern void console_conditional_schedule(void); extern void console_unblank(void); +extern int is_console_locked(void); + +/* Some debug stub to catch some of the obvious races in the VT code */ +#if 1 +#define WARN_CONSOLE_UNLOCKED() WARN_ON(!is_console_locked() && !oops_in_progress) +#else +#define WARN_CONSOLE_UNLOCKED() +#endif /* VESA Blanking Levels */ #define VESA_NO_BLANKING 0 diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 02579ec6b99c..5ecc291dc138 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -38,9 +38,6 @@ extern void unregister_cpu_notifier(struct notifier_block *nb); int cpu_up(unsigned int cpu); -#define lock_cpu_hotplug() down(&cpucontrol) -#define unlock_cpu_hotplug() up(&cpucontrol) - #else static inline int register_cpu_notifier(struct notifier_block *nb) @@ -51,12 +48,17 @@ static inline void unregister_cpu_notifier(struct notifier_block *nb) { } -#define lock_cpu_hotplug() do { } while (0) -#define unlock_cpu_hotplug() do { } while (0) - #endif /* CONFIG_SMP */ extern struct sysdev_class cpu_sysdev_class; +#ifdef CONFIG_HOTPLUG_CPU /* Stop CPUs going up and down. */ extern struct semaphore cpucontrol; +#define lock_cpu_hotplug() down(&cpucontrol) +#define unlock_cpu_hotplug() up(&cpucontrol) +#else +#define lock_cpu_hotplug() do { } while (0) +#define unlock_cpu_hotplug() do { } while (0) +#endif + #endif /* _LINUX_CPU_H_ */ diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 6fa750a5b26e..f19587e5c71a 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -2,6 +2,7 @@ #define __LINUX_CPUMASK_H #include <linux/threads.h> +#include <linux/bitmap.h> #include <asm/cpumask.h> #include <asm/bug.h> @@ -31,16 +32,10 @@ extern cpumask_t cpu_possible_map; #define for_each_online_cpu(cpu) for (cpu = 0; cpu < 1; cpu++) #endif -extern int __mask_snprintf_len(char *buf, unsigned int buflen, - const unsigned long *maskp, unsigned int maskbytes); - #define cpumask_snprintf(buf, buflen, map) \ - __mask_snprintf_len(buf, buflen, cpus_addr(map), sizeof(map)) - -extern int __mask_parse_len(const char __user *ubuf, unsigned int ubuflen, - unsigned long *maskp, unsigned int maskbytes); + bitmap_snprintf(buf, buflen, cpus_addr(map), NR_CPUS) #define cpumask_parse(buf, buflen, map) \ - __mask_parse_len(buf, buflen, cpus_addr(map), sizeof(map)) + bitmap_parse(buf, buflen, cpus_addr(map), NR_CPUS) #endif /* __LINUX_CPUMASK_H */ diff --git a/include/linux/efi.h b/include/linux/efi.h index a1764b1fb106..b29c8d42178f 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -297,8 +297,8 @@ extern u64 efi_mem_attributes (unsigned long phys_addr); extern void efi_initialize_iomem_resources(struct resource *code_resource, struct resource *data_resource); extern efi_status_t phys_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc); -extern inline unsigned long __init efi_get_time(void); -extern inline int __init efi_set_rtc_mmss(unsigned long nowtime); +extern unsigned long __init efi_get_time(void); +extern int __init efi_set_rtc_mmss(unsigned long nowtime); extern struct efi_memory_map memmap; /* diff --git a/include/linux/elevator.h b/include/linux/elevator.h index cbd038b665e8..ce58f47126c1 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h @@ -96,9 +96,9 @@ extern elevator_t iosched_as; extern int elevator_init(request_queue_t *, elevator_t *); extern void elevator_exit(request_queue_t *); -extern inline int elv_rq_merge_ok(struct request *, struct bio *); -extern inline int elv_try_merge(struct request *, struct bio *); -extern inline int elv_try_last_merge(request_queue_t *, struct bio *); +extern int elv_rq_merge_ok(struct request *, struct bio *); +extern int elv_try_merge(struct request *, struct bio *); +extern int elv_try_last_merge(request_queue_t *, struct bio *); /* * Return values from elevator merger diff --git a/include/linux/fsfilter.h b/include/linux/fsfilter.h index f425566a9299..0cd46770a844 100644 --- a/include/linux/fsfilter.h +++ b/include/linux/fsfilter.h @@ -74,22 +74,22 @@ extern struct filter_fs filter_oppar[FILTER_FS_TYPES]; struct filter_fs *filter_get_filter_fs(const char *cache_type); void filter_setup_journal_ops(struct filter_fs *ops, char *cache_type); -inline struct super_operations *filter_c2usops(struct filter_fs *cache); -inline struct inode_operations *filter_c2ufiops(struct filter_fs *cache); -inline struct inode_operations *filter_c2udiops(struct filter_fs *cache); -inline struct inode_operations *filter_c2usiops(struct filter_fs *cache); -inline struct file_operations *filter_c2uffops(struct filter_fs *cache); -inline struct file_operations *filter_c2udfops(struct filter_fs *cache); -inline struct file_operations *filter_c2usfops(struct filter_fs *cache); -inline struct super_operations *filter_c2csops(struct filter_fs *cache); -inline struct inode_operations *filter_c2cfiops(struct filter_fs *cache); -inline struct inode_operations *filter_c2cdiops(struct filter_fs *cache); -inline struct inode_operations *filter_c2csiops(struct filter_fs *cache); -inline struct file_operations *filter_c2cffops(struct filter_fs *cache); -inline struct file_operations *filter_c2cdfops(struct filter_fs *cache); -inline struct file_operations *filter_c2csfops(struct filter_fs *cache); -inline struct dentry_operations *filter_c2cdops(struct filter_fs *cache); -inline struct dentry_operations *filter_c2udops(struct filter_fs *cache); +struct super_operations *filter_c2usops(struct filter_fs *cache); +struct inode_operations *filter_c2ufiops(struct filter_fs *cache); +struct inode_operations *filter_c2udiops(struct filter_fs *cache); +struct inode_operations *filter_c2usiops(struct filter_fs *cache); +struct file_operations *filter_c2uffops(struct filter_fs *cache); +struct file_operations *filter_c2udfops(struct filter_fs *cache); +struct file_operations *filter_c2usfops(struct filter_fs *cache); +struct super_operations *filter_c2csops(struct filter_fs *cache); +struct inode_operations *filter_c2cfiops(struct filter_fs *cache); +struct inode_operations *filter_c2cdiops(struct filter_fs *cache); +struct inode_operations *filter_c2csiops(struct filter_fs *cache); +struct file_operations *filter_c2cffops(struct filter_fs *cache); +struct file_operations *filter_c2cdfops(struct filter_fs *cache); +struct file_operations *filter_c2csfops(struct filter_fs *cache); +struct dentry_operations *filter_c2cdops(struct filter_fs *cache); +struct dentry_operations *filter_c2udops(struct filter_fs *cache); void filter_setup_super_ops(struct filter_fs *cache, struct super_operations *cache_ops, struct super_operations *filter_sops); void filter_setup_dir_ops(struct filter_fs *cache, struct inode *cache_inode, struct inode_operations *filter_iops, struct file_operations *ffops); diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 72bda668895b..a88f16ccdc5a 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -95,8 +95,6 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb) return sb->s_fs_info; } -#define PSEUDO_DIRENT_SIZE 20 - extern struct file_operations hugetlbfs_file_operations; extern struct vm_operations_struct hugetlb_vm_ops; struct file *hugetlb_zero_setup(size_t); diff --git a/include/linux/ide.h b/include/linux/ide.h index ef73baf33fc8..f5ee5b62adee 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -799,15 +799,8 @@ typedef struct ide_dma_ops_s { int (*ide_dma_good_drive)(ide_drive_t *drive); int (*ide_dma_count)(ide_drive_t *drive); int (*ide_dma_verbose)(ide_drive_t *drive); - int (*ide_dma_retune)(ide_drive_t *drive); int (*ide_dma_lostirq)(ide_drive_t *drive); int (*ide_dma_timeout)(ide_drive_t *drive); - /* dma queued operations */ - int (*ide_dma_queued_on)(ide_drive_t *drive); - int (*ide_dma_queued_off)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_read)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_write)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_start)(ide_drive_t *drive); } ide_dma_ops_t; /* @@ -945,17 +938,9 @@ typedef struct hwif_s { int (*ide_dma_good_drive)(ide_drive_t *drive); int (*ide_dma_count)(ide_drive_t *drive); int (*ide_dma_verbose)(ide_drive_t *drive); - int (*ide_dma_retune)(ide_drive_t *drive); int (*ide_dma_lostirq)(ide_drive_t *drive); int (*ide_dma_timeout)(ide_drive_t *drive); - /* dma queued operations */ - int (*ide_dma_queued_on)(ide_drive_t *drive); - int (*ide_dma_queued_off)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_read)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_write)(ide_drive_t *drive); - ide_startstop_t (*ide_dma_queued_start)(ide_drive_t *drive); - void (*OUTB)(u8 addr, unsigned long port); void (*OUTBSYNC)(ide_drive_t *drive, u8 addr, unsigned long port); void (*OUTW)(u16 addr, unsigned long port); @@ -1214,13 +1199,6 @@ typedef struct ide_driver_s { extern int generic_ide_ioctl(struct block_device *, unsigned, unsigned long); -typedef struct ide_devices_s { - char name[4]; /* hdX */ - unsigned attached : 1; /* native */ - unsigned alttached : 1; /* alternate */ - struct ide_devices_s *next; -} ide_devices_t; - /* * ide_hwifs[] is the master data structure used to keep track * of just about everything in ide.c. Whenever possible, routines @@ -1231,13 +1209,6 @@ typedef struct ide_devices_s { */ #ifndef _IDE_C extern ide_hwif_t ide_hwifs[]; /* master data repository */ - -extern ide_devices_t *idedisk; -extern ide_devices_t *idecd; -extern ide_devices_t *idefloppy; -extern ide_devices_t *idetape; -extern ide_devices_t *idescsi; - #endif extern int noautodma; @@ -1416,12 +1387,12 @@ typedef struct pkt_task_s { void *special; } pkt_task_t; -extern inline u32 ide_read_24(ide_drive_t *); +extern u32 ide_read_24(ide_drive_t *); -extern inline void SELECT_DRIVE(ide_drive_t *); -extern inline void SELECT_INTERRUPT(ide_drive_t *); -extern inline void SELECT_MASK(ide_drive_t *, int); -extern inline void QUIRK_LIST(ide_drive_t *); +extern void SELECT_DRIVE(ide_drive_t *); +extern void SELECT_INTERRUPT(ide_drive_t *); +extern void SELECT_MASK(ide_drive_t *, int); +extern void QUIRK_LIST(ide_drive_t *); extern void ata_input_data(ide_drive_t *, void *, u32); extern void ata_output_data(ide_drive_t *, void *, u32); @@ -1651,7 +1622,6 @@ extern int __ide_dma_bad_drive(ide_drive_t *); extern int __ide_dma_good_drive(ide_drive_t *); extern int __ide_dma_count(ide_drive_t *); extern int __ide_dma_verbose(ide_drive_t *); -extern int __ide_dma_retune(ide_drive_t *); extern int __ide_dma_lostirq(ide_drive_t *); extern int __ide_dma_timeout(ide_drive_t *); @@ -1661,16 +1631,6 @@ extern int __ide_dma_queued_off(ide_drive_t *drive); extern ide_startstop_t __ide_dma_queued_read(ide_drive_t *drive); extern ide_startstop_t __ide_dma_queued_write(ide_drive_t *drive); extern ide_startstop_t __ide_dma_queued_start(ide_drive_t *drive); -#else -static inline int __ide_dma_queued_on(ide_drive_t *drive) -{ - return 1; -} - -static inline int __ide_dma_queued_off(ide_drive_t *drive) -{ - return 1; -} #endif #else diff --git a/include/linux/in6.h b/include/linux/in6.h index 8689112d08f3..5b4e89b1ac68 100644 --- a/include/linux/in6.h +++ b/include/linux/in6.h @@ -183,5 +183,17 @@ struct in6_flowlabel_req #define IPV6_IPSEC_POLICY 34 #define IPV6_XFRM_POLICY 35 +/* + * Multicast: + * Following socket options are shared between IPv4 and IPv6. + * + * MCAST_JOIN_GROUP 42 + * MCAST_BLOCK_SOURCE 43 + * MCAST_UNBLOCK_SOURCE 44 + * MCAST_LEAVE_GROUP 45 + * MCAST_JOIN_SOURCE_GROUP 46 + * MCAST_LEAVE_SOURCE_GROUP 47 + * MCAST_MSFILTER 48 + */ #endif diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index 18913dfaddb1..1c5eb02667bb 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h @@ -21,6 +21,7 @@ struct ipv4_devconf int medium_id; int no_xfrm; int no_policy; + int force_igmp_version; void *sysctl; }; diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 59d4d291d455..f9708adb1d47 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h @@ -40,6 +40,7 @@ .mmap_sem = __RWSEM_INITIALIZER(name.mmap_sem), \ .page_table_lock = SPIN_LOCK_UNLOCKED, \ .mmlist = LIST_HEAD_INIT(name.mmlist), \ + .cpu_vm_mask = CPU_MASK_ALL, \ .default_kioctx = INIT_KIOCTX(name.default_kioctx, name), \ } diff --git a/include/linux/input.h b/include/linux/input.h index 3beb4078a2da..59afa63abbb3 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -751,6 +751,27 @@ struct ff_effect { #define init_input_dev(dev) do { INIT_LIST_HEAD(&((dev)->h_list)); INIT_LIST_HEAD(&((dev)->node)); } while (0) +#define SET_INPUT_KEYCODE(dev, scancode, val) \ + do { \ + switch (dev->keycodesize) { \ + case 1: { \ + u8 *k = (u8 *)dev->keycode; \ + k[scancode] = val; \ + break; \ + } \ + case 2: { \ + u16 *k = (u16 *)dev->keycode; \ + k[scancode] = val; \ + break; \ + } \ + case 4: { \ + u32 *k = (u32 *)dev->keycode; \ + k[scancode] = val; \ + break; \ + } \ + } \ + } while (0) + struct input_dev { void *private; diff --git a/include/linux/irq_cpustat.h b/include/linux/irq_cpustat.h index 03b3e17de805..95e55a9f1087 100644 --- a/include/linux/irq_cpustat.h +++ b/include/linux/irq_cpustat.h @@ -19,11 +19,7 @@ #ifndef __ARCH_IRQ_STAT extern irq_cpustat_t irq_stat[]; /* defined in asm/hardirq.h */ -#ifdef CONFIG_SMP #define __IRQ_STAT(cpu, member) (irq_stat[cpu].member) -#else -#define __IRQ_STAT(cpu, member) ((void)(cpu), irq_stat[0].member) -#endif #endif /* arch independent irq_stat fields */ diff --git a/include/linux/memblk.h b/include/linux/memblk.h deleted file mode 100644 index 5f216fb47907..000000000000 --- a/include/linux/memblk.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * include/linux/memblk.h - generic memblk definition - * - * This is mainly for topological representation. We define the - * basic 'struct memblk' here, which can be embedded in per-arch - * definitions of memory blocks. - * - * Basic handling of the devices is done in drivers/base/memblk.c - * and system devices are handled in drivers/base/sys.c. - * - * MemBlks are exported via driverfs in the class/memblk/devices/ - * directory. - * - * Per-memblk interfaces can be implemented using a struct device_interface. - * See the following for how to do this: - * - drivers/base/intf.c - * - Documentation/driver-model/interface.txt - */ -#ifndef _LINUX_MEMBLK_H_ -#define _LINUX_MEMBLK_H_ - -#include <linux/device.h> -#include <linux/node.h> - -struct memblk { - int node_id; /* The node which contains the MemBlk */ - struct sys_device sysdev; -}; - -extern int register_memblk(struct memblk *, int, struct node *); - -#endif /* _LINUX_MEMBLK_H_ */ diff --git a/include/linux/mm.h b/include/linux/mm.h index 3ecd3d633c5f..ffc1e13d0a55 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -12,6 +12,7 @@ #include <linux/mmzone.h> #include <linux/rbtree.h> #include <linux/fs.h> +#include <linux/elf.h> #ifndef CONFIG_DISCONTIGMEM /* Don't use mapnrs, do it properly */ extern unsigned long max_mapnr; @@ -643,31 +644,24 @@ kernel_map_pages(struct page *page, int numpages, int enable) #endif #ifndef CONFIG_ARCH_GATE_AREA -#ifdef AT_SYSINFO_EHDR static inline int in_gate_area(struct task_struct *task, unsigned long addr) { +#ifdef AT_SYSINFO_EHDR if ((addr >= FIXADDR_USER_START) && (addr < FIXADDR_USER_END)) return 1; - else - return 0; +#endif + return 0; } extern struct vm_area_struct gate_vma; static inline struct vm_area_struct *get_gate_vma(struct task_struct *tsk) { +#ifdef AT_SYSINFO_EHDR return &gate_vma; -} #else -static inline int in_gate_area(struct task_struct *task, unsigned long addr) -{ return 0; -} - -static inline struct vm_area_struct *get_gate_vma(struct task_struct *tsk) -{ - return NULL; -} #endif +} #endif #endif /* __KERNEL__ */ diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 66cbaa36d878..179f51f29f78 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -205,7 +205,6 @@ typedef struct pglist_data { struct zonelist node_zonelists[MAX_NR_ZONES]; int nr_zones; struct page *node_mem_map; - unsigned long *valid_addr_bitmap; struct bootmem_data *bdata; unsigned long node_start_pfn; unsigned long node_present_pages; /* total number of physical pages */ @@ -295,12 +294,6 @@ struct file; int min_free_kbytes_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *); -#ifdef CONFIG_NUMA -#define MAX_NR_MEMBLKS BITS_PER_LONG /* Max number of Memory Blocks */ -#else /* !CONFIG_NUMA */ -#define MAX_NR_MEMBLKS 1 -#endif /* CONFIG_NUMA */ - #include <linux/topology.h> /* Returns the number of the current Node. */ #define numa_node_id() (cpu_to_node(smp_processor_id())) @@ -343,7 +336,6 @@ extern struct pglist_data contig_page_data; #endif extern DECLARE_BITMAP(node_online_map, MAX_NUMNODES); -extern DECLARE_BITMAP(memblk_online_map, MAX_NR_MEMBLKS); #if defined(CONFIG_DISCONTIGMEM) || defined(CONFIG_NUMA) @@ -361,20 +353,6 @@ static inline unsigned int num_online_nodes(void) return num; } -#define memblk_online(memblk) test_bit(memblk, memblk_online_map) -#define memblk_set_online(memblk) set_bit(memblk, memblk_online_map) -#define memblk_set_offline(memblk) clear_bit(memblk, memblk_online_map) -static inline unsigned int num_online_memblks(void) -{ - int i, num = 0; - - for(i = 0; i < MAX_NR_MEMBLKS; i++){ - if (memblk_online(i)) - num++; - } - return num; -} - #else /* !CONFIG_DISCONTIGMEM && !CONFIG_NUMA */ #define node_online(node) \ @@ -385,14 +363,6 @@ static inline unsigned int num_online_memblks(void) ({ BUG_ON((node) != 0); clear_bit(node, node_online_map); }) #define num_online_nodes() 1 -#define memblk_online(memblk) \ - ({ BUG_ON((memblk) != 0); test_bit(memblk, memblk_online_map); }) -#define memblk_set_online(memblk) \ - ({ BUG_ON((memblk) != 0); set_bit(memblk, memblk_online_map); }) -#define memblk_set_offline(memblk) \ - ({ BUG_ON((memblk) != 0); clear_bit(memblk, memblk_online_map); }) -#define num_online_memblks() 1 - #endif /* CONFIG_DISCONTIGMEM || CONFIG_NUMA */ #endif /* !__ASSEMBLY__ */ #endif /* __KERNEL__ */ diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index cfdeaaad2b7e..84b6fd41e2d2 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -496,6 +496,7 @@ extern rwlock_t dev_base_lock; /* Device list lock */ extern int netdev_boot_setup_add(char *name, struct ifmap *map); extern int netdev_boot_setup_check(struct net_device *dev); +extern unsigned long netdev_boot_base(const char *prefix, int unit); extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); extern struct net_device *__dev_getfirstbyhwtype(unsigned short type); extern struct net_device *dev_getfirstbyhwtype(unsigned short type); diff --git a/include/linux/netfilter_ipv4/ip_conntrack_core.h b/include/linux/netfilter_ipv4/ip_conntrack_core.h index ea15674261a2..4c8b5d189089 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack_core.h +++ b/include/linux/netfilter_ipv4/ip_conntrack_core.h @@ -50,5 +50,6 @@ static inline int ip_conntrack_confirm(struct sk_buff *skb) extern struct list_head *ip_conntrack_hash; extern struct list_head ip_conntrack_expect_list; DECLARE_RWLOCK_EXTERN(ip_conntrack_lock); +DECLARE_RWLOCK_EXTERN(ip_conntrack_expect_tuple_lock); #endif /* _IP_CONNTRACK_CORE_H */ diff --git a/include/linux/parport.h b/include/linux/parport.h index 77e99e8eace2..eff925bb5da6 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h @@ -311,6 +311,8 @@ struct parport { int spintime; atomic_t ref_count; + + struct list_head full_list; }; #define DEFAULT_SPIN_TIME 500 /* us */ diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h index 47f14868ca75..2334281e3af6 100644 --- a/include/linux/parport_pc.h +++ b/include/linux/parport_pc.h @@ -41,7 +41,7 @@ struct parport_pc_private { struct pci_dev *dev; }; -extern __inline__ void parport_pc_write_data(struct parport *p, unsigned char d) +static __inline__ void parport_pc_write_data(struct parport *p, unsigned char d) { #ifdef DEBUG_PARPORT printk (KERN_DEBUG "parport_pc_write_data(%p,0x%02x)\n", p, d); @@ -49,7 +49,7 @@ extern __inline__ void parport_pc_write_data(struct parport *p, unsigned char d) outb(d, DATA(p)); } -extern __inline__ unsigned char parport_pc_read_data(struct parport *p) +static __inline__ unsigned char parport_pc_read_data(struct parport *p) { unsigned char val = inb (DATA (p)); #ifdef DEBUG_PARPORT @@ -124,17 +124,17 @@ static __inline__ unsigned char __parport_pc_frob_control (struct parport *p, return ctr; } -extern __inline__ void parport_pc_data_reverse (struct parport *p) +static __inline__ void parport_pc_data_reverse (struct parport *p) { __parport_pc_frob_control (p, 0x20, 0x20); } -extern __inline__ void parport_pc_data_forward (struct parport *p) +static __inline__ void parport_pc_data_forward (struct parport *p) { __parport_pc_frob_control (p, 0x20, 0x00); } -extern __inline__ void parport_pc_write_control (struct parport *p, +static __inline__ void parport_pc_write_control (struct parport *p, unsigned char d) { const unsigned char wm = (PARPORT_CONTROL_STROBE | @@ -152,7 +152,7 @@ extern __inline__ void parport_pc_write_control (struct parport *p, __parport_pc_frob_control (p, wm, d & wm); } -extern __inline__ unsigned char parport_pc_read_control(struct parport *p) +static __inline__ unsigned char parport_pc_read_control(struct parport *p) { const unsigned char rm = (PARPORT_CONTROL_STROBE | PARPORT_CONTROL_AUTOFD | @@ -162,7 +162,7 @@ extern __inline__ unsigned char parport_pc_read_control(struct parport *p) return priv->ctr & rm; /* Use soft copy */ } -extern __inline__ unsigned char parport_pc_frob_control (struct parport *p, +static __inline__ unsigned char parport_pc_frob_control (struct parport *p, unsigned char mask, unsigned char val) { @@ -189,18 +189,18 @@ extern __inline__ unsigned char parport_pc_frob_control (struct parport *p, return __parport_pc_frob_control (p, mask, val); } -extern __inline__ unsigned char parport_pc_read_status(struct parport *p) +static __inline__ unsigned char parport_pc_read_status(struct parport *p) { return inb(STATUS(p)); } -extern __inline__ void parport_pc_disable_irq(struct parport *p) +static __inline__ void parport_pc_disable_irq(struct parport *p) { __parport_pc_frob_control (p, 0x10, 0x00); } -extern __inline__ void parport_pc_enable_irq(struct parport *p) +static __inline__ void parport_pc_enable_irq(struct parport *p) { __parport_pc_frob_control (p, 0x10, 0x10); } diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4dba6ec06e3a..a20d64521c03 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -633,6 +633,8 @@ #define PCI_DEVICE_ID_HP_TACHLITE 0x1029 #define PCI_DEVICE_ID_HP_J2585A 0x1030 #define PCI_DEVICE_ID_HP_J2585B 0x1031 +#define PCI_DEVICE_ID_HP_J2973A 0x1040 +#define PCI_DEVICE_ID_HP_J2970A 0x1042 #define PCI_DEVICE_ID_HP_DIVA 0x1048 #define PCI_DEVICE_ID_HP_DIVA_TOSCA1 0x1049 #define PCI_DEVICE_ID_HP_DIVA_TOSCA2 0x104A @@ -807,6 +809,7 @@ #define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034 #define PCI_DEVICE_ID_APPLE_KAUAI_ATA 0x003b #define PCI_DEVICE_ID_APPLE_KEYLARGO_I 0x003e +#define PCI_DEVICE_ID_APPLE_K2_GMAC 0x004c #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 #define PCI_VENDOR_ID_YAMAHA 0x1073 diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 9e637260e58f..6aedd71cc02c 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h @@ -35,7 +35,6 @@ struct percpu_data { extern void *__alloc_percpu(size_t size, size_t align); extern void free_percpu(const void *); -extern void kmalloc_percpu_init(void); #else /* CONFIG_SMP */ @@ -52,7 +51,6 @@ static inline void free_percpu(const void *ptr) { kfree(ptr); } -static inline void kmalloc_percpu_init(void) { } #endif /* CONFIG_SMP */ diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h index d97edad0effc..8ae0e141cb05 100644 --- a/include/linux/pkt_sched.h +++ b/include/linux/pkt_sched.h @@ -290,6 +290,37 @@ struct tc_htb_xstats __u32 ctokens; }; +/* HFSC section */ + +struct tc_hfsc_qopt +{ + __u16 defcls; /* default class */ +}; + +struct tc_service_curve +{ + __u32 m1; /* slope of the first segment in bps */ + __u32 d; /* x-projection of the first segment in us */ + __u32 m2; /* slope of the second segment in bps */ +}; + +struct tc_hfsc_stats +{ + __u64 work; /* total work done */ + __u64 rtwork; /* work done by real-time criteria */ + __u32 period; /* current period */ + __u32 level; /* class level in hierarchy */ +}; + +enum +{ + TCA_HFSC_UNSPEC, + TCA_HFSC_RSC, + TCA_HFSC_FSC, + TCA_HFSC_USC, + TCA_HFSC_MAX = TCA_HFSC_USC +}; + /* CBQ section */ #define TC_CBQ_MAXPRIO 8 diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 7b6e12c45dc9..a89da5378b5f 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h @@ -281,6 +281,10 @@ static inline int mdidx (mddev_t * mddev) { return mddev->__minor; } +static inline char * mdname (mddev_t * mddev) +{ + return mddev->gendisk ? mddev->gendisk->disk_name : "mdX"; +} extern mdk_rdev_t * find_rdev_nr(mddev_t *mddev, int nr); diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index 32fe6c84b3b6..f05d63a025c4 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h @@ -90,7 +90,7 @@ if( !( cond ) ) \ #define RFALSE( cond, format, args... ) do {;} while( 0 ) #endif -#define CONSTF __attribute__( ( const ) ) +#define CONSTF __attribute_const__ /* * Disk Data Structures */ @@ -1781,25 +1781,25 @@ int reiserfs_convert_objectid_map_v1(struct super_block *) ; /* stree.c */ int B_IS_IN_TREE(const struct buffer_head *); extern inline void copy_short_key (void * to, const void * from); -extern inline void copy_item_head(struct item_head * p_v_to, +extern void copy_item_head(struct item_head * p_v_to, const struct item_head * p_v_from); // first key is in cpu form, second - le -extern inline int comp_keys (const struct key * le_key, +extern int comp_keys (const struct key * le_key, const struct cpu_key * cpu_key); -extern inline int comp_short_keys (const struct key * le_key, +extern int comp_short_keys (const struct key * le_key, const struct cpu_key * cpu_key); -extern inline void le_key2cpu_key (struct cpu_key * to, const struct key * from); +extern void le_key2cpu_key (struct cpu_key * to, const struct key * from); // both are cpu keys -extern inline int comp_cpu_keys (const struct cpu_key *, const struct cpu_key *); -extern inline int comp_short_cpu_keys (const struct cpu_key *, +extern int comp_cpu_keys (const struct cpu_key *, const struct cpu_key *); +extern int comp_short_cpu_keys (const struct cpu_key *, const struct cpu_key *); -extern inline void cpu_key2cpu_key (struct cpu_key *, const struct cpu_key *); +extern void cpu_key2cpu_key (struct cpu_key *, const struct cpu_key *); // both are in le form -extern inline int comp_le_keys (const struct key *, const struct key *); -extern inline int comp_short_le_keys (const struct key *, const struct key *); +extern int comp_le_keys (const struct key *, const struct key *); +extern int comp_short_le_keys (const struct key *, const struct key *); // // get key version from on disk key - kludge @@ -1834,7 +1834,7 @@ int search_by_key (struct super_block *, const struct cpu_key *, int search_for_position_by_key (struct super_block * p_s_sb, const struct cpu_key * p_s_cpu_key, struct path * p_s_search_path); -extern inline void decrement_bcount (struct buffer_head * p_s_bh); +extern void decrement_bcount (struct buffer_head * p_s_bh); void decrement_counters_in_path (struct path * p_s_search_path); void pathrelse (struct path * p_s_search_path); int reiserfs_check_path(struct path *p) ; @@ -1916,7 +1916,7 @@ void sd_attrs_to_i_attrs( __u16 sd_attrs, struct inode *inode ); void i_attrs_to_sd_attrs( struct inode *inode, __u16 *sd_attrs ); /* namei.c */ -inline void set_de_name_and_namelen (struct reiserfs_dir_entry * de); +void set_de_name_and_namelen (struct reiserfs_dir_entry * de); int search_by_entry_key (struct super_block * sb, const struct cpu_key * key, struct path * path, struct reiserfs_dir_entry * de); @@ -2037,7 +2037,7 @@ int balance_internal (struct tree_balance * , int, int, struct item_head * , struct buffer_head **); /* do_balance.c */ -inline void do_balance_mark_leaf_dirty (struct tree_balance * tb, +void do_balance_mark_leaf_dirty (struct tree_balance * tb, struct buffer_head * bh, int flag); #define do_balance_mark_internal_dirty do_balance_mark_leaf_dirty #define do_balance_mark_sb_dirty do_balance_mark_leaf_dirty diff --git a/include/linux/scc.h b/include/linux/scc.h index 4965e146b737..885a4a02b23c 100644 --- a/include/linux/scc.h +++ b/include/linux/scc.h @@ -200,7 +200,7 @@ struct scc_kiss { unsigned char fulldup; /* Full Duplex mode 0=CSMA 1=DUP 2=ALWAYS KEYED */ unsigned char waittime; /* Waittime before any transmit attempt */ unsigned int maxkeyup; /* Maximum time to transmit (seconds) */ - unsigned char mintime; /* Minimal offtime after MAXKEYUP timeout (seconds) */ + unsigned int mintime; /* Minimal offtime after MAXKEYUP timeout (seconds) */ unsigned int idletime; /* Maximum idle time in ALWAYS KEYED mode (seconds) */ unsigned int maxdefer; /* Timer for CSMA channel busy limit */ unsigned char tx_inhibit; /* Transmit is not allowed when set */ diff --git a/include/linux/sched.h b/include/linux/sched.h index f5f84aedbaec..ac22951d5927 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -204,7 +204,6 @@ struct mm_struct { unsigned long arg_start, arg_end, env_start, env_end; unsigned long rss, total_vm, locked_vm; unsigned long def_flags; - cpumask_t cpu_vm_mask; unsigned long saved_auxv[40]; /* for /proc/PID/auxv */ @@ -212,6 +211,8 @@ struct mm_struct { #ifdef CONFIG_HUGETLB_PAGE int used_hugetlb; #endif + cpumask_t cpu_vm_mask; + /* Architecture-specific MM context */ mm_context_t context; @@ -670,7 +671,7 @@ static inline int capable(int cap) extern struct mm_struct * mm_alloc(void); /* mmdrop drops the mm and the page tables */ -extern inline void FASTCALL(__mmdrop(struct mm_struct *)); +extern void FASTCALL(__mmdrop(struct mm_struct *)); static inline void mmdrop(struct mm_struct * mm) { if (atomic_dec_and_test(&mm->mm_count)) diff --git a/include/linux/sctp.h b/include/linux/sctp.h index 9ddc3bd5cd81..a851af99af70 100644 --- a/include/linux/sctp.h +++ b/include/linux/sctp.h @@ -61,14 +61,14 @@ typedef struct sctphdr { __u16 dest; __u32 vtag; __u32 checksum; -} sctp_sctphdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_sctphdr_t; /* Section 3.2. Chunk Field Descriptions. */ typedef struct sctp_chunkhdr { __u8 type; __u8 flags; __u16 length; -} sctp_chunkhdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_chunkhdr_t; /* Section 3.2. Chunk Type Values. @@ -152,7 +152,7 @@ enum { SCTP_CHUNK_FLAG_T = 0x01 }; typedef struct sctp_paramhdr { __u16 type; __u16 length; -} sctp_paramhdr_t __attribute((packed)); +} __attribute__((packed)) sctp_paramhdr_t; typedef enum { @@ -202,12 +202,12 @@ typedef struct sctp_datahdr { __u16 ssn; __u32 ppid; __u8 payload[0]; -} sctp_datahdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_datahdr_t; typedef struct sctp_data_chunk { sctp_chunkhdr_t chunk_hdr; sctp_datahdr_t data_hdr; -} sctp_data_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_data_chunk_t; /* DATA Chuck Specific Flags */ enum { @@ -232,48 +232,48 @@ typedef struct sctp_inithdr { __u16 num_inbound_streams; __u32 initial_tsn; __u8 params[0]; -} sctp_inithdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_inithdr_t; typedef struct sctp_init_chunk { sctp_chunkhdr_t chunk_hdr; sctp_inithdr_t init_hdr; -} sctp_init_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_init_chunk_t; /* Section 3.3.2.1. IPv4 Address Parameter (5) */ typedef struct sctp_ipv4addr_param { sctp_paramhdr_t param_hdr; struct in_addr addr; -} sctp_ipv4addr_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_ipv4addr_param_t; /* Section 3.3.2.1. IPv6 Address Parameter (6) */ typedef struct sctp_ipv6addr_param { sctp_paramhdr_t param_hdr; struct in6_addr addr; -} sctp_ipv6addr_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_ipv6addr_param_t; /* Section 3.3.2.1 Cookie Preservative (9) */ typedef struct sctp_cookie_preserve_param { sctp_paramhdr_t param_hdr; uint32_t lifespan_increment; -} sctp_cookie_preserve_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_cookie_preserve_param_t; /* Section 3.3.2.1 Host Name Address (11) */ typedef struct sctp_hostname_param { sctp_paramhdr_t param_hdr; uint8_t hostname[0]; -} sctp_hostname_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_hostname_param_t; /* Section 3.3.2.1 Supported Address Types (12) */ typedef struct sctp_supported_addrs_param { sctp_paramhdr_t param_hdr; uint16_t types[0]; -} sctp_supported_addrs_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_supported_addrs_param_t; /* Appendix A. ECN Capable (32768) */ typedef struct sctp_ecn_capable_param { sctp_paramhdr_t param_hdr; -} sctp_ecn_capable_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_ecn_capable_param_t; @@ -287,13 +287,13 @@ typedef sctp_init_chunk_t sctp_initack_chunk_t; typedef struct sctp_cookie_param { sctp_paramhdr_t p; __u8 body[0]; -} sctp_cookie_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_cookie_param_t; /* Section 3.3.3.1 Unrecognized Parameters (8) */ typedef struct sctp_unrecognized_param { sctp_paramhdr_t param_hdr; sctp_paramhdr_t unrecognized; -} sctp_unrecognized_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_unrecognized_param_t; @@ -308,7 +308,7 @@ typedef struct sctp_unrecognized_param { typedef struct sctp_gap_ack_block { __u16 start; __u16 end; -} sctp_gap_ack_block_t __attribute__((packed)); +} __attribute__((packed)) sctp_gap_ack_block_t; typedef uint32_t sctp_dup_tsn_t; @@ -323,12 +323,12 @@ typedef struct sctp_sackhdr { __u16 num_gap_ack_blocks; __u16 num_dup_tsns; sctp_sack_variable_t variable[0]; -} sctp_sackhdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_sackhdr_t; typedef struct sctp_sack_chunk { sctp_chunkhdr_t chunk_hdr; sctp_sackhdr_t sack_hdr; -} sctp_sack_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_sack_chunk_t; /* RFC 2960. Section 3.3.5 Heartbeat Request (HEARTBEAT) (4): @@ -340,12 +340,12 @@ typedef struct sctp_sack_chunk { typedef struct sctp_heartbeathdr { sctp_paramhdr_t info; -} sctp_heartbeathdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_heartbeathdr_t; typedef struct sctp_heartbeat_chunk { sctp_chunkhdr_t chunk_hdr; sctp_heartbeathdr_t hb_hdr; -} sctp_heartbeat_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_heartbeat_chunk_t; /* For the abort and shutdown ACK we must carry the init tag in the @@ -354,7 +354,7 @@ typedef struct sctp_heartbeat_chunk { */ typedef struct sctp_abort_chunk { sctp_chunkhdr_t uh; -} sctp_abort_chunkt_t __attribute__((packed)); +} __attribute__((packed)) sctp_abort_chunkt_t; /* For the graceful shutdown we must carry the tag (in common header) @@ -362,14 +362,12 @@ typedef struct sctp_abort_chunk { */ typedef struct sctp_shutdownhdr { __u32 cum_tsn_ack; -} sctp_shutdownhdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_shutdownhdr_t; struct sctp_shutdown_chunk_t { sctp_chunkhdr_t chunk_hdr; sctp_shutdownhdr_t shutdown_hdr; -} __attribute__((packed)); - - +} __attribute__ ((packed)); /* RFC 2960. Section 3.3.10 Operation Error (ERROR) (9) */ @@ -377,12 +375,12 @@ typedef struct sctp_errhdr { __u16 cause; __u16 length; __u8 variable[0]; -} sctp_errhdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_errhdr_t; typedef struct sctp_operr_chunk { sctp_chunkhdr_t chunk_hdr; sctp_errhdr_t err_hdr; -} sctp_operr_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_operr_chunk_t; /* RFC 2960 3.3.10 - Operation Error * @@ -460,7 +458,7 @@ typedef struct sctp_ecnehdr { typedef struct sctp_ecne_chunk { sctp_chunkhdr_t chunk_hdr; sctp_ecnehdr_t ence_hdr; -} sctp_ecne_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_ecne_chunk_t; /* RFC 2960. Appendix A. Explicit Congestion Notification. * Congestion Window Reduced (CWR) (13) @@ -472,7 +470,7 @@ typedef struct sctp_cwrhdr { typedef struct sctp_cwr_chunk { sctp_chunkhdr_t chunk_hdr; sctp_cwrhdr_t cwr_hdr; -} sctp_cwr_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_cwr_chunk_t; /* * ADDIP Section 3.1 New Chunk Types @@ -513,16 +511,16 @@ typedef struct sctp_cwr_chunk { typedef struct sctp_addip_param { sctp_paramhdr_t param_hdr; __u32 crr_id; -}sctp_addip_param_t __attribute__((packed)); +} __attribute__((packed)) sctp_addip_param_t; typedef struct sctp_addiphdr { __u32 serial; __u8 params[0]; -} sctp_addiphdr_t __attribute__((packed)); +} __attribute__((packed)) sctp_addiphdr_t; typedef struct sctp_addip_chunk { sctp_chunkhdr_t chunk_hdr; sctp_addiphdr_t addip_hdr; -} sctp_addip_chunk_t __attribute__((packed)); +} __attribute__((packed)) sctp_addip_chunk_t; #endif /* __LINUX_SCTP_H__ */ diff --git a/include/linux/selection.h b/include/linux/selection.h index a949695af3c5..fd34cfa5f5ef 100644 --- a/include/linux/selection.h +++ b/include/linux/selection.h @@ -36,8 +36,8 @@ extern u16 screen_glyph(int currcons, int offset); extern void complement_pos(int currcons, int offset); 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 void getconsxy(int currcons, unsigned char *p); +extern void putconsxy(int currcons, unsigned char *p); extern u16 vcs_scr_readw(int currcons, const u16 *org); extern void vcs_scr_writew(int currcons, u16 val, u16 *org); diff --git a/include/linux/suspend.h b/include/linux/suspend.h index db4d007f4a8b..d0cdc77fa44e 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -32,9 +32,6 @@ struct suspend_header { int page_size; suspend_pagedir_t *suspend_pagedir; unsigned int num_pbes; - struct swap_location { - char filename[SWAP_FILENAME_MAXLENGTH]; - } swap_location[MAX_SWAPFILES]; }; #define SUSPEND_PD_PAGES(x) (((x)*sizeof(struct pbe))/PAGE_SIZE+1) @@ -45,31 +42,43 @@ extern int shrink_mem(void); /* mm/page_alloc.c */ extern void drain_local_pages(void); +/* kernel/power/swsusp.c */ +extern int software_suspend(void); + extern unsigned int nr_copy_pages __nosavedata; extern suspend_pagedir_t *pagedir_nosave __nosavedata; -#endif /* CONFIG_PM */ - -#ifdef CONFIG_SOFTWARE_SUSPEND - -extern unsigned char software_suspend_enabled; -extern void software_suspend(void); #else /* CONFIG_SOFTWARE_SUSPEND */ -static inline void software_suspend(void) +static inline int software_suspend(void) { printk("Warning: fake suspend called\n"); + return -EPERM; } +#define software_resume() do { } while(0) #endif /* CONFIG_SOFTWARE_SUSPEND */ #ifdef CONFIG_PM extern void refrigerator(unsigned long); +extern int freeze_processes(void); +extern void thaw_processes(void); + +extern int pm_prepare_console(void); +extern void pm_restore_console(void); #else static inline void refrigerator(unsigned long flag) { } +static inline int freeze_processes(void) +{ + return 0; +} +static inline void thaw_processes(void) +{ + +} #endif /* CONFIG_PM */ #endif /* _LINUX_SWSUSP_H */ diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 0d5b121f54a0..935be9d21b69 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -311,6 +311,7 @@ enum NET_TCP_FRTO=92, NET_TCP_LOW_LATENCY=93, NET_IPV4_IPFRAG_SECRET_INTERVAL=94, + NET_TCP_WESTWOOD=95, }; enum { @@ -360,6 +361,7 @@ enum NET_IPV4_CONF_MEDIUM_ID=14, NET_IPV4_CONF_NOXFRM=15, NET_IPV4_CONF_NOPOLICY=16, + NET_IPV4_CONF_FORCE_IGMP_VERSION=17, }; /* /proc/sys/net/ipv4/netfilter */ diff --git a/include/linux/tcp.h b/include/linux/tcp.h index d25e5bd21c4d..1b35358879ce 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h @@ -374,6 +374,20 @@ struct tcp_opt { __u32 frto_highmark; /* snd_nxt when RTO occurred */ unsigned long last_synq_overflow; + +/* TCP Westwood structure */ + struct { + __u32 bw_sample; /* bandwidth sample */ + __u32 bw_ns_est; /* first bandwidth estimation..not too smoothed 8) */ + __u32 bw_est; /* bandwidth estimate */ + __u32 rtt_win_sx; /* here starts a new evaluation... */ + __u32 bk; + __u32 snd_una; /* used for evaluating the number of acked bytes */ + __u32 cumul_ack; + __u32 accounted; + __u32 rtt; + __u32 rtt_min; /* minimum observed RTT */ + } westwood; }; /* WARNING: don't change the layout of the members in tcp_sock! */ diff --git a/include/linux/time.h b/include/linux/time.h index 891bf4607d16..b85d596949a3 100644 --- a/include/linux/time.h +++ b/include/linux/time.h @@ -148,14 +148,14 @@ struct timezone { #endif #define NSEC_JIFFIE_SC (SEC_JIFFIE_SC + 29) #define USEC_JIFFIE_SC (SEC_JIFFIE_SC + 19) -#define SEC_CONVERSION ((unsigned long)((((u64)NSEC_PER_SEC << SEC_JIFFIE_SC))\ - / (u64)TICK_NSEC)) +#define SEC_CONVERSION ((unsigned long)((((u64)NSEC_PER_SEC << SEC_JIFFIE_SC) +\ + TICK_NSEC -1) / (u64)TICK_NSEC)) -#define NSEC_CONVERSION ((unsigned long)((((u64)1 << NSEC_JIFFIE_SC))\ - / (u64)TICK_NSEC)) +#define NSEC_CONVERSION ((unsigned long)((((u64)1 << NSEC_JIFFIE_SC) +\ + TICK_NSEC -1) / (u64)TICK_NSEC)) #define USEC_CONVERSION \ - ((unsigned long)((((u64)NSEC_PER_USEC << USEC_JIFFIE_SC)) \ - / (u64)TICK_NSEC)) + ((unsigned long)((((u64)NSEC_PER_USEC << USEC_JIFFIE_SC) +\ + TICK_NSEC -1) / (u64)TICK_NSEC)) /* * USEC_ROUND is used in the timeval to jiffie conversion. See there * for more details. It is the scaled resolution rounding value. Note |
