diff options
| author | Jeff Garzik <jeff@garzik.org> | 2006-04-12 16:54:43 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-04-12 16:54:43 -0400 |
| commit | a890b15c0990cc8d686edcc85f5fccde71ad5ce9 (patch) | |
| tree | 73162355b58283a2531f13fbbf663809f95c1483 /include/linux | |
| parent | 79fa1b677be3a985cc66b9218a4dd09818f1051b (diff) | |
| parent | 26ec634c31a11a003040e10b4d650495158632fd (diff) | |
Merge branch 'upstream'
Diffstat (limited to 'include/linux')
31 files changed, 1280 insertions, 121 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index de3eb8d8ae26..da2d107fe2cf 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
| @@ -45,6 +45,7 @@ extern unsigned long __init bootmem_bootmap_pages (unsigned long); | |||
| 45 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); | 45 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); |
| 46 | extern void __init free_bootmem (unsigned long addr, unsigned long size); | 46 | extern void __init free_bootmem (unsigned long addr, unsigned long size); |
| 47 | extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal); | 47 | extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal); |
| 48 | extern void * __init __alloc_bootmem_nopanic (unsigned long size, unsigned long align, unsigned long goal); | ||
| 48 | extern void * __init __alloc_bootmem_low(unsigned long size, | 49 | extern void * __init __alloc_bootmem_low(unsigned long size, |
| 49 | unsigned long align, | 50 | unsigned long align, |
| 50 | unsigned long goal); | 51 | unsigned long goal); |
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 9b4751aecc23..ff61817082fa 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h | |||
| @@ -21,7 +21,7 @@ enum dma_data_direction { | |||
| 21 | #define DMA_30BIT_MASK 0x000000003fffffffULL | 21 | #define DMA_30BIT_MASK 0x000000003fffffffULL |
| 22 | #define DMA_29BIT_MASK 0x000000001fffffffULL | 22 | #define DMA_29BIT_MASK 0x000000001fffffffULL |
| 23 | #define DMA_28BIT_MASK 0x000000000fffffffULL | 23 | #define DMA_28BIT_MASK 0x000000000fffffffULL |
| 24 | #define DMA_24BIT_MASK 0x0000000000ffffffULL | 24 | #define DMA_24BIT_MASK 0x0000000000ffffffULL |
| 25 | 25 | ||
| 26 | #include <asm/dma-mapping.h> | 26 | #include <asm/dma-mapping.h> |
| 27 | 27 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 1e9ebaba07b7..162c6e57307a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -762,7 +762,7 @@ extern int fcntl_getlease(struct file *filp); | |||
| 762 | #define SYNC_FILE_RANGE_WRITE 2 | 762 | #define SYNC_FILE_RANGE_WRITE 2 |
| 763 | #define SYNC_FILE_RANGE_WAIT_AFTER 4 | 763 | #define SYNC_FILE_RANGE_WAIT_AFTER 4 |
| 764 | extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, | 764 | extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, |
| 765 | int flags); | 765 | unsigned int flags); |
| 766 | 766 | ||
| 767 | /* fs/locks.c */ | 767 | /* fs/locks.c */ |
| 768 | extern void locks_init_lock(struct file_lock *); | 768 | extern void locks_init_lock(struct file_lock *); |
| @@ -1039,8 +1039,8 @@ struct file_operations { | |||
| 1039 | int (*check_flags)(int); | 1039 | int (*check_flags)(int); |
| 1040 | int (*dir_notify)(struct file *filp, unsigned long arg); | 1040 | int (*dir_notify)(struct file *filp, unsigned long arg); |
| 1041 | int (*flock) (struct file *, int, struct file_lock *); | 1041 | int (*flock) (struct file *, int, struct file_lock *); |
| 1042 | ssize_t (*splice_write)(struct inode *, struct file *, size_t, unsigned int); | 1042 | ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned int); |
| 1043 | ssize_t (*splice_read)(struct file *, struct inode *, size_t, unsigned int); | 1043 | ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int); |
| 1044 | }; | 1044 | }; |
| 1045 | 1045 | ||
| 1046 | struct inode_operations { | 1046 | struct inode_operations { |
| @@ -1611,8 +1611,17 @@ extern ssize_t generic_file_sendfile(struct file *, loff_t *, size_t, read_actor | |||
| 1611 | extern void do_generic_mapping_read(struct address_space *mapping, | 1611 | extern void do_generic_mapping_read(struct address_space *mapping, |
| 1612 | struct file_ra_state *, struct file *, | 1612 | struct file_ra_state *, struct file *, |
| 1613 | loff_t *, read_descriptor_t *, read_actor_t); | 1613 | loff_t *, read_descriptor_t *, read_actor_t); |
| 1614 | extern ssize_t generic_file_splice_read(struct file *, struct inode *, size_t, unsigned int); | 1614 | |
| 1615 | extern ssize_t generic_file_splice_write(struct inode *, struct file *, size_t, unsigned int); | 1615 | /* fs/splice.c */ |
| 1616 | extern ssize_t generic_file_splice_read(struct file *, | ||
| 1617 | struct pipe_inode_info *, size_t, unsigned int); | ||
| 1618 | extern ssize_t generic_file_splice_write(struct pipe_inode_info *, | ||
| 1619 | struct file *, size_t, unsigned int); | ||
| 1620 | extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, | ||
| 1621 | struct file *out, size_t len, unsigned int flags); | ||
| 1622 | extern long do_splice_direct(struct file *in, struct file *out, | ||
| 1623 | size_t len, unsigned int flags); | ||
| 1624 | |||
| 1616 | extern void | 1625 | extern void |
| 1617 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); | 1626 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); |
| 1618 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, | 1627 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, |
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 7851e6b520cf..3ac452945a7d 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
| @@ -57,6 +57,8 @@ struct vm_area_struct; | |||
| 57 | __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ | 57 | __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ |
| 58 | __GFP_NOMEMALLOC|__GFP_HARDWALL) | 58 | __GFP_NOMEMALLOC|__GFP_HARDWALL) |
| 59 | 59 | ||
| 60 | /* This equals 0, but use constants in case they ever change */ | ||
| 61 | #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) | ||
| 60 | /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ | 62 | /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ |
| 61 | #define GFP_ATOMIC (__GFP_HIGH) | 63 | #define GFP_ATOMIC (__GFP_HIGH) |
| 62 | #define GFP_NOIO (__GFP_WAIT) | 64 | #define GFP_NOIO (__GFP_WAIT) |
diff --git a/include/linux/init.h b/include/linux/init.h index ed0ac7c39fdc..93dcbe1abb4c 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
| @@ -245,7 +245,8 @@ void __init parse_early_param(void); | |||
| 245 | #define __cpuexitdata __exitdata | 245 | #define __cpuexitdata __exitdata |
| 246 | #endif | 246 | #endif |
| 247 | 247 | ||
| 248 | #ifdef CONFIG_MEMORY_HOTPLUG | 248 | #if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_ACPI_HOTPLUG_MEMORY) \ |
| 249 | || defined(CONFIG_ACPI_HOTPLUG_MEMORY_MODULE) | ||
| 249 | #define __meminit | 250 | #define __meminit |
| 250 | #define __meminitdata | 251 | #define __meminitdata |
| 251 | #define __memexit | 252 | #define __memexit |
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index 99905e180532..043376920f51 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h | |||
| @@ -36,6 +36,8 @@ | |||
| 36 | /* LATCH is used in the interval timer and ftape setup. */ | 36 | /* LATCH is used in the interval timer and ftape setup. */ |
| 37 | #define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */ | 37 | #define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */ |
| 38 | 38 | ||
| 39 | #define LATCH_HPET ((HPET_TICK_RATE + HZ/2) / HZ) | ||
| 40 | |||
| 39 | /* Suppose we want to devide two numbers NOM and DEN: NOM/DEN, the we can | 41 | /* Suppose we want to devide two numbers NOM and DEN: NOM/DEN, the we can |
| 40 | * improve accuracy by shifting LSH bits, hence calculating: | 42 | * improve accuracy by shifting LSH bits, hence calculating: |
| 41 | * (NOM << LSH) / DEN | 43 | * (NOM << LSH) / DEN |
| @@ -51,9 +53,13 @@ | |||
| 51 | /* HZ is the requested value. ACTHZ is actual HZ ("<< 8" is for accuracy) */ | 53 | /* HZ is the requested value. ACTHZ is actual HZ ("<< 8" is for accuracy) */ |
| 52 | #define ACTHZ (SH_DIV (CLOCK_TICK_RATE, LATCH, 8)) | 54 | #define ACTHZ (SH_DIV (CLOCK_TICK_RATE, LATCH, 8)) |
| 53 | 55 | ||
| 56 | #define ACTHZ_HPET (SH_DIV (HPET_TICK_RATE, LATCH_HPET, 8)) | ||
| 57 | |||
| 54 | /* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */ | 58 | /* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */ |
| 55 | #define TICK_NSEC (SH_DIV (1000000UL * 1000, ACTHZ, 8)) | 59 | #define TICK_NSEC (SH_DIV (1000000UL * 1000, ACTHZ, 8)) |
| 56 | 60 | ||
| 61 | #define TICK_NSEC_HPET (SH_DIV(1000000UL * 1000, ACTHZ_HPET, 8)) | ||
| 62 | |||
| 57 | /* TICK_USEC is the time between ticks in usec assuming fake USER_HZ */ | 63 | /* TICK_USEC is the time between ticks in usec assuming fake USER_HZ */ |
| 58 | #define TICK_USEC ((1000000UL + USER_HZ/2) / USER_HZ) | 64 | #define TICK_USEC ((1000000UL + USER_HZ/2) / USER_HZ) |
| 59 | 65 | ||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index a3720f973ea5..e1bd0842f6a1 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -176,7 +176,7 @@ static inline void console_verbose(void) | |||
| 176 | 176 | ||
| 177 | extern void bust_spinlocks(int yes); | 177 | extern void bust_spinlocks(int yes); |
| 178 | extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ | 178 | extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ |
| 179 | extern __deprecated_for_modules int panic_timeout; | 179 | extern int panic_timeout; |
| 180 | extern int panic_on_oops; | 180 | extern int panic_on_oops; |
| 181 | extern int tainted; | 181 | extern int tainted; |
| 182 | extern const char *print_tainted(void); | 182 | extern const char *print_tainted(void); |
diff --git a/include/linux/leds.h b/include/linux/leds.h index 4617e75903b0..dc23c7c639f3 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h | |||
| @@ -19,39 +19,38 @@ struct class_device; | |||
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | enum led_brightness { | 21 | enum led_brightness { |
| 22 | LED_OFF = 0, | 22 | LED_OFF = 0, |
| 23 | LED_HALF = 127, | 23 | LED_HALF = 127, |
| 24 | LED_FULL = 255, | 24 | LED_FULL = 255, |
| 25 | }; | 25 | }; |
| 26 | 26 | ||
| 27 | struct led_classdev { | 27 | struct led_classdev { |
| 28 | const char *name; | 28 | const char *name; |
| 29 | int brightness; | 29 | int brightness; |
| 30 | int flags; | 30 | int flags; |
| 31 | #define LED_SUSPENDED (1 << 0) | ||
| 32 | 31 | ||
| 33 | /* A function to set the brightness of the led */ | 32 | #define LED_SUSPENDED (1 << 0) |
| 34 | void (*brightness_set)(struct led_classdev *led_cdev, | ||
| 35 | enum led_brightness brightness); | ||
| 36 | 33 | ||
| 37 | struct class_device *class_dev; | 34 | /* Set LED brightness level */ |
| 38 | /* LED Device linked list */ | 35 | void (*brightness_set)(struct led_classdev *led_cdev, |
| 39 | struct list_head node; | 36 | enum led_brightness brightness); |
| 37 | |||
| 38 | struct class_device *class_dev; | ||
| 39 | struct list_head node; /* LED Device list */ | ||
| 40 | char *default_trigger; /* Trigger to use */ | ||
| 40 | 41 | ||
| 41 | /* Trigger data */ | ||
| 42 | char *default_trigger; | ||
| 43 | #ifdef CONFIG_LEDS_TRIGGERS | 42 | #ifdef CONFIG_LEDS_TRIGGERS |
| 44 | rwlock_t trigger_lock; | ||
| 45 | /* Protects the trigger data below */ | 43 | /* Protects the trigger data below */ |
| 44 | rwlock_t trigger_lock; | ||
| 46 | 45 | ||
| 47 | struct led_trigger *trigger; | 46 | struct led_trigger *trigger; |
| 48 | struct list_head trig_list; | 47 | struct list_head trig_list; |
| 49 | void *trigger_data; | 48 | void *trigger_data; |
| 50 | #endif | 49 | #endif |
| 51 | }; | 50 | }; |
| 52 | 51 | ||
| 53 | extern int led_classdev_register(struct device *parent, | 52 | extern int led_classdev_register(struct device *parent, |
| 54 | struct led_classdev *led_cdev); | 53 | struct led_classdev *led_cdev); |
| 55 | extern void led_classdev_unregister(struct led_classdev *led_cdev); | 54 | extern void led_classdev_unregister(struct led_classdev *led_cdev); |
| 56 | extern void led_classdev_suspend(struct led_classdev *led_cdev); | 55 | extern void led_classdev_suspend(struct led_classdev *led_cdev); |
| 57 | extern void led_classdev_resume(struct led_classdev *led_cdev); | 56 | extern void led_classdev_resume(struct led_classdev *led_cdev); |
| @@ -65,16 +64,16 @@ extern void led_classdev_resume(struct led_classdev *led_cdev); | |||
| 65 | 64 | ||
| 66 | struct led_trigger { | 65 | struct led_trigger { |
| 67 | /* Trigger Properties */ | 66 | /* Trigger Properties */ |
| 68 | const char *name; | 67 | const char *name; |
| 69 | void (*activate)(struct led_classdev *led_cdev); | 68 | void (*activate)(struct led_classdev *led_cdev); |
| 70 | void (*deactivate)(struct led_classdev *led_cdev); | 69 | void (*deactivate)(struct led_classdev *led_cdev); |
| 71 | 70 | ||
| 72 | /* LEDs under control by this trigger (for simple triggers) */ | 71 | /* LEDs under control by this trigger (for simple triggers) */ |
| 73 | rwlock_t leddev_list_lock; | 72 | rwlock_t leddev_list_lock; |
| 74 | struct list_head led_cdevs; | 73 | struct list_head led_cdevs; |
| 75 | 74 | ||
| 76 | /* Link to next registered trigger */ | 75 | /* Link to next registered trigger */ |
| 77 | struct list_head next_trig; | 76 | struct list_head next_trig; |
| 78 | }; | 77 | }; |
| 79 | 78 | ||
| 80 | /* Registration functions for complex triggers */ | 79 | /* Registration functions for complex triggers */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 44d074ff7789..bf86ee474533 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <asm/io.h> | 33 | #include <asm/io.h> |
| 34 | #include <linux/ata.h> | 34 | #include <linux/ata.h> |
| 35 | #include <linux/workqueue.h> | 35 | #include <linux/workqueue.h> |
| 36 | #include <scsi/scsi_host.h> | ||
| 36 | 37 | ||
| 37 | /* | 38 | /* |
| 38 | * compile-time options: to be removed as soon as all the drivers are | 39 | * compile-time options: to be removed as soon as all the drivers are |
| @@ -248,7 +249,7 @@ struct ata_queued_cmd; | |||
| 248 | /* typedefs */ | 249 | /* typedefs */ |
| 249 | typedef void (*ata_qc_cb_t) (struct ata_queued_cmd *qc); | 250 | typedef void (*ata_qc_cb_t) (struct ata_queued_cmd *qc); |
| 250 | typedef void (*ata_probeinit_fn_t)(struct ata_port *); | 251 | typedef void (*ata_probeinit_fn_t)(struct ata_port *); |
| 251 | typedef int (*ata_reset_fn_t)(struct ata_port *, int, unsigned int *); | 252 | typedef int (*ata_reset_fn_t)(struct ata_port *, unsigned int *); |
| 252 | typedef void (*ata_postreset_fn_t)(struct ata_port *ap, unsigned int *); | 253 | typedef void (*ata_postreset_fn_t)(struct ata_port *ap, unsigned int *); |
| 253 | 254 | ||
| 254 | struct ata_ioports { | 255 | struct ata_ioports { |
| @@ -499,15 +500,14 @@ extern void ata_port_probe(struct ata_port *); | |||
| 499 | extern void __sata_phy_reset(struct ata_port *ap); | 500 | extern void __sata_phy_reset(struct ata_port *ap); |
| 500 | extern void sata_phy_reset(struct ata_port *ap); | 501 | extern void sata_phy_reset(struct ata_port *ap); |
| 501 | extern void ata_bus_reset(struct ata_port *ap); | 502 | extern void ata_bus_reset(struct ata_port *ap); |
| 503 | extern int ata_set_sata_spd(struct ata_port *ap); | ||
| 502 | extern int ata_drive_probe_reset(struct ata_port *ap, | 504 | extern int ata_drive_probe_reset(struct ata_port *ap, |
| 503 | ata_probeinit_fn_t probeinit, | 505 | ata_probeinit_fn_t probeinit, |
| 504 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, | 506 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, |
| 505 | ata_postreset_fn_t postreset, unsigned int *classes); | 507 | ata_postreset_fn_t postreset, unsigned int *classes); |
| 506 | extern void ata_std_probeinit(struct ata_port *ap); | 508 | extern void ata_std_probeinit(struct ata_port *ap); |
| 507 | extern int ata_std_softreset(struct ata_port *ap, int verbose, | 509 | extern int ata_std_softreset(struct ata_port *ap, unsigned int *classes); |
| 508 | unsigned int *classes); | 510 | extern int sata_std_hardreset(struct ata_port *ap, unsigned int *class); |
| 509 | extern int sata_std_hardreset(struct ata_port *ap, int verbose, | ||
| 510 | unsigned int *class); | ||
| 511 | extern void ata_std_postreset(struct ata_port *ap, unsigned int *classes); | 511 | extern void ata_std_postreset(struct ata_port *ap, unsigned int *classes); |
| 512 | extern int ata_dev_revalidate(struct ata_port *ap, struct ata_device *dev, | 512 | extern int ata_dev_revalidate(struct ata_port *ap, struct ata_device *dev, |
| 513 | int post_reset); | 513 | int post_reset); |
| @@ -526,6 +526,8 @@ extern void ata_host_set_remove(struct ata_host_set *host_set); | |||
| 526 | extern int ata_scsi_detect(struct scsi_host_template *sht); | 526 | extern int ata_scsi_detect(struct scsi_host_template *sht); |
| 527 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 527 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
| 528 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 528 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
| 529 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); | ||
| 530 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); | ||
| 529 | extern int ata_scsi_release(struct Scsi_Host *host); | 531 | extern int ata_scsi_release(struct Scsi_Host *host); |
| 530 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); | 532 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); |
| 531 | extern int ata_scsi_device_resume(struct scsi_device *); | 533 | extern int ata_scsi_device_resume(struct scsi_device *); |
| @@ -538,6 +540,9 @@ extern unsigned int ata_busy_sleep(struct ata_port *ap, | |||
| 538 | unsigned long timeout); | 540 | unsigned long timeout); |
| 539 | extern void ata_port_queue_task(struct ata_port *ap, void (*fn)(void *), | 541 | extern void ata_port_queue_task(struct ata_port *ap, void (*fn)(void *), |
| 540 | void *data, unsigned long delay); | 542 | void *data, unsigned long delay); |
| 543 | extern u32 ata_wait_register(void __iomem *reg, u32 mask, u32 val, | ||
| 544 | unsigned long interval_msec, | ||
| 545 | unsigned long timeout_msec); | ||
| 541 | 546 | ||
| 542 | /* | 547 | /* |
| 543 | * Default driver ops implementations | 548 | * Default driver ops implementations |
| @@ -631,7 +636,6 @@ extern unsigned long ata_pci_default_filter(const struct ata_port *, struct ata_ | |||
| 631 | /* | 636 | /* |
| 632 | * EH | 637 | * EH |
| 633 | */ | 638 | */ |
| 634 | extern int ata_scsi_error(struct Scsi_Host *host); | ||
| 635 | extern void ata_eng_timeout(struct ata_port *ap); | 639 | extern void ata_eng_timeout(struct ata_port *ap); |
| 636 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); | 640 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); |
| 637 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); | 641 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); |
| @@ -972,4 +976,9 @@ static inline void ata_pad_free(struct ata_port *ap, struct device *dev) | |||
| 972 | dma_free_coherent(dev, ATA_DMA_PAD_BUF_SZ, ap->pad, ap->pad_dma); | 976 | dma_free_coherent(dev, ATA_DMA_PAD_BUF_SZ, ap->pad, ap->pad_dma); |
| 973 | } | 977 | } |
| 974 | 978 | ||
| 979 | static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) | ||
| 980 | { | ||
| 981 | return (struct ata_port *) &host->hostdata[0]; | ||
| 982 | } | ||
| 983 | |||
| 975 | #endif /* __LINUX_LIBATA_H__ */ | 984 | #endif /* __LINUX_LIBATA_H__ */ |
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 968b1aa3732c..4ca3e6ad03ec 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h | |||
| @@ -58,8 +58,6 @@ extern int add_one_highpage(struct page *page, int pfn, int bad_ppro); | |||
| 58 | /* need some defines for these for archs that don't support it */ | 58 | /* need some defines for these for archs that don't support it */ |
| 59 | extern void online_page(struct page *page); | 59 | extern void online_page(struct page *page); |
| 60 | /* VM interface that may be used by firmware interface */ | 60 | /* VM interface that may be used by firmware interface */ |
| 61 | extern int add_memory(u64 start, u64 size); | ||
| 62 | extern int remove_memory(u64 start, u64 size); | ||
| 63 | extern int online_pages(unsigned long, unsigned long); | 61 | extern int online_pages(unsigned long, unsigned long); |
| 64 | 62 | ||
| 65 | /* reasonably generic interface to expand the physical pages in a zone */ | 63 | /* reasonably generic interface to expand the physical pages in a zone */ |
| @@ -92,11 +90,6 @@ static inline int mhp_notimplemented(const char *func) | |||
| 92 | return -ENOSYS; | 90 | return -ENOSYS; |
| 93 | } | 91 | } |
| 94 | 92 | ||
| 95 | static inline int __add_pages(struct zone *zone, unsigned long start_pfn, | ||
| 96 | unsigned long nr_pages) | ||
| 97 | { | ||
| 98 | return mhp_notimplemented(__FUNCTION__); | ||
| 99 | } | ||
| 100 | #endif /* ! CONFIG_MEMORY_HOTPLUG */ | 93 | #endif /* ! CONFIG_MEMORY_HOTPLUG */ |
| 101 | static inline int __remove_pages(struct zone *zone, unsigned long start_pfn, | 94 | static inline int __remove_pages(struct zone *zone, unsigned long start_pfn, |
| 102 | unsigned long nr_pages) | 95 | unsigned long nr_pages) |
| @@ -105,4 +98,11 @@ static inline int __remove_pages(struct zone *zone, unsigned long start_pfn, | |||
| 105 | dump_stack(); | 98 | dump_stack(); |
| 106 | return -ENOSYS; | 99 | return -ENOSYS; |
| 107 | } | 100 | } |
| 101 | |||
| 102 | #if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_ACPI_HOTPLUG_MEMORY) \ | ||
| 103 | || defined(CONFIG_ACPI_HOTPLUG_MEMORY_MODULE) | ||
| 104 | extern int add_memory(u64 start, u64 size); | ||
| 105 | extern int remove_memory(u64 start, u64 size); | ||
| 106 | #endif | ||
| 107 | |||
| 108 | #endif /* __LINUX_MEMORY_HOTPLUG_H */ | 108 | #endif /* __LINUX_MEMORY_HOTPLUG_H */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 6aa016f1d3ae..1154684209a4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -229,10 +229,9 @@ struct page { | |||
| 229 | unsigned long private; /* Mapping-private opaque data: | 229 | unsigned long private; /* Mapping-private opaque data: |
| 230 | * usually used for buffer_heads | 230 | * usually used for buffer_heads |
| 231 | * if PagePrivate set; used for | 231 | * if PagePrivate set; used for |
| 232 | * swp_entry_t if PageSwapCache. | 232 | * swp_entry_t if PageSwapCache; |
| 233 | * When page is free, this | ||
| 234 | * indicates order in the buddy | 233 | * indicates order in the buddy |
| 235 | * system. | 234 | * system if PG_buddy is set. |
| 236 | */ | 235 | */ |
| 237 | struct address_space *mapping; /* If low bit clear, points to | 236 | struct address_space *mapping; /* If low bit clear, points to |
| 238 | * inode address_space, or NULL. | 237 | * inode address_space, or NULL. |
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index 412e52ca9720..b31a9bca9361 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
| @@ -110,6 +110,8 @@ struct nf_info | |||
| 110 | /* Function to register/unregister hook points. */ | 110 | /* Function to register/unregister hook points. */ |
| 111 | int nf_register_hook(struct nf_hook_ops *reg); | 111 | int nf_register_hook(struct nf_hook_ops *reg); |
| 112 | void nf_unregister_hook(struct nf_hook_ops *reg); | 112 | void nf_unregister_hook(struct nf_hook_ops *reg); |
| 113 | int nf_register_hooks(struct nf_hook_ops *reg, unsigned int n); | ||
| 114 | void nf_unregister_hooks(struct nf_hook_ops *reg, unsigned int n); | ||
| 113 | 115 | ||
| 114 | /* Functions to register get/setsockopt ranges (non-inclusive). You | 116 | /* Functions to register get/setsockopt ranges (non-inclusive). You |
| 115 | need to check permissions yourself! */ | 117 | need to check permissions yourself! */ |
| @@ -281,16 +283,42 @@ extern void nf_invalidate_cache(int pf); | |||
| 281 | Returns true or false. */ | 283 | Returns true or false. */ |
| 282 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); | 284 | extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); |
| 283 | 285 | ||
| 284 | struct nf_queue_rerouter { | 286 | struct nf_afinfo { |
| 285 | void (*save)(const struct sk_buff *skb, struct nf_info *info); | 287 | unsigned short family; |
| 286 | int (*reroute)(struct sk_buff **skb, const struct nf_info *info); | 288 | unsigned int (*checksum)(struct sk_buff *skb, unsigned int hook, |
| 287 | int rer_size; | 289 | unsigned int dataoff, u_int8_t protocol); |
| 290 | void (*saveroute)(const struct sk_buff *skb, | ||
| 291 | struct nf_info *info); | ||
| 292 | int (*reroute)(struct sk_buff **skb, | ||
| 293 | const struct nf_info *info); | ||
| 294 | int route_key_size; | ||
| 288 | }; | 295 | }; |
| 289 | 296 | ||
| 290 | #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) | 297 | extern struct nf_afinfo *nf_afinfo[]; |
| 298 | static inline struct nf_afinfo *nf_get_afinfo(unsigned short family) | ||
| 299 | { | ||
| 300 | return rcu_dereference(nf_afinfo[family]); | ||
| 301 | } | ||
| 302 | |||
| 303 | static inline unsigned int | ||
| 304 | nf_checksum(struct sk_buff *skb, unsigned int hook, unsigned int dataoff, | ||
| 305 | u_int8_t protocol, unsigned short family) | ||
| 306 | { | ||
| 307 | struct nf_afinfo *afinfo; | ||
| 308 | unsigned int csum = 0; | ||
| 309 | |||
| 310 | rcu_read_lock(); | ||
| 311 | afinfo = nf_get_afinfo(family); | ||
| 312 | if (afinfo) | ||
| 313 | csum = afinfo->checksum(skb, hook, dataoff, protocol); | ||
| 314 | rcu_read_unlock(); | ||
| 315 | return csum; | ||
| 316 | } | ||
| 291 | 317 | ||
| 292 | extern int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer); | 318 | extern int nf_register_afinfo(struct nf_afinfo *afinfo); |
| 293 | extern int nf_unregister_queue_rerouter(int pf); | 319 | extern void nf_unregister_afinfo(struct nf_afinfo *afinfo); |
| 320 | |||
| 321 | #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) | ||
| 294 | 322 | ||
| 295 | #include <net/flow.h> | 323 | #include <net/flow.h> |
| 296 | extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *); | 324 | extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *); |
diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h index 43c09d790b83..85301c5e8d24 100644 --- a/include/linux/netfilter_ipv4.h +++ b/include/linux/netfilter_ipv4.h | |||
| @@ -80,6 +80,8 @@ enum nf_ip_hook_priorities { | |||
| 80 | #ifdef __KERNEL__ | 80 | #ifdef __KERNEL__ |
| 81 | extern int ip_route_me_harder(struct sk_buff **pskb); | 81 | extern int ip_route_me_harder(struct sk_buff **pskb); |
| 82 | extern int ip_xfrm_me_harder(struct sk_buff **pskb); | 82 | extern int ip_xfrm_me_harder(struct sk_buff **pskb); |
| 83 | extern unsigned int nf_ip_checksum(struct sk_buff *skb, unsigned int hook, | ||
| 84 | unsigned int dataoff, u_int8_t protocol); | ||
| 83 | #endif /*__KERNEL__*/ | 85 | #endif /*__KERNEL__*/ |
| 84 | 86 | ||
| 85 | #endif /*__LINUX_IP_NETFILTER_H*/ | 87 | #endif /*__LINUX_IP_NETFILTER_H*/ |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_h323.h b/include/linux/netfilter_ipv4/ip_conntrack_h323.h index 0987cea53840..eace86bd2adb 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack_h323.h +++ b/include/linux/netfilter_ipv4/ip_conntrack_h323.h | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | 3 | ||
| 4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
| 5 | 5 | ||
| 6 | #include <linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h> | ||
| 7 | |||
| 6 | #define RAS_PORT 1719 | 8 | #define RAS_PORT 1719 |
| 7 | #define Q931_PORT 1720 | 9 | #define Q931_PORT 1720 |
| 8 | #define H323_RTP_CHANNEL_MAX 4 /* Audio, video, FAX and other */ | 10 | #define H323_RTP_CHANNEL_MAX 4 /* Audio, video, FAX and other */ |
| @@ -25,6 +27,56 @@ struct ip_ct_h323_master { | |||
| 25 | }; | 27 | }; |
| 26 | }; | 28 | }; |
| 27 | 29 | ||
| 30 | struct ip_conntrack_expect; | ||
| 31 | |||
| 32 | extern int get_h225_addr(unsigned char *data, TransportAddress * addr, | ||
| 33 | u_int32_t * ip, u_int16_t * port); | ||
| 34 | extern void ip_conntrack_h245_expect(struct ip_conntrack *new, | ||
| 35 | struct ip_conntrack_expect *this); | ||
| 36 | extern void ip_conntrack_q931_expect(struct ip_conntrack *new, | ||
| 37 | struct ip_conntrack_expect *this); | ||
| 38 | extern int (*set_h245_addr_hook) (struct sk_buff ** pskb, | ||
| 39 | unsigned char **data, int dataoff, | ||
| 40 | H245_TransportAddress * addr, | ||
| 41 | u_int32_t ip, u_int16_t port); | ||
| 42 | extern int (*set_h225_addr_hook) (struct sk_buff ** pskb, | ||
| 43 | unsigned char **data, int dataoff, | ||
| 44 | TransportAddress * addr, | ||
| 45 | u_int32_t ip, u_int16_t port); | ||
| 46 | extern int (*set_sig_addr_hook) (struct sk_buff ** pskb, | ||
| 47 | struct ip_conntrack * ct, | ||
| 48 | enum ip_conntrack_info ctinfo, | ||
| 49 | unsigned char **data, | ||
| 50 | TransportAddress * addr, int count); | ||
| 51 | extern int (*set_ras_addr_hook) (struct sk_buff ** pskb, | ||
| 52 | struct ip_conntrack * ct, | ||
| 53 | enum ip_conntrack_info ctinfo, | ||
| 54 | unsigned char **data, | ||
| 55 | TransportAddress * addr, int count); | ||
| 56 | extern int (*nat_rtp_rtcp_hook) (struct sk_buff ** pskb, | ||
| 57 | struct ip_conntrack * ct, | ||
| 58 | enum ip_conntrack_info ctinfo, | ||
| 59 | unsigned char **data, int dataoff, | ||
| 60 | H245_TransportAddress * addr, | ||
| 61 | u_int16_t port, u_int16_t rtp_port, | ||
| 62 | struct ip_conntrack_expect * rtp_exp, | ||
| 63 | struct ip_conntrack_expect * rtcp_exp); | ||
| 64 | extern int (*nat_t120_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct, | ||
| 65 | enum ip_conntrack_info ctinfo, | ||
| 66 | unsigned char **data, int dataoff, | ||
| 67 | H245_TransportAddress * addr, u_int16_t port, | ||
| 68 | struct ip_conntrack_expect * exp); | ||
| 69 | extern int (*nat_h245_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct, | ||
| 70 | enum ip_conntrack_info ctinfo, | ||
| 71 | unsigned char **data, int dataoff, | ||
| 72 | TransportAddress * addr, u_int16_t port, | ||
| 73 | struct ip_conntrack_expect * exp); | ||
| 74 | extern int (*nat_q931_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct, | ||
| 75 | enum ip_conntrack_info ctinfo, | ||
| 76 | unsigned char **data, TransportAddress * addr, | ||
| 77 | int idx, u_int16_t port, | ||
| 78 | struct ip_conntrack_expect * exp); | ||
| 79 | |||
| 28 | #endif | 80 | #endif |
| 29 | 81 | ||
| 30 | #endif | 82 | #endif |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h new file mode 100644 index 000000000000..0bd828081c0c --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h | |||
| @@ -0,0 +1,98 @@ | |||
| 1 | /**************************************************************************** | ||
| 2 | * ip_conntrack_helper_h323_asn1.h - BER and PER decoding library for H.323 | ||
| 3 | * conntrack/NAT module. | ||
| 4 | * | ||
| 5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@hotmail.com> | ||
| 6 | * | ||
| 7 | * This source code is licensed under General Public License version 2. | ||
| 8 | * | ||
| 9 | * | ||
| 10 | * This library is based on H.225 version 4, H.235 version 2 and H.245 | ||
| 11 | * version 7. It is extremely optimized to decode only the absolutely | ||
| 12 | * necessary objects in a signal for Linux kernel NAT module use, so don't | ||
| 13 | * expect it to be a full ASN.1 library. | ||
| 14 | * | ||
| 15 | * Features: | ||
| 16 | * | ||
| 17 | * 1. Small. The total size of code plus data is less than 20 KB (IA32). | ||
| 18 | * 2. Fast. Decoding Netmeeting's Setup signal 1 million times on a PIII 866 | ||
| 19 | * takes only 3.9 seconds. | ||
| 20 | * 3. No memory allocation. It uses a static object. No need to initialize or | ||
| 21 | * cleanup. | ||
| 22 | * 4. Thread safe. | ||
| 23 | * 5. Support embedded architectures that has no misaligned memory access | ||
| 24 | * support. | ||
| 25 | * | ||
| 26 | * Limitations: | ||
| 27 | * | ||
| 28 | * 1. At most 30 faststart entries. Actually this is limited by ethernet's MTU. | ||
| 29 | * If a Setup signal contains more than 30 faststart, the packet size will | ||
| 30 | * very likely exceed the MTU size, then the TPKT will be fragmented. I | ||
| 31 | * don't know how to handle this in a Netfilter module. Anybody can help? | ||
| 32 | * Although I think 30 is enough for most of the cases. | ||
| 33 | * 2. IPv4 addresses only. | ||
| 34 | * | ||
| 35 | ****************************************************************************/ | ||
| 36 | |||
| 37 | #ifndef _IP_CONNTRACK_HELPER_H323_ASN1_H_ | ||
| 38 | #define _IP_CONNTRACK_HELPER_H323_ASN1_H_ | ||
| 39 | |||
| 40 | /***************************************************************************** | ||
| 41 | * H.323 Types | ||
| 42 | ****************************************************************************/ | ||
| 43 | #include "ip_conntrack_helper_h323_types.h" | ||
| 44 | |||
| 45 | typedef struct { | ||
| 46 | enum { | ||
| 47 | Q931_NationalEscape = 0x00, | ||
| 48 | Q931_Alerting = 0x01, | ||
| 49 | Q931_CallProceeding = 0x02, | ||
| 50 | Q931_Connect = 0x07, | ||
| 51 | Q931_ConnectAck = 0x0F, | ||
| 52 | Q931_Progress = 0x03, | ||
| 53 | Q931_Setup = 0x05, | ||
| 54 | Q931_SetupAck = 0x0D, | ||
| 55 | Q931_Resume = 0x26, | ||
| 56 | Q931_ResumeAck = 0x2E, | ||
| 57 | Q931_ResumeReject = 0x22, | ||
| 58 | Q931_Suspend = 0x25, | ||
| 59 | Q931_SuspendAck = 0x2D, | ||
| 60 | Q931_SuspendReject = 0x21, | ||
| 61 | Q931_UserInformation = 0x20, | ||
| 62 | Q931_Disconnect = 0x45, | ||
| 63 | Q931_Release = 0x4D, | ||
| 64 | Q931_ReleaseComplete = 0x5A, | ||
| 65 | Q931_Restart = 0x46, | ||
| 66 | Q931_RestartAck = 0x4E, | ||
| 67 | Q931_Segment = 0x60, | ||
| 68 | Q931_CongestionCtrl = 0x79, | ||
| 69 | Q931_Information = 0x7B, | ||
| 70 | Q931_Notify = 0x6E, | ||
| 71 | Q931_Status = 0x7D, | ||
| 72 | Q931_StatusEnquiry = 0x75, | ||
| 73 | Q931_Facility = 0x62 | ||
| 74 | } MessageType; | ||
| 75 | H323_UserInformation UUIE; | ||
| 76 | } Q931; | ||
| 77 | |||
| 78 | /***************************************************************************** | ||
| 79 | * Decode Functions Return Codes | ||
| 80 | ****************************************************************************/ | ||
| 81 | |||
| 82 | #define H323_ERROR_NONE 0 /* Decoded successfully */ | ||
| 83 | #define H323_ERROR_STOP 1 /* Decoding stopped, not really an error */ | ||
| 84 | #define H323_ERROR_BOUND -1 | ||
| 85 | #define H323_ERROR_RANGE -2 | ||
| 86 | |||
| 87 | |||
| 88 | /***************************************************************************** | ||
| 89 | * Decode Functions | ||
| 90 | ****************************************************************************/ | ||
| 91 | |||
| 92 | int DecodeRasMessage(unsigned char *buf, size_t sz, RasMessage * ras); | ||
| 93 | int DecodeQ931(unsigned char *buf, size_t sz, Q931 * q931); | ||
| 94 | int DecodeMultimediaSystemControlMessage(unsigned char *buf, size_t sz, | ||
| 95 | MultimediaSystemControlMessage * | ||
| 96 | mscm); | ||
| 97 | |||
| 98 | #endif | ||
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h new file mode 100644 index 000000000000..cc98f7aa5abe --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h | |||
| @@ -0,0 +1,938 @@ | |||
| 1 | /* Generated by Jing Min Zhao's ASN.1 parser, Mar 15 2006 | ||
| 2 | * | ||
| 3 | * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net> | ||
| 4 | * | ||
| 5 | * This source code is licensed under General Public License version 2. | ||
| 6 | */ | ||
| 7 | |||
| 8 | typedef struct TransportAddress_ipAddress { /* SEQUENCE */ | ||
| 9 | int options; /* No use */ | ||
| 10 | unsigned ip; | ||
| 11 | } TransportAddress_ipAddress; | ||
| 12 | |||
| 13 | typedef struct TransportAddress { /* CHOICE */ | ||
| 14 | enum { | ||
| 15 | eTransportAddress_ipAddress, | ||
| 16 | eTransportAddress_ipSourceRoute, | ||
| 17 | eTransportAddress_ipxAddress, | ||
| 18 | eTransportAddress_ip6Address, | ||
| 19 | eTransportAddress_netBios, | ||
| 20 | eTransportAddress_nsap, | ||
| 21 | eTransportAddress_nonStandardAddress, | ||
| 22 | } choice; | ||
| 23 | union { | ||
| 24 | TransportAddress_ipAddress ipAddress; | ||
| 25 | }; | ||
| 26 | } TransportAddress; | ||
| 27 | |||
| 28 | typedef struct DataProtocolCapability { /* CHOICE */ | ||
| 29 | enum { | ||
| 30 | eDataProtocolCapability_nonStandard, | ||
| 31 | eDataProtocolCapability_v14buffered, | ||
| 32 | eDataProtocolCapability_v42lapm, | ||
| 33 | eDataProtocolCapability_hdlcFrameTunnelling, | ||
| 34 | eDataProtocolCapability_h310SeparateVCStack, | ||
| 35 | eDataProtocolCapability_h310SingleVCStack, | ||
| 36 | eDataProtocolCapability_transparent, | ||
| 37 | eDataProtocolCapability_segmentationAndReassembly, | ||
| 38 | eDataProtocolCapability_hdlcFrameTunnelingwSAR, | ||
| 39 | eDataProtocolCapability_v120, | ||
| 40 | eDataProtocolCapability_separateLANStack, | ||
| 41 | eDataProtocolCapability_v76wCompression, | ||
| 42 | eDataProtocolCapability_tcp, | ||
| 43 | eDataProtocolCapability_udp, | ||
| 44 | } choice; | ||
| 45 | } DataProtocolCapability; | ||
| 46 | |||
| 47 | typedef struct DataApplicationCapability_application { /* CHOICE */ | ||
| 48 | enum { | ||
| 49 | eDataApplicationCapability_application_nonStandard, | ||
| 50 | eDataApplicationCapability_application_t120, | ||
| 51 | eDataApplicationCapability_application_dsm_cc, | ||
| 52 | eDataApplicationCapability_application_userData, | ||
| 53 | eDataApplicationCapability_application_t84, | ||
| 54 | eDataApplicationCapability_application_t434, | ||
| 55 | eDataApplicationCapability_application_h224, | ||
| 56 | eDataApplicationCapability_application_nlpid, | ||
| 57 | eDataApplicationCapability_application_dsvdControl, | ||
| 58 | eDataApplicationCapability_application_h222DataPartitioning, | ||
| 59 | eDataApplicationCapability_application_t30fax, | ||
| 60 | eDataApplicationCapability_application_t140, | ||
| 61 | eDataApplicationCapability_application_t38fax, | ||
| 62 | eDataApplicationCapability_application_genericDataCapability, | ||
| 63 | } choice; | ||
| 64 | union { | ||
| 65 | DataProtocolCapability t120; | ||
| 66 | }; | ||
| 67 | } DataApplicationCapability_application; | ||
| 68 | |||
| 69 | typedef struct DataApplicationCapability { /* SEQUENCE */ | ||
| 70 | int options; /* No use */ | ||
| 71 | DataApplicationCapability_application application; | ||
| 72 | } DataApplicationCapability; | ||
| 73 | |||
| 74 | typedef struct DataType { /* CHOICE */ | ||
| 75 | enum { | ||
| 76 | eDataType_nonStandard, | ||
| 77 | eDataType_nullData, | ||
| 78 | eDataType_videoData, | ||
| 79 | eDataType_audioData, | ||
| 80 | eDataType_data, | ||
| 81 | eDataType_encryptionData, | ||
| 82 | eDataType_h235Control, | ||
| 83 | eDataType_h235Media, | ||
| 84 | eDataType_multiplexedStream, | ||
| 85 | } choice; | ||
| 86 | union { | ||
| 87 | DataApplicationCapability data; | ||
| 88 | }; | ||
| 89 | } DataType; | ||
| 90 | |||
| 91 | typedef struct UnicastAddress_iPAddress { /* SEQUENCE */ | ||
| 92 | int options; /* No use */ | ||
| 93 | unsigned network; | ||
| 94 | } UnicastAddress_iPAddress; | ||
| 95 | |||
| 96 | typedef struct UnicastAddress { /* CHOICE */ | ||
| 97 | enum { | ||
| 98 | eUnicastAddress_iPAddress, | ||
| 99 | eUnicastAddress_iPXAddress, | ||
| 100 | eUnicastAddress_iP6Address, | ||
| 101 | eUnicastAddress_netBios, | ||
| 102 | eUnicastAddress_iPSourceRouteAddress, | ||
| 103 | eUnicastAddress_nsap, | ||
| 104 | eUnicastAddress_nonStandardAddress, | ||
| 105 | } choice; | ||
| 106 | union { | ||
| 107 | UnicastAddress_iPAddress iPAddress; | ||
| 108 | }; | ||
| 109 | } UnicastAddress; | ||
| 110 | |||
| 111 | typedef struct H245_TransportAddress { /* CHOICE */ | ||
| 112 | enum { | ||
| 113 | eH245_TransportAddress_unicastAddress, | ||
| 114 | eH245_TransportAddress_multicastAddress, | ||
| 115 | } choice; | ||
| 116 | union { | ||
| 117 | UnicastAddress unicastAddress; | ||
| 118 | }; | ||
| 119 | } H245_TransportAddress; | ||
| 120 | |||
| 121 | typedef struct H2250LogicalChannelParameters { /* SEQUENCE */ | ||
| 122 | enum { | ||
| 123 | eH2250LogicalChannelParameters_nonStandard = (1 << 31), | ||
| 124 | eH2250LogicalChannelParameters_associatedSessionID = | ||
| 125 | (1 << 30), | ||
| 126 | eH2250LogicalChannelParameters_mediaChannel = (1 << 29), | ||
| 127 | eH2250LogicalChannelParameters_mediaGuaranteedDelivery = | ||
| 128 | (1 << 28), | ||
| 129 | eH2250LogicalChannelParameters_mediaControlChannel = | ||
| 130 | (1 << 27), | ||
| 131 | eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery | ||
| 132 | = (1 << 26), | ||
| 133 | eH2250LogicalChannelParameters_silenceSuppression = (1 << 25), | ||
| 134 | eH2250LogicalChannelParameters_destination = (1 << 24), | ||
| 135 | eH2250LogicalChannelParameters_dynamicRTPPayloadType = | ||
| 136 | (1 << 23), | ||
| 137 | eH2250LogicalChannelParameters_mediaPacketization = (1 << 22), | ||
| 138 | eH2250LogicalChannelParameters_transportCapability = | ||
| 139 | (1 << 21), | ||
| 140 | eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20), | ||
| 141 | eH2250LogicalChannelParameters_source = (1 << 19), | ||
| 142 | } options; | ||
| 143 | H245_TransportAddress mediaChannel; | ||
| 144 | H245_TransportAddress mediaControlChannel; | ||
| 145 | } H2250LogicalChannelParameters; | ||
| 146 | |||
| 147 | typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters { /* CHOICE */ | ||
| 148 | enum { | ||
| 149 | eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters, | ||
| 150 | eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters, | ||
| 151 | eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters, | ||
| 152 | eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters, | ||
| 153 | eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none, | ||
| 154 | } choice; | ||
| 155 | union { | ||
| 156 | H2250LogicalChannelParameters h2250LogicalChannelParameters; | ||
| 157 | }; | ||
| 158 | } OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters; | ||
| 159 | |||
| 160 | typedef struct OpenLogicalChannel_forwardLogicalChannelParameters { /* SEQUENCE */ | ||
| 161 | enum { | ||
| 162 | eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber | ||
| 163 | = (1 << 31), | ||
| 164 | eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency | ||
| 165 | = (1 << 30), | ||
| 166 | eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor | ||
| 167 | = (1 << 29), | ||
| 168 | } options; | ||
| 169 | DataType dataType; | ||
| 170 | OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters | ||
| 171 | multiplexParameters; | ||
| 172 | } OpenLogicalChannel_forwardLogicalChannelParameters; | ||
| 173 | |||
| 174 | typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */ | ||
| 175 | enum { | ||
| 176 | eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters, | ||
| 177 | eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters, | ||
| 178 | eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters, | ||
| 179 | } choice; | ||
| 180 | union { | ||
| 181 | H2250LogicalChannelParameters h2250LogicalChannelParameters; | ||
| 182 | }; | ||
| 183 | } OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters; | ||
| 184 | |||
| 185 | typedef struct OpenLogicalChannel_reverseLogicalChannelParameters { /* SEQUENCE */ | ||
| 186 | enum { | ||
| 187 | eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters | ||
| 188 | = (1 << 31), | ||
| 189 | eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency | ||
| 190 | = (1 << 30), | ||
| 191 | eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor | ||
| 192 | = (1 << 29), | ||
| 193 | } options; | ||
| 194 | OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters | ||
| 195 | multiplexParameters; | ||
| 196 | } OpenLogicalChannel_reverseLogicalChannelParameters; | ||
| 197 | |||
| 198 | typedef struct NetworkAccessParameters_networkAddress { /* CHOICE */ | ||
| 199 | enum { | ||
| 200 | eNetworkAccessParameters_networkAddress_q2931Address, | ||
| 201 | eNetworkAccessParameters_networkAddress_e164Address, | ||
| 202 | eNetworkAccessParameters_networkAddress_localAreaAddress, | ||
| 203 | } choice; | ||
| 204 | union { | ||
| 205 | H245_TransportAddress localAreaAddress; | ||
| 206 | }; | ||
| 207 | } NetworkAccessParameters_networkAddress; | ||
| 208 | |||
| 209 | typedef struct NetworkAccessParameters { /* SEQUENCE */ | ||
| 210 | enum { | ||
| 211 | eNetworkAccessParameters_distribution = (1 << 31), | ||
| 212 | eNetworkAccessParameters_externalReference = (1 << 30), | ||
| 213 | eNetworkAccessParameters_t120SetupProcedure = (1 << 29), | ||
| 214 | } options; | ||
| 215 | NetworkAccessParameters_networkAddress networkAddress; | ||
| 216 | } NetworkAccessParameters; | ||
| 217 | |||
| 218 | typedef struct OpenLogicalChannel { /* SEQUENCE */ | ||
| 219 | enum { | ||
| 220 | eOpenLogicalChannel_reverseLogicalChannelParameters = | ||
| 221 | (1 << 31), | ||
| 222 | eOpenLogicalChannel_separateStack = (1 << 30), | ||
| 223 | eOpenLogicalChannel_encryptionSync = (1 << 29), | ||
| 224 | } options; | ||
| 225 | OpenLogicalChannel_forwardLogicalChannelParameters | ||
| 226 | forwardLogicalChannelParameters; | ||
| 227 | OpenLogicalChannel_reverseLogicalChannelParameters | ||
| 228 | reverseLogicalChannelParameters; | ||
| 229 | NetworkAccessParameters separateStack; | ||
| 230 | } OpenLogicalChannel; | ||
| 231 | |||
| 232 | typedef struct Setup_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 233 | int count; | ||
| 234 | OpenLogicalChannel item[30]; | ||
| 235 | } Setup_UUIE_fastStart; | ||
| 236 | |||
| 237 | typedef struct Setup_UUIE { /* SEQUENCE */ | ||
| 238 | enum { | ||
| 239 | eSetup_UUIE_h245Address = (1 << 31), | ||
| 240 | eSetup_UUIE_sourceAddress = (1 << 30), | ||
| 241 | eSetup_UUIE_destinationAddress = (1 << 29), | ||
| 242 | eSetup_UUIE_destCallSignalAddress = (1 << 28), | ||
| 243 | eSetup_UUIE_destExtraCallInfo = (1 << 27), | ||
| 244 | eSetup_UUIE_destExtraCRV = (1 << 26), | ||
| 245 | eSetup_UUIE_callServices = (1 << 25), | ||
| 246 | eSetup_UUIE_sourceCallSignalAddress = (1 << 24), | ||
| 247 | eSetup_UUIE_remoteExtensionAddress = (1 << 23), | ||
| 248 | eSetup_UUIE_callIdentifier = (1 << 22), | ||
| 249 | eSetup_UUIE_h245SecurityCapability = (1 << 21), | ||
| 250 | eSetup_UUIE_tokens = (1 << 20), | ||
| 251 | eSetup_UUIE_cryptoTokens = (1 << 19), | ||
| 252 | eSetup_UUIE_fastStart = (1 << 18), | ||
| 253 | eSetup_UUIE_mediaWaitForConnect = (1 << 17), | ||
| 254 | eSetup_UUIE_canOverlapSend = (1 << 16), | ||
| 255 | eSetup_UUIE_endpointIdentifier = (1 << 15), | ||
| 256 | eSetup_UUIE_multipleCalls = (1 << 14), | ||
| 257 | eSetup_UUIE_maintainConnection = (1 << 13), | ||
| 258 | eSetup_UUIE_connectionParameters = (1 << 12), | ||
| 259 | eSetup_UUIE_language = (1 << 11), | ||
| 260 | eSetup_UUIE_presentationIndicator = (1 << 10), | ||
| 261 | eSetup_UUIE_screeningIndicator = (1 << 9), | ||
| 262 | eSetup_UUIE_serviceControl = (1 << 8), | ||
| 263 | eSetup_UUIE_symmetricOperationRequired = (1 << 7), | ||
| 264 | eSetup_UUIE_capacity = (1 << 6), | ||
| 265 | eSetup_UUIE_circuitInfo = (1 << 5), | ||
| 266 | eSetup_UUIE_desiredProtocols = (1 << 4), | ||
| 267 | eSetup_UUIE_neededFeatures = (1 << 3), | ||
| 268 | eSetup_UUIE_desiredFeatures = (1 << 2), | ||
| 269 | eSetup_UUIE_supportedFeatures = (1 << 1), | ||
| 270 | eSetup_UUIE_parallelH245Control = (1 << 0), | ||
| 271 | } options; | ||
| 272 | TransportAddress h245Address; | ||
| 273 | TransportAddress destCallSignalAddress; | ||
| 274 | TransportAddress sourceCallSignalAddress; | ||
| 275 | Setup_UUIE_fastStart fastStart; | ||
| 276 | } Setup_UUIE; | ||
| 277 | |||
| 278 | typedef struct CallProceeding_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 279 | int count; | ||
| 280 | OpenLogicalChannel item[30]; | ||
| 281 | } CallProceeding_UUIE_fastStart; | ||
| 282 | |||
| 283 | typedef struct CallProceeding_UUIE { /* SEQUENCE */ | ||
| 284 | enum { | ||
| 285 | eCallProceeding_UUIE_h245Address = (1 << 31), | ||
| 286 | eCallProceeding_UUIE_callIdentifier = (1 << 30), | ||
| 287 | eCallProceeding_UUIE_h245SecurityMode = (1 << 29), | ||
| 288 | eCallProceeding_UUIE_tokens = (1 << 28), | ||
| 289 | eCallProceeding_UUIE_cryptoTokens = (1 << 27), | ||
| 290 | eCallProceeding_UUIE_fastStart = (1 << 26), | ||
| 291 | eCallProceeding_UUIE_multipleCalls = (1 << 25), | ||
| 292 | eCallProceeding_UUIE_maintainConnection = (1 << 24), | ||
| 293 | eCallProceeding_UUIE_fastConnectRefused = (1 << 23), | ||
| 294 | eCallProceeding_UUIE_featureSet = (1 << 22), | ||
| 295 | } options; | ||
| 296 | TransportAddress h245Address; | ||
| 297 | CallProceeding_UUIE_fastStart fastStart; | ||
| 298 | } CallProceeding_UUIE; | ||
| 299 | |||
| 300 | typedef struct Connect_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 301 | int count; | ||
| 302 | OpenLogicalChannel item[30]; | ||
| 303 | } Connect_UUIE_fastStart; | ||
| 304 | |||
| 305 | typedef struct Connect_UUIE { /* SEQUENCE */ | ||
| 306 | enum { | ||
| 307 | eConnect_UUIE_h245Address = (1 << 31), | ||
| 308 | eConnect_UUIE_callIdentifier = (1 << 30), | ||
| 309 | eConnect_UUIE_h245SecurityMode = (1 << 29), | ||
| 310 | eConnect_UUIE_tokens = (1 << 28), | ||
| 311 | eConnect_UUIE_cryptoTokens = (1 << 27), | ||
| 312 | eConnect_UUIE_fastStart = (1 << 26), | ||
| 313 | eConnect_UUIE_multipleCalls = (1 << 25), | ||
| 314 | eConnect_UUIE_maintainConnection = (1 << 24), | ||
| 315 | eConnect_UUIE_language = (1 << 23), | ||
| 316 | eConnect_UUIE_connectedAddress = (1 << 22), | ||
| 317 | eConnect_UUIE_presentationIndicator = (1 << 21), | ||
| 318 | eConnect_UUIE_screeningIndicator = (1 << 20), | ||
| 319 | eConnect_UUIE_fastConnectRefused = (1 << 19), | ||
| 320 | eConnect_UUIE_serviceControl = (1 << 18), | ||
| 321 | eConnect_UUIE_capacity = (1 << 17), | ||
| 322 | eConnect_UUIE_featureSet = (1 << 16), | ||
| 323 | } options; | ||
| 324 | TransportAddress h245Address; | ||
| 325 | Connect_UUIE_fastStart fastStart; | ||
| 326 | } Connect_UUIE; | ||
| 327 | |||
| 328 | typedef struct Alerting_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 329 | int count; | ||
| 330 | OpenLogicalChannel item[30]; | ||
| 331 | } Alerting_UUIE_fastStart; | ||
| 332 | |||
| 333 | typedef struct Alerting_UUIE { /* SEQUENCE */ | ||
| 334 | enum { | ||
| 335 | eAlerting_UUIE_h245Address = (1 << 31), | ||
| 336 | eAlerting_UUIE_callIdentifier = (1 << 30), | ||
| 337 | eAlerting_UUIE_h245SecurityMode = (1 << 29), | ||
| 338 | eAlerting_UUIE_tokens = (1 << 28), | ||
| 339 | eAlerting_UUIE_cryptoTokens = (1 << 27), | ||
| 340 | eAlerting_UUIE_fastStart = (1 << 26), | ||
| 341 | eAlerting_UUIE_multipleCalls = (1 << 25), | ||
| 342 | eAlerting_UUIE_maintainConnection = (1 << 24), | ||
| 343 | eAlerting_UUIE_alertingAddress = (1 << 23), | ||
| 344 | eAlerting_UUIE_presentationIndicator = (1 << 22), | ||
| 345 | eAlerting_UUIE_screeningIndicator = (1 << 21), | ||
| 346 | eAlerting_UUIE_fastConnectRefused = (1 << 20), | ||
| 347 | eAlerting_UUIE_serviceControl = (1 << 19), | ||
| 348 | eAlerting_UUIE_capacity = (1 << 18), | ||
| 349 | eAlerting_UUIE_featureSet = (1 << 17), | ||
| 350 | } options; | ||
| 351 | TransportAddress h245Address; | ||
| 352 | Alerting_UUIE_fastStart fastStart; | ||
| 353 | } Alerting_UUIE; | ||
| 354 | |||
| 355 | typedef struct Information_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 356 | int count; | ||
| 357 | OpenLogicalChannel item[30]; | ||
| 358 | } Information_UUIE_fastStart; | ||
| 359 | |||
| 360 | typedef struct Information_UUIE { /* SEQUENCE */ | ||
| 361 | enum { | ||
| 362 | eInformation_UUIE_callIdentifier = (1 << 31), | ||
| 363 | eInformation_UUIE_tokens = (1 << 30), | ||
| 364 | eInformation_UUIE_cryptoTokens = (1 << 29), | ||
| 365 | eInformation_UUIE_fastStart = (1 << 28), | ||
| 366 | eInformation_UUIE_fastConnectRefused = (1 << 27), | ||
| 367 | eInformation_UUIE_circuitInfo = (1 << 26), | ||
| 368 | } options; | ||
| 369 | Information_UUIE_fastStart fastStart; | ||
| 370 | } Information_UUIE; | ||
| 371 | |||
| 372 | typedef struct FacilityReason { /* CHOICE */ | ||
| 373 | enum { | ||
| 374 | eFacilityReason_routeCallToGatekeeper, | ||
| 375 | eFacilityReason_callForwarded, | ||
| 376 | eFacilityReason_routeCallToMC, | ||
| 377 | eFacilityReason_undefinedReason, | ||
| 378 | eFacilityReason_conferenceListChoice, | ||
| 379 | eFacilityReason_startH245, | ||
| 380 | eFacilityReason_noH245, | ||
| 381 | eFacilityReason_newTokens, | ||
| 382 | eFacilityReason_featureSetUpdate, | ||
| 383 | eFacilityReason_forwardedElements, | ||
| 384 | eFacilityReason_transportedInformation, | ||
| 385 | } choice; | ||
| 386 | } FacilityReason; | ||
| 387 | |||
| 388 | typedef struct Facility_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 389 | int count; | ||
| 390 | OpenLogicalChannel item[30]; | ||
| 391 | } Facility_UUIE_fastStart; | ||
| 392 | |||
| 393 | typedef struct Facility_UUIE { /* SEQUENCE */ | ||
| 394 | enum { | ||
| 395 | eFacility_UUIE_alternativeAddress = (1 << 31), | ||
| 396 | eFacility_UUIE_alternativeAliasAddress = (1 << 30), | ||
| 397 | eFacility_UUIE_conferenceID = (1 << 29), | ||
| 398 | eFacility_UUIE_callIdentifier = (1 << 28), | ||
| 399 | eFacility_UUIE_destExtraCallInfo = (1 << 27), | ||
| 400 | eFacility_UUIE_remoteExtensionAddress = (1 << 26), | ||
| 401 | eFacility_UUIE_tokens = (1 << 25), | ||
| 402 | eFacility_UUIE_cryptoTokens = (1 << 24), | ||
| 403 | eFacility_UUIE_conferences = (1 << 23), | ||
| 404 | eFacility_UUIE_h245Address = (1 << 22), | ||
| 405 | eFacility_UUIE_fastStart = (1 << 21), | ||
| 406 | eFacility_UUIE_multipleCalls = (1 << 20), | ||
| 407 | eFacility_UUIE_maintainConnection = (1 << 19), | ||
| 408 | eFacility_UUIE_fastConnectRefused = (1 << 18), | ||
| 409 | eFacility_UUIE_serviceControl = (1 << 17), | ||
| 410 | eFacility_UUIE_circuitInfo = (1 << 16), | ||
| 411 | eFacility_UUIE_featureSet = (1 << 15), | ||
| 412 | eFacility_UUIE_destinationInfo = (1 << 14), | ||
| 413 | eFacility_UUIE_h245SecurityMode = (1 << 13), | ||
| 414 | } options; | ||
| 415 | FacilityReason reason; | ||
| 416 | TransportAddress h245Address; | ||
| 417 | Facility_UUIE_fastStart fastStart; | ||
| 418 | } Facility_UUIE; | ||
| 419 | |||
| 420 | typedef struct Progress_UUIE_fastStart { /* SEQUENCE OF */ | ||
| 421 | int count; | ||
| 422 | OpenLogicalChannel item[30]; | ||
| 423 | } Progress_UUIE_fastStart; | ||
| 424 | |||
| 425 | typedef struct Progress_UUIE { /* SEQUENCE */ | ||
| 426 | enum { | ||
| 427 | eProgress_UUIE_h245Address = (1 << 31), | ||
| 428 | eProgress_UUIE_h245SecurityMode = (1 << 30), | ||
| 429 | eProgress_UUIE_tokens = (1 << 29), | ||
| 430 | eProgress_UUIE_cryptoTokens = (1 << 28), | ||
| 431 | eProgress_UUIE_fastStart = (1 << 27), | ||
| 432 | eProgress_UUIE_multipleCalls = (1 << 26), | ||
| 433 | eProgress_UUIE_maintainConnection = (1 << 25), | ||
| 434 | eProgress_UUIE_fastConnectRefused = (1 << 24), | ||
| 435 | } options; | ||
| 436 | TransportAddress h245Address; | ||
| 437 | Progress_UUIE_fastStart fastStart; | ||
| 438 | } Progress_UUIE; | ||
| 439 | |||
| 440 | typedef struct H323_UU_PDU_h323_message_body { /* CHOICE */ | ||
| 441 | enum { | ||
| 442 | eH323_UU_PDU_h323_message_body_setup, | ||
| 443 | eH323_UU_PDU_h323_message_body_callProceeding, | ||
| 444 | eH323_UU_PDU_h323_message_body_connect, | ||
| 445 | eH323_UU_PDU_h323_message_body_alerting, | ||
| 446 | eH323_UU_PDU_h323_message_body_information, | ||
| 447 | eH323_UU_PDU_h323_message_body_releaseComplete, | ||
| 448 | eH323_UU_PDU_h323_message_body_facility, | ||
| 449 | eH323_UU_PDU_h323_message_body_progress, | ||
| 450 | eH323_UU_PDU_h323_message_body_empty, | ||
| 451 | eH323_UU_PDU_h323_message_body_status, | ||
| 452 | eH323_UU_PDU_h323_message_body_statusInquiry, | ||
| 453 | eH323_UU_PDU_h323_message_body_setupAcknowledge, | ||
| 454 | eH323_UU_PDU_h323_message_body_notify, | ||
| 455 | } choice; | ||
| 456 | union { | ||
| 457 | Setup_UUIE setup; | ||
| 458 | CallProceeding_UUIE callProceeding; | ||
| 459 | Connect_UUIE connect; | ||
| 460 | Alerting_UUIE alerting; | ||
| 461 | Information_UUIE information; | ||
| 462 | Facility_UUIE facility; | ||
| 463 | Progress_UUIE progress; | ||
| 464 | }; | ||
| 465 | } H323_UU_PDU_h323_message_body; | ||
| 466 | |||
| 467 | typedef struct RequestMessage { /* CHOICE */ | ||
| 468 | enum { | ||
| 469 | eRequestMessage_nonStandard, | ||
| 470 | eRequestMessage_masterSlaveDetermination, | ||
| 471 | eRequestMessage_terminalCapabilitySet, | ||
| 472 | eRequestMessage_openLogicalChannel, | ||
| 473 | eRequestMessage_closeLogicalChannel, | ||
| 474 | eRequestMessage_requestChannelClose, | ||
| 475 | eRequestMessage_multiplexEntrySend, | ||
| 476 | eRequestMessage_requestMultiplexEntry, | ||
| 477 | eRequestMessage_requestMode, | ||
| 478 | eRequestMessage_roundTripDelayRequest, | ||
| 479 | eRequestMessage_maintenanceLoopRequest, | ||
| 480 | eRequestMessage_communicationModeRequest, | ||
| 481 | eRequestMessage_conferenceRequest, | ||
| 482 | eRequestMessage_multilinkRequest, | ||
| 483 | eRequestMessage_logicalChannelRateRequest, | ||
| 484 | } choice; | ||
| 485 | union { | ||
| 486 | OpenLogicalChannel openLogicalChannel; | ||
| 487 | }; | ||
| 488 | } RequestMessage; | ||
| 489 | |||
| 490 | typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */ | ||
| 491 | enum { | ||
| 492 | eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters, | ||
| 493 | eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters, | ||
| 494 | } choice; | ||
| 495 | union { | ||
| 496 | H2250LogicalChannelParameters h2250LogicalChannelParameters; | ||
| 497 | }; | ||
| 498 | } OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters; | ||
| 499 | |||
| 500 | typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters { /* SEQUENCE */ | ||
| 501 | enum { | ||
| 502 | eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber | ||
| 503 | = (1 << 31), | ||
| 504 | eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters | ||
| 505 | = (1 << 30), | ||
| 506 | eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor | ||
| 507 | = (1 << 29), | ||
| 508 | } options; | ||
| 509 | OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters | ||
| 510 | multiplexParameters; | ||
| 511 | } OpenLogicalChannelAck_reverseLogicalChannelParameters; | ||
| 512 | |||
| 513 | typedef struct H2250LogicalChannelAckParameters { /* SEQUENCE */ | ||
| 514 | enum { | ||
| 515 | eH2250LogicalChannelAckParameters_nonStandard = (1 << 31), | ||
| 516 | eH2250LogicalChannelAckParameters_sessionID = (1 << 30), | ||
| 517 | eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29), | ||
| 518 | eH2250LogicalChannelAckParameters_mediaControlChannel = | ||
| 519 | (1 << 28), | ||
| 520 | eH2250LogicalChannelAckParameters_dynamicRTPPayloadType = | ||
| 521 | (1 << 27), | ||
| 522 | eH2250LogicalChannelAckParameters_flowControlToZero = | ||
| 523 | (1 << 26), | ||
| 524 | eH2250LogicalChannelAckParameters_portNumber = (1 << 25), | ||
| 525 | } options; | ||
| 526 | H245_TransportAddress mediaChannel; | ||
| 527 | H245_TransportAddress mediaControlChannel; | ||
| 528 | } H2250LogicalChannelAckParameters; | ||
| 529 | |||
| 530 | typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters { /* CHOICE */ | ||
| 531 | enum { | ||
| 532 | eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters, | ||
| 533 | } choice; | ||
| 534 | union { | ||
| 535 | H2250LogicalChannelAckParameters | ||
| 536 | h2250LogicalChannelAckParameters; | ||
| 537 | }; | ||
| 538 | } OpenLogicalChannelAck_forwardMultiplexAckParameters; | ||
| 539 | |||
| 540 | typedef struct OpenLogicalChannelAck { /* SEQUENCE */ | ||
| 541 | enum { | ||
| 542 | eOpenLogicalChannelAck_reverseLogicalChannelParameters = | ||
| 543 | (1 << 31), | ||
| 544 | eOpenLogicalChannelAck_separateStack = (1 << 30), | ||
| 545 | eOpenLogicalChannelAck_forwardMultiplexAckParameters = | ||
| 546 | (1 << 29), | ||
| 547 | eOpenLogicalChannelAck_encryptionSync = (1 << 28), | ||
| 548 | } options; | ||
| 549 | OpenLogicalChannelAck_reverseLogicalChannelParameters | ||
| 550 | reverseLogicalChannelParameters; | ||
| 551 | OpenLogicalChannelAck_forwardMultiplexAckParameters | ||
| 552 | forwardMultiplexAckParameters; | ||
| 553 | } OpenLogicalChannelAck; | ||
| 554 | |||
| 555 | typedef struct ResponseMessage { /* CHOICE */ | ||
| 556 | enum { | ||
| 557 | eResponseMessage_nonStandard, | ||
| 558 | eResponseMessage_masterSlaveDeterminationAck, | ||
| 559 | eResponseMessage_masterSlaveDeterminationReject, | ||
| 560 | eResponseMessage_terminalCapabilitySetAck, | ||
| 561 | eResponseMessage_terminalCapabilitySetReject, | ||
| 562 | eResponseMessage_openLogicalChannelAck, | ||
| 563 | eResponseMessage_openLogicalChannelReject, | ||
| 564 | eResponseMessage_closeLogicalChannelAck, | ||
| 565 | eResponseMessage_requestChannelCloseAck, | ||
| 566 | eResponseMessage_requestChannelCloseReject, | ||
| 567 | eResponseMessage_multiplexEntrySendAck, | ||
| 568 | eResponseMessage_multiplexEntrySendReject, | ||
| 569 | eResponseMessage_requestMultiplexEntryAck, | ||
| 570 | eResponseMessage_requestMultiplexEntryReject, | ||
| 571 | eResponseMessage_requestModeAck, | ||
| 572 | eResponseMessage_requestModeReject, | ||
| 573 | eResponseMessage_roundTripDelayResponse, | ||
| 574 | eResponseMessage_maintenanceLoopAck, | ||
| 575 | eResponseMessage_maintenanceLoopReject, | ||
| 576 | eResponseMessage_communicationModeResponse, | ||
| 577 | eResponseMessage_conferenceResponse, | ||
| 578 | eResponseMessage_multilinkResponse, | ||
| 579 | eResponseMessage_logicalChannelRateAcknowledge, | ||
| 580 | eResponseMessage_logicalChannelRateReject, | ||
| 581 | } choice; | ||
| 582 | union { | ||
| 583 | OpenLogicalChannelAck openLogicalChannelAck; | ||
| 584 | }; | ||
| 585 | } ResponseMessage; | ||
| 586 | |||
| 587 | typedef struct MultimediaSystemControlMessage { /* CHOICE */ | ||
| 588 | enum { | ||
| 589 | eMultimediaSystemControlMessage_request, | ||
| 590 | eMultimediaSystemControlMessage_response, | ||
| 591 | eMultimediaSystemControlMessage_command, | ||
| 592 | eMultimediaSystemControlMessage_indication, | ||
| 593 | } choice; | ||
| 594 | union { | ||
| 595 | RequestMessage request; | ||
| 596 | ResponseMessage response; | ||
| 597 | }; | ||
| 598 | } MultimediaSystemControlMessage; | ||
| 599 | |||
| 600 | typedef struct H323_UU_PDU_h245Control { /* SEQUENCE OF */ | ||
| 601 | int count; | ||
| 602 | MultimediaSystemControlMessage item[4]; | ||
| 603 | } H323_UU_PDU_h245Control; | ||
| 604 | |||
| 605 | typedef struct H323_UU_PDU { /* SEQUENCE */ | ||
| 606 | enum { | ||
| 607 | eH323_UU_PDU_nonStandardData = (1 << 31), | ||
| 608 | eH323_UU_PDU_h4501SupplementaryService = (1 << 30), | ||
| 609 | eH323_UU_PDU_h245Tunneling = (1 << 29), | ||
| 610 | eH323_UU_PDU_h245Control = (1 << 28), | ||
| 611 | eH323_UU_PDU_nonStandardControl = (1 << 27), | ||
| 612 | eH323_UU_PDU_callLinkage = (1 << 26), | ||
| 613 | eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25), | ||
| 614 | eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24), | ||
| 615 | eH323_UU_PDU_stimulusControl = (1 << 23), | ||
| 616 | eH323_UU_PDU_genericData = (1 << 22), | ||
| 617 | } options; | ||
| 618 | H323_UU_PDU_h323_message_body h323_message_body; | ||
| 619 | H323_UU_PDU_h245Control h245Control; | ||
| 620 | } H323_UU_PDU; | ||
| 621 | |||
| 622 | typedef struct H323_UserInformation { /* SEQUENCE */ | ||
| 623 | enum { | ||
| 624 | eH323_UserInformation_user_data = (1 << 31), | ||
| 625 | } options; | ||
| 626 | H323_UU_PDU h323_uu_pdu; | ||
| 627 | } H323_UserInformation; | ||
| 628 | |||
| 629 | typedef struct GatekeeperRequest { /* SEQUENCE */ | ||
| 630 | enum { | ||
| 631 | eGatekeeperRequest_nonStandardData = (1 << 31), | ||
| 632 | eGatekeeperRequest_gatekeeperIdentifier = (1 << 30), | ||
| 633 | eGatekeeperRequest_callServices = (1 << 29), | ||
| 634 | eGatekeeperRequest_endpointAlias = (1 << 28), | ||
| 635 | eGatekeeperRequest_alternateEndpoints = (1 << 27), | ||
| 636 | eGatekeeperRequest_tokens = (1 << 26), | ||
| 637 | eGatekeeperRequest_cryptoTokens = (1 << 25), | ||
| 638 | eGatekeeperRequest_authenticationCapability = (1 << 24), | ||
| 639 | eGatekeeperRequest_algorithmOIDs = (1 << 23), | ||
| 640 | eGatekeeperRequest_integrity = (1 << 22), | ||
| 641 | eGatekeeperRequest_integrityCheckValue = (1 << 21), | ||
| 642 | eGatekeeperRequest_supportsAltGK = (1 << 20), | ||
| 643 | eGatekeeperRequest_featureSet = (1 << 19), | ||
| 644 | eGatekeeperRequest_genericData = (1 << 18), | ||
| 645 | } options; | ||
| 646 | TransportAddress rasAddress; | ||
| 647 | } GatekeeperRequest; | ||
| 648 | |||
| 649 | typedef struct GatekeeperConfirm { /* SEQUENCE */ | ||
| 650 | enum { | ||
| 651 | eGatekeeperConfirm_nonStandardData = (1 << 31), | ||
| 652 | eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30), | ||
| 653 | eGatekeeperConfirm_alternateGatekeeper = (1 << 29), | ||
| 654 | eGatekeeperConfirm_authenticationMode = (1 << 28), | ||
| 655 | eGatekeeperConfirm_tokens = (1 << 27), | ||
| 656 | eGatekeeperConfirm_cryptoTokens = (1 << 26), | ||
| 657 | eGatekeeperConfirm_algorithmOID = (1 << 25), | ||
| 658 | eGatekeeperConfirm_integrity = (1 << 24), | ||
| 659 | eGatekeeperConfirm_integrityCheckValue = (1 << 23), | ||
| 660 | eGatekeeperConfirm_featureSet = (1 << 22), | ||
| 661 | eGatekeeperConfirm_genericData = (1 << 21), | ||
| 662 | } options; | ||
| 663 | TransportAddress rasAddress; | ||
| 664 | } GatekeeperConfirm; | ||
| 665 | |||
| 666 | typedef struct RegistrationRequest_callSignalAddress { /* SEQUENCE OF */ | ||
| 667 | int count; | ||
| 668 | TransportAddress item[10]; | ||
| 669 | } RegistrationRequest_callSignalAddress; | ||
| 670 | |||
| 671 | typedef struct RegistrationRequest_rasAddress { /* SEQUENCE OF */ | ||
| 672 | int count; | ||
| 673 | TransportAddress item[10]; | ||
| 674 | } RegistrationRequest_rasAddress; | ||
| 675 | |||
| 676 | typedef struct RegistrationRequest { /* SEQUENCE */ | ||
| 677 | enum { | ||
| 678 | eRegistrationRequest_nonStandardData = (1 << 31), | ||
| 679 | eRegistrationRequest_terminalAlias = (1 << 30), | ||
| 680 | eRegistrationRequest_gatekeeperIdentifier = (1 << 29), | ||
| 681 | eRegistrationRequest_alternateEndpoints = (1 << 28), | ||
| 682 | eRegistrationRequest_timeToLive = (1 << 27), | ||
| 683 | eRegistrationRequest_tokens = (1 << 26), | ||
| 684 | eRegistrationRequest_cryptoTokens = (1 << 25), | ||
| 685 | eRegistrationRequest_integrityCheckValue = (1 << 24), | ||
| 686 | eRegistrationRequest_keepAlive = (1 << 23), | ||
| 687 | eRegistrationRequest_endpointIdentifier = (1 << 22), | ||
| 688 | eRegistrationRequest_willSupplyUUIEs = (1 << 21), | ||
| 689 | eRegistrationRequest_maintainConnection = (1 << 20), | ||
| 690 | eRegistrationRequest_alternateTransportAddresses = (1 << 19), | ||
| 691 | eRegistrationRequest_additiveRegistration = (1 << 18), | ||
| 692 | eRegistrationRequest_terminalAliasPattern = (1 << 17), | ||
| 693 | eRegistrationRequest_supportsAltGK = (1 << 16), | ||
| 694 | eRegistrationRequest_usageReportingCapability = (1 << 15), | ||
| 695 | eRegistrationRequest_multipleCalls = (1 << 14), | ||
| 696 | eRegistrationRequest_supportedH248Packages = (1 << 13), | ||
| 697 | eRegistrationRequest_callCreditCapability = (1 << 12), | ||
| 698 | eRegistrationRequest_capacityReportingCapability = (1 << 11), | ||
| 699 | eRegistrationRequest_capacity = (1 << 10), | ||
| 700 | eRegistrationRequest_featureSet = (1 << 9), | ||
| 701 | eRegistrationRequest_genericData = (1 << 8), | ||
| 702 | } options; | ||
| 703 | RegistrationRequest_callSignalAddress callSignalAddress; | ||
| 704 | RegistrationRequest_rasAddress rasAddress; | ||
| 705 | unsigned timeToLive; | ||
| 706 | } RegistrationRequest; | ||
| 707 | |||
| 708 | typedef struct RegistrationConfirm_callSignalAddress { /* SEQUENCE OF */ | ||
| 709 | int count; | ||
| 710 | TransportAddress item[10]; | ||
| 711 | } RegistrationConfirm_callSignalAddress; | ||
| 712 | |||
| 713 | typedef struct RegistrationConfirm { /* SEQUENCE */ | ||
| 714 | enum { | ||
| 715 | eRegistrationConfirm_nonStandardData = (1 << 31), | ||
| 716 | eRegistrationConfirm_terminalAlias = (1 << 30), | ||
| 717 | eRegistrationConfirm_gatekeeperIdentifier = (1 << 29), | ||
| 718 | eRegistrationConfirm_alternateGatekeeper = (1 << 28), | ||
| 719 | eRegistrationConfirm_timeToLive = (1 << 27), | ||
| 720 | eRegistrationConfirm_tokens = (1 << 26), | ||
| 721 | eRegistrationConfirm_cryptoTokens = (1 << 25), | ||
| 722 | eRegistrationConfirm_integrityCheckValue = (1 << 24), | ||
| 723 | eRegistrationConfirm_willRespondToIRR = (1 << 23), | ||
| 724 | eRegistrationConfirm_preGrantedARQ = (1 << 22), | ||
| 725 | eRegistrationConfirm_maintainConnection = (1 << 21), | ||
| 726 | eRegistrationConfirm_serviceControl = (1 << 20), | ||
| 727 | eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19), | ||
| 728 | eRegistrationConfirm_terminalAliasPattern = (1 << 18), | ||
| 729 | eRegistrationConfirm_supportedPrefixes = (1 << 17), | ||
| 730 | eRegistrationConfirm_usageSpec = (1 << 16), | ||
| 731 | eRegistrationConfirm_featureServerAlias = (1 << 15), | ||
| 732 | eRegistrationConfirm_capacityReportingSpec = (1 << 14), | ||
| 733 | eRegistrationConfirm_featureSet = (1 << 13), | ||
| 734 | eRegistrationConfirm_genericData = (1 << 12), | ||
| 735 | } options; | ||
| 736 | RegistrationConfirm_callSignalAddress callSignalAddress; | ||
| 737 | unsigned timeToLive; | ||
| 738 | } RegistrationConfirm; | ||
| 739 | |||
| 740 | typedef struct UnregistrationRequest_callSignalAddress { /* SEQUENCE OF */ | ||
| 741 | int count; | ||
| 742 | TransportAddress item[10]; | ||
| 743 | } UnregistrationRequest_callSignalAddress; | ||
| 744 | |||
| 745 | typedef struct UnregistrationRequest { /* SEQUENCE */ | ||
| 746 | enum { | ||
| 747 | eUnregistrationRequest_endpointAlias = (1 << 31), | ||
| 748 | eUnregistrationRequest_nonStandardData = (1 << 30), | ||
| 749 | eUnregistrationRequest_endpointIdentifier = (1 << 29), | ||
| 750 | eUnregistrationRequest_alternateEndpoints = (1 << 28), | ||
| 751 | eUnregistrationRequest_gatekeeperIdentifier = (1 << 27), | ||
| 752 | eUnregistrationRequest_tokens = (1 << 26), | ||
| 753 | eUnregistrationRequest_cryptoTokens = (1 << 25), | ||
| 754 | eUnregistrationRequest_integrityCheckValue = (1 << 24), | ||
| 755 | eUnregistrationRequest_reason = (1 << 23), | ||
| 756 | eUnregistrationRequest_endpointAliasPattern = (1 << 22), | ||
| 757 | eUnregistrationRequest_supportedPrefixes = (1 << 21), | ||
| 758 | eUnregistrationRequest_alternateGatekeeper = (1 << 20), | ||
| 759 | eUnregistrationRequest_genericData = (1 << 19), | ||
| 760 | } options; | ||
| 761 | UnregistrationRequest_callSignalAddress callSignalAddress; | ||
| 762 | } UnregistrationRequest; | ||
| 763 | |||
| 764 | typedef struct AdmissionRequest { /* SEQUENCE */ | ||
| 765 | enum { | ||
| 766 | eAdmissionRequest_callModel = (1 << 31), | ||
| 767 | eAdmissionRequest_destinationInfo = (1 << 30), | ||
| 768 | eAdmissionRequest_destCallSignalAddress = (1 << 29), | ||
| 769 | eAdmissionRequest_destExtraCallInfo = (1 << 28), | ||
| 770 | eAdmissionRequest_srcCallSignalAddress = (1 << 27), | ||
| 771 | eAdmissionRequest_nonStandardData = (1 << 26), | ||
| 772 | eAdmissionRequest_callServices = (1 << 25), | ||
| 773 | eAdmissionRequest_canMapAlias = (1 << 24), | ||
| 774 | eAdmissionRequest_callIdentifier = (1 << 23), | ||
| 775 | eAdmissionRequest_srcAlternatives = (1 << 22), | ||
| 776 | eAdmissionRequest_destAlternatives = (1 << 21), | ||
| 777 | eAdmissionRequest_gatekeeperIdentifier = (1 << 20), | ||
| 778 | eAdmissionRequest_tokens = (1 << 19), | ||
| 779 | eAdmissionRequest_cryptoTokens = (1 << 18), | ||
| 780 | eAdmissionRequest_integrityCheckValue = (1 << 17), | ||
| 781 | eAdmissionRequest_transportQOS = (1 << 16), | ||
| 782 | eAdmissionRequest_willSupplyUUIEs = (1 << 15), | ||
| 783 | eAdmissionRequest_callLinkage = (1 << 14), | ||
| 784 | eAdmissionRequest_gatewayDataRate = (1 << 13), | ||
| 785 | eAdmissionRequest_capacity = (1 << 12), | ||
| 786 | eAdmissionRequest_circuitInfo = (1 << 11), | ||
| 787 | eAdmissionRequest_desiredProtocols = (1 << 10), | ||
| 788 | eAdmissionRequest_desiredTunnelledProtocol = (1 << 9), | ||
| 789 | eAdmissionRequest_featureSet = (1 << 8), | ||
| 790 | eAdmissionRequest_genericData = (1 << 7), | ||
| 791 | } options; | ||
| 792 | TransportAddress destCallSignalAddress; | ||
| 793 | TransportAddress srcCallSignalAddress; | ||
| 794 | } AdmissionRequest; | ||
| 795 | |||
| 796 | typedef struct AdmissionConfirm { /* SEQUENCE */ | ||
| 797 | enum { | ||
| 798 | eAdmissionConfirm_irrFrequency = (1 << 31), | ||
| 799 | eAdmissionConfirm_nonStandardData = (1 << 30), | ||
| 800 | eAdmissionConfirm_destinationInfo = (1 << 29), | ||
| 801 | eAdmissionConfirm_destExtraCallInfo = (1 << 28), | ||
| 802 | eAdmissionConfirm_destinationType = (1 << 27), | ||
| 803 | eAdmissionConfirm_remoteExtensionAddress = (1 << 26), | ||
| 804 | eAdmissionConfirm_alternateEndpoints = (1 << 25), | ||
| 805 | eAdmissionConfirm_tokens = (1 << 24), | ||
| 806 | eAdmissionConfirm_cryptoTokens = (1 << 23), | ||
| 807 | eAdmissionConfirm_integrityCheckValue = (1 << 22), | ||
| 808 | eAdmissionConfirm_transportQOS = (1 << 21), | ||
| 809 | eAdmissionConfirm_willRespondToIRR = (1 << 20), | ||
| 810 | eAdmissionConfirm_uuiesRequested = (1 << 19), | ||
| 811 | eAdmissionConfirm_language = (1 << 18), | ||
| 812 | eAdmissionConfirm_alternateTransportAddresses = (1 << 17), | ||
| 813 | eAdmissionConfirm_useSpecifiedTransport = (1 << 16), | ||
| 814 | eAdmissionConfirm_circuitInfo = (1 << 15), | ||
| 815 | eAdmissionConfirm_usageSpec = (1 << 14), | ||
| 816 | eAdmissionConfirm_supportedProtocols = (1 << 13), | ||
| 817 | eAdmissionConfirm_serviceControl = (1 << 12), | ||
| 818 | eAdmissionConfirm_multipleCalls = (1 << 11), | ||
| 819 | eAdmissionConfirm_featureSet = (1 << 10), | ||
| 820 | eAdmissionConfirm_genericData = (1 << 9), | ||
| 821 | } options; | ||
| 822 | TransportAddress destCallSignalAddress; | ||
| 823 | } AdmissionConfirm; | ||
| 824 | |||
| 825 | typedef struct LocationRequest { /* SEQUENCE */ | ||
| 826 | enum { | ||
| 827 | eLocationRequest_endpointIdentifier = (1 << 31), | ||
| 828 | eLocationRequest_nonStandardData = (1 << 30), | ||
| 829 | eLocationRequest_sourceInfo = (1 << 29), | ||
| 830 | eLocationRequest_canMapAlias = (1 << 28), | ||
| 831 | eLocationRequest_gatekeeperIdentifier = (1 << 27), | ||
| 832 | eLocationRequest_tokens = (1 << 26), | ||
| 833 | eLocationRequest_cryptoTokens = (1 << 25), | ||
| 834 | eLocationRequest_integrityCheckValue = (1 << 24), | ||
| 835 | eLocationRequest_desiredProtocols = (1 << 23), | ||
| 836 | eLocationRequest_desiredTunnelledProtocol = (1 << 22), | ||
| 837 | eLocationRequest_featureSet = (1 << 21), | ||
| 838 | eLocationRequest_genericData = (1 << 20), | ||
| 839 | eLocationRequest_hopCount = (1 << 19), | ||
| 840 | eLocationRequest_circuitInfo = (1 << 18), | ||
| 841 | } options; | ||
| 842 | TransportAddress replyAddress; | ||
| 843 | } LocationRequest; | ||
| 844 | |||
| 845 | typedef struct LocationConfirm { /* SEQUENCE */ | ||
| 846 | enum { | ||
| 847 | eLocationConfirm_nonStandardData = (1 << 31), | ||
| 848 | eLocationConfirm_destinationInfo = (1 << 30), | ||
| 849 | eLocationConfirm_destExtraCallInfo = (1 << 29), | ||
| 850 | eLocationConfirm_destinationType = (1 << 28), | ||
| 851 | eLocationConfirm_remoteExtensionAddress = (1 << 27), | ||
| 852 | eLocationConfirm_alternateEndpoints = (1 << 26), | ||
| 853 | eLocationConfirm_tokens = (1 << 25), | ||
| 854 | eLocationConfirm_cryptoTokens = (1 << 24), | ||
| 855 | eLocationConfirm_integrityCheckValue = (1 << 23), | ||
| 856 | eLocationConfirm_alternateTransportAddresses = (1 << 22), | ||
| 857 | eLocationConfirm_supportedProtocols = (1 << 21), | ||
| 858 | eLocationConfirm_multipleCalls = (1 << 20), | ||
| 859 | eLocationConfirm_featureSet = (1 << 19), | ||
| 860 | eLocationConfirm_genericData = (1 << 18), | ||
| 861 | eLocationConfirm_circuitInfo = (1 << 17), | ||
| 862 | eLocationConfirm_serviceControl = (1 << 16), | ||
| 863 | } options; | ||
| 864 | TransportAddress callSignalAddress; | ||
| 865 | TransportAddress rasAddress; | ||
| 866 | } LocationConfirm; | ||
| 867 | |||
| 868 | typedef struct InfoRequestResponse_callSignalAddress { /* SEQUENCE OF */ | ||
| 869 | int count; | ||
| 870 | TransportAddress item[10]; | ||
| 871 | } InfoRequestResponse_callSignalAddress; | ||
| 872 | |||
| 873 | typedef struct InfoRequestResponse { /* SEQUENCE */ | ||
| 874 | enum { | ||
| 875 | eInfoRequestResponse_nonStandardData = (1 << 31), | ||
| 876 | eInfoRequestResponse_endpointAlias = (1 << 30), | ||
| 877 | eInfoRequestResponse_perCallInfo = (1 << 29), | ||
| 878 | eInfoRequestResponse_tokens = (1 << 28), | ||
| 879 | eInfoRequestResponse_cryptoTokens = (1 << 27), | ||
| 880 | eInfoRequestResponse_integrityCheckValue = (1 << 26), | ||
| 881 | eInfoRequestResponse_needResponse = (1 << 25), | ||
| 882 | eInfoRequestResponse_capacity = (1 << 24), | ||
| 883 | eInfoRequestResponse_irrStatus = (1 << 23), | ||
| 884 | eInfoRequestResponse_unsolicited = (1 << 22), | ||
| 885 | eInfoRequestResponse_genericData = (1 << 21), | ||
| 886 | } options; | ||
| 887 | TransportAddress rasAddress; | ||
| 888 | InfoRequestResponse_callSignalAddress callSignalAddress; | ||
| 889 | } InfoRequestResponse; | ||
| 890 | |||
| 891 | typedef struct RasMessage { /* CHOICE */ | ||
| 892 | enum { | ||
| 893 | eRasMessage_gatekeeperRequest, | ||
| 894 | eRasMessage_gatekeeperConfirm, | ||
| 895 | eRasMessage_gatekeeperReject, | ||
| 896 | eRasMessage_registrationRequest, | ||
| 897 | eRasMessage_registrationConfirm, | ||
| 898 | eRasMessage_registrationReject, | ||
| 899 | eRasMessage_unregistrationRequest, | ||
| 900 | eRasMessage_unregistrationConfirm, | ||
| 901 | eRasMessage_unregistrationReject, | ||
| 902 | eRasMessage_admissionRequest, | ||
| 903 | eRasMessage_admissionConfirm, | ||
| 904 | eRasMessage_admissionReject, | ||
| 905 | eRasMessage_bandwidthRequest, | ||
| 906 | eRasMessage_bandwidthConfirm, | ||
| 907 | eRasMessage_bandwidthReject, | ||
| 908 | eRasMessage_disengageRequest, | ||
| 909 | eRasMessage_disengageConfirm, | ||
| 910 | eRasMessage_disengageReject, | ||
| 911 | eRasMessage_locationRequest, | ||
| 912 | eRasMessage_locationConfirm, | ||
| 913 | eRasMessage_locationReject, | ||
| 914 | eRasMessage_infoRequest, | ||
| 915 | eRasMessage_infoRequestResponse, | ||
| 916 | eRasMessage_nonStandardMessage, | ||
| 917 | eRasMessage_unknownMessageResponse, | ||
| 918 | eRasMessage_requestInProgress, | ||
| 919 | eRasMessage_resourcesAvailableIndicate, | ||
| 920 | eRasMessage_resourcesAvailableConfirm, | ||
| 921 | eRasMessage_infoRequestAck, | ||
| 922 | eRasMessage_infoRequestNak, | ||
| 923 | eRasMessage_serviceControlIndication, | ||
| 924 | eRasMessage_serviceControlResponse, | ||
| 925 | } choice; | ||
| 926 | union { | ||
| 927 | GatekeeperRequest gatekeeperRequest; | ||
| 928 | GatekeeperConfirm gatekeeperConfirm; | ||
| 929 | RegistrationRequest registrationRequest; | ||
| 930 | RegistrationConfirm registrationConfirm; | ||
| 931 | UnregistrationRequest unregistrationRequest; | ||
| 932 | AdmissionRequest admissionRequest; | ||
| 933 | AdmissionConfirm admissionConfirm; | ||
| 934 | LocationRequest locationRequest; | ||
| 935 | LocationConfirm locationConfirm; | ||
| 936 | InfoRequestResponse infoRequestResponse; | ||
| 937 | }; | ||
| 938 | } RasMessage; | ||
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 14f2bd010884..52a7b9e76428 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h | |||
| @@ -73,6 +73,9 @@ enum nf_ip6_hook_priorities { | |||
| 73 | }; | 73 | }; |
| 74 | 74 | ||
| 75 | #ifdef CONFIG_NETFILTER | 75 | #ifdef CONFIG_NETFILTER |
| 76 | extern unsigned int nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, | ||
| 77 | unsigned int dataoff, u_int8_t protocol); | ||
| 78 | |||
| 76 | extern int ipv6_netfilter_init(void); | 79 | extern int ipv6_netfilter_init(void); |
| 77 | extern void ipv6_netfilter_fini(void); | 80 | extern void ipv6_netfilter_fini(void); |
| 78 | #else /* CONFIG_NETFILTER */ | 81 | #else /* CONFIG_NETFILTER */ |
diff --git a/include/linux/numa.h b/include/linux/numa.h index f0c539bd3cfc..e481feb1bfd8 100644 --- a/include/linux/numa.h +++ b/include/linux/numa.h | |||
| @@ -3,11 +3,9 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/config.h> | 4 | #include <linux/config.h> |
| 5 | 5 | ||
| 6 | #ifndef CONFIG_FLATMEM | 6 | #ifdef CONFIG_NODES_SHIFT |
| 7 | #include <asm/numnodes.h> | 7 | #define NODES_SHIFT CONFIG_NODES_SHIFT |
| 8 | #endif | 8 | #else |
| 9 | |||
| 10 | #ifndef NODES_SHIFT | ||
| 11 | #define NODES_SHIFT 0 | 9 | #define NODES_SHIFT 0 |
| 12 | #endif | 10 | #endif |
| 13 | 11 | ||
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 9ea629c02a4b..d276a4e2f825 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
| @@ -48,8 +48,20 @@ | |||
| 48 | 48 | ||
| 49 | /* | 49 | /* |
| 50 | * Don't use the *_dontuse flags. Use the macros. Otherwise you'll break | 50 | * Don't use the *_dontuse flags. Use the macros. Otherwise you'll break |
| 51 | * locked- and dirty-page accounting. The top eight bits of page->flags are | 51 | * locked- and dirty-page accounting. |
| 52 | * used for page->zone, so putting flag bits there doesn't work. | 52 | * |
| 53 | * The page flags field is split into two parts, the main flags area | ||
| 54 | * which extends from the low bits upwards, and the fields area which | ||
| 55 | * extends from the high bits downwards. | ||
| 56 | * | ||
| 57 | * | FIELD | ... | FLAGS | | ||
| 58 | * N-1 ^ 0 | ||
| 59 | * (N-FLAGS_RESERVED) | ||
| 60 | * | ||
| 61 | * The fields area is reserved for fields mapping zone, node and SPARSEMEM | ||
| 62 | * section. The boundry between these two areas is defined by | ||
| 63 | * FLAGS_RESERVED which defines the width of the fields section | ||
| 64 | * (see linux/mmzone.h). New flags must _not_ overlap with this area. | ||
| 53 | */ | 65 | */ |
| 54 | #define PG_locked 0 /* Page is locked. Don't touch. */ | 66 | #define PG_locked 0 /* Page is locked. Don't touch. */ |
| 55 | #define PG_error 1 | 67 | #define PG_error 1 |
| @@ -74,7 +86,9 @@ | |||
| 74 | #define PG_mappedtodisk 16 /* Has blocks allocated on-disk */ | 86 | #define PG_mappedtodisk 16 /* Has blocks allocated on-disk */ |
| 75 | #define PG_reclaim 17 /* To be reclaimed asap */ | 87 | #define PG_reclaim 17 /* To be reclaimed asap */ |
| 76 | #define PG_nosave_free 18 /* Free, should not be written */ | 88 | #define PG_nosave_free 18 /* Free, should not be written */ |
| 77 | #define PG_uncached 19 /* Page has been mapped as uncached */ | 89 | #define PG_buddy 19 /* Page is free, on buddy lists */ |
| 90 | |||
| 91 | #define PG_uncached 20 /* Page has been mapped as uncached */ | ||
| 78 | 92 | ||
| 79 | /* | 93 | /* |
| 80 | * Global page accounting. One instance per CPU. Only unsigned longs are | 94 | * Global page accounting. One instance per CPU. Only unsigned longs are |
| @@ -317,6 +331,10 @@ extern void __mod_page_state_offset(unsigned long offset, unsigned long delta); | |||
| 317 | #define SetPageNosaveFree(page) set_bit(PG_nosave_free, &(page)->flags) | 331 | #define SetPageNosaveFree(page) set_bit(PG_nosave_free, &(page)->flags) |
| 318 | #define ClearPageNosaveFree(page) clear_bit(PG_nosave_free, &(page)->flags) | 332 | #define ClearPageNosaveFree(page) clear_bit(PG_nosave_free, &(page)->flags) |
| 319 | 333 | ||
| 334 | #define PageBuddy(page) test_bit(PG_buddy, &(page)->flags) | ||
| 335 | #define __SetPageBuddy(page) __set_bit(PG_buddy, &(page)->flags) | ||
| 336 | #define __ClearPageBuddy(page) __clear_bit(PG_buddy, &(page)->flags) | ||
| 337 | |||
| 320 | #define PageMappedToDisk(page) test_bit(PG_mappedtodisk, &(page)->flags) | 338 | #define PageMappedToDisk(page) test_bit(PG_mappedtodisk, &(page)->flags) |
| 321 | #define SetPageMappedToDisk(page) set_bit(PG_mappedtodisk, &(page)->flags) | 339 | #define SetPageMappedToDisk(page) set_bit(PG_mappedtodisk, &(page)->flags) |
| 322 | #define ClearPageMappedToDisk(page) clear_bit(PG_mappedtodisk, &(page)->flags) | 340 | #define ClearPageMappedToDisk(page) clear_bit(PG_mappedtodisk, &(page)->flags) |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index ec384958d509..123a7c24bc72 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -36,27 +36,19 @@ struct pipe_inode_info { | |||
| 36 | unsigned int w_counter; | 36 | unsigned int w_counter; |
| 37 | struct fasync_struct *fasync_readers; | 37 | struct fasync_struct *fasync_readers; |
| 38 | struct fasync_struct *fasync_writers; | 38 | struct fasync_struct *fasync_writers; |
| 39 | struct inode *inode; | ||
| 39 | }; | 40 | }; |
| 40 | 41 | ||
| 41 | /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual | 42 | /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual |
| 42 | memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ | 43 | memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ |
| 43 | #define PIPE_SIZE PAGE_SIZE | 44 | #define PIPE_SIZE PAGE_SIZE |
| 44 | 45 | ||
| 45 | #define PIPE_MUTEX(inode) (&(inode).i_mutex) | ||
| 46 | #define PIPE_WAIT(inode) (&(inode).i_pipe->wait) | ||
| 47 | #define PIPE_READERS(inode) ((inode).i_pipe->readers) | ||
| 48 | #define PIPE_WRITERS(inode) ((inode).i_pipe->writers) | ||
| 49 | #define PIPE_WAITING_WRITERS(inode) ((inode).i_pipe->waiting_writers) | ||
| 50 | #define PIPE_RCOUNTER(inode) ((inode).i_pipe->r_counter) | ||
| 51 | #define PIPE_WCOUNTER(inode) ((inode).i_pipe->w_counter) | ||
| 52 | #define PIPE_FASYNC_READERS(inode) (&((inode).i_pipe->fasync_readers)) | ||
| 53 | #define PIPE_FASYNC_WRITERS(inode) (&((inode).i_pipe->fasync_writers)) | ||
| 54 | |||
| 55 | /* Drop the inode semaphore and wait for a pipe event, atomically */ | 46 | /* Drop the inode semaphore and wait for a pipe event, atomically */ |
| 56 | void pipe_wait(struct inode * inode); | 47 | void pipe_wait(struct pipe_inode_info *pipe); |
| 57 | 48 | ||
| 58 | struct inode* pipe_new(struct inode* inode); | 49 | struct pipe_inode_info * alloc_pipe_info(struct inode * inode); |
| 59 | void free_pipe_info(struct inode* inode); | 50 | void free_pipe_info(struct inode * inode); |
| 51 | void __free_pipe_info(struct pipe_inode_info *); | ||
| 60 | 52 | ||
| 61 | /* | 53 | /* |
| 62 | * splice is tied to pipes as a transport (at least for now), so we'll just | 54 | * splice is tied to pipes as a transport (at least for now), so we'll just |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 135871df9911..4b47a0253425 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
| @@ -79,7 +79,7 @@ struct kcore_list { | |||
| 79 | struct vmcore { | 79 | struct vmcore { |
| 80 | struct list_head list; | 80 | struct list_head list; |
| 81 | unsigned long long paddr; | 81 | unsigned long long paddr; |
| 82 | unsigned long size; | 82 | unsigned long long size; |
| 83 | loff_t offset; | 83 | loff_t offset; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
diff --git a/include/linux/raid/md_p.h b/include/linux/raid/md_p.h index 774e1acfb8c4..f1fbae7e390e 100644 --- a/include/linux/raid/md_p.h +++ b/include/linux/raid/md_p.h | |||
| @@ -227,8 +227,8 @@ struct mdp_superblock_1 { | |||
| 227 | */ | 227 | */ |
| 228 | 228 | ||
| 229 | /* These are only valid with feature bit '4' */ | 229 | /* These are only valid with feature bit '4' */ |
| 230 | __u64 reshape_position; /* next address in array-space for reshape */ | ||
| 231 | __u32 new_level; /* new level we are reshaping to */ | 230 | __u32 new_level; /* new level we are reshaping to */ |
| 231 | __u64 reshape_position; /* next address in array-space for reshape */ | ||
| 232 | __u32 delta_disks; /* change in number of raid_disks */ | 232 | __u32 delta_disks; /* change in number of raid_disks */ |
| 233 | __u32 new_layout; /* new layout */ | 233 | __u32 new_layout; /* new layout */ |
| 234 | __u32 new_chunk; /* new chunk size (bytes) */ | 234 | __u32 new_chunk; /* new chunk size (bytes) */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 541f4828f5e7..e3539c14e47e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -684,6 +684,7 @@ static inline void prefetch_stack(struct task_struct *t) { } | |||
| 684 | 684 | ||
| 685 | struct audit_context; /* See audit.c */ | 685 | struct audit_context; /* See audit.c */ |
| 686 | struct mempolicy; | 686 | struct mempolicy; |
| 687 | struct pipe_inode_info; | ||
| 687 | 688 | ||
| 688 | enum sleep_type { | 689 | enum sleep_type { |
| 689 | SLEEP_NORMAL, | 690 | SLEEP_NORMAL, |
| @@ -882,6 +883,11 @@ struct task_struct { | |||
| 882 | 883 | ||
| 883 | atomic_t fs_excl; /* holding fs exclusive resources */ | 884 | atomic_t fs_excl; /* holding fs exclusive resources */ |
| 884 | struct rcu_head rcu; | 885 | struct rcu_head rcu; |
| 886 | |||
| 887 | /* | ||
| 888 | * cache last used pipe for splice | ||
| 889 | */ | ||
| 890 | struct pipe_inode_info *splice_pipe; | ||
| 885 | }; | 891 | }; |
| 886 | 892 | ||
| 887 | static inline pid_t process_group(struct task_struct *tsk) | 893 | static inline pid_t process_group(struct task_struct *tsk) |
| @@ -1203,9 +1209,10 @@ extern void wait_task_inactive(task_t * p); | |||
| 1203 | #define while_each_thread(g, t) \ | 1209 | #define while_each_thread(g, t) \ |
| 1204 | while ((t = next_thread(t)) != g) | 1210 | while ((t = next_thread(t)) != g) |
| 1205 | 1211 | ||
| 1206 | #define thread_group_leader(p) (p->pid == p->tgid) | 1212 | /* de_thread depends on thread_group_leader not being a pid based check */ |
| 1213 | #define thread_group_leader(p) (p == p->group_leader) | ||
| 1207 | 1214 | ||
| 1208 | static inline task_t *next_thread(task_t *p) | 1215 | static inline task_t *next_thread(const task_t *p) |
| 1209 | { | 1216 | { |
| 1210 | return list_entry(rcu_dereference(p->thread_group.next), | 1217 | return list_entry(rcu_dereference(p->thread_group.next), |
| 1211 | task_t, thread_group); | 1218 | task_t, thread_group); |
diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h index 6336987dae62..2925e66a6732 100644 --- a/include/linux/screen_info.h +++ b/include/linux/screen_info.h | |||
| @@ -41,7 +41,8 @@ struct screen_info { | |||
| 41 | u16 vesapm_off; /* 0x30 */ | 41 | u16 vesapm_off; /* 0x30 */ |
| 42 | u16 pages; /* 0x32 */ | 42 | u16 pages; /* 0x32 */ |
| 43 | u16 vesa_attributes; /* 0x34 */ | 43 | u16 vesa_attributes; /* 0x34 */ |
| 44 | /* 0x36 -- 0x3f reserved for future expansion */ | 44 | u32 capabilities; /* 0x36 */ |
| 45 | /* 0x3a -- 0x3f reserved for future expansion */ | ||
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 47 | extern struct screen_info screen_info; | 48 | extern struct screen_info screen_info; |
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index fca9b0fb5b4e..5a095572881d 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h | |||
| @@ -73,7 +73,7 @@ static inline int write_tryseqlock(seqlock_t *sl) | |||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | /* Start of read calculation -- fetch last complete writer token */ | 75 | /* Start of read calculation -- fetch last complete writer token */ |
| 76 | static inline unsigned read_seqbegin(const seqlock_t *sl) | 76 | static __always_inline unsigned read_seqbegin(const seqlock_t *sl) |
| 77 | { | 77 | { |
| 78 | unsigned ret = sl->sequence; | 78 | unsigned ret = sl->sequence; |
| 79 | smp_rmb(); | 79 | smp_rmb(); |
| @@ -88,7 +88,7 @@ static inline unsigned read_seqbegin(const seqlock_t *sl) | |||
| 88 | * | 88 | * |
| 89 | * Using xor saves one conditional branch. | 89 | * Using xor saves one conditional branch. |
| 90 | */ | 90 | */ |
| 91 | static inline int read_seqretry(const seqlock_t *sl, unsigned iv) | 91 | static __always_inline int read_seqretry(const seqlock_t *sl, unsigned iv) |
| 92 | { | 92 | { |
| 93 | smp_rmb(); | 93 | smp_rmb(); |
| 94 | return (iv & 1) | (sl->sequence ^ iv); | 94 | return (iv & 1) | (sl->sequence ^ iv); |
diff --git a/include/linux/string.h b/include/linux/string.h index dee221429ad0..c61306da8c52 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
| @@ -13,11 +13,6 @@ | |||
| 13 | extern "C" { | 13 | extern "C" { |
| 14 | #endif | 14 | #endif |
| 15 | 15 | ||
| 16 | extern char * strpbrk(const char *,const char *); | ||
| 17 | extern char * strsep(char **,const char *); | ||
| 18 | extern __kernel_size_t strspn(const char *,const char *); | ||
| 19 | extern __kernel_size_t strcspn(const char *,const char *); | ||
| 20 | |||
| 21 | extern char *strndup_user(const char __user *, long); | 16 | extern char *strndup_user(const char __user *, long); |
| 22 | 17 | ||
| 23 | /* | 18 | /* |
| @@ -70,6 +65,18 @@ extern __kernel_size_t strlen(const char *); | |||
| 70 | #ifndef __HAVE_ARCH_STRNLEN | 65 | #ifndef __HAVE_ARCH_STRNLEN |
| 71 | extern __kernel_size_t strnlen(const char *,__kernel_size_t); | 66 | extern __kernel_size_t strnlen(const char *,__kernel_size_t); |
| 72 | #endif | 67 | #endif |
| 68 | #ifndef __HAVE_ARCH_STRPBRK | ||
| 69 | extern char * strpbrk(const char *,const char *); | ||
| 70 | #endif | ||
| 71 | #ifndef __HAVE_ARCH_STRSEP | ||
| 72 | extern char * strsep(char **,const char *); | ||
| 73 | #endif | ||
| 74 | #ifndef __HAVE_ARCH_STRSPN | ||
| 75 | extern __kernel_size_t strspn(const char *,const char *); | ||
| 76 | #endif | ||
| 77 | #ifndef __HAVE_ARCH_STRCSPN | ||
| 78 | extern __kernel_size_t strcspn(const char *,const char *); | ||
| 79 | #endif | ||
| 73 | 80 | ||
| 74 | #ifndef __HAVE_ARCH_MEMSET | 81 | #ifndef __HAVE_ARCH_MEMSET |
| 75 | extern void * memset(void *,int,__kernel_size_t); | 82 | extern void * memset(void *,int,__kernel_size_t); |
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index 50cab2a09f28..503564384545 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h | |||
| @@ -197,15 +197,16 @@ svc_take_res_page(struct svc_rqst *rqstp) | |||
| 197 | return rqstp->rq_respages[rqstp->rq_resused++]; | 197 | return rqstp->rq_respages[rqstp->rq_resused++]; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | static inline int svc_take_page(struct svc_rqst *rqstp) | 200 | static inline void svc_take_page(struct svc_rqst *rqstp) |
| 201 | { | 201 | { |
| 202 | if (rqstp->rq_arghi <= rqstp->rq_argused) | 202 | if (rqstp->rq_arghi <= rqstp->rq_argused) { |
| 203 | return -ENOMEM; | 203 | WARN_ON(1); |
| 204 | return; | ||
| 205 | } | ||
| 204 | rqstp->rq_arghi--; | 206 | rqstp->rq_arghi--; |
| 205 | rqstp->rq_respages[rqstp->rq_resused] = | 207 | rqstp->rq_respages[rqstp->rq_resused] = |
| 206 | rqstp->rq_argpages[rqstp->rq_arghi]; | 208 | rqstp->rq_argpages[rqstp->rq_arghi]; |
| 207 | rqstp->rq_resused++; | 209 | rqstp->rq_resused++; |
| 208 | return 0; | ||
| 209 | } | 210 | } |
| 210 | 211 | ||
| 211 | static inline void svc_pushback_allpages(struct svc_rqst *rqstp) | 212 | static inline void svc_pushback_allpages(struct svc_rqst *rqstp) |
diff --git a/include/linux/swap.h b/include/linux/swap.h index 54eac8a39a4c..5b1fdf1cff4f 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -155,6 +155,7 @@ extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct * | |||
| 155 | /* linux/mm/page_alloc.c */ | 155 | /* linux/mm/page_alloc.c */ |
| 156 | extern unsigned long totalram_pages; | 156 | extern unsigned long totalram_pages; |
| 157 | extern unsigned long totalhigh_pages; | 157 | extern unsigned long totalhigh_pages; |
| 158 | extern unsigned long totalreserve_pages; | ||
| 158 | extern long nr_swap_pages; | 159 | extern long nr_swap_pages; |
| 159 | extern unsigned int nr_free_pages(void); | 160 | extern unsigned int nr_free_pages(void); |
| 160 | extern unsigned int nr_free_pages_pgdat(pg_data_t *pgdat); | 161 | extern unsigned int nr_free_pages_pgdat(pg_data_t *pgdat); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 5717147596b6..f001bad28d9a 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -569,9 +569,12 @@ asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, | |||
| 569 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, | 569 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, |
| 570 | int flags, int mode); | 570 | int flags, int mode); |
| 571 | asmlinkage long sys_unshare(unsigned long unshare_flags); | 571 | asmlinkage long sys_unshare(unsigned long unshare_flags); |
| 572 | asmlinkage long sys_splice(int fdin, int fdout, size_t len, | 572 | |
| 573 | unsigned int flags); | 573 | asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, |
| 574 | int fd_out, loff_t __user *off_out, | ||
| 575 | size_t len, unsigned int flags); | ||
| 576 | |||
| 574 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, | 577 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, |
| 575 | int flags); | 578 | unsigned int flags); |
| 576 | 579 | ||
| 577 | #endif | 580 | #endif |
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h index 0976a163b459..31548303ee37 100644 --- a/include/linux/tty_flip.h +++ b/include/linux/tty_flip.h | |||
| @@ -6,9 +6,10 @@ extern int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *c | |||
| 6 | extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size); | 6 | extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size); |
| 7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); | 7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); |
| 8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); | 8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); |
| 9 | void tty_schedule_flip(struct tty_struct *tty); | ||
| 9 | 10 | ||
| 10 | static inline int tty_insert_flip_char(struct tty_struct *tty, | 11 | static inline int tty_insert_flip_char(struct tty_struct *tty, |
| 11 | unsigned char ch, char flag) | 12 | unsigned char ch, char flag) |
| 12 | { | 13 | { |
| 13 | struct tty_buffer *tb = tty->buf.tail; | 14 | struct tty_buffer *tb = tty->buf.tail; |
| 14 | if (tb && tb->active && tb->used < tb->size) { | 15 | if (tb && tb->active && tb->used < tb->size) { |
| @@ -19,26 +20,4 @@ static inline int tty_insert_flip_char(struct tty_struct *tty, | |||
| 19 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); | 20 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); |
| 20 | } | 21 | } |
| 21 | 22 | ||
| 22 | static inline void tty_schedule_flip(struct tty_struct *tty) | ||
| 23 | { | ||
| 24 | unsigned long flags; | ||
| 25 | spin_lock_irqsave(&tty->buf.lock, flags); | ||
| 26 | if (tty->buf.tail != NULL) { | ||
| 27 | tty->buf.tail->active = 0; | ||
| 28 | tty->buf.tail->commit = tty->buf.tail->used; | ||
| 29 | } | ||
| 30 | spin_unlock_irqrestore(&tty->buf.lock, flags); | ||
| 31 | schedule_delayed_work(&tty->buf.work, 1); | ||
| 32 | } | ||
| 33 | |||
| 34 | #undef _INLINE_ | ||
| 35 | |||
| 36 | |||
| 37 | #endif /* _LINUX_TTY_FLIP_H */ | 23 | #endif /* _LINUX_TTY_FLIP_H */ |
| 38 | |||
| 39 | |||
| 40 | |||
| 41 | |||
| 42 | |||
| 43 | |||
| 44 | |||
diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h index fadc535e2925..dc7c621e4647 100644 --- a/include/linux/vermagic.h +++ b/include/linux/vermagic.h | |||
| @@ -12,6 +12,11 @@ | |||
| 12 | #else | 12 | #else |
| 13 | #define MODULE_VERMAGIC_PREEMPT "" | 13 | #define MODULE_VERMAGIC_PREEMPT "" |
| 14 | #endif | 14 | #endif |
| 15 | #ifdef CONFIG_MODULE_UNLOAD | ||
| 16 | #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload " | ||
| 17 | #else | ||
| 18 | #define MODULE_VERMAGIC_MODULE_UNLOAD "" | ||
| 19 | #endif | ||
| 15 | #ifndef MODULE_ARCH_VERMAGIC | 20 | #ifndef MODULE_ARCH_VERMAGIC |
| 16 | #define MODULE_ARCH_VERMAGIC "" | 21 | #define MODULE_ARCH_VERMAGIC "" |
| 17 | #endif | 22 | #endif |
| @@ -19,5 +24,5 @@ | |||
| 19 | #define VERMAGIC_STRING \ | 24 | #define VERMAGIC_STRING \ |
| 20 | UTS_RELEASE " " \ | 25 | UTS_RELEASE " " \ |
| 21 | MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \ | 26 | MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \ |
| 22 | MODULE_ARCH_VERMAGIC \ | 27 | MODULE_VERMAGIC_MODULE_UNLOAD MODULE_ARCH_VERMAGIC \ |
| 23 | "gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__) | 28 | "gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__) |
