diff options
Diffstat (limited to 'include/linux')
53 files changed, 1790 insertions, 3241 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index d0cac8b58de7..59e1259b1c40 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -17,6 +17,8 @@ | |||
| 17 | 17 | ||
| 18 | #include <asm/scatterlist.h> | 18 | #include <asm/scatterlist.h> |
| 19 | 19 | ||
| 20 | struct scsi_ioctl_command; | ||
| 21 | |||
| 20 | struct request_queue; | 22 | struct request_queue; |
| 21 | typedef struct request_queue request_queue_t; | 23 | typedef struct request_queue request_queue_t; |
| 22 | struct elevator_queue; | 24 | struct elevator_queue; |
| @@ -611,6 +613,8 @@ extern void blk_plug_device(request_queue_t *); | |||
| 611 | extern int blk_remove_plug(request_queue_t *); | 613 | extern int blk_remove_plug(request_queue_t *); |
| 612 | extern void blk_recount_segments(request_queue_t *, struct bio *); | 614 | extern void blk_recount_segments(request_queue_t *, struct bio *); |
| 613 | extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void __user *); | 615 | extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void __user *); |
| 616 | extern int sg_scsi_ioctl(struct file *, struct request_queue *, | ||
| 617 | struct gendisk *, struct scsi_ioctl_command __user *); | ||
| 614 | extern void blk_start_queue(request_queue_t *q); | 618 | extern void blk_start_queue(request_queue_t *q); |
| 615 | extern void blk_stop_queue(request_queue_t *q); | 619 | extern void blk_stop_queue(request_queue_t *q); |
| 616 | extern void blk_sync_queue(struct request_queue *q); | 620 | extern void blk_sync_queue(struct request_queue *q); |
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..3de2bfb2410f 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 *, loff_t *, size_t, unsigned int); |
| 1043 | ssize_t (*splice_read)(struct file *, struct inode *, size_t, unsigned int); | 1043 | ssize_t (*splice_read)(struct file *, loff_t *, 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 *, loff_t *, | ||
| 1617 | struct pipe_inode_info *, size_t, unsigned int); | ||
| 1618 | extern ssize_t generic_file_splice_write(struct pipe_inode_info *, | ||
| 1619 | struct file *, loff_t *, size_t, unsigned int); | ||
| 1620 | extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, | ||
| 1621 | struct file *out, loff_t *, size_t len, unsigned int flags); | ||
| 1622 | extern long do_splice_direct(struct file *in, loff_t *ppos, 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/genhd.h b/include/linux/genhd.h index 10a27f29d692..2ef845b35175 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -105,6 +105,7 @@ struct gendisk { | |||
| 105 | * disks that can't be partitioned. */ | 105 | * disks that can't be partitioned. */ |
| 106 | char disk_name[32]; /* name of major driver */ | 106 | char disk_name[32]; /* name of major driver */ |
| 107 | struct hd_struct **part; /* [indexed by minor] */ | 107 | struct hd_struct **part; /* [indexed by minor] */ |
| 108 | int part_uevent_suppress; | ||
| 108 | struct block_device_operations *fops; | 109 | struct block_device_operations *fops; |
| 109 | struct request_queue *queue; | 110 | struct request_queue *queue; |
| 110 | void *private_data; | 111 | void *private_data; |
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/ide.h b/include/linux/ide.h index 8d2db412ba9c..a8bef1d1371c 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -1220,7 +1220,6 @@ typedef struct ide_pci_enablebit_s { | |||
| 1220 | enum { | 1220 | enum { |
| 1221 | /* Uses ISA control ports not PCI ones. */ | 1221 | /* Uses ISA control ports not PCI ones. */ |
| 1222 | IDEPCI_FLAG_ISA_PORTS = (1 << 0), | 1222 | IDEPCI_FLAG_ISA_PORTS = (1 << 0), |
| 1223 | IDEPCI_FLAG_FORCE_PDC = (1 << 1), | ||
| 1224 | }; | 1223 | }; |
| 1225 | 1224 | ||
| 1226 | typedef struct ide_pci_device_s { | 1225 | typedef struct ide_pci_device_s { |
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/kobject.h b/include/linux/kobject.h index 4cb1214ec290..dcd0623be892 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/rwsem.h> | 24 | #include <linux/rwsem.h> |
| 25 | #include <linux/kref.h> | 25 | #include <linux/kref.h> |
| 26 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
| 27 | #include <linux/wait.h> | ||
| 27 | #include <asm/atomic.h> | 28 | #include <asm/atomic.h> |
| 28 | 29 | ||
| 29 | #define KOBJ_NAME_LEN 20 | 30 | #define KOBJ_NAME_LEN 20 |
| @@ -56,6 +57,7 @@ struct kobject { | |||
| 56 | struct kset * kset; | 57 | struct kset * kset; |
| 57 | struct kobj_type * ktype; | 58 | struct kobj_type * ktype; |
| 58 | struct dentry * dentry; | 59 | struct dentry * dentry; |
| 60 | wait_queue_head_t poll; | ||
| 59 | }; | 61 | }; |
| 60 | 62 | ||
| 61 | extern int kobject_set_name(struct kobject *, const char *, ...) | 63 | extern int kobject_set_name(struct kobject *, const char *, ...) |
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 0d61357604d5..b80d2e7fa6d2 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -523,7 +523,6 @@ extern void ata_host_set_remove(struct ata_host_set *host_set); | |||
| 523 | extern int ata_scsi_detect(struct scsi_host_template *sht); | 523 | extern int ata_scsi_detect(struct scsi_host_template *sht); |
| 524 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 524 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
| 525 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 525 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
| 526 | extern int ata_scsi_error(struct Scsi_Host *host); | ||
| 527 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); | 526 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); |
| 528 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); | 527 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); |
| 529 | extern int ata_scsi_release(struct Scsi_Host *host); | 528 | extern int ata_scsi_release(struct Scsi_Host *host); |
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 968b1aa3732c..911206386171 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,8 @@ 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 | extern int add_memory(u64 start, u64 size); | ||
| 103 | extern int remove_memory(u64 start, u64 size); | ||
| 104 | |||
| 108 | #endif /* __LINUX_MEMORY_HOTPLUG_H */ | 105 | #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/mv643xx.h b/include/linux/mv643xx.h index 955d3069d727..edfa012fad3a 100644 --- a/include/linux/mv643xx.h +++ b/include/linux/mv643xx.h | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #ifndef __ASM_MV643XX_H | 13 | #ifndef __ASM_MV643XX_H |
| 14 | #define __ASM_MV643XX_H | 14 | #define __ASM_MV643XX_H |
| 15 | 15 | ||
| 16 | #ifdef __MIPS__ | 16 | #ifdef __mips__ |
| 17 | #include <asm/addrspace.h> | 17 | #include <asm/addrspace.h> |
| 18 | #include <asm/marvell.h> | 18 | #include <asm/marvell.h> |
| 19 | #endif | 19 | #endif |
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/pci.h b/include/linux/pci.h index 0aad5a378e95..3a6a4e37a482 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -97,7 +97,13 @@ enum pci_channel_state { | |||
| 97 | 97 | ||
| 98 | typedef unsigned short __bitwise pci_bus_flags_t; | 98 | typedef unsigned short __bitwise pci_bus_flags_t; |
| 99 | enum pci_bus_flags { | 99 | enum pci_bus_flags { |
| 100 | PCI_BUS_FLAGS_NO_MSI = (pci_bus_flags_t) 1, | 100 | PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1, |
| 101 | }; | ||
| 102 | |||
| 103 | struct pci_cap_saved_state { | ||
| 104 | struct hlist_node next; | ||
| 105 | char cap_nr; | ||
| 106 | u32 data[0]; | ||
| 101 | }; | 107 | }; |
| 102 | 108 | ||
| 103 | /* | 109 | /* |
| @@ -159,6 +165,7 @@ struct pci_dev { | |||
| 159 | unsigned int block_ucfg_access:1; /* userspace config space access is blocked */ | 165 | unsigned int block_ucfg_access:1; /* userspace config space access is blocked */ |
| 160 | 166 | ||
| 161 | u32 saved_config_space[16]; /* config space saved at suspend time */ | 167 | u32 saved_config_space[16]; /* config space saved at suspend time */ |
| 168 | struct hlist_head saved_cap_space; | ||
| 162 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ | 169 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ |
| 163 | int rom_attr_enabled; /* has display of the rom attribute been enabled? */ | 170 | int rom_attr_enabled; /* has display of the rom attribute been enabled? */ |
| 164 | struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ | 171 | struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ |
| @@ -169,6 +176,30 @@ struct pci_dev { | |||
| 169 | #define to_pci_dev(n) container_of(n, struct pci_dev, dev) | 176 | #define to_pci_dev(n) container_of(n, struct pci_dev, dev) |
| 170 | #define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL) | 177 | #define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL) |
| 171 | 178 | ||
| 179 | static inline struct pci_cap_saved_state *pci_find_saved_cap( | ||
| 180 | struct pci_dev *pci_dev,char cap) | ||
| 181 | { | ||
| 182 | struct pci_cap_saved_state *tmp; | ||
| 183 | struct hlist_node *pos; | ||
| 184 | |||
| 185 | hlist_for_each_entry(tmp, pos, &pci_dev->saved_cap_space, next) { | ||
| 186 | if (tmp->cap_nr == cap) | ||
| 187 | return tmp; | ||
| 188 | } | ||
| 189 | return NULL; | ||
| 190 | } | ||
| 191 | |||
| 192 | static inline void pci_add_saved_cap(struct pci_dev *pci_dev, | ||
| 193 | struct pci_cap_saved_state *new_cap) | ||
| 194 | { | ||
| 195 | hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space); | ||
| 196 | } | ||
| 197 | |||
| 198 | static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap) | ||
| 199 | { | ||
| 200 | hlist_del(&cap->next); | ||
| 201 | } | ||
| 202 | |||
| 172 | /* | 203 | /* |
| 173 | * For PCI devices, the region numbers are assigned this way: | 204 | * For PCI devices, the region numbers are assigned this way: |
| 174 | * | 205 | * |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 870fe38378b1..d6fe048376ab 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -356,6 +356,10 @@ | |||
| 356 | #define PCI_DEVICE_ID_ATI_IXP300_SATA 0x436e | 356 | #define PCI_DEVICE_ID_ATI_IXP300_SATA 0x436e |
| 357 | #define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376 | 357 | #define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376 |
| 358 | #define PCI_DEVICE_ID_ATI_IXP400_SATA 0x4379 | 358 | #define PCI_DEVICE_ID_ATI_IXP400_SATA 0x4379 |
| 359 | #define PCI_DEVICE_ID_ATI_IXP400_SATA2 0x437a | ||
| 360 | #define PCI_DEVICE_ID_ATI_IXP600_SATA 0x4380 | ||
| 361 | #define PCI_DEVICE_ID_ATI_IXP600_SRAID 0x4381 | ||
| 362 | #define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c | ||
| 359 | 363 | ||
| 360 | #define PCI_VENDOR_ID_VLSI 0x1004 | 364 | #define PCI_VENDOR_ID_VLSI 0x1004 |
| 361 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 | 365 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 |
| @@ -497,7 +501,8 @@ | |||
| 497 | #define PCI_DEVICE_ID_AMD_8111_SMBUS 0x746b | 501 | #define PCI_DEVICE_ID_AMD_8111_SMBUS 0x746b |
| 498 | #define PCI_DEVICE_ID_AMD_8111_AUDIO 0x746d | 502 | #define PCI_DEVICE_ID_AMD_8111_AUDIO 0x746d |
| 499 | #define PCI_DEVICE_ID_AMD_8151_0 0x7454 | 503 | #define PCI_DEVICE_ID_AMD_8151_0 0x7454 |
| 500 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7450 | 504 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 |
| 505 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 | ||
| 501 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 | 506 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 |
| 502 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 | 507 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 |
| 503 | #define PCI_DEVICE_ID_AMD_CS5536_AUDIO 0x2093 | 508 | #define PCI_DEVICE_ID_AMD_CS5536_AUDIO 0x2093 |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index ec384958d509..ef7f33c0be19 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -21,6 +21,7 @@ struct pipe_buf_operations { | |||
| 21 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *); | 21 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *); |
| 22 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); | 22 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); |
| 23 | int (*steal)(struct pipe_inode_info *, struct pipe_buffer *); | 23 | int (*steal)(struct pipe_inode_info *, struct pipe_buffer *); |
| 24 | void (*get)(struct pipe_inode_info *, struct pipe_buffer *); | ||
| 24 | }; | 25 | }; |
| 25 | 26 | ||
| 26 | struct pipe_inode_info { | 27 | struct pipe_inode_info { |
| @@ -36,27 +37,19 @@ struct pipe_inode_info { | |||
| 36 | unsigned int w_counter; | 37 | unsigned int w_counter; |
| 37 | struct fasync_struct *fasync_readers; | 38 | struct fasync_struct *fasync_readers; |
| 38 | struct fasync_struct *fasync_writers; | 39 | struct fasync_struct *fasync_writers; |
| 40 | struct inode *inode; | ||
| 39 | }; | 41 | }; |
| 40 | 42 | ||
| 41 | /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual | 43 | /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual |
| 42 | memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ | 44 | memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ |
| 43 | #define PIPE_SIZE PAGE_SIZE | 45 | #define PIPE_SIZE PAGE_SIZE |
| 44 | 46 | ||
| 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 */ | 47 | /* Drop the inode semaphore and wait for a pipe event, atomically */ |
| 56 | void pipe_wait(struct inode * inode); | 48 | void pipe_wait(struct pipe_inode_info *pipe); |
| 57 | 49 | ||
| 58 | struct inode* pipe_new(struct inode* inode); | 50 | struct pipe_inode_info * alloc_pipe_info(struct inode * inode); |
| 59 | void free_pipe_info(struct inode* inode); | 51 | void free_pipe_info(struct inode * inode); |
| 52 | void __free_pipe_info(struct pipe_inode_info *); | ||
| 60 | 53 | ||
| 61 | /* | 54 | /* |
| 62 | * splice is tied to pipes as a transport (at least for now), so we'll just | 55 | * splice is tied to pipes as a transport (at least for now), so we'll just |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 6df2585c0169..66be58902b17 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -199,6 +199,12 @@ extern int device_suspend(pm_message_t state); | |||
| 199 | 199 | ||
| 200 | extern int dpm_runtime_suspend(struct device *, pm_message_t); | 200 | extern int dpm_runtime_suspend(struct device *, pm_message_t); |
| 201 | extern void dpm_runtime_resume(struct device *); | 201 | extern void dpm_runtime_resume(struct device *); |
| 202 | extern void __suspend_report_result(const char *function, void *fn, int ret); | ||
| 203 | |||
| 204 | #define suspend_report_result(fn, ret) \ | ||
| 205 | do { \ | ||
| 206 | __suspend_report_result(__FUNCTION__, fn, ret); \ | ||
| 207 | } while (0) | ||
| 202 | 208 | ||
| 203 | #else /* !CONFIG_PM */ | 209 | #else /* !CONFIG_PM */ |
| 204 | 210 | ||
| @@ -219,6 +225,8 @@ static inline void dpm_runtime_resume(struct device * dev) | |||
| 219 | { | 225 | { |
| 220 | } | 226 | } |
| 221 | 227 | ||
| 228 | #define suspend_report_result(fn, ret) do { } while (0) | ||
| 229 | |||
| 222 | #endif | 230 | #endif |
| 223 | 231 | ||
| 224 | /* changes to device_may_wakeup take effect on the next pm state change. | 232 | /* changes to device_may_wakeup take effect on the next pm state change. |
diff --git a/include/linux/pm_legacy.h b/include/linux/pm_legacy.h index 1252b45face1..008932d73c35 100644 --- a/include/linux/pm_legacy.h +++ b/include/linux/pm_legacy.h | |||
| @@ -16,11 +16,6 @@ struct pm_dev __deprecated * | |||
| 16 | pm_register(pm_dev_t type, unsigned long id, pm_callback callback); | 16 | pm_register(pm_dev_t type, unsigned long id, pm_callback callback); |
| 17 | 17 | ||
| 18 | /* | 18 | /* |
| 19 | * Unregister a device with power management | ||
| 20 | */ | ||
| 21 | void __deprecated pm_unregister(struct pm_dev *dev); | ||
| 22 | |||
| 23 | /* | ||
| 24 | * Unregister all devices with matching callback | 19 | * Unregister all devices with matching callback |
| 25 | */ | 20 | */ |
| 26 | void __deprecated pm_unregister_all(pm_callback callback); | 21 | void __deprecated pm_unregister_all(pm_callback callback); |
| @@ -41,8 +36,6 @@ static inline struct pm_dev *pm_register(pm_dev_t type, | |||
| 41 | return NULL; | 36 | return NULL; |
| 42 | } | 37 | } |
| 43 | 38 | ||
| 44 | static inline void pm_unregister(struct pm_dev *dev) {} | ||
| 45 | |||
| 46 | static inline void pm_unregister_all(pm_callback callback) {} | 39 | static inline void pm_unregister_all(pm_callback callback) {} |
| 47 | 40 | ||
| 48 | static inline int pm_send_all(pm_request_t rqst, void *data) | 41 | static inline int pm_send_all(pm_request_t rqst, void *data) |
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..29b7d4f87d20 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) |
| @@ -905,7 +911,6 @@ static inline int pid_alive(struct task_struct *p) | |||
| 905 | extern void free_task(struct task_struct *tsk); | 911 | extern void free_task(struct task_struct *tsk); |
| 906 | #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) | 912 | #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) |
| 907 | 913 | ||
| 908 | extern void __put_task_struct_cb(struct rcu_head *rhp); | ||
| 909 | extern void __put_task_struct(struct task_struct *t); | 914 | extern void __put_task_struct(struct task_struct *t); |
| 910 | 915 | ||
| 911 | static inline void put_task_struct(struct task_struct *t) | 916 | static inline void put_task_struct(struct task_struct *t) |
| @@ -1187,8 +1192,7 @@ extern void wait_task_inactive(task_t * p); | |||
| 1187 | #define remove_parent(p) list_del_init(&(p)->sibling) | 1192 | #define remove_parent(p) list_del_init(&(p)->sibling) |
| 1188 | #define add_parent(p) list_add_tail(&(p)->sibling,&(p)->parent->children) | 1193 | #define add_parent(p) list_add_tail(&(p)->sibling,&(p)->parent->children) |
| 1189 | 1194 | ||
| 1190 | #define next_task(p) list_entry((p)->tasks.next, struct task_struct, tasks) | 1195 | #define next_task(p) list_entry(rcu_dereference((p)->tasks.next), struct task_struct, tasks) |
| 1191 | #define prev_task(p) list_entry((p)->tasks.prev, struct task_struct, tasks) | ||
| 1192 | 1196 | ||
| 1193 | #define for_each_process(p) \ | 1197 | #define for_each_process(p) \ |
| 1194 | for (p = &init_task ; (p = next_task(p)) != &init_task ; ) | 1198 | for (p = &init_task ; (p = next_task(p)) != &init_task ; ) |
| @@ -1203,9 +1207,10 @@ extern void wait_task_inactive(task_t * p); | |||
| 1203 | #define while_each_thread(g, t) \ | 1207 | #define while_each_thread(g, t) \ |
| 1204 | while ((t = next_thread(t)) != g) | 1208 | while ((t = next_thread(t)) != g) |
| 1205 | 1209 | ||
| 1206 | #define thread_group_leader(p) (p->pid == p->tgid) | 1210 | /* de_thread depends on thread_group_leader not being a pid based check */ |
| 1211 | #define thread_group_leader(p) (p == p->group_leader) | ||
| 1207 | 1212 | ||
| 1208 | static inline task_t *next_thread(task_t *p) | 1213 | static inline task_t *next_thread(const task_t *p) |
| 1209 | { | 1214 | { |
| 1210 | return list_entry(rcu_dereference(p->thread_group.next), | 1215 | return list_entry(rcu_dereference(p->thread_group.next), |
| 1211 | task_t, thread_group); | 1216 | 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/sdla_asy.h b/include/linux/sdla_asy.h deleted file mode 100644 index f62242537c86..000000000000 --- a/include/linux/sdla_asy.h +++ /dev/null | |||
| @@ -1,226 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdla_asy.h Header file for the Sangoma S508/S514 asynchronous code API | ||
| 3 | * | ||
| 4 | * Author: Gideon Hack | ||
| 5 | * | ||
| 6 | * Copyright: (c) 2000 Sangoma Technologies Inc. | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | ||
| 9 | * modify it under the terms of the GNU General Public License | ||
| 10 | * as published by the Free Software Foundation; either version | ||
| 11 | * 2 of the License, or (at your option) any later version. | ||
| 12 | * ============================================================================ | ||
| 13 | * | ||
| 14 | * Jan 28, 2000 Gideon Hack Initial Version | ||
| 15 | * | ||
| 16 | *****************************************************************************/ | ||
| 17 | |||
| 18 | |||
| 19 | #ifndef _WANPIPE_ASYNC_H | ||
| 20 | #define _WANPIPE_ASYNC_H | ||
| 21 | |||
| 22 | /* ---------------------------------------------------------------------------- | ||
| 23 | * Interface commands | ||
| 24 | * --------------------------------------------------------------------------*/ | ||
| 25 | |||
| 26 | #define SET_ASY_CONFIGURATION 0xE2 /* set the asychronous operational configuration */ | ||
| 27 | #define READ_ASY_CONFIGURATION 0xE3 /* read the current asychronous operational configuration */ | ||
| 28 | #define ENABLE_ASY_COMMUNICATIONS 0xE4 /* enable asychronous communications */ | ||
| 29 | #define DISABLE_ASY_COMMUNICATIONS 0xE5 /* disable asychronous communications */ | ||
| 30 | #define READ_ASY_OPERATIONAL_STATS 0xE7 /* retrieve the asychronous operational statistics */ | ||
| 31 | #define FLUSH_ASY_OPERATIONAL_STATS 0xE8 /* flush the asychronous operational statistics */ | ||
| 32 | #define TRANSMIT_ASY_BREAK_SIGNAL 0xEC /* transmit an asychronous break signal */ | ||
| 33 | |||
| 34 | |||
| 35 | |||
| 36 | /* ---------------------------------------------------------------------------- | ||
| 37 | * Return codes from interface commands | ||
| 38 | * --------------------------------------------------------------------------*/ | ||
| 39 | |||
| 40 | #define COMMAND_INVALID_FOR_PORT 0x50 /* the command is invalid for the selected port */ | ||
| 41 | #define DISABLE_ASY_COMMS_BEFORE_CFG 0xE1 /* communications must be disabled before setting the configuration */ | ||
| 42 | #define ASY_COMMS_ENABLED 0xE1 /* communications are currently enabled */ | ||
| 43 | #define ASY_COMMS_DISABLED 0xE1 /* communications are currently disabled */ | ||
| 44 | #define ASY_CFG_BEFORE_COMMS_ENABLED 0xE2 /* perform a SET_ASY_CONFIGURATION before enabling comms */ | ||
| 45 | #define LGTH_ASY_CFG_DATA_INVALID 0xE2 /* the length of the passed configuration data is invalid */ | ||
| 46 | #define INVALID_ASY_CFG_DATA 0xE3 /* the passed configuration data is invalid */ | ||
| 47 | #define ASY_BREAK_SIGNAL_BUSY 0xEC /* a break signal is being transmitted */ | ||
| 48 | |||
| 49 | |||
| 50 | |||
| 51 | /* ---------------------------------------------------------------------------- | ||
| 52 | * Constants for the SET_ASY_CONFIGURATION/READ_ASY_CONFIGURATION command | ||
| 53 | * --------------------------------------------------------------------------*/ | ||
| 54 | |||
| 55 | /* the asynchronous configuration structure */ | ||
| 56 | typedef struct { | ||
| 57 | unsigned long baud_rate PACKED; /* the baud rate */ | ||
| 58 | unsigned short line_config_options PACKED; /* line configuration options */ | ||
| 59 | unsigned short modem_config_options PACKED; /* modem configuration options */ | ||
| 60 | unsigned short asy_API_options PACKED; /* asynchronous API options */ | ||
| 61 | unsigned short asy_protocol_options PACKED; /* asynchronous protocol options */ | ||
| 62 | unsigned short Tx_bits_per_char PACKED; /* number of bits per tx character */ | ||
| 63 | unsigned short Rx_bits_per_char PACKED; /* number of bits per received character */ | ||
| 64 | unsigned short stop_bits PACKED; /* number of stop bits per character */ | ||
| 65 | unsigned short parity PACKED; /* parity definition */ | ||
| 66 | unsigned short break_timer PACKED; /* the break signal timer */ | ||
| 67 | unsigned short asy_Rx_inter_char_timer PACKED; /* the receive inter-character timer */ | ||
| 68 | unsigned short asy_Rx_complete_length PACKED; /* the receive 'buffer complete' length */ | ||
| 69 | unsigned short XON_char PACKED; /* the XON character */ | ||
| 70 | unsigned short XOFF_char PACKED; /* the XOFF character */ | ||
| 71 | unsigned short asy_statistics_options PACKED; /* async operational stat options */ | ||
| 72 | unsigned long ptr_shared_mem_info_struct PACKED;/* ptr to the shared memory area information structure */ | ||
| 73 | unsigned long ptr_asy_Tx_stat_el_cfg_struct PACKED;/* ptr to the transmit status element configuration structure */ | ||
| 74 | unsigned long ptr_asy_Rx_stat_el_cfg_struct PACKED;/* ptr to the receive status element configuration structure */ | ||
| 75 | } ASY_CONFIGURATION_STRUCT; | ||
| 76 | |||
| 77 | /* permitted minimum and maximum values for setting the asynchronous configuration */ | ||
| 78 | #define MIN_ASY_BAUD_RATE 50 /* maximum baud rate */ | ||
| 79 | #define MAX_ASY_BAUD_RATE 250000 /* minimum baud rate */ | ||
| 80 | #define MIN_ASY_BITS_PER_CHAR 5 /* minimum number of bits per character */ | ||
| 81 | #define MAX_ASY_BITS_PER_CHAR 8 /* maximum number of bits per character */ | ||
| 82 | #define MIN_BREAK_TMR_VAL 0 /* minimum break signal timer */ | ||
| 83 | #define MAX_BREAK_TMR_VAL 5000 /* maximum break signal timer */ | ||
| 84 | #define MIN_ASY_RX_INTER_CHAR_TMR 0 /* minimum receive inter-character timer */ | ||
| 85 | #define MAX_ASY_RX_INTER_CHAR_TMR 30000 /* maximum receive inter-character timer */ | ||
| 86 | #define MIN_ASY_RX_CPLT_LENGTH 0 /* minimum receive 'length complete' value */ | ||
| 87 | #define MAX_ASY_RX_CPLT_LENGTH 2000 /* maximum receive 'length complete' value */ | ||
| 88 | |||
| 89 | /* bit settings for the 'asy_API_options' */ | ||
| 90 | #define ASY_RX_DATA_TRANSPARENT 0x0001 /* do not strip parity and unused bits from received characters */ | ||
| 91 | |||
| 92 | /* bit settings for the 'asy_protocol_options' */ | ||
| 93 | #define ASY_RTS_HS_FOR_RX 0x0001 /* RTS handshaking is used for reception control */ | ||
| 94 | #define ASY_XON_XOFF_HS_FOR_RX 0x0002 /* XON/XOFF handshaking is used for reception control */ | ||
| 95 | #define ASY_XON_XOFF_HS_FOR_TX 0x0004 /* XON/XOFF handshaking is used for transmission control */ | ||
| 96 | #define ASY_DCD_HS_FOR_TX 0x0008 /* DCD handshaking is used for transmission control */ | ||
| 97 | #define ASY_CTS_HS_FOR_TX 0x0020 /* CTS handshaking is used for transmission control */ | ||
| 98 | |||
| 99 | /* bit settings for the 'stop_bits' definition */ | ||
| 100 | #define ONE_STOP_BIT 1 /* representation for 1 stop bit */ | ||
| 101 | #define TWO_STOP_BITS 2 /* representation for 2 stop bits */ | ||
| 102 | #define ONE_AND_A_HALF_STOP_BITS 3 /* representation for 1.5 stop bits */ | ||
| 103 | |||
| 104 | /* bit settings for the 'parity' definition */ | ||
| 105 | #define NO_PARITY 0 /* representation for no parity */ | ||
| 106 | #define ODD_PARITY 1 /* representation for odd parity */ | ||
| 107 | #define EVEN_PARITY 2 /* representation for even parity */ | ||
| 108 | |||
| 109 | |||
| 110 | |||
| 111 | /* ---------------------------------------------------------------------------- | ||
| 112 | * Constants for the READ_COMMS_ERROR_STATS command (asynchronous mode) | ||
| 113 | * --------------------------------------------------------------------------*/ | ||
| 114 | |||
| 115 | /* the communications error statistics structure */ | ||
| 116 | typedef struct { | ||
| 117 | unsigned short Rx_overrun_err_count PACKED; /* receiver overrun error count */ | ||
| 118 | unsigned short Rx_parity_err_count PACKED; /* parity errors received count */ | ||
| 119 | unsigned short Rx_framing_err_count PACKED; /* framing errors received count */ | ||
| 120 | unsigned short comms_err_stat_reserved_1 PACKED;/* reserved for later use */ | ||
| 121 | unsigned short comms_err_stat_reserved_2 PACKED;/* reserved for later use */ | ||
| 122 | unsigned short comms_err_stat_reserved_3 PACKED;/* reserved for later use */ | ||
| 123 | unsigned short comms_err_stat_reserved_4 PACKED;/* reserved for later use */ | ||
| 124 | unsigned short comms_err_stat_reserved_5 PACKED;/* reserved for later use */ | ||
| 125 | unsigned short DCD_state_change_count PACKED; /* DCD state change count */ | ||
| 126 | unsigned short CTS_state_change_count PACKED; /* CTS state change count */ | ||
| 127 | } ASY_COMMS_ERROR_STATS_STRUCT; | ||
| 128 | |||
| 129 | |||
| 130 | |||
| 131 | /* ---------------------------------------------------------------------------- | ||
| 132 | * Constants for the READ_ASY_OPERATIONAL_STATS command | ||
| 133 | * --------------------------------------------------------------------------*/ | ||
| 134 | |||
| 135 | /* the asynchronous operational statistics structure */ | ||
| 136 | typedef struct { | ||
| 137 | |||
| 138 | /* Data transmission statistics */ | ||
| 139 | unsigned long Data_blocks_Tx_count PACKED;/* number of blocks transmitted */ | ||
| 140 | unsigned long Data_bytes_Tx_count PACKED;/* number of bytes transmitted */ | ||
| 141 | unsigned long Data_Tx_throughput PACKED;/* transmit throughput */ | ||
| 142 | unsigned long no_ms_for_Data_Tx_thruput_comp PACKED;/* millisecond time used for the Tx throughput computation */ | ||
| 143 | unsigned long Tx_Data_discard_lgth_err_count PACKED;/* number of Data blocks discarded (length error) */ | ||
| 144 | unsigned long reserved_Data_frm_Tx_stat1 PACKED;/* reserved for later use */ | ||
| 145 | unsigned long reserved_Data_frm_Tx_stat2 PACKED;/* reserved for later use */ | ||
| 146 | unsigned long reserved_Data_frm_Tx_stat3 PACKED;/* reserved for later use */ | ||
| 147 | |||
| 148 | /* Data reception statistics */ | ||
| 149 | unsigned long Data_blocks_Rx_count PACKED;/* number of blocks received */ | ||
| 150 | unsigned long Data_bytes_Rx_count PACKED;/* number of bytes received */ | ||
| 151 | unsigned long Data_Rx_throughput PACKED;/* receive throughput */ | ||
| 152 | unsigned long no_ms_for_Data_Rx_thruput_comp PACKED;/* millisecond time used for the Rx throughput computation */ | ||
| 153 | unsigned long Rx_Data_bytes_discard_count PACKED;/* received Data bytes discarded */ | ||
| 154 | unsigned long reserved_Data_frm_Rx_stat1 PACKED;/* reserved for later use */ | ||
| 155 | |||
| 156 | /* handshaking protocol statistics */ | ||
| 157 | unsigned short XON_chars_Tx_count PACKED; /* number of XON characters transmitted */ | ||
| 158 | unsigned short XOFF_chars_Tx_count PACKED; /* number of XOFF characters transmitted */ | ||
| 159 | unsigned short XON_chars_Rx_count PACKED; /* number of XON characters received */ | ||
| 160 | unsigned short XOFF_chars_Rx_count PACKED; /* number of XOFF characters received */ | ||
| 161 | unsigned short Tx_halt_modem_low_count PACKED; /* number of times Tx halted (modem line low) */ | ||
| 162 | unsigned short Rx_halt_RTS_low_count PACKED; /* number of times Rx halted by setting RTS low */ | ||
| 163 | unsigned long reserved_handshaking_stat1 PACKED;/* reserved for later use */ | ||
| 164 | |||
| 165 | /* break statistics */ | ||
| 166 | unsigned short break_Tx_count PACKED; /* number of break sequences transmitted */ | ||
| 167 | unsigned short break_Rx_count PACKED; /* number of break sequences received */ | ||
| 168 | unsigned long reserved_break_stat1 PACKED;/* reserved for later use */ | ||
| 169 | |||
| 170 | /* miscellaneous statistics */ | ||
| 171 | unsigned long reserved_misc_stat1 PACKED; /* reserved for later use */ | ||
| 172 | unsigned long reserved_misc_stat2 PACKED; /* reserved for later use */ | ||
| 173 | |||
| 174 | } ASY_OPERATIONAL_STATS_STRUCT; | ||
| 175 | |||
| 176 | |||
| 177 | |||
| 178 | /* ---------------------------------------------------------------------------- | ||
| 179 | * Constants for Data transmission | ||
| 180 | * --------------------------------------------------------------------------*/ | ||
| 181 | |||
| 182 | /* the Data block transmit status element configuration structure */ | ||
| 183 | typedef struct { | ||
| 184 | unsigned short number_Tx_status_elements PACKED; /* number of transmit status elements */ | ||
| 185 | unsigned long base_addr_Tx_status_elements PACKED; /* base address of the transmit element list */ | ||
| 186 | unsigned long next_Tx_status_element_to_use PACKED; /* pointer to the next transmit element to be used */ | ||
| 187 | } ASY_TX_STATUS_EL_CFG_STRUCT; | ||
| 188 | |||
| 189 | |||
| 190 | /* the Data block transmit status element structure */ | ||
| 191 | typedef struct { | ||
| 192 | unsigned char opp_flag PACKED; /* opp flag */ | ||
| 193 | unsigned short data_length PACKED; /* length of the block to be transmitted */ | ||
| 194 | unsigned char reserved_1 PACKED; /* reserved for internal use */ | ||
| 195 | unsigned long reserved_2 PACKED; /* reserved for internal use */ | ||
| 196 | unsigned long reserved_3 PACKED; /* reserved for internal use */ | ||
| 197 | unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ | ||
| 198 | } ASY_DATA_TX_STATUS_EL_STRUCT; | ||
| 199 | |||
| 200 | |||
| 201 | |||
| 202 | /* ---------------------------------------------------------------------------- | ||
| 203 | * Constants for Data reception | ||
| 204 | * --------------------------------------------------------------------------*/ | ||
| 205 | |||
| 206 | /* the Data block receive status element configuration structure */ | ||
| 207 | typedef struct { | ||
| 208 | unsigned short number_Rx_status_elements PACKED;/* number of receive status elements */ | ||
| 209 | unsigned long base_addr_Rx_status_elements PACKED;/* base address of the receive element list */ | ||
| 210 | unsigned long next_Rx_status_element_to_use PACKED;/* pointer to the next receive element to be used */ | ||
| 211 | unsigned long base_addr_Rx_buffer PACKED;/* base address of the receive data buffer */ | ||
| 212 | unsigned long end_addr_Rx_buffer PACKED;/* end address of the receive data buffer */ | ||
| 213 | } ASY_RX_STATUS_EL_CFG_STRUCT; | ||
| 214 | |||
| 215 | /* the Data block receive status element structure */ | ||
| 216 | typedef struct { | ||
| 217 | unsigned char opp_flag PACKED; /* opp flag */ | ||
| 218 | unsigned short data_length PACKED; /* length of the received data block */ | ||
| 219 | unsigned char reserved_1 PACKED; /* reserved for internal use */ | ||
| 220 | unsigned short time_stamp PACKED; /* receive time stamp (HDLC_STREAMING_MODE) */ | ||
| 221 | unsigned short data_buffered PACKED; /* the number of data bytes still buffered */ | ||
| 222 | unsigned long reserved_2 PACKED; /* reserved for internal use */ | ||
| 223 | unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ | ||
| 224 | } ASY_DATA_RX_STATUS_EL_STRUCT; | ||
| 225 | |||
| 226 | #endif | ||
diff --git a/include/linux/sdla_chdlc.h b/include/linux/sdla_chdlc.h deleted file mode 100644 index d2e35a299034..000000000000 --- a/include/linux/sdla_chdlc.h +++ /dev/null | |||
| @@ -1,813 +0,0 @@ | |||
| 1 | /************************************************************************* | ||
| 2 | sdla_chdlc.h Sangoma Cisco HDLC firmware API definitions | ||
| 3 | |||
| 4 | Author: Gideon Hack | ||
| 5 | Nenad Corbic <ncorbic@sangoma.com> | ||
| 6 | |||
| 7 | Copyright: (c) 1995-2000 Sangoma Technologies Inc. | ||
| 8 | |||
| 9 | This program is free software; you can redistribute it and/or | ||
| 10 | modify it under the term of the GNU General Public License | ||
| 11 | as published by the Free Software Foundation; either version | ||
| 12 | 2 of the License, or (at your option) any later version. | ||
| 13 | |||
| 14 | =========================================================================== | ||
| 15 | Oct 04, 1999 Nenad Corbic Updated API support | ||
| 16 | Jun 02, 1999 Gideon Hack Changes for S514 usage. | ||
| 17 | Oct 28, 1998 Jaspreet Singh Made changes for Dual Port CHDLC. | ||
| 18 | Jun 11, 1998 David Fong Initial version. | ||
| 19 | =========================================================================== | ||
| 20 | |||
| 21 | Organization | ||
| 22 | - Compatibility notes | ||
| 23 | - Constants defining the shared memory control block (mailbox) | ||
| 24 | - Interface commands | ||
| 25 | - Return code from interface commands | ||
| 26 | - Constants for the commands (structures for casting data) | ||
| 27 | - UDP Management constants and structures | ||
| 28 | |||
| 29 | *************************************************************************/ | ||
| 30 | |||
| 31 | #ifndef _SDLA_CHDLC_H | ||
| 32 | # define _SDLC_CHDLC_H | ||
| 33 | |||
| 34 | /*------------------------------------------------------------------------ | ||
| 35 | Notes: | ||
| 36 | |||
| 37 | All structres defined in this file are byte-aligned. | ||
| 38 | |||
| 39 | Compiler Platform | ||
| 40 | ------------------------ | ||
| 41 | GNU C Linux | ||
| 42 | |||
| 43 | ------------------------------------------------------------------------*/ | ||
| 44 | |||
| 45 | #ifndef PACKED | ||
| 46 | #define PACKED __attribute__((packed)) | ||
| 47 | #endif /* PACKED */ | ||
| 48 | |||
| 49 | |||
| 50 | /* ---------------------------------------------------------------------------- | ||
| 51 | * Constants defining the shared memory control block (mailbox) | ||
| 52 | * --------------------------------------------------------------------------*/ | ||
| 53 | |||
| 54 | #define PRI_BASE_ADDR_MB_STRUCT 0xE000 /* the base address of the mailbox structure on the adapter */ | ||
| 55 | #define SEC_BASE_ADDR_MB_STRUCT 0xE800 /* the base address of the mailbox structure on the adapter */ | ||
| 56 | #define SIZEOF_MB_DATA_BFR 2032 /* the size of the actual mailbox data area */ | ||
| 57 | #define NUMBER_MB_RESERVED_BYTES 0x0B /* the number of reserved bytes in the mailbox header area */ | ||
| 58 | |||
| 59 | |||
| 60 | #define MIN_LGTH_CHDLC_DATA_CFG 300 /* min length of the CHDLC data field (for configuration purposes) */ | ||
| 61 | #define PRI_MAX_NO_DATA_BYTES_IN_FRAME 15354 /* PRIMARY - max length of the CHDLC data field */ | ||
| 62 | |||
| 63 | typedef struct { | ||
| 64 | unsigned char opp_flag PACKED; /* the opp flag */ | ||
| 65 | unsigned char command PACKED; /* the user command */ | ||
| 66 | unsigned short buffer_length PACKED; /* the data length */ | ||
| 67 | unsigned char return_code PACKED; /* the return code */ | ||
| 68 | unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; /* reserved for later */ | ||
| 69 | unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; /* the data area */ | ||
| 70 | } CHDLC_MAILBOX_STRUCT; | ||
| 71 | |||
| 72 | typedef struct { | ||
| 73 | pid_t pid_num PACKED; | ||
| 74 | CHDLC_MAILBOX_STRUCT cmdarea PACKED; | ||
| 75 | |||
| 76 | } CMDBLOCK_STRUCT; | ||
| 77 | |||
| 78 | |||
| 79 | |||
| 80 | |||
| 81 | /* ---------------------------------------------------------------------------- | ||
| 82 | * Interface commands | ||
| 83 | * --------------------------------------------------------------------------*/ | ||
| 84 | |||
| 85 | /* global interface commands */ | ||
| 86 | #define READ_GLOBAL_EXCEPTION_CONDITION 0x01 | ||
| 87 | #define SET_GLOBAL_CONFIGURATION 0x02 | ||
| 88 | #define READ_GLOBAL_CONFIGURATION 0x03 | ||
| 89 | #define READ_GLOBAL_STATISTICS 0x04 | ||
| 90 | #define FLUSH_GLOBAL_STATISTICS 0x05 | ||
| 91 | #define SET_MODEM_STATUS 0x06 /* set status of DTR or RTS */ | ||
| 92 | #define READ_MODEM_STATUS 0x07 /* read status of CTS and DCD */ | ||
| 93 | #define READ_COMMS_ERROR_STATS 0x08 | ||
| 94 | #define FLUSH_COMMS_ERROR_STATS 0x09 | ||
| 95 | #define SET_TRACE_CONFIGURATION 0x0A /* set the line trace config */ | ||
| 96 | #define READ_TRACE_CONFIGURATION 0x0B /* read the line trace config */ | ||
| 97 | #define READ_TRACE_STATISTICS 0x0C /* read the trace statistics */ | ||
| 98 | #define FLUSH_TRACE_STATISTICS 0x0D /* flush the trace statistics */ | ||
| 99 | #define FT1_MONITOR_STATUS_CTRL 0x1C /* set the status of the S508/FT1 monitoring */ | ||
| 100 | #define SET_FT1_CONFIGURATION 0x18 /* set the FT1 configuration */ | ||
| 101 | #define READ_FT1_CONFIGURATION 0x19 /* read the FT1 configuration */ | ||
| 102 | #define TRANSMIT_ASYNC_DATA_TO_FT1 0x1A /* output asynchronous data to the FT1 */ | ||
| 103 | #define RECEIVE_ASYNC_DATA_FROM_FT1 0x1B /* receive asynchronous data from the FT1 */ | ||
| 104 | #define FT1_MONITOR_STATUS_CTRL 0x1C /* set the status of the FT1 monitoring */ | ||
| 105 | |||
| 106 | #define READ_FT1_OPERATIONAL_STATS 0x1D /* read the S508/FT1 operational statistics */ | ||
| 107 | #define SET_FT1_MODE 0x1E /* set the operational mode of the S508/FT1 module */ | ||
| 108 | |||
| 109 | /* CHDLC-level interface commands */ | ||
| 110 | #define READ_CHDLC_CODE_VERSION 0x20 | ||
| 111 | #define READ_CHDLC_EXCEPTION_CONDITION 0x21 /* read exception condition from the adapter */ | ||
| 112 | #define SET_CHDLC_CONFIGURATION 0x22 | ||
| 113 | #define READ_CHDLC_CONFIGURATION 0x23 | ||
| 114 | #define ENABLE_CHDLC_COMMUNICATIONS 0x24 | ||
| 115 | #define DISABLE_CHDLC_COMMUNICATIONS 0x25 | ||
| 116 | #define READ_CHDLC_LINK_STATUS 0x26 | ||
| 117 | #define READ_CHDLC_OPERATIONAL_STATS 0x27 | ||
| 118 | #define FLUSH_CHDLC_OPERATIONAL_STATS 0x28 | ||
| 119 | #define SET_CHDLC_INTERRUPT_TRIGGERS 0x30 /* set application interrupt triggers */ | ||
| 120 | #define READ_CHDLC_INTERRUPT_TRIGGERS 0x31 /* read application interrupt trigger configuration */ | ||
| 121 | |||
| 122 | /* Special UDP drivers management commands */ | ||
| 123 | #define CPIPE_ENABLE_TRACING 0x50 | ||
| 124 | #define CPIPE_DISABLE_TRACING 0x51 | ||
| 125 | #define CPIPE_GET_TRACE_INFO 0x52 | ||
| 126 | #define CPIPE_GET_IBA_DATA 0x53 | ||
| 127 | #define CPIPE_FT1_READ_STATUS 0x54 | ||
| 128 | #define CPIPE_DRIVER_STAT_IFSEND 0x55 | ||
| 129 | #define CPIPE_DRIVER_STAT_INTR 0x56 | ||
| 130 | #define CPIPE_DRIVER_STAT_GEN 0x57 | ||
| 131 | #define CPIPE_FLUSH_DRIVER_STATS 0x58 | ||
| 132 | #define CPIPE_ROUTER_UP_TIME 0x59 | ||
| 133 | |||
| 134 | /* Driver specific commands for API */ | ||
| 135 | #define CHDLC_READ_TRACE_DATA 0xE4 /* read trace data */ | ||
| 136 | #define TRACE_ALL 0x00 | ||
| 137 | #define TRACE_PROT 0x01 | ||
| 138 | #define TRACE_DATA 0x02 | ||
| 139 | |||
| 140 | #define DISCARD_RX_ERROR_FRAMES 0x0001 | ||
| 141 | |||
| 142 | /* ---------------------------------------------------------------------------- | ||
| 143 | * Return codes from interface commands | ||
| 144 | * --------------------------------------------------------------------------*/ | ||
| 145 | |||
| 146 | #define COMMAND_OK 0x00 | ||
| 147 | |||
| 148 | /* return codes from global interface commands */ | ||
| 149 | #define NO_GLOBAL_EXCEP_COND_TO_REPORT 0x01 /* there is no CHDLC exception condition to report */ | ||
| 150 | #define LGTH_GLOBAL_CFG_DATA_INVALID 0x01 /* the length of the passed global configuration data is invalid */ | ||
| 151 | #define LGTH_TRACE_CFG_DATA_INVALID 0x01 /* the length of the passed trace configuration data is invalid */ | ||
| 152 | #define IRQ_TIMEOUT_VALUE_INVALID 0x02 /* an invalid application IRQ timeout value was selected */ | ||
| 153 | #define TRACE_CONFIG_INVALID 0x02 /* the passed line trace configuration is invalid */ | ||
| 154 | #define ADAPTER_OPERATING_FREQ_INVALID 0x03 /* an invalid adapter operating frequency was selected */ | ||
| 155 | #define TRC_DEAC_TMR_INVALID 0x03 /* the trace deactivation timer is invalid */ | ||
| 156 | #define S508_FT1_ADPTR_NOT_PRESENT 0x0C /* the S508/FT1 adapter is not present */ | ||
| 157 | #define INVALID_FT1_STATUS_SELECTION 0x0D /* the S508/FT1 status selection is invalid */ | ||
| 158 | #define FT1_OP_STATS_NOT_ENABLED 0x0D /* the FT1 operational statistics have not been enabled */ | ||
| 159 | #define FT1_OP_STATS_NOT_AVAILABLE 0x0E /* the FT1 operational statistics are not currently available */ | ||
| 160 | #define S508_FT1_MODE_SELECTION_BUSY 0x0E /* the S508/FT1 adapter is busy selecting the operational mode */ | ||
| 161 | |||
| 162 | /* return codes from command READ_GLOBAL_EXCEPTION_CONDITION */ | ||
| 163 | #define EXCEP_MODEM_STATUS_CHANGE 0x10 /* a modem status change occurred */ | ||
| 164 | #define EXCEP_TRC_DISABLED 0x11 /* the trace has been disabled */ | ||
| 165 | #define EXCEP_IRQ_TIMEOUT 0x12 /* IRQ timeout */ | ||
| 166 | |||
| 167 | /* return codes from CHDLC-level interface commands */ | ||
| 168 | #define NO_CHDLC_EXCEP_COND_TO_REPORT 0x21 /* there is no CHDLC exception condition to report */ | ||
| 169 | #define CHDLC_COMMS_DISABLED 0x21 /* communications are not currently enabled */ | ||
| 170 | #define CHDLC_COMMS_ENABLED 0x21 /* communications are currently enabled */ | ||
| 171 | #define DISABLE_CHDLC_COMMS_BEFORE_CFG 0x21 /* CHDLC communications must be disabled before setting the configuration */ | ||
| 172 | #define ENABLE_CHDLC_COMMS_BEFORE_CONN 0x21 /* communications must be enabled before using the CHDLC_CONNECT conmmand */ | ||
| 173 | #define CHDLC_CFG_BEFORE_COMMS_ENABLED 0x22 /* perform a SET_CHDLC_CONFIGURATION before enabling comms */ | ||
| 174 | #define LGTH_CHDLC_CFG_DATA_INVALID 0x22 /* the length of the passed CHDLC configuration data is invalid */ | ||
| 175 | #define LGTH_INT_TRIGGERS_DATA_INVALID 0x22 /* the length of the passed interrupt trigger data is invalid */ | ||
| 176 | #define INVALID_IRQ_SELECTED 0x23 /* in invalid IRQ was selected in the SET_CHDLC_INTERRUPT_TRIGGERS */ | ||
| 177 | #define INVALID_CHDLC_CFG_DATA 0x23 /* the passed CHDLC configuration data is invalid */ | ||
| 178 | #define IRQ_TMR_VALUE_INVALID 0x24 /* an invalid application IRQ timer value was selected */ | ||
| 179 | #define LARGER_PERCENT_TX_BFR_REQUIRED 0x24 /* a larger Tx buffer percentage is required */ | ||
| 180 | #define LARGER_PERCENT_RX_BFR_REQUIRED 0x25 /* a larger Rx buffer percentage is required */ | ||
| 181 | #define S514_BOTH_PORTS_SAME_CLK_MODE 0x26 /* S514 - both ports must have same clock mode */ | ||
| 182 | #define INVALID_CMND_HDLC_STREAM_MODE 0x4E /* the CHDLC interface command is invalid for HDLC streaming mode */ | ||
| 183 | #define INVALID_CHDLC_COMMAND 0x4F /* the defined CHDLC interface command is invalid */ | ||
| 184 | |||
| 185 | /* return codes from command READ_CHDLC_EXCEPTION_CONDITION */ | ||
| 186 | #define EXCEP_LINK_ACTIVE 0x30 /* the CHDLC link has become active */ | ||
| 187 | #define EXCEP_LINK_INACTIVE_MODEM 0x31 /* the CHDLC link has become inactive (modem status) */ | ||
| 188 | #define EXCEP_LINK_INACTIVE_KPALV 0x32 /* the CHDLC link has become inactive (keepalive status) */ | ||
| 189 | #define EXCEP_IP_ADDRESS_DISCOVERED 0x33 /* the IP address has been discovered */ | ||
| 190 | #define EXCEP_LOOPBACK_CONDITION 0x34 /* a loopback condition has occurred */ | ||
| 191 | |||
| 192 | |||
| 193 | /* return code from command CHDLC_SEND_WAIT and CHDLC_SEND_NO_WAIT */ | ||
| 194 | #define LINK_DISCONNECTED 0x21 | ||
| 195 | #define NO_TX_BFRS_AVAIL 0x24 | ||
| 196 | |||
| 197 | |||
| 198 | /* ---------------------------------------------------------------------------- | ||
| 199 | * Constants for the SET_GLOBAL_CONFIGURATION/READ_GLOBAL_CONFIGURATION commands | ||
| 200 | * --------------------------------------------------------------------------*/ | ||
| 201 | |||
| 202 | /* the global configuration structure */ | ||
| 203 | typedef struct { | ||
| 204 | unsigned short adapter_config_options PACKED; /* adapter config options */ | ||
| 205 | unsigned short app_IRQ_timeout PACKED; /* application IRQ timeout */ | ||
| 206 | unsigned long adapter_operating_frequency PACKED; /* adapter operating frequency */ | ||
| 207 | } GLOBAL_CONFIGURATION_STRUCT; | ||
| 208 | |||
| 209 | /* settings for the 'app_IRQ_timeout' */ | ||
| 210 | #define MAX_APP_IRQ_TIMEOUT_VALUE 5000 /* the maximum permitted IRQ timeout */ | ||
| 211 | |||
| 212 | |||
| 213 | |||
| 214 | /* ---------------------------------------------------------------------------- | ||
| 215 | * Constants for the READ_GLOBAL_STATISTICS command | ||
| 216 | * --------------------------------------------------------------------------*/ | ||
| 217 | |||
| 218 | /* the global statistics structure */ | ||
| 219 | typedef struct { | ||
| 220 | unsigned short app_IRQ_timeout_count PACKED; | ||
| 221 | } GLOBAL_STATS_STRUCT; | ||
| 222 | |||
| 223 | |||
| 224 | |||
| 225 | /* ---------------------------------------------------------------------------- | ||
| 226 | * Constants for the READ_COMMS_ERROR_STATS command | ||
| 227 | * --------------------------------------------------------------------------*/ | ||
| 228 | |||
| 229 | /* the communications error statistics structure */ | ||
| 230 | typedef struct { | ||
| 231 | unsigned short Rx_overrun_err_count PACKED; | ||
| 232 | unsigned short CRC_err_count PACKED; /* receiver CRC error count */ | ||
| 233 | unsigned short Rx_abort_count PACKED; /* abort frames recvd count */ | ||
| 234 | unsigned short Rx_dis_pri_bfrs_full_count PACKED;/* receiver disabled */ | ||
| 235 | unsigned short comms_err_stat_reserved_1 PACKED;/* reserved for later */ | ||
| 236 | unsigned short sec_Tx_abort_msd_Tx_int_count PACKED; /* secondary - abort frames transmitted count (missed Tx interrupt) */ | ||
| 237 | unsigned short missed_Tx_und_int_count PACKED; /* missed tx underrun interrupt count */ | ||
| 238 | unsigned short sec_Tx_abort_count PACKED; /*secondary-abort frames tx count */ | ||
| 239 | unsigned short DCD_state_change_count PACKED; /* DCD state change */ | ||
| 240 | unsigned short CTS_state_change_count PACKED; /* CTS state change */ | ||
| 241 | } COMMS_ERROR_STATS_STRUCT; | ||
| 242 | |||
| 243 | |||
| 244 | |||
| 245 | /* ---------------------------------------------------------------------------- | ||
| 246 | * Constants used for line tracing | ||
| 247 | * --------------------------------------------------------------------------*/ | ||
| 248 | |||
| 249 | /* the trace configuration structure (SET_TRACE_CONFIGURATION/READ_TRACE_CONFIGURATION commands) */ | ||
| 250 | typedef struct { | ||
| 251 | unsigned char trace_config PACKED; /* trace configuration */ | ||
| 252 | unsigned short trace_deactivation_timer PACKED; /* trace deactivation timer */ | ||
| 253 | unsigned long ptr_trace_stat_el_cfg_struct PACKED; /* a pointer to the line trace element configuration structure */ | ||
| 254 | } LINE_TRACE_CONFIG_STRUCT; | ||
| 255 | |||
| 256 | /* 'trace_config' bit settings */ | ||
| 257 | #define TRACE_INACTIVE 0x00 /* trace is inactive */ | ||
| 258 | #define TRACE_ACTIVE 0x01 /* trace is active */ | ||
| 259 | #define TRACE_DELAY_MODE 0x04 /* operate the trace in delay mode */ | ||
| 260 | #define TRACE_DATA_FRAMES 0x08 /* trace Data frames */ | ||
| 261 | #define TRACE_SLARP_FRAMES 0x10 /* trace SLARP frames */ | ||
| 262 | #define TRACE_CDP_FRAMES 0x20 /* trace CDP frames */ | ||
| 263 | |||
| 264 | /* the line trace status element configuration structure */ | ||
| 265 | typedef struct { | ||
| 266 | unsigned short number_trace_status_elements PACKED; /* number of line trace elements */ | ||
| 267 | unsigned long base_addr_trace_status_elements PACKED; /* base address of the trace element list */ | ||
| 268 | unsigned long next_trace_element_to_use PACKED; /* pointer to the next trace element to be used */ | ||
| 269 | unsigned long base_addr_trace_buffer PACKED; /* base address of the trace data buffer */ | ||
| 270 | unsigned long end_addr_trace_buffer PACKED; /* end address of the trace data buffer */ | ||
| 271 | } TRACE_STATUS_EL_CFG_STRUCT; | ||
| 272 | |||
| 273 | /* the line trace status element structure */ | ||
| 274 | typedef struct { | ||
| 275 | unsigned char opp_flag PACKED; /* opp flag */ | ||
| 276 | unsigned short trace_length PACKED; /* trace length */ | ||
| 277 | unsigned char trace_type PACKED; /* trace type */ | ||
| 278 | unsigned short trace_time_stamp PACKED; /* time stamp */ | ||
| 279 | unsigned short trace_reserved_1 PACKED; /* reserved for later use */ | ||
| 280 | unsigned long trace_reserved_2 PACKED; /* reserved for later use */ | ||
| 281 | unsigned long ptr_data_bfr PACKED; /* ptr to the trace data buffer */ | ||
| 282 | } TRACE_STATUS_ELEMENT_STRUCT; | ||
| 283 | |||
| 284 | /* "trace_type" bit settings */ | ||
| 285 | #define TRACE_INCOMING 0x00 | ||
| 286 | #define TRACE_OUTGOINGING 0x01 | ||
| 287 | #define TRACE_INCOMING_ABORTED 0x10 | ||
| 288 | #define TRACE_INCOMING_CRC_ERROR 0x20 | ||
| 289 | #define TRACE_INCOMING_OVERRUN_ERROR 0x40 | ||
| 290 | |||
| 291 | |||
| 292 | |||
| 293 | /* the line trace statistics structure */ | ||
| 294 | typedef struct { | ||
| 295 | unsigned long frames_traced_count PACKED; /* number of frames traced */ | ||
| 296 | unsigned long trc_frms_not_recorded_count PACKED; /* number of trace frames discarded */ | ||
| 297 | } LINE_TRACE_STATS_STRUCT; | ||
| 298 | |||
| 299 | |||
| 300 | /* ---------------------------------------------------------------------------- | ||
| 301 | * Constants for the FT1_MONITOR_STATUS_CTRL command | ||
| 302 | * --------------------------------------------------------------------------*/ | ||
| 303 | |||
| 304 | #define DISABLE_FT1_STATUS_STATISTICS 0x00 /* disable the FT1 status and statistics monitoring */ | ||
| 305 | #define ENABLE_READ_FT1_STATUS 0x01 /* read the FT1 operational status */ | ||
| 306 | #define ENABLE_READ_FT1_OP_STATS 0x02 /* read the FT1 operational statistics */ | ||
| 307 | #define FLUSH_FT1_OP_STATS 0x04 /* flush the FT1 operational statistics */ | ||
| 308 | |||
| 309 | |||
| 310 | |||
| 311 | |||
| 312 | /* ---------------------------------------------------------------------------- | ||
| 313 | * Constants for the SET_CHDLC_CONFIGURATION command | ||
| 314 | * --------------------------------------------------------------------------*/ | ||
| 315 | |||
| 316 | /* the CHDLC configuration structure */ | ||
| 317 | typedef struct { | ||
| 318 | unsigned long baud_rate PACKED; /* the baud rate */ | ||
| 319 | unsigned short line_config_options PACKED; /* line configuration options */ | ||
| 320 | unsigned short modem_config_options PACKED; /* modem configration options */ | ||
| 321 | unsigned short modem_status_timer PACKED; /* timer for monitoring modem status changes */ | ||
| 322 | unsigned short CHDLC_API_options PACKED; /* CHDLC API options */ | ||
| 323 | unsigned short CHDLC_protocol_options PACKED; /* CHDLC protocol options */ | ||
| 324 | unsigned short percent_data_buffer_for_Tx PACKED; /* percentage data buffering used for Tx */ | ||
| 325 | unsigned short CHDLC_statistics_options PACKED; /* CHDLC operational statistics options */ | ||
| 326 | unsigned short max_CHDLC_data_field_length PACKED; /* the maximum length of the CHDLC Data field */ | ||
| 327 | unsigned short transmit_keepalive_timer PACKED; /* the transmit keepalive timer */ | ||
| 328 | unsigned short receive_keepalive_timer PACKED; /* the receive keepalive timer */ | ||
| 329 | unsigned short keepalive_error_tolerance PACKED; /* the receive keepalive error tolerance */ | ||
| 330 | unsigned short SLARP_request_timer PACKED; /* the SLARP request timer */ | ||
| 331 | unsigned long IP_address PACKED; /* the IP address */ | ||
| 332 | unsigned long IP_netmask PACKED; /* the IP netmask */ | ||
| 333 | unsigned long ptr_shared_mem_info_struct PACKED; /* a pointer to the shared memory area information structure */ | ||
| 334 | unsigned long ptr_CHDLC_Tx_stat_el_cfg_struct PACKED; /* a pointer to the transmit status element configuration structure */ | ||
| 335 | unsigned long ptr_CHDLC_Rx_stat_el_cfg_struct PACKED; /* a pointer to the receive status element configuration structure */ | ||
| 336 | } CHDLC_CONFIGURATION_STRUCT; | ||
| 337 | |||
| 338 | /* settings for the 'line_config_options' */ | ||
| 339 | #define INTERFACE_LEVEL_V35 0x0000 /* V.35 interface level */ | ||
| 340 | #define INTERFACE_LEVEL_RS232 0x0001 /* RS-232 interface level */ | ||
| 341 | |||
| 342 | /* settings for the 'modem_config_options' */ | ||
| 343 | |||
| 344 | #define DONT_RAISE_DTR_RTS_ON_EN_COMMS 0x0001 | ||
| 345 | /* don't automatically raise DTR and RTS when performing an | ||
| 346 | ENABLE_CHDLC_COMMUNICATIONS command */ | ||
| 347 | |||
| 348 | #define DONT_REPORT_CHG_IN_MODEM_STAT 0x0002 | ||
| 349 | /* don't report changes in modem status to the application */ | ||
| 350 | |||
| 351 | |||
| 352 | /* bit settings for the 'CHDLC_protocol_options' byte */ | ||
| 353 | |||
| 354 | #define IGNORE_DCD_FOR_LINK_STAT 0x0001 | ||
| 355 | /* ignore DCD in determining the CHDLC link status */ | ||
| 356 | |||
| 357 | #define IGNORE_CTS_FOR_LINK_STAT 0x0002 | ||
| 358 | /* ignore CTS in determining the CHDLC link status */ | ||
| 359 | |||
| 360 | #define IGNORE_KPALV_FOR_LINK_STAT 0x0004 | ||
| 361 | /* ignore keepalive frames in determining the CHDLC link status */ | ||
| 362 | |||
| 363 | #define SINGLE_TX_BUFFER 0x4000 | ||
| 364 | /* configure a single transmit buffer */ | ||
| 365 | |||
| 366 | #define HDLC_STREAMING_MODE 0x8000 | ||
| 367 | |||
| 368 | /* settings for the 'CHDLC_statistics_options' */ | ||
| 369 | |||
| 370 | #define CHDLC_TX_DATA_BYTE_COUNT_STAT 0x0001 | ||
| 371 | /* record the number of Data bytes transmitted */ | ||
| 372 | |||
| 373 | #define CHDLC_RX_DATA_BYTE_COUNT_STAT 0x0002 | ||
| 374 | /* record the number of Data bytes received */ | ||
| 375 | |||
| 376 | #define CHDLC_TX_THROUGHPUT_STAT 0x0004 | ||
| 377 | /* compute the Data frame transmit throughput */ | ||
| 378 | |||
| 379 | #define CHDLC_RX_THROUGHPUT_STAT 0x0008 | ||
| 380 | /* compute the Data frame receive throughput */ | ||
| 381 | |||
| 382 | |||
| 383 | /* permitted minimum and maximum values for setting the CHDLC configuration */ | ||
| 384 | #define PRI_MAX_BAUD_RATE_S508 2666666 /* PRIMARY - maximum baud rate (S508) */ | ||
| 385 | #define SEC_MAX_BAUD_RATE_S508 258064 /* SECONDARY - maximum baud rate (S508) */ | ||
| 386 | #define PRI_MAX_BAUD_RATE_S514 2750000 /* PRIMARY - maximum baud rate (S508) */ | ||
| 387 | #define SEC_MAX_BAUD_RATE_S514 515625 /* SECONDARY - maximum baud rate (S508) */ | ||
| 388 | |||
| 389 | #define MIN_MODEM_TIMER 0 /* minimum modem status timer */ | ||
| 390 | #define MAX_MODEM_TIMER 5000 /* maximum modem status timer */ | ||
| 391 | |||
| 392 | #define SEC_MAX_NO_DATA_BYTES_IN_FRAME 2048 /* SECONDARY - max length of the CHDLC data field */ | ||
| 393 | |||
| 394 | #define MIN_Tx_KPALV_TIMER 0 /* minimum transmit keepalive timer */ | ||
| 395 | #define MAX_Tx_KPALV_TIMER 60000 /* maximum transmit keepalive timer */ | ||
| 396 | #define DEFAULT_Tx_KPALV_TIMER 10000 /* default transmit keepalive timer */ | ||
| 397 | |||
| 398 | #define MIN_Rx_KPALV_TIMER 10 /* minimum receive keepalive timer */ | ||
| 399 | #define MAX_Rx_KPALV_TIMER 60000 /* maximum receive keepalive timer */ | ||
| 400 | #define DEFAULT_Rx_KPALV_TIMER 10000 /* default receive keepalive timer */ | ||
| 401 | |||
| 402 | #define MIN_KPALV_ERR_TOL 1 /* min kpalv error tolerance count */ | ||
| 403 | #define MAX_KPALV_ERR_TOL 20 /* max kpalv error tolerance count */ | ||
| 404 | #define DEFAULT_KPALV_ERR_TOL 3 /* default value */ | ||
| 405 | |||
| 406 | #define MIN_SLARP_REQ_TIMER 0 /* min transmit SLARP Request timer */ | ||
| 407 | #define MAX_SLARP_REQ_TIMER 60000 /* max transmit SLARP Request timer */ | ||
| 408 | #define DEFAULT_SLARP_REQ_TIMER 0 /* default value -- no SLARP */ | ||
| 409 | |||
| 410 | |||
| 411 | |||
| 412 | /* ---------------------------------------------------------------------------- | ||
| 413 | * Constants for the READ_CHDLC_LINK_STATUS command | ||
| 414 | * --------------------------------------------------------------------------*/ | ||
| 415 | |||
| 416 | /* the CHDLC status structure */ | ||
| 417 | typedef struct { | ||
| 418 | unsigned char CHDLC_link_status PACKED; /* CHDLC link status */ | ||
| 419 | unsigned char no_Data_frms_for_app PACKED; /* number of Data frames available for the application */ | ||
| 420 | unsigned char receiver_status PACKED; /* enabled/disabled */ | ||
| 421 | unsigned char SLARP_state PACKED; /* internal SLARP state */ | ||
| 422 | } CHDLC_LINK_STATUS_STRUCT; | ||
| 423 | |||
| 424 | /* settings for the 'CHDLC_link_status' variable */ | ||
| 425 | #define CHDLC_LINK_INACTIVE 0x00 /* the CHDLC link is inactive */ | ||
| 426 | #define CHDLC_LINK_ACTIVE 0x01 /* the CHDLC link is active */ | ||
| 427 | |||
| 428 | |||
| 429 | |||
| 430 | /* ---------------------------------------------------------------------------- | ||
| 431 | * Constants for the READ_CHDLC_OPERATIONAL_STATS command | ||
| 432 | * --------------------------------------------------------------------------*/ | ||
| 433 | |||
| 434 | /* the CHDLC operational statistics structure */ | ||
| 435 | typedef struct { | ||
| 436 | |||
| 437 | /* Data frame transmission statistics */ | ||
| 438 | unsigned long Data_frames_Tx_count PACKED; /* # of frames transmitted */ | ||
| 439 | unsigned long Data_bytes_Tx_count PACKED; /* # of bytes transmitted */ | ||
| 440 | unsigned long Data_Tx_throughput PACKED; /* transmit throughput */ | ||
| 441 | unsigned long no_ms_for_Data_Tx_thruput_comp PACKED; /* millisecond time used for the Tx throughput computation */ | ||
| 442 | unsigned long Tx_Data_discard_lgth_err_count PACKED; /* number of Data frames discarded (length error) */ | ||
| 443 | unsigned long reserved_Data_frm_Tx_stat1 PACKED; /* reserved for later */ | ||
| 444 | unsigned long reserved_Data_frm_Tx_stat2 PACKED; /* reserved for later */ | ||
| 445 | unsigned long reserved_Data_frm_Tx_stat3 PACKED; /* reserved for later */ | ||
| 446 | |||
| 447 | /* Data frame reception statistics */ | ||
| 448 | unsigned long Data_frames_Rx_count PACKED; /* number of frames received */ | ||
| 449 | unsigned long Data_bytes_Rx_count PACKED; /* number of bytes received */ | ||
| 450 | unsigned long Data_Rx_throughput PACKED; /* receive throughput */ | ||
| 451 | unsigned long no_ms_for_Data_Rx_thruput_comp PACKED; /* millisecond time used for the Rx throughput computation */ | ||
| 452 | unsigned long Rx_Data_discard_short_count PACKED; /* received Data frames discarded (too short) */ | ||
| 453 | unsigned long Rx_Data_discard_long_count PACKED; /* received Data frames discarded (too long) */ | ||
| 454 | unsigned long Rx_Data_discard_inactive_count PACKED; /* received Data frames discarded (link inactive) */ | ||
| 455 | unsigned long reserved_Data_frm_Rx_stat1 PACKED; /* reserved for later */ | ||
| 456 | |||
| 457 | /* SLARP frame transmission/reception statistics */ | ||
| 458 | unsigned long CHDLC_SLARP_REQ_Tx_count PACKED; /* number of SLARP Request frames transmitted */ | ||
| 459 | unsigned long CHDLC_SLARP_REQ_Rx_count PACKED; /* number of SLARP Request frames received */ | ||
| 460 | unsigned long CHDLC_SLARP_REPLY_Tx_count PACKED; /* number of SLARP Reply frames transmitted */ | ||
| 461 | unsigned long CHDLC_SLARP_REPLY_Rx_count PACKED; /* number of SLARP Reply frames received */ | ||
| 462 | unsigned long CHDLC_SLARP_KPALV_Tx_count PACKED; /* number of SLARP keepalive frames transmitted */ | ||
| 463 | unsigned long CHDLC_SLARP_KPALV_Rx_count PACKED; /* number of SLARP keepalive frames received */ | ||
| 464 | unsigned long reserved_SLARP_stat1 PACKED; /* reserved for later */ | ||
| 465 | unsigned long reserved_SLARP_stat2 PACKED; /* reserved for later */ | ||
| 466 | |||
| 467 | /* CDP frame transmission/reception statistics */ | ||
| 468 | unsigned long CHDLC_CDP_Tx_count PACKED; /* number of CDP frames transmitted */ | ||
| 469 | unsigned long CHDLC_CDP_Rx_count PACKED; /* number of CDP frames received */ | ||
| 470 | unsigned long reserved_CDP_stat1 PACKED; /* reserved for later */ | ||
| 471 | unsigned long reserved_CDP_stat2 PACKED; /* reserved for later */ | ||
| 472 | unsigned long reserved_CDP_stat3 PACKED; /* reserved for later */ | ||
| 473 | unsigned long reserved_CDP_stat4 PACKED; /* reserved for later */ | ||
| 474 | unsigned long reserved_CDP_stat5 PACKED; /* reserved for later */ | ||
| 475 | unsigned long reserved_CDP_stat6 PACKED; /* reserved for later */ | ||
| 476 | |||
| 477 | /* Incoming frames with a format error statistics */ | ||
| 478 | unsigned short Rx_frm_incomp_CHDLC_hdr_count PACKED; /* frames received of with incomplete Cisco HDLC header */ | ||
| 479 | unsigned short Rx_frms_too_long_count PACKED; /* frames received of excessive length count */ | ||
| 480 | unsigned short Rx_invalid_CHDLC_addr_count PACKED; /* frames received with an invalid CHDLC address count */ | ||
| 481 | unsigned short Rx_invalid_CHDLC_ctrl_count PACKED; /* frames received with an invalid CHDLC control field count */ | ||
| 482 | unsigned short Rx_invalid_CHDLC_type_count PACKED; /* frames received of an invalid CHDLC frame type count */ | ||
| 483 | unsigned short Rx_SLARP_invalid_code_count PACKED; /* SLARP frame received with an invalid packet code */ | ||
| 484 | unsigned short Rx_SLARP_Reply_bad_IP_addr PACKED; /* SLARP Reply received - bad IP address */ | ||
| 485 | unsigned short Rx_SLARP_Reply_bad_netmask PACKED; /* SLARP Reply received - bad netmask */ | ||
| 486 | unsigned long reserved_frm_format_err1 PACKED; /* reserved for later */ | ||
| 487 | unsigned long reserved_frm_format_err2 PACKED; /* reserved for later */ | ||
| 488 | unsigned long reserved_frm_format_err3 PACKED; /* reserved for later */ | ||
| 489 | unsigned long reserved_frm_format_err4 PACKED; /* reserved for later */ | ||
| 490 | |||
| 491 | /* CHDLC timeout/retry statistics */ | ||
| 492 | unsigned short SLARP_Rx_keepalive_TO_count PACKED; /* timeout count for incoming SLARP frames */ | ||
| 493 | unsigned short SLARP_Request_TO_count PACKED; /* timeout count for SLARP Request frames */ | ||
| 494 | unsigned long To_retry_reserved_stat1 PACKED; /* reserved for later */ | ||
| 495 | unsigned long To_retry_reserved_stat2 PACKED; /* reserved for later */ | ||
| 496 | unsigned long To_retry_reserved_stat3 PACKED; /* reserved for later */ | ||
| 497 | |||
| 498 | /* CHDLC link active/inactive and loopback statistics */ | ||
| 499 | unsigned short link_active_count PACKED; /* number of times that the link went active */ | ||
| 500 | unsigned short link_inactive_modem_count PACKED; /* number of times that the link went inactive (modem failure) */ | ||
| 501 | unsigned short link_inactive_keepalive_count PACKED; /* number of times that the link went inactive (keepalive failure) */ | ||
| 502 | unsigned short link_looped_count PACKED; /* link looped count */ | ||
| 503 | unsigned long link_status_reserved_stat1 PACKED; /* reserved for later use */ | ||
| 504 | unsigned long link_status_reserved_stat2 PACKED; /* reserved for later use */ | ||
| 505 | |||
| 506 | /* miscellaneous statistics */ | ||
| 507 | unsigned long reserved_misc_stat1 PACKED; /* reserved for later */ | ||
| 508 | unsigned long reserved_misc_stat2 PACKED; /* reserved for later */ | ||
| 509 | unsigned long reserved_misc_stat3 PACKED; /* reserved for later */ | ||
| 510 | unsigned long reserved_misc_stat4 PACKED; /* reserved for later */ | ||
| 511 | |||
| 512 | } CHDLC_OPERATIONAL_STATS_STRUCT; | ||
| 513 | |||
| 514 | |||
| 515 | |||
| 516 | /* ---------------------------------------------------------------------------- | ||
| 517 | * Constants for using application interrupts | ||
| 518 | * --------------------------------------------------------------------------*/ | ||
| 519 | |||
| 520 | /* the structure used for the SET_CHDLC_INTERRUPT_TRIGGERS/READ_CHDLC_INTERRUPT_TRIGGERS command */ | ||
| 521 | typedef struct { | ||
| 522 | unsigned char CHDLC_interrupt_triggers PACKED; /* CHDLC interrupt trigger configuration */ | ||
| 523 | unsigned char IRQ PACKED; /* IRQ to be used */ | ||
| 524 | unsigned short interrupt_timer PACKED; /* interrupt timer */ | ||
| 525 | unsigned short misc_interrupt_bits PACKED; /* miscellaneous bits */ | ||
| 526 | } CHDLC_INT_TRIGGERS_STRUCT; | ||
| 527 | |||
| 528 | /* 'CHDLC_interrupt_triggers' bit settings */ | ||
| 529 | #define APP_INT_ON_RX_FRAME 0x01 /* interrupt on Data frame reception */ | ||
| 530 | #define APP_INT_ON_TX_FRAME 0x02 /* interrupt when an Data frame may be transmitted */ | ||
| 531 | #define APP_INT_ON_COMMAND_COMPLETE 0x04 /* interrupt when an interface command is complete */ | ||
| 532 | #define APP_INT_ON_TIMER 0x08 /* interrupt on a defined millisecond timeout */ | ||
| 533 | #define APP_INT_ON_GLOBAL_EXCEP_COND 0x10 /* interrupt on a global exception condition */ | ||
| 534 | #define APP_INT_ON_CHDLC_EXCEP_COND 0x20 /* interrupt on an CHDLC exception condition */ | ||
| 535 | #define APP_INT_ON_TRACE_DATA_AVAIL 0x80 /* interrupt when trace data is available */ | ||
| 536 | |||
| 537 | /* interrupt types indicated at 'interrupt_type' byte of the INTERRUPT_INFORMATION_STRUCT */ | ||
| 538 | #define NO_APP_INTS_PEND 0x00 /* no interrups are pending */ | ||
| 539 | #define RX_APP_INT_PEND 0x01 /* a receive interrupt is pending */ | ||
| 540 | #define TX_APP_INT_PEND 0x02 /* a transmit interrupt is pending */ | ||
| 541 | #define COMMAND_COMPLETE_APP_INT_PEND 0x04 /* a 'command complete' interrupt is pending */ | ||
| 542 | #define TIMER_APP_INT_PEND 0x08 /* a timer interrupt is pending */ | ||
| 543 | #define GLOBAL_EXCEP_COND_APP_INT_PEND 0x10 /* a global exception condition interrupt is pending */ | ||
| 544 | #define CHDLC_EXCEP_COND_APP_INT_PEND 0x20 /* an CHDLC exception condition interrupt is pending */ | ||
| 545 | #define TRACE_DATA_AVAIL_APP_INT_PEND 0x80 /* a trace data available interrupt is pending */ | ||
| 546 | |||
| 547 | |||
| 548 | /* modem status changes */ | ||
| 549 | #define DCD_HIGH 0x08 | ||
| 550 | #define CTS_HIGH 0x20 | ||
| 551 | |||
| 552 | |||
| 553 | /* ---------------------------------------------------------------------------- | ||
| 554 | * Constants for Data frame transmission | ||
| 555 | * --------------------------------------------------------------------------*/ | ||
| 556 | |||
| 557 | /* the Data frame transmit status element configuration structure */ | ||
| 558 | typedef struct { | ||
| 559 | unsigned short number_Tx_status_elements PACKED; /* number of transmit status elements */ | ||
| 560 | unsigned long base_addr_Tx_status_elements PACKED; /* base address of the transmit element list */ | ||
| 561 | unsigned long next_Tx_status_element_to_use PACKED; /* pointer to the next transmit element to be used */ | ||
| 562 | } CHDLC_TX_STATUS_EL_CFG_STRUCT; | ||
| 563 | |||
| 564 | /* the Data frame transmit status element structure */ | ||
| 565 | typedef struct { | ||
| 566 | unsigned char opp_flag PACKED; /* opp flag */ | ||
| 567 | unsigned short frame_length PACKED; /* length of the frame to be transmitted */ | ||
| 568 | unsigned char reserved_1 PACKED; /* reserved for internal use */ | ||
| 569 | unsigned long reserved_2 PACKED; /* reserved for internal use */ | ||
| 570 | unsigned long reserved_3 PACKED; /* reserved for internal use */ | ||
| 571 | unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ | ||
| 572 | } CHDLC_DATA_TX_STATUS_EL_STRUCT; | ||
| 573 | |||
| 574 | |||
| 575 | |||
| 576 | /* ---------------------------------------------------------------------------- | ||
| 577 | * Constants for Data frame reception | ||
| 578 | * --------------------------------------------------------------------------*/ | ||
| 579 | |||
| 580 | /* the Data frame receive status element configuration structure */ | ||
| 581 | typedef struct { | ||
| 582 | unsigned short number_Rx_status_elements PACKED; /* number of receive status elements */ | ||
| 583 | unsigned long base_addr_Rx_status_elements PACKED; /* base address of the receive element list */ | ||
| 584 | unsigned long next_Rx_status_element_to_use PACKED; /* pointer to the next receive element to be used */ | ||
| 585 | unsigned long base_addr_Rx_buffer PACKED; /* base address of the receive data buffer */ | ||
| 586 | unsigned long end_addr_Rx_buffer PACKED; /* end address of the receive data buffer */ | ||
| 587 | } CHDLC_RX_STATUS_EL_CFG_STRUCT; | ||
| 588 | |||
| 589 | /* the Data frame receive status element structure */ | ||
| 590 | typedef struct { | ||
| 591 | unsigned char opp_flag PACKED; /* opp flag */ | ||
| 592 | unsigned short frame_length PACKED; /* length of the received frame */ | ||
| 593 | unsigned char error_flag PACKED; /* frame errors (HDLC_STREAMING_MODE)*/ | ||
| 594 | unsigned short time_stamp PACKED; /* receive time stamp (HDLC_STREAMING_MODE) */ | ||
| 595 | unsigned long reserved_1 PACKED; /* reserved for internal use */ | ||
| 596 | unsigned short reserved_2 PACKED; /* reserved for internal use */ | ||
| 597 | unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ | ||
| 598 | } CHDLC_DATA_RX_STATUS_EL_STRUCT; | ||
| 599 | |||
| 600 | |||
| 601 | |||
| 602 | /* ---------------------------------------------------------------------------- | ||
| 603 | * Constants defining the shared memory information area | ||
| 604 | * --------------------------------------------------------------------------*/ | ||
| 605 | |||
| 606 | /* the global information structure */ | ||
| 607 | typedef struct { | ||
| 608 | unsigned char global_status PACKED; /* global status */ | ||
| 609 | unsigned char modem_status PACKED; /* current modem status */ | ||
| 610 | unsigned char global_excep_conditions PACKED; /* global exception conditions */ | ||
| 611 | unsigned char glob_info_reserved[5] PACKED; /* reserved */ | ||
| 612 | unsigned char codename[4] PACKED; /* Firmware name */ | ||
| 613 | unsigned char codeversion[4] PACKED; /* Firmware version */ | ||
| 614 | } GLOBAL_INFORMATION_STRUCT; | ||
| 615 | |||
| 616 | /* the CHDLC information structure */ | ||
| 617 | typedef struct { | ||
| 618 | unsigned char CHDLC_status PACKED; /* CHDLC status */ | ||
| 619 | unsigned char CHDLC_excep_conditions PACKED; /* CHDLC exception conditions */ | ||
| 620 | unsigned char CHDLC_info_reserved[14] PACKED; /* reserved */ | ||
| 621 | } CHDLC_INFORMATION_STRUCT; | ||
| 622 | |||
| 623 | /* the interrupt information structure */ | ||
| 624 | typedef struct { | ||
| 625 | unsigned char interrupt_type PACKED; /* type of interrupt triggered */ | ||
| 626 | unsigned char interrupt_permission PACKED; /* interrupt permission mask */ | ||
| 627 | unsigned char int_info_reserved[14] PACKED; /* reserved */ | ||
| 628 | } INTERRUPT_INFORMATION_STRUCT; | ||
| 629 | |||
| 630 | /* the S508/FT1 information structure */ | ||
| 631 | typedef struct { | ||
| 632 | unsigned char parallel_port_A_input PACKED; /* input - parallel port A */ | ||
| 633 | unsigned char parallel_port_B_input PACKED; /* input - parallel port B */ | ||
| 634 | unsigned char FT1_info_reserved[14] PACKED; /* reserved */ | ||
| 635 | } FT1_INFORMATION_STRUCT; | ||
| 636 | |||
| 637 | /* the shared memory area information structure */ | ||
| 638 | typedef struct { | ||
| 639 | GLOBAL_INFORMATION_STRUCT global_info_struct PACKED; /* the global information structure */ | ||
| 640 | CHDLC_INFORMATION_STRUCT CHDLC_info_struct PACKED; /* the CHDLC information structure */ | ||
| 641 | INTERRUPT_INFORMATION_STRUCT interrupt_info_struct PACKED; /* the interrupt information structure */ | ||
| 642 | FT1_INFORMATION_STRUCT FT1_info_struct PACKED; /* the S508/FT1 information structure */ | ||
| 643 | } SHARED_MEMORY_INFO_STRUCT; | ||
| 644 | |||
| 645 | /* ---------------------------------------------------------------------------- | ||
| 646 | * UDP Management constants and structures | ||
| 647 | * --------------------------------------------------------------------------*/ | ||
| 648 | |||
| 649 | /* The embedded control block for UDP mgmt | ||
| 650 | This is essentially a mailbox structure, without the large data field */ | ||
| 651 | |||
| 652 | typedef struct { | ||
| 653 | unsigned char opp_flag PACKED; /* the opp flag */ | ||
| 654 | unsigned char command PACKED; /* the user command */ | ||
| 655 | unsigned short buffer_length PACKED; /* the data length */ | ||
| 656 | unsigned char return_code PACKED; /* the return code */ | ||
| 657 | unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; /* reserved for later */ | ||
| 658 | } cblock_t; | ||
| 659 | |||
| 660 | |||
| 661 | /* UDP management packet layout (data area of ip packet) */ | ||
| 662 | /* | ||
| 663 | typedef struct { | ||
| 664 | unsigned char signature[8] PACKED; | ||
| 665 | unsigned char request_reply PACKED; | ||
| 666 | unsigned char id PACKED; | ||
| 667 | unsigned char reserved[6] PACKED; | ||
| 668 | cblock_t cblock PACKED; | ||
| 669 | unsigned char num_frames PACKED; | ||
| 670 | unsigned char ismoredata PACKED; | ||
| 671 | unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; | ||
| 672 | } udp_management_packet_t; | ||
| 673 | |||
| 674 | */ | ||
| 675 | |||
| 676 | typedef struct { | ||
| 677 | unsigned char num_frames PACKED; | ||
| 678 | unsigned char ismoredata PACKED; | ||
| 679 | } trace_info_t; | ||
| 680 | |||
| 681 | typedef struct { | ||
| 682 | ip_pkt_t ip_pkt PACKED; | ||
| 683 | udp_pkt_t udp_pkt PACKED; | ||
| 684 | wp_mgmt_t wp_mgmt PACKED; | ||
| 685 | cblock_t cblock PACKED; | ||
| 686 | trace_info_t trace_info PACKED; | ||
| 687 | unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; | ||
| 688 | } chdlc_udp_pkt_t; | ||
| 689 | |||
| 690 | typedef struct ft1_exec_cmd{ | ||
| 691 | unsigned char command PACKED; /* the user command */ | ||
| 692 | unsigned short buffer_length PACKED; /* the data length */ | ||
| 693 | unsigned char return_code PACKED; /* the return code */ | ||
| 694 | unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; | ||
| 695 | } ft1_exec_cmd_t; | ||
| 696 | |||
| 697 | typedef struct { | ||
| 698 | unsigned char opp_flag PACKED; | ||
| 699 | ft1_exec_cmd_t cmd PACKED; | ||
| 700 | unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; | ||
| 701 | } ft1_exec_t; | ||
| 702 | |||
| 703 | #define UDPMGMT_SIGNATURE "CTPIPEAB" | ||
| 704 | |||
| 705 | |||
| 706 | /* UDP/IP packet (for UDP management) layout */ | ||
| 707 | /* | ||
| 708 | typedef struct { | ||
| 709 | unsigned char reserved[2] PACKED; | ||
| 710 | unsigned short ip_length PACKED; | ||
| 711 | unsigned char reserved2[4] PACKED; | ||
| 712 | unsigned char ip_ttl PACKED; | ||
| 713 | unsigned char ip_protocol PACKED; | ||
| 714 | unsigned short ip_checksum PACKED; | ||
| 715 | unsigned long ip_src_address PACKED; | ||
| 716 | unsigned long ip_dst_address PACKED; | ||
| 717 | unsigned short udp_src_port PACKED; | ||
| 718 | unsigned short udp_dst_port PACKED; | ||
| 719 | unsigned short udp_length PACKED; | ||
| 720 | unsigned short udp_checksum PACKED; | ||
| 721 | udp_management_packet_t um_packet PACKED; | ||
| 722 | } ip_packet_t; | ||
| 723 | */ | ||
| 724 | |||
| 725 | /* valid ip_protocol for UDP management */ | ||
| 726 | #define UDPMGMT_UDP_PROTOCOL 0x11 | ||
| 727 | |||
| 728 | |||
| 729 | typedef struct { | ||
| 730 | unsigned char status PACKED; | ||
| 731 | unsigned char data_avail PACKED; | ||
| 732 | unsigned short real_length PACKED; | ||
| 733 | unsigned short time_stamp PACKED; | ||
| 734 | unsigned char data[1] PACKED; | ||
| 735 | } trace_pkt_t; | ||
| 736 | |||
| 737 | typedef struct { | ||
| 738 | unsigned char error_flag PACKED; | ||
| 739 | unsigned short time_stamp PACKED; | ||
| 740 | unsigned char reserved[13] PACKED; | ||
| 741 | } api_rx_hdr_t; | ||
| 742 | |||
| 743 | typedef struct { | ||
| 744 | api_rx_hdr_t api_rx_hdr PACKED; | ||
| 745 | void * data PACKED; | ||
| 746 | } api_rx_element_t; | ||
| 747 | |||
| 748 | typedef struct { | ||
| 749 | unsigned char attr PACKED; | ||
| 750 | unsigned char reserved[15] PACKED; | ||
| 751 | } api_tx_hdr_t; | ||
| 752 | |||
| 753 | typedef struct { | ||
| 754 | api_tx_hdr_t api_tx_hdr PACKED; | ||
| 755 | void * data PACKED; | ||
| 756 | } api_tx_element_t; | ||
| 757 | |||
| 758 | /* ---------------------------------------------------------------------------- | ||
| 759 | * Constants for the SET_FT1_CONFIGURATION/READ_FT1_CONFIGURATION command | ||
| 760 | * --------------------------------------------------------------------------*/ | ||
| 761 | |||
| 762 | /* the FT1 configuration structure */ | ||
| 763 | typedef struct { | ||
| 764 | unsigned short framing_mode; | ||
| 765 | unsigned short encoding_mode; | ||
| 766 | unsigned short line_build_out; | ||
| 767 | unsigned short channel_base; | ||
| 768 | unsigned short baud_rate_kbps; /* the baud rate (in kbps) */ | ||
| 769 | unsigned short clock_mode; | ||
| 770 | } ft1_config_t; | ||
| 771 | |||
| 772 | /* settings for the 'framing_mode' */ | ||
| 773 | #define ESF_FRAMING 0x00 /* ESF framing */ | ||
| 774 | #define D4_FRAMING 0x01 /* D4 framing */ | ||
| 775 | |||
| 776 | /* settings for the 'encoding_mode' */ | ||
| 777 | #define B8ZS_ENCODING 0x00 /* B8ZS encoding */ | ||
| 778 | #define AMI_ENCODING 0x01 /* AMI encoding */ | ||
| 779 | |||
| 780 | /* settings for the 'line_build_out' */ | ||
| 781 | #define LN_BLD_CSU_0dB_DSX1_0_to_133 0x00 /* set build out to CSU (0db) or DSX-1 (0-133ft) */ | ||
| 782 | #define LN_BLD_DSX1_133_to_266 0x01 /* set build out DSX-1 (133-266ft) */ | ||
| 783 | #define LN_BLD_DSX1_266_to_399 0x02 /* set build out DSX-1 (266-399ft) */ | ||
| 784 | #define LN_BLD_DSX1_399_to_533 0x03 /* set build out DSX-1 (399-533ft) */ | ||
| 785 | #define LN_BLD_DSX1_533_to_655 0x04 /* set build out DSX-1 (533-655ft) */ | ||
| 786 | #define LN_BLD_CSU_NEG_7dB 0x05 /* set build out to CSU (-7.5db) */ | ||
| 787 | #define LN_BLD_CSU_NEG_15dB 0x06 /* set build out to CSU (-15db) */ | ||
| 788 | #define LN_BLD_CSU_NEG_22dB 0x07 /* set build out to CSU (-22.5db) */ | ||
| 789 | |||
| 790 | /* settings for the 'channel_base' */ | ||
| 791 | #define MIN_CHANNEL_BASE_VALUE 1 /* the minimum permitted channel base value */ | ||
| 792 | #define MAX_CHANNEL_BASE_VALUE 24 /* the maximum permitted channel base value */ | ||
| 793 | |||
| 794 | /* settings for the 'baud_rate_kbps' */ | ||
| 795 | #define MIN_BAUD_RATE_KBPS 0 /* the minimum permitted baud rate (kbps) */ | ||
| 796 | #define MAX_BAUD_RATE_KBPS 1536 /* the maximum permitted baud rate (kbps) */ | ||
| 797 | #define BAUD_RATE_FT1_AUTO_CONFIG 0xFFFF /* the baud rate used to trigger an automatic FT1 configuration */ | ||
| 798 | |||
| 799 | /* settings for the 'clock_mode' */ | ||
| 800 | #define CLOCK_MODE_NORMAL 0x00 /* clock mode set to normal (slave) */ | ||
| 801 | #define CLOCK_MODE_MASTER 0x01 /* clock mode set to master */ | ||
| 802 | |||
| 803 | |||
| 804 | #define BAUD_RATE_FT1_AUTO_CONFIG 0xFFFF | ||
| 805 | #define AUTO_FT1_CONFIG_NOT_COMPLETE 0x08 | ||
| 806 | #define AUTO_FT1_CFG_FAIL_OP_MODE 0x0C | ||
| 807 | #define AUTO_FT1_CFG_FAIL_INVALID_LINE 0x0D | ||
| 808 | |||
| 809 | |||
| 810 | #ifdef _MSC_ | ||
| 811 | # pragma pack() | ||
| 812 | #endif | ||
| 813 | #endif /* _SDLA_CHDLC_H */ | ||
diff --git a/include/linux/sdla_ppp.h b/include/linux/sdla_ppp.h deleted file mode 100644 index 6f3923179c29..000000000000 --- a/include/linux/sdla_ppp.h +++ /dev/null | |||
| @@ -1,575 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdla_ppp.h Sangoma PPP firmware API definitions. | ||
| 3 | * | ||
| 4 | * Author: Nenad Corbic <ncorbic@sangoma.com> | ||
| 5 | * | ||
| 6 | * Copyright: (c) 1995-1997 Sangoma Technologies Inc. | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | ||
| 9 | * modify it under the terms of the GNU General Public License | ||
| 10 | * as published by the Free Software Foundation; either version | ||
| 11 | * 2 of the License, or (at your option) any later version. | ||
| 12 | * ============================================================================ | ||
| 13 | * Feb 24, 2000 Nenad Corbic v2.1.2 | ||
| 14 | * Jan 06, 1997 Gene Kozin v2.0 | ||
| 15 | * Apr 11, 1996 Gene Kozin Initial version. | ||
| 16 | *****************************************************************************/ | ||
| 17 | #ifndef _SDLA_PPP_H | ||
| 18 | #define _SDLA_PPP_H | ||
| 19 | |||
| 20 | /*---------------------------------------------------------------------------- | ||
| 21 | * Notes: | ||
| 22 | * ------ | ||
| 23 | * 1. All structures defined in this file are byte-alined. | ||
| 24 | * | ||
| 25 | * Compiler Platform | ||
| 26 | * -------- -------- | ||
| 27 | * GNU C Linux | ||
| 28 | */ | ||
| 29 | |||
| 30 | #ifndef PACKED | ||
| 31 | # define PACKED __attribute__((packed)) | ||
| 32 | #endif /* PACKED */ | ||
| 33 | |||
| 34 | /* Adapter memory layout and important constants */ | ||
| 35 | #define PPP508_MB_VECT 0xE000 /* mailbox window vector */ | ||
| 36 | #define PPP508_MB_OFFS 0 /* mailbox offset */ | ||
| 37 | #define PPP508_FLG_OFFS 0x1000 /* status flags offset */ | ||
| 38 | #define PPP508_BUF_OFFS 0x1100 /* buffer info block offset */ | ||
| 39 | #define PPP514_MB_OFFS 0xE000 /* mailbox offset */ | ||
| 40 | #define PPP514_FLG_OFFS 0xF000 /* status flags offset */ | ||
| 41 | #define PPP514_BUF_OFFS 0xF100 /* buffer info block offset */ | ||
| 42 | |||
| 43 | #define PPP_MAX_DATA 1008 /* command block data buffer length */ | ||
| 44 | |||
| 45 | /****** Data Structures *****************************************************/ | ||
| 46 | |||
| 47 | /*---------------------------------------------------------------------------- | ||
| 48 | * PPP Command Block. | ||
| 49 | */ | ||
| 50 | typedef struct ppp_cmd{ | ||
| 51 | unsigned char command PACKED; /* command code */ | ||
| 52 | unsigned short length PACKED; /* length of data buffer */ | ||
| 53 | unsigned char result PACKED; /* return code */ | ||
| 54 | unsigned char rsrv[11] PACKED; /* reserved for future use */ | ||
| 55 | } ppp_cmd_t; | ||
| 56 | |||
| 57 | typedef struct cblock{ | ||
| 58 | unsigned char opp_flag PACKED; | ||
| 59 | unsigned char command PACKED; /* command code */ | ||
| 60 | unsigned short length PACKED; /* length of data buffer */ | ||
| 61 | unsigned char result PACKED; /* return code */ | ||
| 62 | unsigned char rsrv[11] PACKED; /* reserved for future use */ | ||
| 63 | } cblock_t; | ||
| 64 | |||
| 65 | typedef struct ppp_udp_pkt{ | ||
| 66 | ip_pkt_t ip_pkt PACKED; | ||
| 67 | udp_pkt_t udp_pkt PACKED; | ||
| 68 | wp_mgmt_t wp_mgmt PACKED; | ||
| 69 | cblock_t cblock PACKED; | ||
| 70 | unsigned char data[MAX_LGTH_UDP_MGNT_PKT] PACKED; | ||
| 71 | } ppp_udp_pkt_t; | ||
| 72 | |||
| 73 | typedef struct { | ||
| 74 | unsigned char status PACKED; | ||
| 75 | unsigned char data_avail PACKED; | ||
| 76 | unsigned short real_length PACKED; | ||
| 77 | unsigned short time_stamp PACKED; | ||
| 78 | unsigned char data[1] PACKED; | ||
| 79 | } trace_pkt_t; | ||
| 80 | |||
| 81 | |||
| 82 | typedef struct { | ||
| 83 | unsigned char opp_flag PACKED; | ||
| 84 | unsigned char trace_type PACKED; | ||
| 85 | unsigned short trace_length PACKED; | ||
| 86 | unsigned short trace_data_ptr PACKED; | ||
| 87 | unsigned short trace_time_stamp PACKED; | ||
| 88 | } trace_element_t; | ||
| 89 | |||
| 90 | /* 'command' field defines */ | ||
| 91 | #define PPP_READ_CODE_VERSION 0x10 /* configuration commands */ | ||
| 92 | #define PPP_SET_CONFIG 0x05 | ||
| 93 | #define PPP_READ_CONFIG 0x06 | ||
| 94 | #define PPP_SET_INTR_FLAGS 0x20 | ||
| 95 | #define PPP_READ_INTR_FLAGS 0x21 | ||
| 96 | #define PPP_SET_INBOUND_AUTH 0x30 | ||
| 97 | #define PPP_SET_OUTBOUND_AUTH 0x31 | ||
| 98 | #define PPP_GET_CONNECTION_INFO 0x32 | ||
| 99 | |||
| 100 | #define PPP_COMM_ENABLE 0x03 /* operational commands */ | ||
| 101 | #define PPP_COMM_DISABLE 0x04 | ||
| 102 | #define PPP_SEND_SIGN_FRAME 0x23 | ||
| 103 | #define PPP_READ_SIGN_RESPONSE 0x24 | ||
| 104 | #define PPP_DATALINE_MONITOR 0x33 | ||
| 105 | |||
| 106 | #define PPP_READ_STATISTICS 0x07 /* statistics commands */ | ||
| 107 | #define PPP_FLUSH_STATISTICS 0x08 | ||
| 108 | #define PPP_READ_ERROR_STATS 0x09 | ||
| 109 | #define PPP_FLUSH_ERROR_STATS 0x0A | ||
| 110 | #define PPP_READ_PACKET_STATS 0x12 | ||
| 111 | #define PPP_FLUSH_PACKET_STATS 0x13 | ||
| 112 | #define PPP_READ_LCP_STATS 0x14 | ||
| 113 | #define PPP_FLUSH_LCP_STATS 0x15 | ||
| 114 | #define PPP_READ_LPBK_STATS 0x16 | ||
| 115 | #define PPP_FLUSH_LPBK_STATS 0x17 | ||
| 116 | #define PPP_READ_IPCP_STATS 0x18 | ||
| 117 | #define PPP_FLUSH_IPCP_STATS 0x19 | ||
| 118 | #define PPP_READ_IPXCP_STATS 0x1A | ||
| 119 | #define PPP_FLUSH_IPXCP_STATS 0x1B | ||
| 120 | #define PPP_READ_PAP_STATS 0x1C | ||
| 121 | #define PPP_FLUSH_PAP_STATS 0x1D | ||
| 122 | #define PPP_READ_CHAP_STATS 0x1E | ||
| 123 | #define PPP_FLUSH_CHAP_STATS 0x1F | ||
| 124 | |||
| 125 | /* 'result' field defines */ | ||
| 126 | #define PPPRES_OK 0x00 /* command executed successfully */ | ||
| 127 | #define PPPRES_INVALID_STATE 0x09 /* invalid command in this context */ | ||
| 128 | |||
| 129 | /*---------------------------------------------------------------------------- | ||
| 130 | * PPP Mailbox. | ||
| 131 | * This structure is located at offset PPP???_MB_OFFS into PPP???_MB_VECT | ||
| 132 | */ | ||
| 133 | typedef struct ppp_mbox | ||
| 134 | { | ||
| 135 | unsigned char flag PACKED; /* 00h: command execution flag */ | ||
| 136 | ppp_cmd_t cmd PACKED; /* 01h: command block */ | ||
| 137 | unsigned char data[1] PACKED; /* 10h: variable length data buffer */ | ||
| 138 | } ppp_mbox_t; | ||
| 139 | |||
| 140 | /*---------------------------------------------------------------------------- | ||
| 141 | * PPP Status Flags. | ||
| 142 | * This structure is located at offset PPP???_FLG_OFFS into | ||
| 143 | * PPP???_MB_VECT. | ||
| 144 | */ | ||
| 145 | typedef struct ppp_flags | ||
| 146 | { | ||
| 147 | unsigned char iflag PACKED; /* 00: interrupt flag */ | ||
| 148 | unsigned char imask PACKED; /* 01: interrupt mask */ | ||
| 149 | unsigned char resrv PACKED; | ||
| 150 | unsigned char mstatus PACKED; /* 03: modem status */ | ||
| 151 | unsigned char lcp_state PACKED; /* 04: LCP state */ | ||
| 152 | unsigned char ppp_phase PACKED; /* 05: PPP phase */ | ||
| 153 | unsigned char ip_state PACKED; /* 06: IPCP state */ | ||
| 154 | unsigned char ipx_state PACKED; /* 07: IPXCP state */ | ||
| 155 | unsigned char pap_state PACKED; /* 08: PAP state */ | ||
| 156 | unsigned char chap_state PACKED; /* 09: CHAP state */ | ||
| 157 | unsigned short disc_cause PACKED; /* 0A: disconnection cause */ | ||
| 158 | } ppp_flags_t; | ||
| 159 | |||
| 160 | /* 'iflag' defines */ | ||
| 161 | #define PPP_INTR_RXRDY 0x01 /* Rx ready */ | ||
| 162 | #define PPP_INTR_TXRDY 0x02 /* Tx ready */ | ||
| 163 | #define PPP_INTR_MODEM 0x04 /* modem status change (DCD, CTS) */ | ||
| 164 | #define PPP_INTR_CMD 0x08 /* interface command completed */ | ||
| 165 | #define PPP_INTR_DISC 0x10 /* data link disconnected */ | ||
| 166 | #define PPP_INTR_OPEN 0x20 /* data link open */ | ||
| 167 | #define PPP_INTR_DROP_DTR 0x40 /* DTR drop timeout expired */ | ||
| 168 | #define PPP_INTR_TIMER 0x80 /* timer interrupt */ | ||
| 169 | |||
| 170 | |||
| 171 | /* 'mstatus' defines */ | ||
| 172 | #define PPP_MDM_DCD 0x08 /* mdm_status: DCD */ | ||
| 173 | #define PPP_MDM_CTS 0x20 /* mdm_status: CTS */ | ||
| 174 | |||
| 175 | /* 'disc_cause' defines */ | ||
| 176 | #define PPP_LOCAL_TERMINATION 0x0001 /* Local Request by PPP termination phase */ | ||
| 177 | #define PPP_DCD_CTS_DROP 0x0002 /* DCD and/or CTS dropped. Link down */ | ||
| 178 | #define PPP_REMOTE_TERMINATION 0x0800 /* Remote Request by PPP termination phase */ | ||
| 179 | |||
| 180 | /* 'misc_config_bits' defines */ | ||
| 181 | #define DONT_RE_TX_ABORTED_I_FRAMES 0x01 | ||
| 182 | #define TX_FRM_BYTE_COUNT_STATS 0x02 | ||
| 183 | #define RX_FRM_BYTE_COUNT_STATS 0x04 | ||
| 184 | #define TIME_STAMP_IN_RX_FRAMES 0x08 | ||
| 185 | #define NON_STD_ADPTR_FREQ 0x10 | ||
| 186 | #define INTERFACE_LEVEL_RS232 0x20 | ||
| 187 | #define AUTO_LINK_RECOVERY 0x100 | ||
| 188 | #define DONT_TERMINATE_LNK_MAX_CONFIG 0x200 | ||
| 189 | |||
| 190 | /* 'authentication options' defines */ | ||
| 191 | #define NO_AUTHENTICATION 0x00 | ||
| 192 | #define INBOUND_AUTH 0x80 | ||
| 193 | #define PAP_AUTH 0x01 | ||
| 194 | #define CHAP_AUTH 0x02 | ||
| 195 | |||
| 196 | /* 'ip options' defines */ | ||
| 197 | #define L_AND_R_IP_NO_ASSIG 0x00 | ||
| 198 | #define L_IP_LOCAL_ASSIG 0x01 | ||
| 199 | #define L_IP_REMOTE_ASSIG 0x02 | ||
| 200 | #define R_IP_LOCAL_ASSIG 0x04 | ||
| 201 | #define R_IP_REMOTE_ASSIG 0x08 | ||
| 202 | #define ENABLE_IP 0x80 | ||
| 203 | |||
| 204 | /* 'ipx options' defines */ | ||
| 205 | #define ROUTING_PROT_DEFAULT 0x20 | ||
| 206 | #define ENABLE_IPX 0x80 | ||
| 207 | #define DISABLE_IPX 0x00 | ||
| 208 | |||
| 209 | /*---------------------------------------------------------------------------- | ||
| 210 | * PPP Buffer Info. | ||
| 211 | * This structure is located at offset PPP508_BUF_OFFS into | ||
| 212 | * PPP508_MB_VECT. | ||
| 213 | */ | ||
| 214 | typedef struct ppp508_buf_info | ||
| 215 | { | ||
| 216 | unsigned short txb_num PACKED; /* 00: number of transmit buffers */ | ||
| 217 | unsigned long txb_ptr PACKED; /* 02: pointer to the buffer ctl. */ | ||
| 218 | unsigned long txb_nxt PACKED; | ||
| 219 | unsigned char rsrv1[22] PACKED; | ||
| 220 | unsigned short rxb_num PACKED; /* 20: number of receive buffers */ | ||
| 221 | unsigned long rxb_ptr PACKED; /* 22: pointer to the buffer ctl. */ | ||
| 222 | unsigned long rxb1_ptr PACKED; /* 26: pointer to the first buf.ctl. */ | ||
| 223 | unsigned long rxb_base PACKED; /* 2A: pointer to the buffer base */ | ||
| 224 | unsigned char rsrv2[2] PACKED; | ||
| 225 | unsigned long rxb_end PACKED; /* 30: pointer to the buffer end */ | ||
| 226 | } ppp508_buf_info_t; | ||
| 227 | |||
| 228 | /*---------------------------------------------------------------------------- | ||
| 229 | * Transmit/Receive Buffer Control Block. | ||
| 230 | */ | ||
| 231 | typedef struct ppp_buf_ctl | ||
| 232 | { | ||
| 233 | unsigned char flag PACKED; /* 00: 'buffer ready' flag */ | ||
| 234 | unsigned short length PACKED; /* 01: length of data */ | ||
| 235 | unsigned char reserved1[1] PACKED; /* 03: */ | ||
| 236 | unsigned char proto PACKED; /* 04: protocol */ | ||
| 237 | unsigned short timestamp PACKED; /* 05: time stamp (Rx only) */ | ||
| 238 | unsigned char reserved2[5] PACKED; /* 07: */ | ||
| 239 | union | ||
| 240 | { | ||
| 241 | unsigned short o_p[2]; /* 1C: buffer offset & page (S502) */ | ||
| 242 | unsigned long ptr; /* 1C: buffer pointer (S508) */ | ||
| 243 | } buf PACKED; | ||
| 244 | } ppp_buf_ctl_t; | ||
| 245 | |||
| 246 | /*---------------------------------------------------------------------------- | ||
| 247 | * S508 Adapter Configuration Block (passed to the PPP_SET_CONFIG command). | ||
| 248 | */ | ||
| 249 | typedef struct ppp508_conf | ||
| 250 | { | ||
| 251 | unsigned long line_speed PACKED; /* 00: baud rate, bps */ | ||
| 252 | unsigned short txbuf_percent PACKED; /* 04: % of Tx buffer */ | ||
| 253 | unsigned short conf_flags PACKED; /* 06: configuration bits */ | ||
| 254 | unsigned short mtu_local PACKED; /* 08: local MTU */ | ||
| 255 | unsigned short mtu_remote PACKED; /* 0A: remote MTU */ | ||
| 256 | unsigned short restart_tmr PACKED; /* 0C: restart timer */ | ||
| 257 | unsigned short auth_rsrt_tmr PACKED; /* 0E: authentication timer */ | ||
| 258 | unsigned short auth_wait_tmr PACKED; /* 10: authentication timer */ | ||
| 259 | unsigned short mdm_fail_tmr PACKED; /* 12: modem failure timer */ | ||
| 260 | unsigned short dtr_drop_tmr PACKED; /* 14: DTR drop timer */ | ||
| 261 | unsigned short connect_tmout PACKED; /* 16: connection timeout */ | ||
| 262 | unsigned short conf_retry PACKED; /* 18: max. retry */ | ||
| 263 | unsigned short term_retry PACKED; /* 1A: max. retry */ | ||
| 264 | unsigned short fail_retry PACKED; /* 1C: max. retry */ | ||
| 265 | unsigned short auth_retry PACKED; /* 1E: max. retry */ | ||
| 266 | unsigned char auth_options PACKED; /* 20: authentication opt. */ | ||
| 267 | unsigned char ip_options PACKED; /* 21: IP options */ | ||
| 268 | unsigned long ip_local PACKED; /* 22: local IP address */ | ||
| 269 | unsigned long ip_remote PACKED; /* 26: remote IP address */ | ||
| 270 | unsigned char ipx_options PACKED; /* 2A: IPX options */ | ||
| 271 | unsigned char ipx_netno[4] PACKED; /* 2B: IPX net number */ | ||
| 272 | unsigned char ipx_local[6] PACKED; /* 2F: local IPX node number*/ | ||
| 273 | unsigned char ipx_remote[6] PACKED; /* 35: remote IPX node num.*/ | ||
| 274 | unsigned char ipx_router[48] PACKED; /* 3B: IPX router name*/ | ||
| 275 | unsigned long alt_cpu_clock PACKED; /* 6B: */ | ||
| 276 | } ppp508_conf_t; | ||
| 277 | |||
| 278 | /*---------------------------------------------------------------------------- | ||
| 279 | * S508 Adapter Read Connection Information Block | ||
| 280 | * Returned by the PPP_GET_CONNECTION_INFO command | ||
| 281 | */ | ||
| 282 | typedef struct ppp508_connect_info | ||
| 283 | { | ||
| 284 | unsigned short mru PACKED; /* 00-01 Remote Max Rec' Unit */ | ||
| 285 | unsigned char ip_options PACKED; /* 02: Negotiated ip options */ | ||
| 286 | unsigned long ip_local PACKED; /* 03-06: local IP address */ | ||
| 287 | unsigned long ip_remote PACKED; /* 07-0A: remote IP address */ | ||
| 288 | unsigned char ipx_options PACKED; /* 0B: Negotiated ipx options */ | ||
| 289 | unsigned char ipx_netno[4] PACKED; /* 0C-0F: IPX net number */ | ||
| 290 | unsigned char ipx_local[6] PACKED; /* 10-1F: local IPX node # */ | ||
| 291 | unsigned char ipx_remote[6] PACKED; /* 16-1B: remote IPX node # */ | ||
| 292 | unsigned char ipx_router[48] PACKED; /* 1C-4B: IPX router name */ | ||
| 293 | unsigned char auth_status PACKED; /* 4C: Authentication Status */ | ||
| 294 | unsigned char inbd_auth_peerID[1] PACKED; /* 4D: variable length inbound authenticated peer ID */ | ||
| 295 | } ppp508_connect_info_t; | ||
| 296 | |||
| 297 | /* 'line_speed' field */ | ||
| 298 | #define PPP_BITRATE_1200 0x01 | ||
| 299 | #define PPP_BITRATE_2400 0x02 | ||
| 300 | #define PPP_BITRATE_4800 0x03 | ||
| 301 | #define PPP_BITRATE_9600 0x04 | ||
| 302 | #define PPP_BITRATE_19200 0x05 | ||
| 303 | #define PPP_BITRATE_38400 0x06 | ||
| 304 | #define PPP_BITRATE_45000 0x07 | ||
| 305 | #define PPP_BITRATE_56000 0x08 | ||
| 306 | #define PPP_BITRATE_64000 0x09 | ||
| 307 | #define PPP_BITRATE_74000 0x0A | ||
| 308 | #define PPP_BITRATE_112000 0x0B | ||
| 309 | #define PPP_BITRATE_128000 0x0C | ||
| 310 | #define PPP_BITRATE_156000 0x0D | ||
| 311 | |||
| 312 | /* Defines for the 'conf_flags' field */ | ||
| 313 | #define PPP_IGNORE_TX_ABORT 0x01 /* don't re-transmit aborted frames */ | ||
| 314 | #define PPP_ENABLE_TX_STATS 0x02 /* enable Tx statistics */ | ||
| 315 | #define PPP_ENABLE_RX_STATS 0x04 /* enable Rx statistics */ | ||
| 316 | #define PPP_ENABLE_TIMESTAMP 0x08 /* enable timestamp */ | ||
| 317 | |||
| 318 | /* 'ip_options' defines */ | ||
| 319 | #define PPP_LOCAL_IP_LOCAL 0x01 | ||
| 320 | #define PPP_LOCAL_IP_REMOTE 0x02 | ||
| 321 | #define PPP_REMOTE_IP_LOCAL 0x04 | ||
| 322 | #define PPP_REMOTE_IP_REMOTE 0x08 | ||
| 323 | |||
| 324 | /* 'ipx_options' defines */ | ||
| 325 | #define PPP_REMOTE_IPX_NETNO 0x01 | ||
| 326 | #define PPP_REMOTE_IPX_LOCAL 0x02 | ||
| 327 | #define PPP_REMOTE_IPX_REMOTE 0x04 | ||
| 328 | #define PPP_IPX_ROUTE_RIP_SAP 0x08 | ||
| 329 | #define PPP_IPX_ROUTE_NLSP 0x10 | ||
| 330 | #define PPP_IPX_ROUTE_DEFAULT 0x20 | ||
| 331 | #define PPP_IPX_CONF_COMPLETE 0x40 | ||
| 332 | #define PPP_IPX_ENABLE 0x80 | ||
| 333 | |||
| 334 | /*---------------------------------------------------------------------------- | ||
| 335 | * S508 Adapter Configuration Block (returned by the PPP_READ_CONFIG command). | ||
| 336 | */ | ||
| 337 | typedef struct ppp508_get_conf | ||
| 338 | { | ||
| 339 | unsigned long bps PACKED; /* 00: baud rate, bps */ | ||
| 340 | ppp508_conf_t conf PACKED; /* 04: requested config. */ | ||
| 341 | unsigned short txb_num PACKED; /* 6F: number of Tx buffers */ | ||
| 342 | unsigned short rxb_num PACKED; /* 71: number of Rx buffers */ | ||
| 343 | } ppp508_get_conf_t; | ||
| 344 | |||
| 345 | /*---------------------------------------------------------------------------- | ||
| 346 | * S508 Operational Statistics (returned by the PPP_READ_STATISTIC command). | ||
| 347 | */ | ||
| 348 | typedef struct ppp508_stats | ||
| 349 | { | ||
| 350 | unsigned short reserved1 PACKED; /* 00: */ | ||
| 351 | unsigned short rx_bad_len PACKED; /* 02: */ | ||
| 352 | unsigned short reserved2 PACKED; /* 04: */ | ||
| 353 | unsigned long tx_frames PACKED; /* 06: */ | ||
| 354 | unsigned long tx_bytes PACKED; /* 0A: */ | ||
| 355 | unsigned long rx_frames PACKED; /* 0E: */ | ||
| 356 | unsigned long rx_bytes PACKED; /* 12: */ | ||
| 357 | } ppp508_stats_t; | ||
| 358 | |||
| 359 | /*---------------------------------------------------------------------------- | ||
| 360 | * Adapter Error Statistics (returned by the PPP_READ_ERROR_STATS command). | ||
| 361 | */ | ||
| 362 | typedef struct ppp_err_stats | ||
| 363 | { | ||
| 364 | unsigned char rx_overrun PACKED; /* 00: Rx overrun errors */ | ||
| 365 | unsigned char rx_bad_crc PACKED; /* 01: Rx CRC errors */ | ||
| 366 | unsigned char rx_abort PACKED; /* 02: Rx aborted frames */ | ||
| 367 | unsigned char rx_lost PACKED; /* 03: Rx frames lost */ | ||
| 368 | unsigned char tx_abort PACKED; /* 04: Tx aborted frames */ | ||
| 369 | unsigned char tx_underrun PACKED; /* 05: Tx underrun errors */ | ||
| 370 | unsigned char tx_missed_intr PACKED; /* 06: Tx underruns missed */ | ||
| 371 | unsigned char reserved PACKED; /* 07: Tx underruns missed */ | ||
| 372 | unsigned char dcd_trans PACKED; /* 08: DCD transitions */ | ||
| 373 | unsigned char cts_trans PACKED; /* 09: CTS transitions */ | ||
| 374 | } ppp_err_stats_t; | ||
| 375 | |||
| 376 | /*---------------------------------------------------------------------------- | ||
| 377 | * Packet Statistics (returned by the PPP_READ_PACKET_STATS command). | ||
| 378 | */ | ||
| 379 | typedef struct ppp_pkt_stats | ||
| 380 | { | ||
| 381 | unsigned short rx_bad_header PACKED; /* 00: */ | ||
| 382 | unsigned short rx_prot_unknwn PACKED; /* 02: */ | ||
| 383 | unsigned short rx_too_large PACKED; /* 04: */ | ||
| 384 | unsigned short rx_lcp PACKED; /* 06: */ | ||
| 385 | unsigned short tx_lcp PACKED; /* 08: */ | ||
| 386 | unsigned short rx_ipcp PACKED; /* 0A: */ | ||
| 387 | unsigned short tx_ipcp PACKED; /* 0C: */ | ||
| 388 | unsigned short rx_ipxcp PACKED; /* 0E: */ | ||
| 389 | unsigned short tx_ipxcp PACKED; /* 10: */ | ||
| 390 | unsigned short rx_pap PACKED; /* 12: */ | ||
| 391 | unsigned short tx_pap PACKED; /* 14: */ | ||
| 392 | unsigned short rx_chap PACKED; /* 16: */ | ||
| 393 | unsigned short tx_chap PACKED; /* 18: */ | ||
| 394 | unsigned short rx_lqr PACKED; /* 1A: */ | ||
| 395 | unsigned short tx_lqr PACKED; /* 1C: */ | ||
| 396 | unsigned short rx_ip PACKED; /* 1E: */ | ||
| 397 | unsigned short tx_ip PACKED; /* 20: */ | ||
| 398 | unsigned short rx_ipx PACKED; /* 22: */ | ||
| 399 | unsigned short tx_ipx PACKED; /* 24: */ | ||
| 400 | } ppp_pkt_stats_t; | ||
| 401 | |||
| 402 | /*---------------------------------------------------------------------------- | ||
| 403 | * LCP Statistics (returned by the PPP_READ_LCP_STATS command). | ||
| 404 | */ | ||
| 405 | typedef struct ppp_lcp_stats | ||
| 406 | { | ||
| 407 | unsigned short rx_unknown PACKED; /* 00: unknown LCP type */ | ||
| 408 | unsigned short rx_conf_rqst PACKED; /* 02: Configure-Request */ | ||
| 409 | unsigned short rx_conf_ack PACKED; /* 04: Configure-Ack */ | ||
| 410 | unsigned short rx_conf_nak PACKED; /* 06: Configure-Nak */ | ||
| 411 | unsigned short rx_conf_rej PACKED; /* 08: Configure-Reject */ | ||
| 412 | unsigned short rx_term_rqst PACKED; /* 0A: Terminate-Request */ | ||
| 413 | unsigned short rx_term_ack PACKED; /* 0C: Terminate-Ack */ | ||
| 414 | unsigned short rx_code_rej PACKED; /* 0E: Code-Reject */ | ||
| 415 | unsigned short rx_proto_rej PACKED; /* 10: Protocol-Reject */ | ||
| 416 | unsigned short rx_echo_rqst PACKED; /* 12: Echo-Request */ | ||
| 417 | unsigned short rx_echo_reply PACKED; /* 14: Echo-Reply */ | ||
| 418 | unsigned short rx_disc_rqst PACKED; /* 16: Discard-Request */ | ||
| 419 | unsigned short tx_conf_rqst PACKED; /* 18: Configure-Request */ | ||
| 420 | unsigned short tx_conf_ack PACKED; /* 1A: Configure-Ack */ | ||
| 421 | unsigned short tx_conf_nak PACKED; /* 1C: Configure-Nak */ | ||
| 422 | unsigned short tx_conf_rej PACKED; /* 1E: Configure-Reject */ | ||
| 423 | unsigned short tx_term_rqst PACKED; /* 20: Terminate-Request */ | ||
| 424 | unsigned short tx_term_ack PACKED; /* 22: Terminate-Ack */ | ||
| 425 | unsigned short tx_code_rej PACKED; /* 24: Code-Reject */ | ||
| 426 | unsigned short tx_proto_rej PACKED; /* 26: Protocol-Reject */ | ||
| 427 | unsigned short tx_echo_rqst PACKED; /* 28: Echo-Request */ | ||
| 428 | unsigned short tx_echo_reply PACKED; /* 2A: Echo-Reply */ | ||
| 429 | unsigned short tx_disc_rqst PACKED; /* 2E: Discard-Request */ | ||
| 430 | unsigned short rx_too_large PACKED; /* 30: packets too large */ | ||
| 431 | unsigned short rx_ack_inval PACKED; /* 32: invalid Conf-Ack */ | ||
| 432 | unsigned short rx_rej_inval PACKED; /* 34: invalid Conf-Reject */ | ||
| 433 | unsigned short rx_rej_badid PACKED; /* 36: Conf-Reject w/bad ID */ | ||
| 434 | } ppp_lcp_stats_t; | ||
| 435 | |||
| 436 | /*---------------------------------------------------------------------------- | ||
| 437 | * Loopback Error Statistics (returned by the PPP_READ_LPBK_STATS command). | ||
| 438 | */ | ||
| 439 | typedef struct ppp_lpbk_stats | ||
| 440 | { | ||
| 441 | unsigned short conf_magic PACKED; /* 00: */ | ||
| 442 | unsigned short loc_echo_rqst PACKED; /* 02: */ | ||
| 443 | unsigned short rem_echo_rqst PACKED; /* 04: */ | ||
| 444 | unsigned short loc_echo_reply PACKED; /* 06: */ | ||
| 445 | unsigned short rem_echo_reply PACKED; /* 08: */ | ||
| 446 | unsigned short loc_disc_rqst PACKED; /* 0A: */ | ||
| 447 | unsigned short rem_disc_rqst PACKED; /* 0C: */ | ||
| 448 | unsigned short echo_tx_collsn PACKED; /* 0E: */ | ||
| 449 | unsigned short echo_rx_collsn PACKED; /* 10: */ | ||
| 450 | } ppp_lpbk_stats_t; | ||
| 451 | |||
| 452 | /*---------------------------------------------------------------------------- | ||
| 453 | * Protocol Statistics (returned by the PPP_READ_IPCP_STATS and | ||
| 454 | * PPP_READ_IPXCP_STATS commands). | ||
| 455 | */ | ||
| 456 | typedef struct ppp_prot_stats | ||
| 457 | { | ||
| 458 | unsigned short rx_unknown PACKED; /* 00: unknown type */ | ||
| 459 | unsigned short rx_conf_rqst PACKED; /* 02: Configure-Request */ | ||
| 460 | unsigned short rx_conf_ack PACKED; /* 04: Configure-Ack */ | ||
| 461 | unsigned short rx_conf_nak PACKED; /* 06: Configure-Nak */ | ||
| 462 | unsigned short rx_conf_rej PACKED; /* 08: Configure-Reject */ | ||
| 463 | unsigned short rx_term_rqst PACKED; /* 0A: Terminate-Request */ | ||
| 464 | unsigned short rx_term_ack PACKED; /* 0C: Terminate-Ack */ | ||
| 465 | unsigned short rx_code_rej PACKED; /* 0E: Code-Reject */ | ||
| 466 | unsigned short reserved PACKED; /* 10: */ | ||
| 467 | unsigned short tx_conf_rqst PACKED; /* 12: Configure-Request */ | ||
| 468 | unsigned short tx_conf_ack PACKED; /* 14: Configure-Ack */ | ||
| 469 | unsigned short tx_conf_nak PACKED; /* 16: Configure-Nak */ | ||
| 470 | unsigned short tx_conf_rej PACKED; /* 18: Configure-Reject */ | ||
| 471 | unsigned short tx_term_rqst PACKED; /* 1A: Terminate-Request */ | ||
| 472 | unsigned short tx_term_ack PACKED; /* 1C: Terminate-Ack */ | ||
| 473 | unsigned short tx_code_rej PACKED; /* 1E: Code-Reject */ | ||
| 474 | unsigned short rx_too_large PACKED; /* 20: packets too large */ | ||
| 475 | unsigned short rx_ack_inval PACKED; /* 22: invalid Conf-Ack */ | ||
| 476 | unsigned short rx_rej_inval PACKED; /* 24: invalid Conf-Reject */ | ||
| 477 | unsigned short rx_rej_badid PACKED; /* 26: Conf-Reject w/bad ID */ | ||
| 478 | } ppp_prot_stats_t; | ||
| 479 | |||
| 480 | /*---------------------------------------------------------------------------- | ||
| 481 | * PAP Statistics (returned by the PPP_READ_PAP_STATS command). | ||
| 482 | */ | ||
| 483 | typedef struct ppp_pap_stats | ||
| 484 | { | ||
| 485 | unsigned short rx_unknown PACKED; /* 00: unknown type */ | ||
| 486 | unsigned short rx_auth_rqst PACKED; /* 02: Authenticate-Request */ | ||
| 487 | unsigned short rx_auth_ack PACKED; /* 04: Authenticate-Ack */ | ||
| 488 | unsigned short rx_auth_nak PACKED; /* 06: Authenticate-Nak */ | ||
| 489 | unsigned short reserved PACKED; /* 08: */ | ||
| 490 | unsigned short tx_auth_rqst PACKED; /* 0A: Authenticate-Request */ | ||
| 491 | unsigned short tx_auth_ack PACKED; /* 0C: Authenticate-Ack */ | ||
| 492 | unsigned short tx_auth_nak PACKED; /* 0E: Authenticate-Nak */ | ||
| 493 | unsigned short rx_too_large PACKED; /* 10: packets too large */ | ||
| 494 | unsigned short rx_bad_peerid PACKED; /* 12: invalid peer ID */ | ||
| 495 | unsigned short rx_bad_passwd PACKED; /* 14: invalid password */ | ||
| 496 | } ppp_pap_stats_t; | ||
| 497 | |||
| 498 | /*---------------------------------------------------------------------------- | ||
| 499 | * CHAP Statistics (returned by the PPP_READ_CHAP_STATS command). | ||
| 500 | */ | ||
| 501 | typedef struct ppp_chap_stats | ||
| 502 | { | ||
| 503 | unsigned short rx_unknown PACKED; /* 00: unknown type */ | ||
| 504 | unsigned short rx_challenge PACKED; /* 02: Authenticate-Request */ | ||
| 505 | unsigned short rx_response PACKED; /* 04: Authenticate-Ack */ | ||
| 506 | unsigned short rx_success PACKED; /* 06: Authenticate-Nak */ | ||
| 507 | unsigned short rx_failure PACKED; /* 08: Authenticate-Nak */ | ||
| 508 | unsigned short reserved PACKED; /* 0A: */ | ||
| 509 | unsigned short tx_challenge PACKED; /* 0C: Authenticate-Request */ | ||
| 510 | unsigned short tx_response PACKED; /* 0E: Authenticate-Ack */ | ||
| 511 | unsigned short tx_success PACKED; /* 10: Authenticate-Nak */ | ||
| 512 | unsigned short tx_failure PACKED; /* 12: Authenticate-Nak */ | ||
| 513 | unsigned short rx_too_large PACKED; /* 14: packets too large */ | ||
| 514 | unsigned short rx_bad_peerid PACKED; /* 16: invalid peer ID */ | ||
| 515 | unsigned short rx_bad_passwd PACKED; /* 18: invalid password */ | ||
| 516 | unsigned short rx_bad_md5 PACKED; /* 1A: invalid MD5 format */ | ||
| 517 | unsigned short rx_bad_resp PACKED; /* 1C: invalid response */ | ||
| 518 | } ppp_chap_stats_t; | ||
| 519 | |||
| 520 | /*---------------------------------------------------------------------------- | ||
| 521 | * Connection Information (returned by the PPP_GET_CONNECTION_INFO command). | ||
| 522 | */ | ||
| 523 | typedef struct ppp_conn_info | ||
| 524 | { | ||
| 525 | unsigned short remote_mru PACKED; /* 00: */ | ||
| 526 | unsigned char ip_options PACKED; /* 02: */ | ||
| 527 | unsigned char ip_local[4] PACKED; /* 03: */ | ||
| 528 | unsigned char ip_remote[4] PACKED; /* 07: */ | ||
| 529 | unsigned char ipx_options PACKED; /* 0B: */ | ||
| 530 | unsigned char ipx_network[4] PACKED; /* 0C: */ | ||
| 531 | unsigned char ipx_local[6] PACKED; /* 10: */ | ||
| 532 | unsigned char ipx_remote[6] PACKED; /* 16: */ | ||
| 533 | unsigned char ipx_router[48] PACKED; /* 1C: */ | ||
| 534 | unsigned char auth_status PACKED; /* 4C: */ | ||
| 535 | unsigned char peer_id[0] PACKED; /* 4D: */ | ||
| 536 | } ppp_conn_info_t; | ||
| 537 | |||
| 538 | /* Data structure for SET_TRIGGER_INTR command | ||
| 539 | */ | ||
| 540 | |||
| 541 | typedef struct ppp_intr_info{ | ||
| 542 | unsigned char i_enable PACKED; /* 0 Interrupt enable bits */ | ||
| 543 | unsigned char irq PACKED; /* 1 Irq number */ | ||
| 544 | unsigned short timer_len PACKED; /* 2 Timer delay */ | ||
| 545 | } ppp_intr_info_t; | ||
| 546 | |||
| 547 | |||
| 548 | #define FT1_MONITOR_STATUS_CTRL 0x80 | ||
| 549 | #define SET_FT1_MODE 0x81 | ||
| 550 | |||
| 551 | |||
| 552 | |||
| 553 | /* Special UDP drivers management commands */ | ||
| 554 | #define PPIPE_ENABLE_TRACING 0x20 | ||
| 555 | #define PPIPE_DISABLE_TRACING 0x21 | ||
| 556 | #define PPIPE_GET_TRACE_INFO 0x22 | ||
| 557 | #define PPIPE_GET_IBA_DATA 0x23 | ||
| 558 | #define PPIPE_KILL_BOARD 0x24 | ||
| 559 | #define PPIPE_FT1_READ_STATUS 0x25 | ||
| 560 | #define PPIPE_DRIVER_STAT_IFSEND 0x26 | ||
| 561 | #define PPIPE_DRIVER_STAT_INTR 0x27 | ||
| 562 | #define PPIPE_DRIVER_STAT_GEN 0x28 | ||
| 563 | #define PPIPE_FLUSH_DRIVER_STATS 0x29 | ||
| 564 | #define PPIPE_ROUTER_UP_TIME 0x30 | ||
| 565 | |||
| 566 | #define DISABLE_TRACING 0x00 | ||
| 567 | #define TRACE_SIGNALLING_FRAMES 0x01 | ||
| 568 | #define TRACE_DATA_FRAMES 0x02 | ||
| 569 | |||
| 570 | |||
| 571 | |||
| 572 | #ifdef _MSC_ | ||
| 573 | # pragma pack() | ||
| 574 | #endif | ||
| 575 | #endif /* _SDLA_PPP_H */ | ||
diff --git a/include/linux/sdla_x25.h b/include/linux/sdla_x25.h deleted file mode 100644 index 57db980e27ad..000000000000 --- a/include/linux/sdla_x25.h +++ /dev/null | |||
| @@ -1,772 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdla_x25.h Sangoma X.25 firmware API definitions. | ||
| 3 | * | ||
| 4 | * Author: Nenad Corbic <ncorbic@sangoma.com> | ||
| 5 | * | ||
| 6 | * Copyright: (c) 1995-2000 Sangoma Technologies Inc. | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | ||
| 9 | * modify it under the terms of the GNU General Public License | ||
| 10 | * as published by the Free Software Foundation; either version | ||
| 11 | 2 of the License, or (at your option) any later version. | ||
| 12 | * ============================================================================ | ||
| 13 | * Feb 28, 2000 Nenad Corbic Updated for socket based x25api | ||
| 14 | * Dec 13, 1996 Gene Kozin Initial version | ||
| 15 | *****************************************************************************/ | ||
| 16 | #ifndef _SDLA_X25_H | ||
| 17 | #define _SDLA_X25_H | ||
| 18 | |||
| 19 | /*---------------------------------------------------------------------------- | ||
| 20 | * Notes: | ||
| 21 | * ------ | ||
| 22 | * 1. All structures defined in this file are byte-alined. | ||
| 23 | * Compiler Platform | ||
| 24 | * -------- -------- | ||
| 25 | * GNU C Linux | ||
| 26 | * | ||
| 27 | */ | ||
| 28 | |||
| 29 | #ifndef PACKED | ||
| 30 | # define PACKED __attribute__((packed)) | ||
| 31 | #endif /* PACKED */ | ||
| 32 | |||
| 33 | /****** CONSTANTS DEFINITIONS ***********************************************/ | ||
| 34 | |||
| 35 | #define X25_MAX_CHAN 255 /* max number of open X.25 circuits */ | ||
| 36 | #define X25_MAX_DATA 1024 /* max length of X.25 data buffer */ | ||
| 37 | /* | ||
| 38 | * X.25 shared memory layout. | ||
| 39 | */ | ||
| 40 | #define X25_MBOX_OFFS 0x16B0 /* general mailbox block */ | ||
| 41 | #define X25_RXMBOX_OFFS 0x1AD0 /* receive mailbox */ | ||
| 42 | #define X25_STATUS_OFFS 0x1EF0 /* X.25 status structure */ | ||
| 43 | #define X25_MB_VECTOR 0xE000 /* S514 mailbox window vecotr */ | ||
| 44 | #define X25_MISC_HDLC_BITS 0x1F00 /*X.25 miscallaneous HDLC bits */ | ||
| 45 | |||
| 46 | /* code levels */ | ||
| 47 | #define HDLC_LEVEL 0x01 | ||
| 48 | #define X25_LEVEL 0x02 | ||
| 49 | #define X25_AND_HDLC_LEVEL 0x03 | ||
| 50 | #define DO_HDLC_LEVEL_ERROR_CHECKING 0x04 | ||
| 51 | |||
| 52 | /****** DATA STRUCTURES *****************************************************/ | ||
| 53 | |||
| 54 | /*---------------------------------------------------------------------------- | ||
| 55 | * X.25 Command Block. | ||
| 56 | */ | ||
| 57 | typedef struct X25Cmd | ||
| 58 | { | ||
| 59 | unsigned char command PACKED; /* command code */ | ||
| 60 | unsigned short length PACKED; /* transfer data length */ | ||
| 61 | unsigned char result PACKED; /* return code */ | ||
| 62 | unsigned char pf PACKED; /* P/F bit */ | ||
| 63 | unsigned short lcn PACKED; /* logical channel */ | ||
| 64 | unsigned char qdm PACKED; /* Q/D/M bits */ | ||
| 65 | unsigned char cause PACKED; /* cause field */ | ||
| 66 | unsigned char diagn PACKED; /* diagnostics */ | ||
| 67 | unsigned char pktType PACKED; /* packet type */ | ||
| 68 | unsigned char resrv[4] PACKED; /* reserved */ | ||
| 69 | } TX25Cmd; | ||
| 70 | |||
| 71 | /* | ||
| 72 | * Defines for the 'command' field. | ||
| 73 | */ | ||
| 74 | /*----- General commands --------------*/ | ||
| 75 | #define X25_SET_GLOBAL_VARS 0x0B /* set global variables */ | ||
| 76 | #define X25_READ_MODEM_STATUS 0x0C /* read modem status */ | ||
| 77 | #define X25_READ_CODE_VERSION 0x15 /* read firmware version number */ | ||
| 78 | #define X25_TRACE_CONFIGURE 0x14 /* configure trace facility */ | ||
| 79 | #define X25_READ_TRACE_DATA 0x16 /* read trace data */ | ||
| 80 | #define X25_SET_INTERRUPT_MODE 0x17 /* set interrupt generation mode */ | ||
| 81 | #define X25_READ_INTERRUPT_MODE 0x18 /* read interrupt generation mode */ | ||
| 82 | /*----- HDLC-level commands -----------*/ | ||
| 83 | #define X25_HDLC_LINK_CONFIGURE 0x01 /* configure HDLC link level */ | ||
| 84 | #define X25_HDLC_LINK_OPEN 0x02 /* open HDLC link */ | ||
| 85 | #define X25_HDLC_LINK_CLOSE 0x03 /* close HDLC link */ | ||
| 86 | #define X25_HDLC_LINK_SETUP 0x04 /* set up HDLC link */ | ||
| 87 | #define X25_HDLC_LINK_DISC 0x05 /* disconnect DHLC link */ | ||
| 88 | #define X25_HDLC_LINK_STATUS 0x06 /* read DHLC link status */ | ||
| 89 | #define X25_HDLC_READ_STATS 0x07 /* read operational statistics */ | ||
| 90 | #define X25_HDLC_FLUSH_STATS 0x08 /* flush operational statistics */ | ||
| 91 | #define X25_HDLC_READ_COMM_ERR 0x09 /* read error statistics */ | ||
| 92 | #define X25_HDLC_FLUSH_COMM_ERR 0x0A /* flush error statistics */ | ||
| 93 | #define X25_HDLC_FLUSH_BUFFERS 0x0D /* flush HDLC-level data buffers */ | ||
| 94 | #define X25_HDLC_SPRVS_CNT_STAT 0x0F /* read surervisory count status */ | ||
| 95 | #define X25_HDLC_SEND_UI_FRAME 0x10 /* send unnumbered information frame */ | ||
| 96 | #define X25_HDLC_WRITE 0x11 /* send HDLC information frame */ | ||
| 97 | #define X25_HDLC_READ 0x21 /* read HDLC information frame */ | ||
| 98 | #define X25_HDLC_READ_CONFIG 0x12 /* read HDLC configuration */ | ||
| 99 | #define X25_HDLC_SET_CONFIG 0x13 /* set HDLC configuration */ | ||
| 100 | #define SET_PROTOCOL_LEVEL 0x1F /* set protocol level */ | ||
| 101 | /*----- X.25-level commands -----------*/ | ||
| 102 | #define X25_READ 0x22 /* read X.25 packet */ | ||
| 103 | #define X25_WRITE 0x23 /* send X.25 packet */ | ||
| 104 | #define X25_PLACE_CALL 0x30 /* place a call on SVC */ | ||
| 105 | #define X25_ACCEPT_CALL 0x31 /* accept incomming call */ | ||
| 106 | #define X25_CLEAR_CALL 0x32 /* clear call */ | ||
| 107 | #define X25_CLEAR_CONFRM 0x33 /* send clear confirmation packet */ | ||
| 108 | #define X25_RESET 0x34 /* send reset request packet */ | ||
| 109 | #define X25_RESET_CONFRM 0x35 /* send reset confirmation packet */ | ||
| 110 | #define X25_RESTART 0x36 /* send restart request packet */ | ||
| 111 | #define X25_RESTART_CONFRM 0x37 /* send restart confirmation packet */ | ||
| 112 | #define X25_INTERRUPT 0x38 /* send interrupt request packet */ | ||
| 113 | #define X25_INTERRUPT_CONFRM 0x39 /* send interrupt confirmation pkt */ | ||
| 114 | #define X25_REGISTRATION_RQST 0x3A /* send registration request packet */ | ||
| 115 | #define X25_REGISTRATION_CONFRM 0x3B /* send registration confirmation */ | ||
| 116 | #define X25_IS_DATA_AVAILABLE 0x40 /* querry receive queue */ | ||
| 117 | #define X25_INCOMMING_CALL_CTL 0x41 /* select incomming call options */ | ||
| 118 | #define X25_CONFIGURE_PVC 0x42 /* configure PVC */ | ||
| 119 | #define X25_GET_ACTIVE_CHANNELS 0x43 /* get a list of active circuits */ | ||
| 120 | #define X25_READ_CHANNEL_CONFIG 0x44 /* read virt. circuit configuration */ | ||
| 121 | #define X25_FLUSH_DATA_BUFFERS 0x45 /* flush X.25-level data buffers */ | ||
| 122 | #define X25_READ_HISTORY_TABLE 0x46 /* read asynchronous event log */ | ||
| 123 | #define X25_HISTORY_TABLE_CTL 0x47 /* control asynchronous event log */ | ||
| 124 | #define X25_GET_TX_D_BIT_STATUS 0x48 /* is packet with D-bit acknowleged */ | ||
| 125 | #define X25_READ_STATISTICS 0x49 /* read X.25-level statistics */ | ||
| 126 | #define X25_FLUSH_STATISTICS 0x4A /* flush X.25-level statistics */ | ||
| 127 | #define X25_READ_CONFIGURATION 0x50 /* read HDLC & X.25 configuration */ | ||
| 128 | #define X25_SET_CONFIGURATION 0x51 /* set HDLC & X.25 configuration */ | ||
| 129 | |||
| 130 | /* | ||
| 131 | * Defines for the 'result' field. | ||
| 132 | */ | ||
| 133 | /*----- General results ---------------*/ | ||
| 134 | #define X25RES_OK 0x00 | ||
| 135 | #define X25RES_ERROR 0x01 | ||
| 136 | #define X25RES_LINK_NOT_IN_ABM 0x02 /* link is not in ABM mode */ | ||
| 137 | #define X25RES_LINK_CLOSED 0x03 | ||
| 138 | #define X25RES_INVAL_LENGTH 0x04 | ||
| 139 | #define X25RES_INVAL_CMD 0x05 | ||
| 140 | #define X25RES_UNNUMBERED_FRAME 0x06 /* unnunbered frame received */ | ||
| 141 | #define X25RES_FRM_REJECT_MODE 0x07 /* link is in Frame Reject mode */ | ||
| 142 | #define X25RES_MODEM_FAILURE 0x08 /* DCD and/or CTS dropped */ | ||
| 143 | #define X25RES_N2_RETRY_LIMIT 0x09 /* N2 retry limit has been exceeded */ | ||
| 144 | #define X25RES_INVAL_LCN 0x30 /* invalid logical channel number */ | ||
| 145 | #define X25RES_INVAL_STATE 0x31 /* channel is not in data xfer mode */ | ||
| 146 | #define X25RES_INVAL_DATA_LEN 0x32 /* invalid data length */ | ||
| 147 | #define X25RES_NOT_READY 0x33 /* no data available / buffers full */ | ||
| 148 | #define X25RES_NETWORK_DOWN 0x34 | ||
| 149 | #define X25RES_CHANNEL_IN_USE 0x35 /* there is data queued on this LCN */ | ||
| 150 | #define X25RES_REGST_NOT_SUPPRT 0x36 /* registration not supported */ | ||
| 151 | #define X25RES_INVAL_FORMAT 0x37 /* invalid packet format */ | ||
| 152 | #define X25RES_D_BIT_NOT_SUPPRT 0x38 /* D-bit pragmatics not supported */ | ||
| 153 | #define X25RES_FACIL_NOT_SUPPRT 0x39 /* Call facility not supported */ | ||
| 154 | #define X25RES_INVAL_CALL_ARG 0x3A /* errorneous call arguments */ | ||
| 155 | #define X25RES_INVAL_CALL_DATA 0x3B /* errorneous call user data */ | ||
| 156 | #define X25RES_ASYNC_PACKET 0x40 /* asynchronous packet received */ | ||
| 157 | #define X25RES_PROTO_VIOLATION 0x41 /* protocol violation occurred */ | ||
| 158 | #define X25RES_PKT_TIMEOUT 0x42 /* X.25 packet time out */ | ||
| 159 | #define X25RES_PKT_RETRY_LIMIT 0x43 /* X.25 packet retry limit exceeded */ | ||
| 160 | /*----- Command-dependent results -----*/ | ||
| 161 | #define X25RES_LINK_DISC 0x00 /* HDLC_LINK_STATUS */ | ||
| 162 | #define X25RES_LINK_IN_ABM 0x01 /* HDLC_LINK_STATUS */ | ||
| 163 | #define X25RES_NO_DATA 0x01 /* HDLC_READ/READ_TRACE_DATA*/ | ||
| 164 | #define X25RES_TRACE_INACTIVE 0x02 /* READ_TRACE_DATA */ | ||
| 165 | #define X25RES_LINK_IS_OPEN 0x01 /* HDLC_LINK_OPEN */ | ||
| 166 | #define X25RES_LINK_IS_DISC 0x02 /* HDLC_LINK_DISC */ | ||
| 167 | #define X25RES_LINK_IS_CLOSED 0x03 /* HDLC_LINK_CLOSE */ | ||
| 168 | #define X25RES_INVAL_PARAM 0x31 /* INCOMMING_CALL_CTL */ | ||
| 169 | #define X25RES_INVAL_CONFIG 0x35 /* REGISTR_RQST/CONFRM */ | ||
| 170 | |||
| 171 | /* | ||
| 172 | * Defines for the 'qdm_bits' field. | ||
| 173 | */ | ||
| 174 | #define X25CMD_Q_BIT_MASK 0x04 | ||
| 175 | #define X25CMD_D_BIT_MASK 0x02 | ||
| 176 | #define X25CMD_M_BIT_MASK 0x01 | ||
| 177 | |||
| 178 | /* | ||
| 179 | * Defines for the 'pkt_type' field. | ||
| 180 | */ | ||
| 181 | /*----- Asynchronous events ------*/ | ||
| 182 | #define ASE_CLEAR_RQST 0x02 | ||
| 183 | #define ASE_RESET_RQST 0x04 | ||
| 184 | #define ASE_RESTART_RQST 0x08 | ||
| 185 | #define ASE_INTERRUPT 0x10 | ||
| 186 | #define ASE_DTE_REGISTR_RQST 0x20 | ||
| 187 | #define ASE_CALL_RQST 0x30 | ||
| 188 | #define ASE_CALL_ACCEPTED 0x31 | ||
| 189 | #define ASE_CLEAR_CONFRM 0x32 | ||
| 190 | #define ASE_RESET_CONFRM 0x33 | ||
| 191 | #define ASE_RESTART_CONFRM 0x34 | ||
| 192 | #define ASE_INTERRUPT_CONFRM 0x35 | ||
| 193 | #define ASE_DCE_REGISTR_CONFRM 0x36 | ||
| 194 | #define ASE_DIAGNOSTIC 0x37 | ||
| 195 | #define ASE_CALL_AUTO_CLEAR 0x38 | ||
| 196 | #define AUTO_RESPONSE_FLAG 0x80 | ||
| 197 | /*----- Time-Out events ----------*/ | ||
| 198 | #define TOE_RESTART_RQST 0x03 | ||
| 199 | #define TOE_CALL_RQST 0x05 | ||
| 200 | #define TOE_CLEAR_RQST 0x08 | ||
| 201 | #define TOE_RESET_RQST 0x0A | ||
| 202 | /*----- Protocol Violation events */ | ||
| 203 | #define PVE_CLEAR_RQST 0x32 | ||
| 204 | #define PVE_RESET_RQST 0x33 | ||
| 205 | #define PVE_RESTART_RQST 0x34 | ||
| 206 | #define PVE_DIAGNOSTIC 0x37 | ||
| 207 | |||
| 208 | #define INTR_ON_RX_FRAME 0x01 | ||
| 209 | #define INTR_ON_TX_FRAME 0x02 | ||
| 210 | #define INTR_ON_MODEM_STATUS_CHANGE 0x04 | ||
| 211 | #define INTR_ON_COMMAND_COMPLETE 0x08 | ||
| 212 | #define INTR_ON_X25_ASY_TRANSACTION 0x10 | ||
| 213 | #define INTR_ON_TIMER 0x40 | ||
| 214 | #define DIRECT_RX_INTR_USAGE 0x80 | ||
| 215 | |||
| 216 | #define NO_INTR_PENDING 0x00 | ||
| 217 | #define RX_INTR_PENDING 0x01 | ||
| 218 | #define TX_INTR_PENDING 0x02 | ||
| 219 | #define MODEM_INTR_PENDING 0x04 | ||
| 220 | #define COMMAND_COMPLETE_INTR_PENDING 0x08 | ||
| 221 | #define X25_ASY_TRANS_INTR_PENDING 0x10 | ||
| 222 | #define TIMER_INTR_PENDING 0x40 | ||
| 223 | |||
| 224 | /*---------------------------------------------------------------------------- | ||
| 225 | * X.25 Mailbox. | ||
| 226 | * This structure is located at offsets X25_MBOX_OFFS and X25_RXMBOX_OFFS | ||
| 227 | * into shared memory window. | ||
| 228 | */ | ||
| 229 | typedef struct X25Mbox | ||
| 230 | { | ||
| 231 | unsigned char opflag PACKED; /* 00h: execution flag */ | ||
| 232 | TX25Cmd cmd PACKED; /* 01h: command block */ | ||
| 233 | unsigned char data[1] PACKED; /* 10h: data buffer */ | ||
| 234 | } TX25Mbox; | ||
| 235 | |||
| 236 | /*---------------------------------------------------------------------------- | ||
| 237 | * X.25 Time Stamp Structure. | ||
| 238 | */ | ||
| 239 | typedef struct X25TimeStamp | ||
| 240 | { | ||
| 241 | unsigned char month PACKED; | ||
| 242 | unsigned char date PACKED; | ||
| 243 | unsigned char sec PACKED; | ||
| 244 | unsigned char min PACKED; | ||
| 245 | unsigned char hour PACKED; | ||
| 246 | } TX25TimeStamp; | ||
| 247 | |||
| 248 | /*---------------------------------------------------------------------------- | ||
| 249 | * X.25 Status Block. | ||
| 250 | * This structure is located at offset X25_STATUS_OFF into shared memory | ||
| 251 | * window. | ||
| 252 | */ | ||
| 253 | typedef struct X25Status | ||
| 254 | { | ||
| 255 | unsigned short pvc_map PACKED; /* 00h: PVC map */ | ||
| 256 | unsigned short icc_map PACKED; /* 02h: Incomming Chan. map */ | ||
| 257 | unsigned short twc_map PACKED; /* 04h: Two-way Cnan. map */ | ||
| 258 | unsigned short ogc_map PACKED; /* 06h: Outgoing Chan. map */ | ||
| 259 | TX25TimeStamp tstamp PACKED; /* 08h: timestamp (BCD) */ | ||
| 260 | unsigned char iflags PACKED; /* 0Dh: interrupt flags */ | ||
| 261 | unsigned char imask PACKED; /* 0Eh: interrupt mask */ | ||
| 262 | unsigned char resrv PACKED; /* 0Eh: */ | ||
| 263 | unsigned char gflags PACKED; /* 10h: misc. HDLC/X25 flags */ | ||
| 264 | unsigned char cflags[X25_MAX_CHAN] PACKED; /* channel status bytes */ | ||
| 265 | } TX25Status; | ||
| 266 | |||
| 267 | /* | ||
| 268 | * Bitmasks for the 'iflags' field. | ||
| 269 | */ | ||
| 270 | #define X25_RX_INTR 0x01 /* receive interrupt */ | ||
| 271 | #define X25_TX_INTR 0x02 /* transmit interrupt */ | ||
| 272 | #define X25_MODEM_INTR 0x04 /* modem status interrupt (CTS/DCD) */ | ||
| 273 | #define X25_EVENT_INTR 0x10 /* asyncronous event encountered */ | ||
| 274 | #define X25_CMD_INTR 0x08 /* interface command complete */ | ||
| 275 | |||
| 276 | /* | ||
| 277 | * Bitmasks for the 'gflags' field. | ||
| 278 | */ | ||
| 279 | #define X25_HDLC_ABM 0x01 /* HDLC is in ABM mode */ | ||
| 280 | #define X25_RX_READY 0x02 /* X.25 data available */ | ||
| 281 | #define X25_TRACE_READY 0x08 /* trace data available */ | ||
| 282 | #define X25_EVENT_IND 0x20 /* asynchronous event indicator */ | ||
| 283 | #define X25_TX_READY 0x40 /* space is available in Tx buf.*/ | ||
| 284 | |||
| 285 | /* | ||
| 286 | * Bitmasks for the 'cflags' field. | ||
| 287 | */ | ||
| 288 | #define X25_XFER_MODE 0x80 /* channel is in data transfer mode */ | ||
| 289 | #define X25_TXWIN_OPEN 0x40 /* transmit window open */ | ||
| 290 | #define X25_RXBUF_MASK 0x3F /* number of data buffers available */ | ||
| 291 | |||
| 292 | /***************************************************************************** | ||
| 293 | * Following definitions structurize contents of the TX25Mbox.data field for | ||
| 294 | * different X.25 interface commands. | ||
| 295 | ****************************************************************************/ | ||
| 296 | |||
| 297 | /* --------------------------------------------------------------------------- | ||
| 298 | * X25_SET_GLOBAL_VARS Command. | ||
| 299 | */ | ||
| 300 | typedef struct X25GlobalVars | ||
| 301 | { | ||
| 302 | unsigned char resrv PACKED; /* 00h: reserved */ | ||
| 303 | unsigned char dtrCtl PACKED; /* 01h: DTR control code */ | ||
| 304 | unsigned char resErr PACKED; /* 01h: '1' - reset modem error */ | ||
| 305 | } TX25GlobalVars; | ||
| 306 | |||
| 307 | /* | ||
| 308 | * Defines for the 'dtrCtl' field. | ||
| 309 | */ | ||
| 310 | #define X25_RAISE_DTR 0x01 | ||
| 311 | #define X25_DROP_DTR 0x02 | ||
| 312 | |||
| 313 | /* --------------------------------------------------------------------------- | ||
| 314 | * X25_READ_MODEM_STATUS Command. | ||
| 315 | */ | ||
| 316 | typedef struct X25ModemStatus | ||
| 317 | { | ||
| 318 | unsigned char status PACKED; /* 00h: modem status */ | ||
| 319 | } TX25ModemStatus; | ||
| 320 | |||
| 321 | /* | ||
| 322 | * Defines for the 'status' field. | ||
| 323 | */ | ||
| 324 | #define X25_CTS_MASK 0x20 | ||
| 325 | #define X25_DCD_MASK 0x08 | ||
| 326 | |||
| 327 | /* --------------------------------------------------------------------------- | ||
| 328 | * X25_HDLC_LINK_STATUS Command. | ||
| 329 | */ | ||
| 330 | typedef struct X25LinkStatus | ||
| 331 | { | ||
| 332 | unsigned char txQueued PACKED; /* 00h: queued Tx I-frames*/ | ||
| 333 | unsigned char rxQueued PACKED; /* 01h: queued Rx I-frames*/ | ||
| 334 | unsigned char station PACKED; /* 02h: DTE/DCE config. */ | ||
| 335 | unsigned char reserved PACKED; /* 03h: reserved */ | ||
| 336 | unsigned char sfTally PACKED; /* 04h: supervisory frame tally */ | ||
| 337 | } TX25LinkStatus; | ||
| 338 | |||
| 339 | /* | ||
| 340 | * Defines for the 'station' field. | ||
| 341 | */ | ||
| 342 | #define X25_STATION_DTE 0x01 /* station configured as DTE */ | ||
| 343 | #define X25_STATION_DCE 0x02 /* station configured as DCE */ | ||
| 344 | |||
| 345 | /* --------------------------------------------------------------------------- | ||
| 346 | * X25_HDLC_READ_STATS Command. | ||
| 347 | */ | ||
| 348 | typedef struct HdlcStats | ||
| 349 | { /* a number of ... */ | ||
| 350 | unsigned short rxIFrames PACKED; /* 00h: ready Rx I-frames */ | ||
| 351 | unsigned short rxNoseq PACKED; /* 02h: frms out-of-sequence */ | ||
| 352 | unsigned short rxNodata PACKED; /* 04h: I-frms without data */ | ||
| 353 | unsigned short rxDiscarded PACKED; /* 06h: discarded frames */ | ||
| 354 | unsigned short rxTooLong PACKED; /* 08h: frames too long */ | ||
| 355 | unsigned short rxBadAddr PACKED; /* 0Ah: frms with inval.addr*/ | ||
| 356 | unsigned short txAcked PACKED; /* 0Ch: acknowledged I-frms */ | ||
| 357 | unsigned short txRetransm PACKED; /* 0Eh: re-transmit. I-frms */ | ||
| 358 | unsigned short t1Timeout PACKED; /* 10h: T1 timeouts */ | ||
| 359 | unsigned short rxSABM PACKED; /* 12h: received SABM frames */ | ||
| 360 | unsigned short rxDISC PACKED; /* 14h: received DISC frames */ | ||
| 361 | unsigned short rxDM PACKED; /* 16h: received DM frames */ | ||
| 362 | unsigned short rxFRMR PACKED; /* 18h: FRMR frames received */ | ||
| 363 | unsigned short txSABM PACKED; /* 1Ah: transm. SABM frames*/ | ||
| 364 | unsigned short txDISC PACKED; /* 1Ch: transm. DISC frames*/ | ||
| 365 | unsigned short txDM PACKED; /* 1Eh: transm. DM frames */ | ||
| 366 | unsigned short txFRMR PACKED; /* 20h: transm. FRMR frames*/ | ||
| 367 | } THdlcStats; | ||
| 368 | |||
| 369 | /* --------------------------------------------------------------------------- | ||
| 370 | * X25_HDLC_READ_COMM_ERR Command. | ||
| 371 | */ | ||
| 372 | typedef struct HdlcCommErr | ||
| 373 | { /* a number of ... */ | ||
| 374 | unsigned char rxOverrun PACKED; /* 00h: Rx overrun errors */ | ||
| 375 | unsigned char rxBadCrc PACKED; /* 01h: Rx CRC errors */ | ||
| 376 | unsigned char rxAborted PACKED; /* 02h: Rx aborted frames */ | ||
| 377 | unsigned char rxDropped PACKED; /* 03h: frames lost */ | ||
| 378 | unsigned char txAborted PACKED; /* 04h: Tx aborted frames */ | ||
| 379 | unsigned char txUnderrun PACKED; /* 05h: Tx underrun errors */ | ||
| 380 | unsigned char txMissIntr PACKED; /* 06h: missed underrun ints */ | ||
| 381 | unsigned char reserved PACKED; /* 07h: reserved */ | ||
| 382 | unsigned char droppedDCD PACKED; /* 08h: times DCD dropped */ | ||
| 383 | unsigned char droppedCTS PACKED; /* 09h: times CTS dropped */ | ||
| 384 | } THdlcCommErr; | ||
| 385 | |||
| 386 | /* --------------------------------------------------------------------------- | ||
| 387 | * X25_SET_CONFIGURATION & X25_READ_CONFIGURATION Commands. | ||
| 388 | */ | ||
| 389 | typedef struct X25Config | ||
| 390 | { | ||
| 391 | unsigned char baudRate PACKED; /* 00h: */ | ||
| 392 | unsigned char t1 PACKED; /* 01h: */ | ||
| 393 | unsigned char t2 PACKED; /* 02h: */ | ||
| 394 | unsigned char n2 PACKED; /* 03h: */ | ||
| 395 | unsigned short hdlcMTU PACKED; /* 04h: */ | ||
| 396 | unsigned char hdlcWindow PACKED; /* 06h: */ | ||
| 397 | unsigned char t4 PACKED; /* 07h: */ | ||
| 398 | unsigned char autoModem PACKED; /* 08h: */ | ||
| 399 | unsigned char autoHdlc PACKED; /* 09h: */ | ||
| 400 | unsigned char hdlcOptions PACKED; /* 0Ah: */ | ||
| 401 | unsigned char station PACKED; /* 0Bh: */ | ||
| 402 | unsigned char pktWindow PACKED; /* 0Ch: */ | ||
| 403 | unsigned short defPktSize PACKED; /* 0Dh: */ | ||
| 404 | unsigned short pktMTU PACKED; /* 0Fh: */ | ||
| 405 | unsigned short loPVC PACKED; /* 11h: */ | ||
| 406 | unsigned short hiPVC PACKED; /* 13h: */ | ||
| 407 | unsigned short loIncommingSVC PACKED; /* 15h: */ | ||
| 408 | unsigned short hiIncommingSVC PACKED; /* 17h: */ | ||
| 409 | unsigned short loTwoWaySVC PACKED; /* 19h: */ | ||
| 410 | unsigned short hiTwoWaySVC PACKED; /* 1Bh: */ | ||
| 411 | unsigned short loOutgoingSVC PACKED; /* 1Dh: */ | ||
| 412 | unsigned short hiOutgoingSVC PACKED; /* 1Fh: */ | ||
| 413 | unsigned short options PACKED; /* 21h: */ | ||
| 414 | unsigned char responseOpt PACKED; /* 23h: */ | ||
| 415 | unsigned short facil1 PACKED; /* 24h: */ | ||
| 416 | unsigned short facil2 PACKED; /* 26h: */ | ||
| 417 | unsigned short ccittFacil PACKED; /* 28h: */ | ||
| 418 | unsigned short otherFacil PACKED; /* 2Ah: */ | ||
| 419 | unsigned short ccittCompat PACKED; /* 2Ch: */ | ||
| 420 | unsigned char t10t20 PACKED; /* 2Eh: */ | ||
| 421 | unsigned char t11t21 PACKED; /* 2Fh: */ | ||
| 422 | unsigned char t12t22 PACKED; /* 30h: */ | ||
| 423 | unsigned char t13t23 PACKED; /* 31h: */ | ||
| 424 | unsigned char t16t26 PACKED; /* 32H: */ | ||
| 425 | unsigned char t28 PACKED; /* 33h: */ | ||
| 426 | unsigned char r10r20 PACKED; /* 34h: */ | ||
| 427 | unsigned char r12r22 PACKED; /* 35h: */ | ||
| 428 | unsigned char r13r23 PACKED; /* 36h: */ | ||
| 429 | } TX25Config; | ||
| 430 | |||
| 431 | /* --------------------------------------------------------------------------- | ||
| 432 | * X25_READ_CHANNEL_CONFIG Command. | ||
| 433 | */ | ||
| 434 | typedef struct X25ChanAlloc /*----- Channel allocation -*/ | ||
| 435 | { | ||
| 436 | unsigned short loPVC PACKED; /* 00h: lowest PVC number */ | ||
| 437 | unsigned short hiPVC PACKED; /* 02h: highest PVC number */ | ||
| 438 | unsigned short loIncommingSVC PACKED; /* 04h: lowest incoming SVC */ | ||
| 439 | unsigned short hiIncommingSVC PACKED; /* 06h: highest incoming SVC */ | ||
| 440 | unsigned short loTwoWaySVC PACKED; /* 08h: lowest two-way SVC */ | ||
| 441 | unsigned short hiTwoWaySVC PACKED; /* 0Ah: highest two-way SVC */ | ||
| 442 | unsigned short loOutgoingSVC PACKED; /* 0Ch: lowest outgoing SVC */ | ||
| 443 | unsigned short hiOutgoingSVC PACKED; /* 0Eh: highest outgoing SVC */ | ||
| 444 | } TX25ChanAlloc; | ||
| 445 | |||
| 446 | typedef struct X25ChanCfg /*------ Channel configuration -----*/ | ||
| 447 | { | ||
| 448 | unsigned char type PACKED; /* 00h: channel type */ | ||
| 449 | unsigned char txConf PACKED; /* 01h: Tx packet and window sizes */ | ||
| 450 | unsigned char rxConf PACKED; /* 01h: Rx packet and window sizes */ | ||
| 451 | } TX25ChanCfg; | ||
| 452 | |||
| 453 | /* | ||
| 454 | * Defines for the 'type' field. | ||
| 455 | */ | ||
| 456 | #define X25_PVC 0x01 /* PVC */ | ||
| 457 | #define X25_SVC_IN 0x03 /* Incoming SVC */ | ||
| 458 | #define X25_SVC_TWOWAY 0x07 /* Two-way SVC */ | ||
| 459 | #define X25_SVC_OUT 0x0B /* Outgoing SVC */ | ||
| 460 | |||
| 461 | /*---------------------------------------------------------------------------- | ||
| 462 | * X25_READ_STATISTICS Command. | ||
| 463 | */ | ||
| 464 | typedef struct X25Stats | ||
| 465 | { /* number of packets Tx/Rx'ed */ | ||
| 466 | unsigned short txRestartRqst PACKED; /* 00h: Restart Request */ | ||
| 467 | unsigned short rxRestartRqst PACKED; /* 02h: Restart Request */ | ||
| 468 | unsigned short txRestartConf PACKED; /* 04h: Restart Confirmation */ | ||
| 469 | unsigned short rxRestartConf PACKED; /* 06h: Restart Confirmation */ | ||
| 470 | unsigned short txResetRqst PACKED; /* 08h: Reset Request */ | ||
| 471 | unsigned short rxResetRqst PACKED; /* 0Ah: Reset Request */ | ||
| 472 | unsigned short txResetConf PACKED; /* 0Ch: Reset Confirmation */ | ||
| 473 | unsigned short rxResetConf PACKED; /* 0Eh: Reset Confirmation */ | ||
| 474 | unsigned short txCallRequest PACKED; /* 10h: Call Request */ | ||
| 475 | unsigned short rxCallRequest PACKED; /* 12h: Call Request */ | ||
| 476 | unsigned short txCallAccept PACKED; /* 14h: Call Accept */ | ||
| 477 | unsigned short rxCallAccept PACKED; /* 16h: Call Accept */ | ||
| 478 | unsigned short txClearRqst PACKED; /* 18h: Clear Request */ | ||
| 479 | unsigned short rxClearRqst PACKED; /* 1Ah: Clear Request */ | ||
| 480 | unsigned short txClearConf PACKED; /* 1Ch: Clear Confirmation */ | ||
| 481 | unsigned short rxClearConf PACKED; /* 1Eh: Clear Confirmation */ | ||
| 482 | unsigned short txDiagnostic PACKED; /* 20h: Diagnostic */ | ||
| 483 | unsigned short rxDiagnostic PACKED; /* 22h: Diagnostic */ | ||
| 484 | unsigned short txRegRqst PACKED; /* 24h: Registration Request */ | ||
| 485 | unsigned short rxRegRqst PACKED; /* 26h: Registration Request */ | ||
| 486 | unsigned short txRegConf PACKED; /* 28h: Registration Confirm.*/ | ||
| 487 | unsigned short rxRegConf PACKED; /* 2Ah: Registration Confirm.*/ | ||
| 488 | unsigned short txInterrupt PACKED; /* 2Ch: Interrupt */ | ||
| 489 | unsigned short rxInterrupt PACKED; /* 2Eh: Interrupt */ | ||
| 490 | unsigned short txIntrConf PACKED; /* 30h: Interrupt Confirm. */ | ||
| 491 | unsigned short rxIntrConf PACKED; /* 32h: Interrupt Confirm. */ | ||
| 492 | unsigned short txData PACKED; /* 34h: Data */ | ||
| 493 | unsigned short rxData PACKED; /* 36h: Data */ | ||
| 494 | unsigned short txRR PACKED; /* 38h: RR */ | ||
| 495 | unsigned short rxRR PACKED; /* 3Ah: RR */ | ||
| 496 | unsigned short txRNR PACKED; /* 3Ch: RNR */ | ||
| 497 | unsigned short rxRNR PACKED; /* 3Eh: RNR */ | ||
| 498 | } TX25Stats; | ||
| 499 | |||
| 500 | /*---------------------------------------------------------------------------- | ||
| 501 | * X25_READ_HISTORY_TABLE Command. | ||
| 502 | */ | ||
| 503 | typedef struct X25EventLog | ||
| 504 | { | ||
| 505 | unsigned char type PACKED; /* 00h: transaction type */ | ||
| 506 | unsigned short lcn PACKED; /* 01h: logical channel num */ | ||
| 507 | unsigned char packet PACKED; /* 03h: async packet type */ | ||
| 508 | unsigned char cause PACKED; /* 04h: X.25 cause field */ | ||
| 509 | unsigned char diag PACKED; /* 05h: X.25 diag field */ | ||
| 510 | TX25TimeStamp ts PACKED; /* 06h: time stamp */ | ||
| 511 | } TX25EventLog; | ||
| 512 | |||
| 513 | /* | ||
| 514 | * Defines for the 'type' field. | ||
| 515 | */ | ||
| 516 | #define X25LOG_INCOMMING 0x00 | ||
| 517 | #define X25LOG_APPLICATION 0x01 | ||
| 518 | #define X25LOG_AUTOMATIC 0x02 | ||
| 519 | #define X25LOG_ERROR 0x04 | ||
| 520 | #define X25LOG_TIMEOUT 0x08 | ||
| 521 | #define X25LOG_RECOVERY 0x10 | ||
| 522 | |||
| 523 | /* | ||
| 524 | * Defines for the 'packet' field. | ||
| 525 | */ | ||
| 526 | #define X25LOG_CALL_RQST 0x0B | ||
| 527 | #define X25LOG_CALL_ACCEPTED 0x0F | ||
| 528 | #define X25LOG_CLEAR_RQST 0x13 | ||
| 529 | #define X25LOG_CLEAR_CONFRM 0x17 | ||
| 530 | #define X25LOG_RESET_RQST 0x1B | ||
| 531 | #define X25LOG_RESET_CONFRM 0x1F | ||
| 532 | #define X25LOG_RESTART_RQST 0xFB | ||
| 533 | #define X25LOG_RESTART_COMFRM 0xFF | ||
| 534 | #define X25LOG_DIAGNOSTIC 0xF1 | ||
| 535 | #define X25LOG_DTE_REG_RQST 0xF3 | ||
| 536 | #define X25LOG_DTE_REG_COMFRM 0xF7 | ||
| 537 | |||
| 538 | /* --------------------------------------------------------------------------- | ||
| 539 | * X25_TRACE_CONFIGURE Command. | ||
| 540 | */ | ||
| 541 | typedef struct X25TraceCfg | ||
| 542 | { | ||
| 543 | unsigned char flags PACKED; /* 00h: trace configuration flags */ | ||
| 544 | unsigned char timeout PACKED; /* 01h: timeout for trace delay mode*/ | ||
| 545 | } TX25TraceCfg; | ||
| 546 | |||
| 547 | /* | ||
| 548 | * Defines for the 'flags' field. | ||
| 549 | */ | ||
| 550 | #define X25_TRC_ENABLE 0x01 /* bit0: '1' - trace enabled */ | ||
| 551 | #define X25_TRC_TIMESTAMP 0x02 /* bit1: '1' - time stamping enabled*/ | ||
| 552 | #define X25_TRC_DELAY 0x04 /* bit2: '1' - trace delay enabled */ | ||
| 553 | #define X25_TRC_DATA 0x08 /* bit3: '1' - trace data packets */ | ||
| 554 | #define X25_TRC_SUPERVISORY 0x10 /* bit4: '1' - trace suprvisory pkts*/ | ||
| 555 | #define X25_TRC_ASYNCHRONOUS 0x20 /* bit5: '1' - trace asynch. packets*/ | ||
| 556 | #define X25_TRC_HDLC 0x40 /* bit6: '1' - trace all packets */ | ||
| 557 | #define X25_TRC_READ 0x80 /* bit7: '1' - get current config. */ | ||
| 558 | |||
| 559 | /* --------------------------------------------------------------------------- | ||
| 560 | * X25_READ_TRACE_DATA Command. | ||
| 561 | */ | ||
| 562 | typedef struct X25Trace /*----- Trace data structure -------*/ | ||
| 563 | { | ||
| 564 | unsigned short length PACKED; /* 00h: trace data length */ | ||
| 565 | unsigned char type PACKED; /* 02h: trace type */ | ||
| 566 | unsigned char lost_cnt PACKED; /* 03h: N of traces lost */ | ||
| 567 | TX25TimeStamp tstamp PACKED; /* 04h: mon/date/sec/min/hour */ | ||
| 568 | unsigned short millisec PACKED; /* 09h: ms time stamp */ | ||
| 569 | unsigned char data[0] PACKED; /* 0Bh: traced frame */ | ||
| 570 | } TX25Trace; | ||
| 571 | |||
| 572 | /* | ||
| 573 | * Defines for the 'type' field. | ||
| 574 | */ | ||
| 575 | #define X25_TRC_TYPE_MASK 0x0F /* bits 0..3: trace type */ | ||
| 576 | #define X25_TRC_TYPE_RX_FRAME 0x00 /* received frame trace */ | ||
| 577 | #define X25_TRC_TYPE_TX_FRAME 0x01 /* transmitted frame */ | ||
| 578 | #define X25_TRC_TYPE_ERR_FRAME 0x02 /* error frame */ | ||
| 579 | |||
| 580 | #define X25_TRC_ERROR_MASK 0xF0 /* bits 4..7: error code */ | ||
| 581 | #define X25_TRCERR_RX_ABORT 0x10 /* receive abort error */ | ||
| 582 | #define X25_TRCERR_RX_BADCRC 0x20 /* receive CRC error */ | ||
| 583 | #define X25_TRCERR_RX_OVERRUN 0x30 /* receiver overrun error */ | ||
| 584 | #define X25_TRCERR_RX_TOO_LONG 0x40 /* excessive frame length error */ | ||
| 585 | #define X25_TRCERR_TX_ABORT 0x70 /* aborted frame transmittion error */ | ||
| 586 | #define X25_TRCERR_TX_UNDERRUN 0x80 /* transmit underrun error */ | ||
| 587 | |||
| 588 | /***************************************************************************** | ||
| 589 | * Following definitions describe HDLC frame and X.25 packet formats. | ||
| 590 | ****************************************************************************/ | ||
| 591 | |||
| 592 | typedef struct HDLCFrame /*----- DHLC Frame Format ----------*/ | ||
| 593 | { | ||
| 594 | unsigned char addr PACKED; /* address field */ | ||
| 595 | unsigned char cntl PACKED; /* control field */ | ||
| 596 | unsigned char data[0] PACKED; | ||
| 597 | } THDLCFrame; | ||
| 598 | |||
| 599 | typedef struct X25Pkt /*----- X.25 Paket Format ----------*/ | ||
| 600 | { | ||
| 601 | unsigned char lcn_hi PACKED; /* 4 MSB of Logical Channel Number */ | ||
| 602 | unsigned char lcn_lo PACKED; /* 8 LSB of Logical Channel Number */ | ||
| 603 | unsigned char type PACKED; | ||
| 604 | unsigned char data[0] PACKED; | ||
| 605 | } TX25Pkt; | ||
| 606 | |||
| 607 | /* | ||
| 608 | * Defines for the 'lcn_hi' field. | ||
| 609 | */ | ||
| 610 | #define X25_Q_BIT_MASK 0x80 /* Data Qualifier Bit mask */ | ||
| 611 | #define X25_D_BIT_MASK 0x40 /* Delivery Confirmation Bit mask */ | ||
| 612 | #define X25_M_BITS_MASK 0x30 /* Modulo Bits mask */ | ||
| 613 | #define X25_LCN_MSB_MASK 0x0F /* LCN most significant bits mask */ | ||
| 614 | |||
| 615 | /* | ||
| 616 | * Defines for the 'type' field. | ||
| 617 | */ | ||
| 618 | #define X25PKT_DATA 0x01 /* Data packet mask */ | ||
| 619 | #define X25PKT_SUPERVISORY 0x02 /* Supervisory packet mask */ | ||
| 620 | #define X25PKT_CALL_RQST 0x0B /* Call Request/Incoming */ | ||
| 621 | #define X25PKT_CALL_ACCEPTED 0x0F /* Call Accepted/Connected */ | ||
| 622 | #define X25PKT_CLEAR_RQST 0x13 /* Clear Request/Indication */ | ||
| 623 | #define X25PKT_CLEAR_CONFRM 0x17 /* Clear Confirmation */ | ||
| 624 | #define X25PKT_RESET_RQST 0x1B /* Reset Request/Indication */ | ||
| 625 | #define X25PKT_RESET_CONFRM 0x1F /* Reset Confirmation */ | ||
| 626 | #define X25PKT_RESTART_RQST 0xFB /* Restart Request/Indication */ | ||
| 627 | #define X25PKT_RESTART_CONFRM 0xFF /* Restart Confirmation */ | ||
| 628 | #define X25PKT_INTERRUPT 0x23 /* Interrupt */ | ||
| 629 | #define X25PKT_INTERRUPT_CONFRM 0x27 /* Interrupt Confirmation */ | ||
| 630 | #define X25PKT_DIAGNOSTIC 0xF1 /* Diagnostic */ | ||
| 631 | #define X25PKT_REGISTR_RQST 0xF3 /* Registration Request */ | ||
| 632 | #define X25PKT_REGISTR_CONFRM 0xF7 /* Registration Confirmation */ | ||
| 633 | #define X25PKT_RR_MASKED 0x01 /* Receive Ready packet after masking */ | ||
| 634 | #define X25PKT_RNR_MASKED 0x05 /* Receive Not Ready after masking */ | ||
| 635 | |||
| 636 | |||
| 637 | typedef struct { | ||
| 638 | TX25Cmd cmd PACKED; | ||
| 639 | char data[X25_MAX_DATA] PACKED; | ||
| 640 | } mbox_cmd_t; | ||
| 641 | |||
| 642 | |||
| 643 | typedef struct { | ||
| 644 | unsigned char qdm PACKED; /* Q/D/M bits */ | ||
| 645 | unsigned char cause PACKED; /* cause field */ | ||
| 646 | unsigned char diagn PACKED; /* diagnostics */ | ||
| 647 | unsigned char pktType PACKED; | ||
| 648 | unsigned short length PACKED; | ||
| 649 | unsigned char result PACKED; | ||
| 650 | unsigned short lcn PACKED; | ||
| 651 | char reserved[7] PACKED; | ||
| 652 | }x25api_hdr_t; | ||
| 653 | |||
| 654 | |||
| 655 | typedef struct { | ||
| 656 | x25api_hdr_t hdr PACKED; | ||
| 657 | char data[X25_MAX_DATA] PACKED; | ||
| 658 | }x25api_t; | ||
| 659 | |||
| 660 | |||
| 661 | /* | ||
| 662 | * XPIPEMON Definitions | ||
| 663 | */ | ||
| 664 | |||
| 665 | /* valid ip_protocol for UDP management */ | ||
| 666 | #define UDPMGMT_UDP_PROTOCOL 0x11 | ||
| 667 | #define UDPMGMT_XPIPE_SIGNATURE "XLINK8ND" | ||
| 668 | #define UDPMGMT_DRVRSTATS_SIGNATURE "DRVSTATS" | ||
| 669 | |||
| 670 | /* values for request/reply byte */ | ||
| 671 | #define UDPMGMT_REQUEST 0x01 | ||
| 672 | #define UDPMGMT_REPLY 0x02 | ||
| 673 | #define UDP_OFFSET 12 | ||
| 674 | |||
| 675 | |||
| 676 | typedef struct { | ||
| 677 | unsigned char opp_flag PACKED; /* the opp flag */ | ||
| 678 | unsigned char command PACKED; /* command code */ | ||
| 679 | unsigned short length PACKED; /* transfer data length */ | ||
| 680 | unsigned char result PACKED; /* return code */ | ||
| 681 | unsigned char pf PACKED; /* P/F bit */ | ||
| 682 | unsigned short lcn PACKED; /* logical channel */ | ||
| 683 | unsigned char qdm PACKED; /* Q/D/M bits */ | ||
| 684 | unsigned char cause PACKED; /* cause field */ | ||
| 685 | unsigned char diagn PACKED; /* diagnostics */ | ||
| 686 | unsigned char pktType PACKED; /* packet type */ | ||
| 687 | unsigned char resrv[4] PACKED; /* reserved */ | ||
| 688 | } cblock_t; | ||
| 689 | |||
| 690 | typedef struct { | ||
| 691 | ip_pkt_t ip_pkt PACKED; | ||
| 692 | udp_pkt_t udp_pkt PACKED; | ||
| 693 | wp_mgmt_t wp_mgmt PACKED; | ||
| 694 | cblock_t cblock PACKED; | ||
| 695 | unsigned char data[4080] PACKED; | ||
| 696 | } x25_udp_pkt_t; | ||
| 697 | |||
| 698 | |||
| 699 | typedef struct read_hdlc_stat { | ||
| 700 | unsigned short inf_frames_rx_ok PACKED; | ||
| 701 | unsigned short inf_frames_rx_out_of_seq PACKED; | ||
| 702 | unsigned short inf_frames_rx_no_data PACKED; | ||
| 703 | unsigned short inf_frames_rx_dropped PACKED; | ||
| 704 | unsigned short inf_frames_rx_data_too_long PACKED; | ||
| 705 | unsigned short inf_frames_rx_invalid_addr PACKED; | ||
| 706 | unsigned short inf_frames_tx_ok PACKED; | ||
| 707 | unsigned short inf_frames_tx_retransmit PACKED; | ||
| 708 | unsigned short T1_timeouts PACKED; | ||
| 709 | unsigned short SABM_frames_rx PACKED; | ||
| 710 | unsigned short DISC_frames_rx PACKED; | ||
| 711 | unsigned short DM_frames_rx PACKED; | ||
| 712 | unsigned short FRMR_frames_rx PACKED; | ||
| 713 | unsigned short SABM_frames_tx PACKED; | ||
| 714 | unsigned short DISC_frames_tx PACKED; | ||
| 715 | unsigned short DM_frames_tx PACKED; | ||
| 716 | unsigned short FRMR_frames_tx PACKED; | ||
| 717 | } read_hdlc_stat_t; | ||
| 718 | |||
| 719 | typedef struct read_comms_err_stats{ | ||
| 720 | unsigned char overrun_err_rx PACKED; | ||
| 721 | unsigned char CRC_err PACKED; | ||
| 722 | unsigned char abort_frames_rx PACKED; | ||
| 723 | unsigned char frames_dropped_buf_full PACKED; | ||
| 724 | unsigned char abort_frames_tx PACKED; | ||
| 725 | unsigned char transmit_underruns PACKED; | ||
| 726 | unsigned char missed_tx_underruns_intr PACKED; | ||
| 727 | unsigned char reserved PACKED; | ||
| 728 | unsigned char DCD_drop PACKED; | ||
| 729 | unsigned char CTS_drop PACKED; | ||
| 730 | } read_comms_err_stats_t; | ||
| 731 | |||
| 732 | typedef struct trace_data { | ||
| 733 | unsigned short length PACKED; | ||
| 734 | unsigned char type PACKED; | ||
| 735 | unsigned char trace_dropped PACKED; | ||
| 736 | unsigned char reserved[5] PACKED; | ||
| 737 | unsigned short timestamp PACKED; | ||
| 738 | unsigned char data PACKED; | ||
| 739 | } trace_data_t; | ||
| 740 | |||
| 741 | enum {UDP_XPIPE_TYPE}; | ||
| 742 | |||
| 743 | #define XPIPE_ENABLE_TRACING 0x14 | ||
| 744 | #define XPIPE_DISABLE_TRACING 0x14 | ||
| 745 | #define XPIPE_GET_TRACE_INFO 0x16 | ||
| 746 | #define XPIPE_FT1_READ_STATUS 0x74 | ||
| 747 | #define XPIPE_DRIVER_STAT_IFSEND 0x75 | ||
| 748 | #define XPIPE_DRIVER_STAT_INTR 0x76 | ||
| 749 | #define XPIPE_DRIVER_STAT_GEN 0x77 | ||
| 750 | #define XPIPE_FLUSH_DRIVER_STATS 0x78 | ||
| 751 | #define XPIPE_ROUTER_UP_TIME 0x79 | ||
| 752 | #define XPIPE_SET_FT1_MODE 0x81 | ||
| 753 | #define XPIPE_FT1_STATUS_CTRL 0x80 | ||
| 754 | |||
| 755 | |||
| 756 | /* error messages */ | ||
| 757 | #define NO_BUFFS_OR_CLOSED_WIN 0x33 | ||
| 758 | #define DATA_LENGTH_TOO_BIG 0x32 | ||
| 759 | #define NO_DATA_AVAILABLE 0x33 | ||
| 760 | #define Z80_TIMEOUT_ERROR 0x0a | ||
| 761 | #define NO_BUFFS 0x08 | ||
| 762 | |||
| 763 | |||
| 764 | /* Trace options */ | ||
| 765 | #define TRACE_DEFAULT 0x03 | ||
| 766 | #define TRACE_SUPERVISOR_FRMS 0x10 | ||
| 767 | #define TRACE_ASYNC_FRMS 0x20 | ||
| 768 | #define TRACE_ALL_HDLC_FRMS 0x40 | ||
| 769 | #define TRACE_DATA_FRMS 0x08 | ||
| 770 | |||
| 771 | |||
| 772 | #endif /* _SDLA_X25_H */ | ||
diff --git a/include/linux/sdladrv.h b/include/linux/sdladrv.h deleted file mode 100644 index c85e103d5e7b..000000000000 --- a/include/linux/sdladrv.h +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdladrv.h SDLA Support Module. Kernel API Definitions. | ||
| 3 | * | ||
| 4 | * Author: Gideon Hack | ||
| 5 | * | ||
| 6 | * Copyright: (c) 1995-2000 Sangoma Technologies Inc. | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or | ||
| 9 | * modify it under the terms of the GNU General Public License | ||
| 10 | * as published by the Free Software Foundation; either version | ||
| 11 | * 2 of the License, or (at your option) any later version. | ||
| 12 | * ============================================================================ | ||
| 13 | * Jun 02, 1999 Gideon Hack Added support for the S514 PCI adapter. | ||
| 14 | * Dec 11, 1996 Gene Kozin Complete overhaul. | ||
| 15 | * Oct 17, 1996 Gene Kozin Minor bug fixes. | ||
| 16 | * Jun 12, 1996 Gene Kozin Added support for S503 card. | ||
| 17 | * Dec 06, 1995 Gene Kozin Initial version. | ||
| 18 | *****************************************************************************/ | ||
| 19 | #ifndef _SDLADRV_H | ||
| 20 | #define _SDLADRV_H | ||
| 21 | |||
| 22 | |||
| 23 | #define SDLA_MAXIORANGE 4 /* maximum I/O port range */ | ||
| 24 | #define SDLA_WINDOWSIZE 0x2000 /* default dual-port memory window size */ | ||
| 25 | /****** Data Structures *****************************************************/ | ||
| 26 | |||
| 27 | /*---------------------------------------------------------------------------- | ||
| 28 | * Adapter hardware configuration. Pointer to this structure is passed to all | ||
| 29 | * APIs. | ||
| 30 | */ | ||
| 31 | typedef struct sdlahw | ||
| 32 | { | ||
| 33 | unsigned type; /* adapter type */ | ||
| 34 | unsigned fwid; /* firmware ID */ | ||
| 35 | unsigned port; /* adapter I/O port base */ | ||
| 36 | int irq; /* interrupt request level */ | ||
| 37 | char S514_cpu_no[1]; /* PCI CPU Number */ | ||
| 38 | unsigned char S514_slot_no; /* PCI Slot Number */ | ||
| 39 | char auto_pci_cfg; /* Autodetect PCI Slot */ | ||
| 40 | struct pci_dev *pci_dev; /* PCI device */ | ||
| 41 | void * dpmbase; /* dual-port memory base */ | ||
| 42 | unsigned dpmsize; /* dual-port memory size */ | ||
| 43 | unsigned pclk; /* CPU clock rate, kHz */ | ||
| 44 | unsigned long memory; /* memory size */ | ||
| 45 | unsigned long vector; /* local offset of the DPM window */ | ||
| 46 | unsigned io_range; /* I/O port range */ | ||
| 47 | unsigned char regs[SDLA_MAXIORANGE]; /* was written to registers */ | ||
| 48 | unsigned reserved[5]; | ||
| 49 | } sdlahw_t; | ||
| 50 | |||
| 51 | /****** Function Prototypes *************************************************/ | ||
| 52 | |||
| 53 | extern int sdla_setup (sdlahw_t* hw, void* sfm, unsigned len); | ||
| 54 | extern int sdla_down (sdlahw_t* hw); | ||
| 55 | extern void S514_intack (sdlahw_t* hw, u32 int_status); | ||
| 56 | extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status); | ||
| 57 | extern int sdla_mapmem (sdlahw_t* hw, unsigned long addr); | ||
| 58 | extern int sdla_peek (sdlahw_t* hw, unsigned long addr, void* buf, | ||
| 59 | unsigned len); | ||
| 60 | extern int sdla_poke (sdlahw_t* hw, unsigned long addr, void* buf, | ||
| 61 | unsigned len); | ||
| 62 | extern int sdla_exec (void* opflag); | ||
| 63 | |||
| 64 | extern unsigned wanpipe_hw_probe(void); | ||
| 65 | |||
| 66 | #endif /* _SDLADRV_H */ | ||
diff --git a/include/linux/sdlapci.h b/include/linux/sdlapci.h deleted file mode 100644 index 6f7c904f188d..000000000000 --- a/include/linux/sdlapci.h +++ /dev/null | |||
| @@ -1,72 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdlapci.h WANPIPE(tm) Multiprotocol WAN Link Driver. | ||
| 3 | * Definitions for the SDLA PCI adapter. | ||
| 4 | * | ||
| 5 | * Author: Gideon Hack <ghack@sangoma.com> | ||
| 6 | * | ||
| 7 | * Copyright: (c) 1999-2000 Sangoma Technologies Inc. | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or | ||
| 10 | * modify it under the terms of the GNU General Public License | ||
| 11 | * as published by the Free Software Foundation; either version | ||
| 12 | * 2 of the License, or (at your option) any later version. | ||
| 13 | * ============================================================================ | ||
| 14 | * Jun 02, 1999 Gideon Hack Initial version. | ||
| 15 | *****************************************************************************/ | ||
| 16 | #ifndef _SDLAPCI_H | ||
| 17 | #define _SDLAPCI_H | ||
| 18 | |||
| 19 | /****** Defines *************************************************************/ | ||
| 20 | |||
| 21 | /* Definitions for identifying and finding S514 PCI adapters */ | ||
| 22 | #define V3_VENDOR_ID 0x11B0 /* V3 vendor ID number */ | ||
| 23 | #define V3_DEVICE_ID 0x0002 /* V3 device ID number */ | ||
| 24 | #define SANGOMA_SUBSYS_VENDOR 0x4753 /* ID for Sangoma */ | ||
| 25 | #define PCI_DEV_SLOT_MASK 0x1F /* mask for slot numbering */ | ||
| 26 | #define PCI_IRQ_NOT_ALLOCATED 0xFF /* interrupt line for no IRQ */ | ||
| 27 | |||
| 28 | /* Local PCI register offsets */ | ||
| 29 | #define PCI_VENDOR_ID_WORD 0x00 /* vendor ID */ | ||
| 30 | #define PCI_IO_BASE_DWORD 0x10 /* IO base */ | ||
| 31 | #define PCI_MEM_BASE0_DWORD 0x14 /* memory base - apperture 0 */ | ||
| 32 | #define PCI_MEM_BASE1_DWORD 0x18 /* memory base - apperture 1 */ | ||
| 33 | #define PCI_SUBSYS_VENDOR_WORD 0x2C /* subsystem vendor ID */ | ||
| 34 | #define PCI_INT_LINE_BYTE 0x3C /* interrupt line */ | ||
| 35 | #define PCI_INT_PIN_BYTE 0x3D /* interrupt pin */ | ||
| 36 | #define PCI_MAP0_DWORD 0x40 /* PCI to local bus address 0 */ | ||
| 37 | #define PCI_MAP1_DWORD 0x44 /* PCI to local bus address 1 */ | ||
| 38 | #define PCI_INT_STATUS 0x48 /* interrupt status */ | ||
| 39 | #define PCI_INT_CONFIG 0x4C /* interrupt configuration */ | ||
| 40 | |||
| 41 | /* Local PCI register usage */ | ||
| 42 | #define PCI_MEMORY_ENABLE 0x00000003 /* enable PCI memory */ | ||
| 43 | #define PCI_CPU_A_MEM_DISABLE 0x00000002 /* disable CPU A memory */ | ||
| 44 | #define PCI_CPU_B_MEM_DISABLE 0x00100002 /* disable CPU B memory */ | ||
| 45 | #define PCI_ENABLE_IRQ_CPU_A 0x005A0004 /* enable IRQ for CPU A */ | ||
| 46 | #define PCI_ENABLE_IRQ_CPU_B 0x005A0008 /* enable IRQ for CPU B */ | ||
| 47 | #define PCI_DISABLE_IRQ_CPU_A 0x00000004 /* disable IRQ for CPU A */ | ||
| 48 | #define PCI_DISABLE_IRQ_CPU_B 0x00000008 /* disable IRQ for CPU B */ | ||
| 49 | |||
| 50 | /* Setting for the Interrupt Status register */ | ||
| 51 | #define IRQ_CPU_A 0x04 /* IRQ for CPU A */ | ||
| 52 | #define IRQ_CPU_B 0x08 /* IRQ for CPU B */ | ||
| 53 | |||
| 54 | /* The maximum size of the S514 memory */ | ||
| 55 | #define MAX_SIZEOF_S514_MEMORY (256 * 1024) | ||
| 56 | |||
| 57 | /* S514 control register offsets within the memory address space */ | ||
| 58 | #define S514_CTRL_REG_BYTE 0x80000 | ||
| 59 | |||
| 60 | /* S514 adapter control bytes */ | ||
| 61 | #define S514_CPU_HALT 0x00 | ||
| 62 | #define S514_CPU_START 0x01 | ||
| 63 | |||
| 64 | /* The maximum number of S514 adapters supported */ | ||
| 65 | #define MAX_S514_CARDS 20 | ||
| 66 | |||
| 67 | #define PCI_CARD_TYPE 0x2E | ||
| 68 | #define S514_DUAL_CPU 0x12 | ||
| 69 | #define S514_SINGLE_CPU 0x11 | ||
| 70 | |||
| 71 | #endif /* _SDLAPCI_H */ | ||
| 72 | |||
diff --git a/include/linux/sdlasfm.h b/include/linux/sdlasfm.h deleted file mode 100644 index 94aaa8ada667..000000000000 --- a/include/linux/sdlasfm.h +++ /dev/null | |||
| @@ -1,104 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * sdlasfm.h WANPIPE(tm) Multiprotocol WAN Link Driver. | ||
| 3 | * Definitions for the SDLA Firmware Module (SFM). | ||
| 4 | * | ||
| 5 | * Author: Gideon Hack | ||
| 6 | * | ||
| 7 | * Copyright: (c) 1995-1999 Sangoma Technologies Inc. | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or | ||
| 10 | * modify it under the terms of the GNU General Public License | ||
| 11 | * as published by the Free Software Foundation; either version | ||
| 12 | * 2 of the License, or (at your option) any later version. | ||
| 13 | * ============================================================================ | ||
| 14 | * Jun 02, 1999 Gideon Hack Added support for the S514 adapter. | ||
| 15 | * Dec 11, 1996 Gene Kozin Cosmetic changes | ||
| 16 | * Apr 16, 1996 Gene Kozin Changed adapter & firmware IDs. Version 2 | ||
| 17 | * Dec 15, 1995 Gene Kozin Structures chaned | ||
| 18 | * Nov 09, 1995 Gene Kozin Initial version. | ||
| 19 | *****************************************************************************/ | ||
| 20 | #ifndef _SDLASFM_H | ||
| 21 | #define _SDLASFM_H | ||
| 22 | |||
| 23 | /****** Defines *************************************************************/ | ||
| 24 | |||
| 25 | #define SFM_VERSION 2 | ||
| 26 | #define SFM_SIGNATURE "SFM - Sangoma SDLA Firmware Module" | ||
| 27 | |||
| 28 | /* min/max */ | ||
| 29 | #define SFM_IMAGE_SIZE 0x8000 /* max size of SDLA code image file */ | ||
| 30 | #define SFM_DESCR_LEN 256 /* max length of description string */ | ||
| 31 | #define SFM_MAX_SDLA 16 /* max number of compatible adapters */ | ||
| 32 | |||
| 33 | /* Adapter types */ | ||
| 34 | #define SDLA_S502A 5020 | ||
| 35 | #define SDLA_S502E 5021 | ||
| 36 | #define SDLA_S503 5030 | ||
| 37 | #define SDLA_S508 5080 | ||
| 38 | #define SDLA_S507 5070 | ||
| 39 | #define SDLA_S509 5090 | ||
| 40 | #define SDLA_S514 5140 | ||
| 41 | |||
| 42 | /* S514 PCI adapter CPU numbers */ | ||
| 43 | #define S514_CPU_A 'A' | ||
| 44 | #define S514_CPU_B 'B' | ||
| 45 | |||
| 46 | |||
| 47 | /* Firmware identification numbers: | ||
| 48 | * 0 .. 999 Test & Diagnostics | ||
| 49 | * 1000 .. 1999 Streaming HDLC | ||
| 50 | * 2000 .. 2999 Bisync | ||
| 51 | * 3000 .. 3999 SDLC | ||
| 52 | * 4000 .. 4999 HDLC | ||
| 53 | * 5000 .. 5999 X.25 | ||
| 54 | * 6000 .. 6999 Frame Relay | ||
| 55 | * 7000 .. 7999 PPP | ||
| 56 | * 8000 .. 8999 Cisco HDLC | ||
| 57 | */ | ||
| 58 | #define SFID_CALIB502 200 | ||
| 59 | #define SFID_STRM502 1200 | ||
| 60 | #define SFID_STRM508 1800 | ||
| 61 | #define SFID_BSC502 2200 | ||
| 62 | #define SFID_SDLC502 3200 | ||
| 63 | #define SFID_HDLC502 4200 | ||
| 64 | #define SFID_HDLC508 4800 | ||
| 65 | #define SFID_X25_502 5200 | ||
| 66 | #define SFID_X25_508 5800 | ||
| 67 | #define SFID_FR502 6200 | ||
| 68 | #define SFID_FR508 6800 | ||
| 69 | #define SFID_PPP502 7200 | ||
| 70 | #define SFID_PPP508 7800 | ||
| 71 | #define SFID_PPP514 7140 | ||
| 72 | #define SFID_CHDLC508 8800 | ||
| 73 | #define SFID_CHDLC514 8140 | ||
| 74 | |||
| 75 | /****** Data Types **********************************************************/ | ||
| 76 | |||
| 77 | typedef struct sfm_info /* firmware module information */ | ||
| 78 | { | ||
| 79 | unsigned short codeid; /* firmware ID */ | ||
| 80 | unsigned short version; /* firmaware version number */ | ||
| 81 | unsigned short adapter[SFM_MAX_SDLA]; /* compatible adapter types */ | ||
| 82 | unsigned long memsize; /* minimum memory size */ | ||
| 83 | unsigned short reserved[2]; /* reserved */ | ||
| 84 | unsigned short startoffs; /* entry point offset */ | ||
| 85 | unsigned short winoffs; /* dual-port memory window offset */ | ||
| 86 | unsigned short codeoffs; /* code load offset */ | ||
| 87 | unsigned short codesize; /* code size */ | ||
| 88 | unsigned short dataoffs; /* configuration data load offset */ | ||
| 89 | unsigned short datasize; /* configuration data size */ | ||
| 90 | } sfm_info_t; | ||
| 91 | |||
| 92 | typedef struct sfm /* SDLA firmware file structire */ | ||
| 93 | { | ||
| 94 | char signature[80]; /* SFM file signature */ | ||
| 95 | unsigned short version; /* file format version */ | ||
| 96 | unsigned short checksum; /* info + image */ | ||
| 97 | unsigned short reserved[6]; /* reserved */ | ||
| 98 | char descr[SFM_DESCR_LEN]; /* description string */ | ||
| 99 | sfm_info_t info; /* firmware module info */ | ||
| 100 | unsigned char image[1]; /* code image (variable size) */ | ||
| 101 | } sfm_t; | ||
| 102 | |||
| 103 | #endif /* _SDLASFM_H */ | ||
| 104 | |||
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/skbuff.h b/include/linux/skbuff.h index c4619a428d9b..f8f234708b98 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -344,6 +344,13 @@ extern void skb_over_panic(struct sk_buff *skb, int len, | |||
| 344 | void *here); | 344 | void *here); |
| 345 | extern void skb_under_panic(struct sk_buff *skb, int len, | 345 | extern void skb_under_panic(struct sk_buff *skb, int len, |
| 346 | void *here); | 346 | void *here); |
| 347 | extern void skb_truesize_bug(struct sk_buff *skb); | ||
| 348 | |||
| 349 | static inline void skb_truesize_check(struct sk_buff *skb) | ||
| 350 | { | ||
| 351 | if (unlikely((int)skb->truesize < sizeof(struct sk_buff) + skb->len)) | ||
| 352 | skb_truesize_bug(skb); | ||
| 353 | } | ||
| 347 | 354 | ||
| 348 | extern int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb, | 355 | extern int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb, |
| 349 | int getfrag(void *from, char *to, int offset, | 356 | int getfrag(void *from, char *to, int offset, |
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/metrics.h b/include/linux/sunrpc/metrics.h index 8f96e9dc369a..77f78e56c481 100644 --- a/include/linux/sunrpc/metrics.h +++ b/include/linux/sunrpc/metrics.h | |||
| @@ -69,9 +69,21 @@ struct rpc_clnt; | |||
| 69 | /* | 69 | /* |
| 70 | * EXPORTed functions for managing rpc_iostats structures | 70 | * EXPORTed functions for managing rpc_iostats structures |
| 71 | */ | 71 | */ |
| 72 | |||
| 73 | #ifdef CONFIG_PROC_FS | ||
| 74 | |||
| 72 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); | 75 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); |
| 73 | void rpc_count_iostats(struct rpc_task *); | 76 | void rpc_count_iostats(struct rpc_task *); |
| 74 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); | 77 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); |
| 75 | void rpc_free_iostats(struct rpc_iostats *); | 78 | void rpc_free_iostats(struct rpc_iostats *); |
| 76 | 79 | ||
| 80 | #else /* CONFIG_PROC_FS */ | ||
| 81 | |||
| 82 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } | ||
| 83 | static inline void rpc_count_iostats(struct rpc_task *task) {} | ||
| 84 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} | ||
| 85 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} | ||
| 86 | |||
| 87 | #endif /* CONFIG_PROC_FS */ | ||
| 88 | |||
| 77 | #endif /* _LINUX_SUNRPC_METRICS_H */ | 89 | #endif /* _LINUX_SUNRPC_METRICS_H */ |
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/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 7eebbab7160b..e8bbe8118de8 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -53,6 +53,7 @@ struct rpc_timeout { | |||
| 53 | 53 | ||
| 54 | struct rpc_task; | 54 | struct rpc_task; |
| 55 | struct rpc_xprt; | 55 | struct rpc_xprt; |
| 56 | struct seq_file; | ||
| 56 | 57 | ||
| 57 | /* | 58 | /* |
| 58 | * This describes a complete RPC request | 59 | * This describes a complete RPC request |
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..d3ebc0e68b2b 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -569,9 +569,14 @@ 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 | |||
| 577 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); | ||
| 578 | |||
| 574 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, | 579 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, |
| 575 | int flags); | 580 | unsigned int flags); |
| 576 | 581 | ||
| 577 | #endif | 582 | #endif |
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 392da5a6dacb..1ea5d3cda6ae 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
| @@ -74,6 +74,7 @@ struct sysfs_dirent { | |||
| 74 | umode_t s_mode; | 74 | umode_t s_mode; |
| 75 | struct dentry * s_dentry; | 75 | struct dentry * s_dentry; |
| 76 | struct iattr * s_iattr; | 76 | struct iattr * s_iattr; |
| 77 | atomic_t s_event; | ||
| 77 | }; | 78 | }; |
| 78 | 79 | ||
| 79 | #define SYSFS_ROOT 0x0001 | 80 | #define SYSFS_ROOT 0x0001 |
| @@ -117,6 +118,7 @@ int sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr); | |||
| 117 | 118 | ||
| 118 | int sysfs_create_group(struct kobject *, const struct attribute_group *); | 119 | int sysfs_create_group(struct kobject *, const struct attribute_group *); |
| 119 | void sysfs_remove_group(struct kobject *, const struct attribute_group *); | 120 | void sysfs_remove_group(struct kobject *, const struct attribute_group *); |
| 121 | void sysfs_notify(struct kobject * k, char *dir, char *attr); | ||
| 120 | 122 | ||
| 121 | #else /* CONFIG_SYSFS */ | 123 | #else /* CONFIG_SYSFS */ |
| 122 | 124 | ||
| @@ -185,6 +187,10 @@ static inline void sysfs_remove_group(struct kobject * k, const struct attribute | |||
| 185 | ; | 187 | ; |
| 186 | } | 188 | } |
| 187 | 189 | ||
| 190 | static inline void sysfs_notify(struct kobject * k, char *dir, char *attr) | ||
| 191 | { | ||
| 192 | } | ||
| 193 | |||
| 188 | #endif /* CONFIG_SYSFS */ | 194 | #endif /* CONFIG_SYSFS */ |
| 189 | 195 | ||
| 190 | #endif /* _SYSFS_H_ */ | 196 | #endif /* _SYSFS_H_ */ |
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/usb/net2280.h b/include/linux/usb/net2280.h new file mode 100644 index 000000000000..c602f884f182 --- /dev/null +++ b/include/linux/usb/net2280.h | |||
| @@ -0,0 +1,444 @@ | |||
| 1 | /* | ||
| 2 | * NetChip 2280 high/full speed USB device controller. | ||
| 3 | * Unlike many such controllers, this one talks PCI. | ||
| 4 | */ | ||
| 5 | #ifndef __LINUX_USB_NET2280_H | ||
| 6 | #define __LINUX_USB_NET2280_H | ||
| 7 | |||
| 8 | /* | ||
| 9 | * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com) | ||
| 10 | * Copyright (C) 2003 David Brownell | ||
| 11 | * | ||
| 12 | * This program is free software; you can redistribute it and/or modify | ||
| 13 | * it under the terms of the GNU General Public License as published by | ||
| 14 | * the Free Software Foundation; either version 2 of the License, or | ||
| 15 | * (at your option) any later version. | ||
| 16 | * | ||
| 17 | * This program is distributed in the hope that it will be useful, | ||
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 20 | * GNU General Public License for more details. | ||
| 21 | * | ||
| 22 | * You should have received a copy of the GNU General Public License | ||
| 23 | * along with this program; if not, write to the Free Software | ||
| 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 25 | */ | ||
| 26 | |||
| 27 | /*-------------------------------------------------------------------------*/ | ||
| 28 | |||
| 29 | /* NET2280 MEMORY MAPPED REGISTERS | ||
| 30 | * | ||
| 31 | * The register layout came from the chip documentation, and the bit | ||
| 32 | * number definitions were extracted from chip specification. | ||
| 33 | * | ||
| 34 | * Use the shift operator ('<<') to build bit masks, with readl/writel | ||
| 35 | * to access the registers through PCI. | ||
| 36 | */ | ||
| 37 | |||
| 38 | /* main registers, BAR0 + 0x0000 */ | ||
| 39 | struct net2280_regs { | ||
| 40 | // offset 0x0000 | ||
| 41 | u32 devinit; | ||
| 42 | #define LOCAL_CLOCK_FREQUENCY 8 | ||
| 43 | #define FORCE_PCI_RESET 7 | ||
| 44 | #define PCI_ID 6 | ||
| 45 | #define PCI_ENABLE 5 | ||
| 46 | #define FIFO_SOFT_RESET 4 | ||
| 47 | #define CFG_SOFT_RESET 3 | ||
| 48 | #define PCI_SOFT_RESET 2 | ||
| 49 | #define USB_SOFT_RESET 1 | ||
| 50 | #define M8051_RESET 0 | ||
| 51 | u32 eectl; | ||
| 52 | #define EEPROM_ADDRESS_WIDTH 23 | ||
| 53 | #define EEPROM_CHIP_SELECT_ACTIVE 22 | ||
| 54 | #define EEPROM_PRESENT 21 | ||
| 55 | #define EEPROM_VALID 20 | ||
| 56 | #define EEPROM_BUSY 19 | ||
| 57 | #define EEPROM_CHIP_SELECT_ENABLE 18 | ||
| 58 | #define EEPROM_BYTE_READ_START 17 | ||
| 59 | #define EEPROM_BYTE_WRITE_START 16 | ||
| 60 | #define EEPROM_READ_DATA 8 | ||
| 61 | #define EEPROM_WRITE_DATA 0 | ||
| 62 | u32 eeclkfreq; | ||
| 63 | u32 _unused0; | ||
| 64 | // offset 0x0010 | ||
| 65 | |||
| 66 | u32 pciirqenb0; /* interrupt PCI master ... */ | ||
| 67 | #define SETUP_PACKET_INTERRUPT_ENABLE 7 | ||
| 68 | #define ENDPOINT_F_INTERRUPT_ENABLE 6 | ||
| 69 | #define ENDPOINT_E_INTERRUPT_ENABLE 5 | ||
| 70 | #define ENDPOINT_D_INTERRUPT_ENABLE 4 | ||
| 71 | #define ENDPOINT_C_INTERRUPT_ENABLE 3 | ||
| 72 | #define ENDPOINT_B_INTERRUPT_ENABLE 2 | ||
| 73 | #define ENDPOINT_A_INTERRUPT_ENABLE 1 | ||
| 74 | #define ENDPOINT_0_INTERRUPT_ENABLE 0 | ||
| 75 | u32 pciirqenb1; | ||
| 76 | #define PCI_INTERRUPT_ENABLE 31 | ||
| 77 | #define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27 | ||
| 78 | #define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26 | ||
| 79 | #define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25 | ||
| 80 | #define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20 | ||
| 81 | #define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19 | ||
| 82 | #define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE 18 | ||
| 83 | #define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17 | ||
| 84 | #define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16 | ||
| 85 | #define GPIO_INTERRUPT_ENABLE 13 | ||
| 86 | #define DMA_D_INTERRUPT_ENABLE 12 | ||
| 87 | #define DMA_C_INTERRUPT_ENABLE 11 | ||
| 88 | #define DMA_B_INTERRUPT_ENABLE 10 | ||
| 89 | #define DMA_A_INTERRUPT_ENABLE 9 | ||
| 90 | #define EEPROM_DONE_INTERRUPT_ENABLE 8 | ||
| 91 | #define VBUS_INTERRUPT_ENABLE 7 | ||
| 92 | #define CONTROL_STATUS_INTERRUPT_ENABLE 6 | ||
| 93 | #define ROOT_PORT_RESET_INTERRUPT_ENABLE 4 | ||
| 94 | #define SUSPEND_REQUEST_INTERRUPT_ENABLE 3 | ||
| 95 | #define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2 | ||
| 96 | #define RESUME_INTERRUPT_ENABLE 1 | ||
| 97 | #define SOF_INTERRUPT_ENABLE 0 | ||
| 98 | u32 cpu_irqenb0; /* ... or onboard 8051 */ | ||
| 99 | #define SETUP_PACKET_INTERRUPT_ENABLE 7 | ||
| 100 | #define ENDPOINT_F_INTERRUPT_ENABLE 6 | ||
| 101 | #define ENDPOINT_E_INTERRUPT_ENABLE 5 | ||
| 102 | #define ENDPOINT_D_INTERRUPT_ENABLE 4 | ||
| 103 | #define ENDPOINT_C_INTERRUPT_ENABLE 3 | ||
| 104 | #define ENDPOINT_B_INTERRUPT_ENABLE 2 | ||
| 105 | #define ENDPOINT_A_INTERRUPT_ENABLE 1 | ||
| 106 | #define ENDPOINT_0_INTERRUPT_ENABLE 0 | ||
| 107 | u32 cpu_irqenb1; | ||
| 108 | #define CPU_INTERRUPT_ENABLE 31 | ||
| 109 | #define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27 | ||
| 110 | #define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26 | ||
| 111 | #define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25 | ||
| 112 | #define PCI_INTA_INTERRUPT_ENABLE 24 | ||
| 113 | #define PCI_PME_INTERRUPT_ENABLE 23 | ||
| 114 | #define PCI_SERR_INTERRUPT_ENABLE 22 | ||
| 115 | #define PCI_PERR_INTERRUPT_ENABLE 21 | ||
| 116 | #define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20 | ||
| 117 | #define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19 | ||
| 118 | #define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17 | ||
| 119 | #define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16 | ||
| 120 | #define GPIO_INTERRUPT_ENABLE 13 | ||
| 121 | #define DMA_D_INTERRUPT_ENABLE 12 | ||
| 122 | #define DMA_C_INTERRUPT_ENABLE 11 | ||
| 123 | #define DMA_B_INTERRUPT_ENABLE 10 | ||
| 124 | #define DMA_A_INTERRUPT_ENABLE 9 | ||
| 125 | #define EEPROM_DONE_INTERRUPT_ENABLE 8 | ||
| 126 | #define VBUS_INTERRUPT_ENABLE 7 | ||
| 127 | #define CONTROL_STATUS_INTERRUPT_ENABLE 6 | ||
| 128 | #define ROOT_PORT_RESET_INTERRUPT_ENABLE 4 | ||
| 129 | #define SUSPEND_REQUEST_INTERRUPT_ENABLE 3 | ||
| 130 | #define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2 | ||
| 131 | #define RESUME_INTERRUPT_ENABLE 1 | ||
| 132 | #define SOF_INTERRUPT_ENABLE 0 | ||
| 133 | |||
| 134 | // offset 0x0020 | ||
| 135 | u32 _unused1; | ||
| 136 | u32 usbirqenb1; | ||
| 137 | #define USB_INTERRUPT_ENABLE 31 | ||
| 138 | #define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27 | ||
| 139 | #define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26 | ||
| 140 | #define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25 | ||
| 141 | #define PCI_INTA_INTERRUPT_ENABLE 24 | ||
| 142 | #define PCI_PME_INTERRUPT_ENABLE 23 | ||
| 143 | #define PCI_SERR_INTERRUPT_ENABLE 22 | ||
| 144 | #define PCI_PERR_INTERRUPT_ENABLE 21 | ||
| 145 | #define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20 | ||
| 146 | #define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19 | ||
| 147 | #define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17 | ||
| 148 | #define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16 | ||
| 149 | #define GPIO_INTERRUPT_ENABLE 13 | ||
| 150 | #define DMA_D_INTERRUPT_ENABLE 12 | ||
| 151 | #define DMA_C_INTERRUPT_ENABLE 11 | ||
| 152 | #define DMA_B_INTERRUPT_ENABLE 10 | ||
| 153 | #define DMA_A_INTERRUPT_ENABLE 9 | ||
| 154 | #define EEPROM_DONE_INTERRUPT_ENABLE 8 | ||
| 155 | #define VBUS_INTERRUPT_ENABLE 7 | ||
| 156 | #define CONTROL_STATUS_INTERRUPT_ENABLE 6 | ||
| 157 | #define ROOT_PORT_RESET_INTERRUPT_ENABLE 4 | ||
| 158 | #define SUSPEND_REQUEST_INTERRUPT_ENABLE 3 | ||
| 159 | #define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2 | ||
| 160 | #define RESUME_INTERRUPT_ENABLE 1 | ||
| 161 | #define SOF_INTERRUPT_ENABLE 0 | ||
| 162 | u32 irqstat0; | ||
| 163 | #define INTA_ASSERTED 12 | ||
| 164 | #define SETUP_PACKET_INTERRUPT 7 | ||
| 165 | #define ENDPOINT_F_INTERRUPT 6 | ||
| 166 | #define ENDPOINT_E_INTERRUPT 5 | ||
| 167 | #define ENDPOINT_D_INTERRUPT 4 | ||
| 168 | #define ENDPOINT_C_INTERRUPT 3 | ||
| 169 | #define ENDPOINT_B_INTERRUPT 2 | ||
| 170 | #define ENDPOINT_A_INTERRUPT 1 | ||
| 171 | #define ENDPOINT_0_INTERRUPT 0 | ||
| 172 | u32 irqstat1; | ||
| 173 | #define POWER_STATE_CHANGE_INTERRUPT 27 | ||
| 174 | #define PCI_ARBITER_TIMEOUT_INTERRUPT 26 | ||
| 175 | #define PCI_PARITY_ERROR_INTERRUPT 25 | ||
| 176 | #define PCI_INTA_INTERRUPT 24 | ||
| 177 | #define PCI_PME_INTERRUPT 23 | ||
| 178 | #define PCI_SERR_INTERRUPT 22 | ||
| 179 | #define PCI_PERR_INTERRUPT 21 | ||
| 180 | #define PCI_MASTER_ABORT_RECEIVED_INTERRUPT 20 | ||
| 181 | #define PCI_TARGET_ABORT_RECEIVED_INTERRUPT 19 | ||
| 182 | #define PCI_RETRY_ABORT_INTERRUPT 17 | ||
| 183 | #define PCI_MASTER_CYCLE_DONE_INTERRUPT 16 | ||
| 184 | #define SOF_DOWN_INTERRUPT 14 | ||
| 185 | #define GPIO_INTERRUPT 13 | ||
| 186 | #define DMA_D_INTERRUPT 12 | ||
| 187 | #define DMA_C_INTERRUPT 11 | ||
| 188 | #define DMA_B_INTERRUPT 10 | ||
| 189 | #define DMA_A_INTERRUPT 9 | ||
| 190 | #define EEPROM_DONE_INTERRUPT 8 | ||
| 191 | #define VBUS_INTERRUPT 7 | ||
| 192 | #define CONTROL_STATUS_INTERRUPT 6 | ||
| 193 | #define ROOT_PORT_RESET_INTERRUPT 4 | ||
| 194 | #define SUSPEND_REQUEST_INTERRUPT 3 | ||
| 195 | #define SUSPEND_REQUEST_CHANGE_INTERRUPT 2 | ||
| 196 | #define RESUME_INTERRUPT 1 | ||
| 197 | #define SOF_INTERRUPT 0 | ||
| 198 | // offset 0x0030 | ||
| 199 | u32 idxaddr; | ||
| 200 | u32 idxdata; | ||
| 201 | u32 fifoctl; | ||
| 202 | #define PCI_BASE2_RANGE 16 | ||
| 203 | #define IGNORE_FIFO_AVAILABILITY 3 | ||
| 204 | #define PCI_BASE2_SELECT 2 | ||
| 205 | #define FIFO_CONFIGURATION_SELECT 0 | ||
| 206 | u32 _unused2; | ||
| 207 | // offset 0x0040 | ||
| 208 | u32 memaddr; | ||
| 209 | #define START 28 | ||
| 210 | #define DIRECTION 27 | ||
| 211 | #define FIFO_DIAGNOSTIC_SELECT 24 | ||
| 212 | #define MEMORY_ADDRESS 0 | ||
| 213 | u32 memdata0; | ||
| 214 | u32 memdata1; | ||
| 215 | u32 _unused3; | ||
| 216 | // offset 0x0050 | ||
| 217 | u32 gpioctl; | ||
| 218 | #define GPIO3_LED_SELECT 12 | ||
| 219 | #define GPIO3_INTERRUPT_ENABLE 11 | ||
| 220 | #define GPIO2_INTERRUPT_ENABLE 10 | ||
| 221 | #define GPIO1_INTERRUPT_ENABLE 9 | ||
| 222 | #define GPIO0_INTERRUPT_ENABLE 8 | ||
| 223 | #define GPIO3_OUTPUT_ENABLE 7 | ||
| 224 | #define GPIO2_OUTPUT_ENABLE 6 | ||
| 225 | #define GPIO1_OUTPUT_ENABLE 5 | ||
| 226 | #define GPIO0_OUTPUT_ENABLE 4 | ||
| 227 | #define GPIO3_DATA 3 | ||
| 228 | #define GPIO2_DATA 2 | ||
| 229 | #define GPIO1_DATA 1 | ||
| 230 | #define GPIO0_DATA 0 | ||
| 231 | u32 gpiostat; | ||
| 232 | #define GPIO3_INTERRUPT 3 | ||
| 233 | #define GPIO2_INTERRUPT 2 | ||
| 234 | #define GPIO1_INTERRUPT 1 | ||
| 235 | #define GPIO0_INTERRUPT 0 | ||
| 236 | } __attribute__ ((packed)); | ||
| 237 | |||
| 238 | /* usb control, BAR0 + 0x0080 */ | ||
| 239 | struct net2280_usb_regs { | ||
| 240 | // offset 0x0080 | ||
| 241 | u32 stdrsp; | ||
| 242 | #define STALL_UNSUPPORTED_REQUESTS 31 | ||
| 243 | #define SET_TEST_MODE 16 | ||
| 244 | #define GET_OTHER_SPEED_CONFIGURATION 15 | ||
| 245 | #define GET_DEVICE_QUALIFIER 14 | ||
| 246 | #define SET_ADDRESS 13 | ||
| 247 | #define ENDPOINT_SET_CLEAR_HALT 12 | ||
| 248 | #define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP 11 | ||
| 249 | #define GET_STRING_DESCRIPTOR_2 10 | ||
| 250 | #define GET_STRING_DESCRIPTOR_1 9 | ||
| 251 | #define GET_STRING_DESCRIPTOR_0 8 | ||
| 252 | #define GET_SET_INTERFACE 6 | ||
| 253 | #define GET_SET_CONFIGURATION 5 | ||
| 254 | #define GET_CONFIGURATION_DESCRIPTOR 4 | ||
| 255 | #define GET_DEVICE_DESCRIPTOR 3 | ||
| 256 | #define GET_ENDPOINT_STATUS 2 | ||
| 257 | #define GET_INTERFACE_STATUS 1 | ||
| 258 | #define GET_DEVICE_STATUS 0 | ||
| 259 | u32 prodvendid; | ||
| 260 | #define PRODUCT_ID 16 | ||
| 261 | #define VENDOR_ID 0 | ||
| 262 | u32 relnum; | ||
| 263 | u32 usbctl; | ||
| 264 | #define SERIAL_NUMBER_INDEX 16 | ||
| 265 | #define PRODUCT_ID_STRING_ENABLE 13 | ||
| 266 | #define VENDOR_ID_STRING_ENABLE 12 | ||
| 267 | #define USB_ROOT_PORT_WAKEUP_ENABLE 11 | ||
| 268 | #define VBUS_PIN 10 | ||
| 269 | #define TIMED_DISCONNECT 9 | ||
| 270 | #define SUSPEND_IMMEDIATELY 7 | ||
| 271 | #define SELF_POWERED_USB_DEVICE 6 | ||
| 272 | #define REMOTE_WAKEUP_SUPPORT 5 | ||
| 273 | #define PME_POLARITY 4 | ||
| 274 | #define USB_DETECT_ENABLE 3 | ||
| 275 | #define PME_WAKEUP_ENABLE 2 | ||
| 276 | #define DEVICE_REMOTE_WAKEUP_ENABLE 1 | ||
| 277 | #define SELF_POWERED_STATUS 0 | ||
| 278 | // offset 0x0090 | ||
| 279 | u32 usbstat; | ||
| 280 | #define HIGH_SPEED 7 | ||
| 281 | #define FULL_SPEED 6 | ||
| 282 | #define GENERATE_RESUME 5 | ||
| 283 | #define GENERATE_DEVICE_REMOTE_WAKEUP 4 | ||
| 284 | u32 xcvrdiag; | ||
| 285 | #define FORCE_HIGH_SPEED_MODE 31 | ||
| 286 | #define FORCE_FULL_SPEED_MODE 30 | ||
| 287 | #define USB_TEST_MODE 24 | ||
| 288 | #define LINE_STATE 16 | ||
| 289 | #define TRANSCEIVER_OPERATION_MODE 2 | ||
| 290 | #define TRANSCEIVER_SELECT 1 | ||
| 291 | #define TERMINATION_SELECT 0 | ||
| 292 | u32 setup0123; | ||
| 293 | u32 setup4567; | ||
| 294 | // offset 0x0090 | ||
| 295 | u32 _unused0; | ||
| 296 | u32 ouraddr; | ||
| 297 | #define FORCE_IMMEDIATE 7 | ||
| 298 | #define OUR_USB_ADDRESS 0 | ||
| 299 | u32 ourconfig; | ||
| 300 | } __attribute__ ((packed)); | ||
| 301 | |||
| 302 | /* pci control, BAR0 + 0x0100 */ | ||
| 303 | struct net2280_pci_regs { | ||
| 304 | // offset 0x0100 | ||
| 305 | u32 pcimstctl; | ||
| 306 | #define PCI_ARBITER_PARK_SELECT 13 | ||
| 307 | #define PCI_MULTI LEVEL_ARBITER 12 | ||
| 308 | #define PCI_RETRY_ABORT_ENABLE 11 | ||
| 309 | #define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE 10 | ||
| 310 | #define DMA_READ_MULTIPLE_ENABLE 9 | ||
| 311 | #define DMA_READ_LINE_ENABLE 8 | ||
| 312 | #define PCI_MASTER_COMMAND_SELECT 6 | ||
| 313 | #define MEM_READ_OR_WRITE 0 | ||
| 314 | #define IO_READ_OR_WRITE 1 | ||
| 315 | #define CFG_READ_OR_WRITE 2 | ||
| 316 | #define PCI_MASTER_START 5 | ||
| 317 | #define PCI_MASTER_READ_WRITE 4 | ||
| 318 | #define PCI_MASTER_WRITE 0 | ||
| 319 | #define PCI_MASTER_READ 1 | ||
| 320 | #define PCI_MASTER_BYTE_WRITE_ENABLES 0 | ||
| 321 | u32 pcimstaddr; | ||
| 322 | u32 pcimstdata; | ||
| 323 | u32 pcimststat; | ||
| 324 | #define PCI_ARBITER_CLEAR 2 | ||
| 325 | #define PCI_EXTERNAL_ARBITER 1 | ||
| 326 | #define PCI_HOST_MODE 0 | ||
| 327 | } __attribute__ ((packed)); | ||
| 328 | |||
| 329 | /* dma control, BAR0 + 0x0180 ... array of four structs like this, | ||
| 330 | * for channels 0..3. see also struct net2280_dma: descriptor | ||
| 331 | * that can be loaded into some of these registers. | ||
| 332 | */ | ||
| 333 | struct net2280_dma_regs { /* [11.7] */ | ||
| 334 | // offset 0x0180, 0x01a0, 0x01c0, 0x01e0, | ||
| 335 | u32 dmactl; | ||
| 336 | #define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE 25 | ||
| 337 | #define DMA_CLEAR_COUNT_ENABLE 21 | ||
| 338 | #define DESCRIPTOR_POLLING_RATE 19 | ||
| 339 | #define POLL_CONTINUOUS 0 | ||
| 340 | #define POLL_1_USEC 1 | ||
| 341 | #define POLL_100_USEC 2 | ||
| 342 | #define POLL_1_MSEC 3 | ||
| 343 | #define DMA_VALID_BIT_POLLING_ENABLE 18 | ||
| 344 | #define DMA_VALID_BIT_ENABLE 17 | ||
| 345 | #define DMA_SCATTER_GATHER_ENABLE 16 | ||
| 346 | #define DMA_OUT_AUTO_START_ENABLE 4 | ||
| 347 | #define DMA_PREEMPT_ENABLE 3 | ||
| 348 | #define DMA_FIFO_VALIDATE 2 | ||
| 349 | #define DMA_ENABLE 1 | ||
| 350 | #define DMA_ADDRESS_HOLD 0 | ||
| 351 | u32 dmastat; | ||
| 352 | #define DMA_ABORT_DONE_INTERRUPT 27 | ||
| 353 | #define DMA_SCATTER_GATHER_DONE_INTERRUPT 25 | ||
| 354 | #define DMA_TRANSACTION_DONE_INTERRUPT 24 | ||
| 355 | #define DMA_ABORT 1 | ||
| 356 | #define DMA_START 0 | ||
| 357 | u32 _unused0 [2]; | ||
| 358 | // offset 0x0190, 0x01b0, 0x01d0, 0x01f0, | ||
| 359 | u32 dmacount; | ||
| 360 | #define VALID_BIT 31 | ||
| 361 | #define DMA_DIRECTION 30 | ||
| 362 | #define DMA_DONE_INTERRUPT_ENABLE 29 | ||
| 363 | #define END_OF_CHAIN 28 | ||
| 364 | #define DMA_BYTE_COUNT_MASK ((1<<24)-1) | ||
| 365 | #define DMA_BYTE_COUNT 0 | ||
| 366 | u32 dmaaddr; | ||
| 367 | u32 dmadesc; | ||
| 368 | u32 _unused1; | ||
| 369 | } __attribute__ ((packed)); | ||
| 370 | |||
| 371 | /* dedicated endpoint registers, BAR0 + 0x0200 */ | ||
| 372 | |||
| 373 | struct net2280_dep_regs { /* [11.8] */ | ||
| 374 | // offset 0x0200, 0x0210, 0x220, 0x230, 0x240 | ||
| 375 | u32 dep_cfg; | ||
| 376 | // offset 0x0204, 0x0214, 0x224, 0x234, 0x244 | ||
| 377 | u32 dep_rsp; | ||
| 378 | u32 _unused [2]; | ||
| 379 | } __attribute__ ((packed)); | ||
| 380 | |||
| 381 | /* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs | ||
| 382 | * like this, for ep0 then the configurable endpoints A..F | ||
| 383 | * ep0 reserved for control; E and F have only 64 bytes of fifo | ||
| 384 | */ | ||
| 385 | struct net2280_ep_regs { /* [11.9] */ | ||
| 386 | // offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 | ||
| 387 | u32 ep_cfg; | ||
| 388 | #define ENDPOINT_BYTE_COUNT 16 | ||
| 389 | #define ENDPOINT_ENABLE 10 | ||
| 390 | #define ENDPOINT_TYPE 8 | ||
| 391 | #define ENDPOINT_DIRECTION 7 | ||
| 392 | #define ENDPOINT_NUMBER 0 | ||
| 393 | u32 ep_rsp; | ||
| 394 | #define SET_NAK_OUT_PACKETS 15 | ||
| 395 | #define SET_EP_HIDE_STATUS_PHASE 14 | ||
| 396 | #define SET_EP_FORCE_CRC_ERROR 13 | ||
| 397 | #define SET_INTERRUPT_MODE 12 | ||
| 398 | #define SET_CONTROL_STATUS_PHASE_HANDSHAKE 11 | ||
| 399 | #define SET_NAK_OUT_PACKETS_MODE 10 | ||
| 400 | #define SET_ENDPOINT_TOGGLE 9 | ||
| 401 | #define SET_ENDPOINT_HALT 8 | ||
| 402 | #define CLEAR_NAK_OUT_PACKETS 7 | ||
| 403 | #define CLEAR_EP_HIDE_STATUS_PHASE 6 | ||
| 404 | #define CLEAR_EP_FORCE_CRC_ERROR 5 | ||
| 405 | #define CLEAR_INTERRUPT_MODE 4 | ||
| 406 | #define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE 3 | ||
| 407 | #define CLEAR_NAK_OUT_PACKETS_MODE 2 | ||
| 408 | #define CLEAR_ENDPOINT_TOGGLE 1 | ||
| 409 | #define CLEAR_ENDPOINT_HALT 0 | ||
| 410 | u32 ep_irqenb; | ||
| 411 | #define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE 6 | ||
| 412 | #define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE 5 | ||
| 413 | #define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE 3 | ||
| 414 | #define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE 2 | ||
| 415 | #define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE 1 | ||
| 416 | #define DATA_IN_TOKEN_INTERRUPT_ENABLE 0 | ||
| 417 | u32 ep_stat; | ||
| 418 | #define FIFO_VALID_COUNT 24 | ||
| 419 | #define HIGH_BANDWIDTH_OUT_TRANSACTION_PID 22 | ||
| 420 | #define TIMEOUT 21 | ||
| 421 | #define USB_STALL_SENT 20 | ||
| 422 | #define USB_IN_NAK_SENT 19 | ||
| 423 | #define USB_IN_ACK_RCVD 18 | ||
| 424 | #define USB_OUT_PING_NAK_SENT 17 | ||
| 425 | #define USB_OUT_ACK_SENT 16 | ||
| 426 | #define FIFO_OVERFLOW 13 | ||
| 427 | #define FIFO_UNDERFLOW 12 | ||
| 428 | #define FIFO_FULL 11 | ||
| 429 | #define FIFO_EMPTY 10 | ||
| 430 | #define FIFO_FLUSH 9 | ||
| 431 | #define SHORT_PACKET_OUT_DONE_INTERRUPT 6 | ||
| 432 | #define SHORT_PACKET_TRANSFERRED_INTERRUPT 5 | ||
| 433 | #define NAK_OUT_PACKETS 4 | ||
| 434 | #define DATA_PACKET_RECEIVED_INTERRUPT 3 | ||
| 435 | #define DATA_PACKET_TRANSMITTED_INTERRUPT 2 | ||
| 436 | #define DATA_OUT_PING_TOKEN_INTERRUPT 1 | ||
| 437 | #define DATA_IN_TOKEN_INTERRUPT 0 | ||
| 438 | // offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 | ||
| 439 | u32 ep_avail; | ||
| 440 | u32 ep_data; | ||
| 441 | u32 _unused0 [2]; | ||
| 442 | } __attribute__ ((packed)); | ||
| 443 | |||
| 444 | #endif /* __LINUX_USB_NET2280_H */ | ||
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__) |
diff --git a/include/linux/wanpipe.h b/include/linux/wanpipe.h deleted file mode 100644 index dae9860091dd..000000000000 --- a/include/linux/wanpipe.h +++ /dev/null | |||
| @@ -1,483 +0,0 @@ | |||
| 1 | /***************************************************************************** | ||
| 2 | * wanpipe.h WANPIPE(tm) Multiprotocol WAN Link Driver. | ||
| 3 | * User-level API definitions. | ||
| 4 | * | ||
| 5 | * Author: Nenad Corbic <ncorbic@sangoma.com> | ||
| 6 | * Gideon Hack | ||
| 7 | * | ||
| 8 | * Copyright: (c) 1995-2000 Sangoma Technologies Inc. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or | ||
| 11 | * modify it under the terms of the GNU General Public License | ||
| 12 | * as published by the Free Software Foundation; either version | ||
| 13 | * 2 of the License, or (at your option) any later version. | ||
| 14 | * ============================================================================ | ||
| 15 | * Nov 3, 2000 Nenad Corbic Added config_id to sdla_t structure. | ||
| 16 | * Used to determine the protocol running. | ||
| 17 | * Jul 13, 2000 Nenad Corbic Added SyncPPP Support | ||
| 18 | * Feb 24, 2000 Nenad Corbic Added support for x25api driver | ||
| 19 | * Oct 04, 1999 Nenad Corbic New CHDLC and FRAME RELAY code, SMP support | ||
| 20 | * Jun 02, 1999 Gideon Hack Added 'update_call_count' for Cisco HDLC | ||
| 21 | * support | ||
| 22 | * Jun 26, 1998 David Fong Added 'ip_mode' in sdla_t.u.p for dynamic IP | ||
| 23 | * routing mode configuration | ||
| 24 | * Jun 12, 1998 David Fong Added Cisco HDLC union member in sdla_t | ||
| 25 | * Dec 08, 1997 Jaspreet Singh Added 'authenticator' in union of 'sdla_t' | ||
| 26 | * Nov 26, 1997 Jaspreet Singh Added 'load_sharing' structure. Also added | ||
| 27 | * 'devs_struct','dev_to_devtint_next' to 'sdla_t' | ||
| 28 | * Nov 24, 1997 Jaspreet Singh Added 'irq_dis_if_send_count', | ||
| 29 | * 'irq_dis_poll_count' to 'sdla_t'. | ||
| 30 | * Nov 06, 1997 Jaspreet Singh Added a define called 'INTR_TEST_MODE' | ||
| 31 | * Oct 20, 1997 Jaspreet Singh Added 'buff_intr_mode_unbusy' and | ||
| 32 | * 'dlci_intr_mode_unbusy' to 'sdla_t' | ||
| 33 | * Oct 18, 1997 Jaspreet Singh Added structure to maintain global driver | ||
| 34 | * statistics. | ||
| 35 | * Jan 15, 1997 Gene Kozin Version 3.1.0 | ||
| 36 | * o added UDP management stuff | ||
| 37 | * Jan 02, 1997 Gene Kozin Version 3.0.0 | ||
| 38 | *****************************************************************************/ | ||
| 39 | #ifndef _WANPIPE_H | ||
| 40 | #define _WANPIPE_H | ||
| 41 | |||
| 42 | #include <linux/wanrouter.h> | ||
| 43 | |||
| 44 | /* Defines */ | ||
| 45 | |||
| 46 | #ifndef PACKED | ||
| 47 | #define PACKED __attribute__((packed)) | ||
| 48 | #endif | ||
| 49 | |||
| 50 | #define WANPIPE_MAGIC 0x414C4453L /* signature: 'SDLA' reversed */ | ||
| 51 | |||
| 52 | /* IOCTL numbers (up to 16) */ | ||
| 53 | #define WANPIPE_DUMP (ROUTER_USER+0) /* dump adapter's memory */ | ||
| 54 | #define WANPIPE_EXEC (ROUTER_USER+1) /* execute firmware command */ | ||
| 55 | |||
| 56 | #define TRACE_ALL 0x00 | ||
| 57 | #define TRACE_PROT 0x01 | ||
| 58 | #define TRACE_DATA 0x02 | ||
| 59 | |||
| 60 | /* values for request/reply byte */ | ||
| 61 | #define UDPMGMT_REQUEST 0x01 | ||
| 62 | #define UDPMGMT_REPLY 0x02 | ||
| 63 | #define UDP_OFFSET 12 | ||
| 64 | |||
| 65 | #define MAX_CMD_BUFF 10 | ||
| 66 | #define MAX_X25_LCN 255 /* Maximum number of x25 channels */ | ||
| 67 | #define MAX_LCN_NUM 4095 /* Maximum lcn number */ | ||
| 68 | #define MAX_FT1_RETRY 100 | ||
| 69 | |||
| 70 | #ifndef AF_WANPIPE | ||
| 71 | #define AF_WANPIPE 25 | ||
| 72 | #ifndef PF_WANPIPE | ||
| 73 | #define PF_WANPIPE AF_WANPIPE | ||
| 74 | #endif | ||
| 75 | #endif | ||
| 76 | |||
| 77 | |||
| 78 | #define TX_TIMEOUT 5*HZ | ||
| 79 | |||
| 80 | /* General Critical Flags */ | ||
| 81 | #define SEND_CRIT 0x00 | ||
| 82 | #define PERI_CRIT 0x01 | ||
| 83 | |||
| 84 | /* Chdlc and PPP polling critical flag */ | ||
| 85 | #define POLL_CRIT 0x03 | ||
| 86 | |||
| 87 | /* Frame Relay Tx IRQ send critical flag */ | ||
| 88 | #define SEND_TXIRQ_CRIT 0x02 | ||
| 89 | |||
| 90 | /* Frame Relay ARP critical flag */ | ||
| 91 | #define ARP_CRIT 0x03 | ||
| 92 | |||
| 93 | /* Bit maps for dynamic interface configuration | ||
| 94 | * DYN_OPT_ON : turns this option on/off | ||
| 95 | * DEV_DOWN : device was shutdown by the driver not | ||
| 96 | * by user | ||
| 97 | */ | ||
| 98 | #define DYN_OPT_ON 0x00 | ||
| 99 | #define DEV_DOWN 0x01 | ||
| 100 | |||
| 101 | /* | ||
| 102 | * Data structures for IOCTL calls. | ||
| 103 | */ | ||
| 104 | |||
| 105 | typedef struct sdla_dump /* WANPIPE_DUMP */ | ||
| 106 | { | ||
| 107 | unsigned long magic; /* for verification */ | ||
| 108 | unsigned long offset; /* absolute adapter memory address */ | ||
| 109 | unsigned long length; /* block length */ | ||
| 110 | void* ptr; /* -> buffer */ | ||
| 111 | } sdla_dump_t; | ||
| 112 | |||
| 113 | typedef struct sdla_exec /* WANPIPE_EXEC */ | ||
| 114 | { | ||
| 115 | unsigned long magic; /* for verification */ | ||
| 116 | void* cmd; /* -> command structure */ | ||
| 117 | void* data; /* -> data buffer */ | ||
| 118 | } sdla_exec_t; | ||
| 119 | |||
| 120 | /* UDP management stuff */ | ||
| 121 | |||
| 122 | typedef struct wum_header | ||
| 123 | { | ||
| 124 | unsigned char signature[8]; /* 00h: signature */ | ||
| 125 | unsigned char type; /* 08h: request/reply */ | ||
| 126 | unsigned char command; /* 09h: commnand */ | ||
| 127 | unsigned char reserved[6]; /* 0Ah: reserved */ | ||
| 128 | } wum_header_t; | ||
| 129 | |||
| 130 | /************************************************************************* | ||
| 131 | Data Structure for global statistics | ||
| 132 | *************************************************************************/ | ||
| 133 | |||
| 134 | typedef struct global_stats | ||
| 135 | { | ||
| 136 | unsigned long isr_entry; | ||
| 137 | unsigned long isr_already_critical; | ||
| 138 | unsigned long isr_rx; | ||
| 139 | unsigned long isr_tx; | ||
| 140 | unsigned long isr_intr_test; | ||
| 141 | unsigned long isr_spurious; | ||
| 142 | unsigned long isr_enable_tx_int; | ||
| 143 | unsigned long rx_intr_corrupt_rx_bfr; | ||
| 144 | unsigned long rx_intr_on_orphaned_DLCI; | ||
| 145 | unsigned long rx_intr_dev_not_started; | ||
| 146 | unsigned long tx_intr_dev_not_started; | ||
| 147 | unsigned long poll_entry; | ||
| 148 | unsigned long poll_already_critical; | ||
| 149 | unsigned long poll_processed; | ||
| 150 | unsigned long poll_tbusy_bad_status; | ||
| 151 | unsigned long poll_host_disable_irq; | ||
| 152 | unsigned long poll_host_enable_irq; | ||
| 153 | |||
| 154 | } global_stats_t; | ||
| 155 | |||
| 156 | |||
| 157 | typedef struct{ | ||
| 158 | unsigned short udp_src_port PACKED; | ||
| 159 | unsigned short udp_dst_port PACKED; | ||
| 160 | unsigned short udp_length PACKED; | ||
| 161 | unsigned short udp_checksum PACKED; | ||
| 162 | } udp_pkt_t; | ||
| 163 | |||
| 164 | |||
| 165 | typedef struct { | ||
| 166 | unsigned char ver_inet_hdr_length PACKED; | ||
| 167 | unsigned char service_type PACKED; | ||
| 168 | unsigned short total_length PACKED; | ||
| 169 | unsigned short identifier PACKED; | ||
| 170 | unsigned short flags_frag_offset PACKED; | ||
| 171 | unsigned char ttl PACKED; | ||
| 172 | unsigned char protocol PACKED; | ||
| 173 | unsigned short hdr_checksum PACKED; | ||
| 174 | unsigned long ip_src_address PACKED; | ||
| 175 | unsigned long ip_dst_address PACKED; | ||
| 176 | } ip_pkt_t; | ||
| 177 | |||
| 178 | |||
| 179 | typedef struct { | ||
| 180 | unsigned char signature[8] PACKED; | ||
| 181 | unsigned char request_reply PACKED; | ||
| 182 | unsigned char id PACKED; | ||
| 183 | unsigned char reserved[6] PACKED; | ||
| 184 | } wp_mgmt_t; | ||
| 185 | |||
| 186 | /************************************************************************* | ||
| 187 | Data Structure for if_send statistics | ||
| 188 | *************************************************************************/ | ||
| 189 | typedef struct if_send_stat{ | ||
| 190 | unsigned long if_send_entry; | ||
| 191 | unsigned long if_send_skb_null; | ||
| 192 | unsigned long if_send_broadcast; | ||
| 193 | unsigned long if_send_multicast; | ||
| 194 | unsigned long if_send_critical_ISR; | ||
| 195 | unsigned long if_send_critical_non_ISR; | ||
| 196 | unsigned long if_send_tbusy; | ||
| 197 | unsigned long if_send_tbusy_timeout; | ||
| 198 | unsigned long if_send_PIPE_request; | ||
| 199 | unsigned long if_send_wan_disconnected; | ||
| 200 | unsigned long if_send_dlci_disconnected; | ||
| 201 | unsigned long if_send_no_bfrs; | ||
| 202 | unsigned long if_send_adptr_bfrs_full; | ||
| 203 | unsigned long if_send_bfr_passed_to_adptr; | ||
| 204 | unsigned long if_send_protocol_error; | ||
| 205 | unsigned long if_send_bfr_not_passed_to_adptr; | ||
| 206 | unsigned long if_send_tx_int_enabled; | ||
| 207 | unsigned long if_send_consec_send_fail; | ||
| 208 | } if_send_stat_t; | ||
| 209 | |||
| 210 | typedef struct rx_intr_stat{ | ||
| 211 | unsigned long rx_intr_no_socket; | ||
| 212 | unsigned long rx_intr_dev_not_started; | ||
| 213 | unsigned long rx_intr_PIPE_request; | ||
| 214 | unsigned long rx_intr_bfr_not_passed_to_stack; | ||
| 215 | unsigned long rx_intr_bfr_passed_to_stack; | ||
| 216 | } rx_intr_stat_t; | ||
| 217 | |||
| 218 | typedef struct pipe_mgmt_stat{ | ||
| 219 | unsigned long UDP_PIPE_mgmt_kmalloc_err; | ||
| 220 | unsigned long UDP_PIPE_mgmt_direction_err; | ||
| 221 | unsigned long UDP_PIPE_mgmt_adptr_type_err; | ||
| 222 | unsigned long UDP_PIPE_mgmt_adptr_cmnd_OK; | ||
| 223 | unsigned long UDP_PIPE_mgmt_adptr_cmnd_timeout; | ||
| 224 | unsigned long UDP_PIPE_mgmt_adptr_send_passed; | ||
| 225 | unsigned long UDP_PIPE_mgmt_adptr_send_failed; | ||
| 226 | unsigned long UDP_PIPE_mgmt_not_passed_to_stack; | ||
| 227 | unsigned long UDP_PIPE_mgmt_passed_to_stack; | ||
| 228 | unsigned long UDP_PIPE_mgmt_no_socket; | ||
| 229 | unsigned long UDP_PIPE_mgmt_passed_to_adptr; | ||
| 230 | } pipe_mgmt_stat_t; | ||
| 231 | |||
| 232 | |||
| 233 | typedef struct { | ||
| 234 | struct sk_buff *skb; | ||
| 235 | } bh_data_t, cmd_data_t; | ||
| 236 | |||
| 237 | #define MAX_LGTH_UDP_MGNT_PKT 2000 | ||
| 238 | |||
| 239 | |||
| 240 | /* This is used for interrupt testing */ | ||
| 241 | #define INTR_TEST_MODE 0x02 | ||
| 242 | |||
| 243 | #define WUM_SIGNATURE_L 0x50495046 | ||
| 244 | #define WUM_SIGNATURE_H 0x444E3845 | ||
| 245 | |||
| 246 | #define WUM_KILL 0x50 | ||
| 247 | #define WUM_EXEC 0x51 | ||
| 248 | |||
| 249 | #define WANPIPE 0x00 | ||
| 250 | #define API 0x01 | ||
| 251 | #define BRIDGE 0x02 | ||
| 252 | #define BRIDGE_NODE 0x03 | ||
| 253 | |||
| 254 | #ifdef __KERNEL__ | ||
| 255 | /****** Kernel Interface ****************************************************/ | ||
| 256 | |||
| 257 | #include <linux/sdladrv.h> /* SDLA support module API definitions */ | ||
| 258 | #include <linux/sdlasfm.h> /* SDLA firmware module definitions */ | ||
| 259 | #include <linux/workqueue.h> | ||
| 260 | #include <linux/serial.h> | ||
| 261 | #include <linux/serialP.h> | ||
| 262 | #include <linux/serial_reg.h> | ||
| 263 | #include <asm/serial.h> | ||
| 264 | #include <linux/tty.h> | ||
| 265 | #include <linux/tty_driver.h> | ||
| 266 | #include <linux/tty_flip.h> | ||
| 267 | |||
| 268 | /****** Data Structures *****************************************************/ | ||
| 269 | |||
| 270 | /* Adapter Data Space. | ||
| 271 | * This structure is needed because we handle multiple cards, otherwise | ||
| 272 | * static data would do it. | ||
| 273 | */ | ||
| 274 | typedef struct sdla | ||
| 275 | { | ||
| 276 | char devname[WAN_DRVNAME_SZ+1]; /* card name */ | ||
| 277 | sdlahw_t hw; /* hardware configuration */ | ||
| 278 | struct wan_device wandev; /* WAN device data space */ | ||
| 279 | |||
| 280 | unsigned open_cnt; /* number of open interfaces */ | ||
| 281 | unsigned long state_tick; /* link state timestamp */ | ||
| 282 | unsigned intr_mode; /* Type of Interrupt Mode */ | ||
| 283 | char in_isr; /* interrupt-in-service flag */ | ||
| 284 | char buff_int_mode_unbusy; /* flag for carrying out dev_tint */ | ||
| 285 | char dlci_int_mode_unbusy; /* flag for carrying out dev_tint */ | ||
| 286 | long configured; /* flag for previous configurations */ | ||
| 287 | |||
| 288 | unsigned short irq_dis_if_send_count; /* Disabling irqs in if_send*/ | ||
| 289 | unsigned short irq_dis_poll_count; /* Disabling irqs in poll routine*/ | ||
| 290 | unsigned short force_enable_irq; | ||
| 291 | char TracingEnabled; /* flag for enabling trace */ | ||
| 292 | global_stats_t statistics; /* global statistics */ | ||
| 293 | void* mbox; /* -> mailbox */ | ||
| 294 | void* rxmb; /* -> receive mailbox */ | ||
| 295 | void* flags; /* -> adapter status flags */ | ||
| 296 | void (*isr)(struct sdla* card); /* interrupt service routine */ | ||
| 297 | void (*poll)(struct sdla* card); /* polling routine */ | ||
| 298 | int (*exec)(struct sdla* card, void* u_cmd, void* u_data); | ||
| 299 | /* Used by the listen() system call */ | ||
| 300 | /* Wanpipe Socket Interface */ | ||
| 301 | int (*func) (struct sk_buff *, struct sock *); | ||
| 302 | struct sock *sk; | ||
| 303 | |||
| 304 | /* Shutdown function */ | ||
| 305 | void (*disable_comm) (struct sdla *card); | ||
| 306 | |||
| 307 | /* Secondary Port Device: Piggibacking */ | ||
| 308 | struct sdla *next; | ||
| 309 | |||
| 310 | /* TTY driver variables */ | ||
| 311 | unsigned char tty_opt; | ||
| 312 | struct tty_struct *tty; | ||
| 313 | unsigned int tty_minor; | ||
| 314 | unsigned int tty_open; | ||
| 315 | unsigned char *tty_buf; | ||
| 316 | unsigned char *tty_rx; | ||
| 317 | struct work_struct tty_work; | ||
| 318 | |||
| 319 | union | ||
| 320 | { | ||
| 321 | struct | ||
| 322 | { /****** X.25 specific data **********/ | ||
| 323 | u32 lo_pvc; | ||
| 324 | u32 hi_pvc; | ||
| 325 | u32 lo_svc; | ||
| 326 | u32 hi_svc; | ||
| 327 | struct net_device *svc_to_dev_map[MAX_X25_LCN]; | ||
| 328 | struct net_device *pvc_to_dev_map[MAX_X25_LCN]; | ||
| 329 | struct net_device *tx_dev; | ||
| 330 | struct net_device *cmd_dev; | ||
| 331 | u32 no_dev; | ||
| 332 | volatile u8 *hdlc_buf_status; | ||
| 333 | u32 tx_interrupts_pending; | ||
| 334 | u16 timer_int_enabled; | ||
| 335 | struct net_device *poll_device; | ||
| 336 | atomic_t command_busy; | ||
| 337 | |||
| 338 | u16 udp_pkt_lgth; | ||
| 339 | u32 udp_type; | ||
| 340 | u8 udp_pkt_src; | ||
| 341 | u32 udp_lcn; | ||
| 342 | struct net_device *udp_dev; | ||
| 343 | s8 udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT]; | ||
| 344 | |||
| 345 | u8 LAPB_hdlc; /* Option to turn off X25 and run only LAPB */ | ||
| 346 | u8 logging; /* Option to log call messages */ | ||
| 347 | u8 oob_on_modem; /* Option to send modem status to the api */ | ||
| 348 | u16 num_of_ch; /* Number of channels configured by the user */ | ||
| 349 | |||
| 350 | struct work_struct x25_poll_work; | ||
| 351 | struct timer_list x25_timer; | ||
| 352 | } x; | ||
| 353 | struct | ||
| 354 | { /****** frame relay specific data ***/ | ||
| 355 | void* rxmb_base; /* -> first Rx buffer */ | ||
| 356 | void* rxmb_last; /* -> last Rx buffer */ | ||
| 357 | unsigned rx_base; /* S508 receive buffer base */ | ||
| 358 | unsigned rx_top; /* S508 receive buffer end */ | ||
| 359 | unsigned short node_dlci[100]; | ||
| 360 | unsigned short dlci_num; | ||
| 361 | struct net_device *dlci_to_dev_map[991 + 1]; | ||
| 362 | unsigned tx_interrupts_pending; | ||
| 363 | unsigned short timer_int_enabled; | ||
| 364 | unsigned short udp_pkt_lgth; | ||
| 365 | int udp_type; | ||
| 366 | char udp_pkt_src; | ||
| 367 | unsigned udp_dlci; | ||
| 368 | char udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT]; | ||
| 369 | void* trc_el_base; /* first trace element */ | ||
| 370 | void* trc_el_last; /* last trace element */ | ||
| 371 | void *curr_trc_el; /* current trace element */ | ||
| 372 | unsigned short trc_bfr_space; /* trace buffer space */ | ||
| 373 | unsigned char update_comms_stats; | ||
| 374 | struct net_device *arp_dev; | ||
| 375 | spinlock_t if_send_lock; | ||
| 376 | } f; | ||
| 377 | struct /****** PPP-specific data ***********/ | ||
| 378 | { | ||
| 379 | char if_name[WAN_IFNAME_SZ+1]; /* interface name */ | ||
| 380 | void* txbuf; /* -> current Tx buffer */ | ||
| 381 | void* txbuf_base; /* -> first Tx buffer */ | ||
| 382 | void* txbuf_last; /* -> last Tx buffer */ | ||
| 383 | void* rxbuf_base; /* -> first Rx buffer */ | ||
| 384 | void* rxbuf_last; /* -> last Rx buffer */ | ||
| 385 | unsigned rx_base; /* S508 receive buffer base */ | ||
| 386 | unsigned rx_top; /* S508 receive buffer end */ | ||
| 387 | char ip_mode; /* STATIC/HOST/PEER IP Mode */ | ||
| 388 | char authenticator; /* Authenticator for PAP/CHAP */ | ||
| 389 | unsigned char comm_enabled; /* Is comm enabled or not */ | ||
| 390 | unsigned char peer_route; /* Process Peer Route */ | ||
| 391 | unsigned long *txbuf_next; /* Next Tx buffer to use */ | ||
| 392 | unsigned long *rxbuf_next; /* Next Rx buffer to use */ | ||
| 393 | } p; | ||
| 394 | struct /* Cisco HDLC-specific data */ | ||
| 395 | { | ||
| 396 | char if_name[WAN_IFNAME_SZ+1]; /* interface name */ | ||
| 397 | unsigned char comm_port;/* Communication Port O or 1 */ | ||
| 398 | unsigned char usedby; /* Used by WANPIPE or API */ | ||
| 399 | void* rxmb; /* Receive mail box */ | ||
| 400 | void* flags; /* flags */ | ||
| 401 | void* tx_status; /* Tx status element */ | ||
| 402 | void* rx_status; /* Rx status element */ | ||
| 403 | void* txbuf; /* -> current Tx buffer */ | ||
| 404 | void* txbuf_base; /* -> first Tx buffer */ | ||
| 405 | void* txbuf_last; /* -> last Tx buffer */ | ||
| 406 | void* rxbuf_base; /* -> first Rx buffer */ | ||
| 407 | void* rxbuf_last; /* -> last Rx buffer */ | ||
| 408 | unsigned rx_base; /* S508 receive buffer base */ | ||
| 409 | unsigned rx_top; /* S508 receive buffer end */ | ||
| 410 | unsigned char receive_only; /* high speed receivers */ | ||
| 411 | unsigned short protocol_options; | ||
| 412 | unsigned short kpalv_tx; /* Tx kpalv timer */ | ||
| 413 | unsigned short kpalv_rx; /* Rx kpalv timer */ | ||
| 414 | unsigned short kpalv_err; /* Error tolerance */ | ||
| 415 | unsigned short slarp_timer; /* SLARP req timer */ | ||
| 416 | unsigned state; /* state of the link */ | ||
| 417 | unsigned char api_status; | ||
| 418 | unsigned char update_call_count; | ||
| 419 | unsigned short api_options; /* for async config */ | ||
| 420 | unsigned char async_mode; | ||
| 421 | unsigned short tx_bits_per_char; | ||
| 422 | unsigned short rx_bits_per_char; | ||
| 423 | unsigned short stop_bits; | ||
| 424 | unsigned short parity; | ||
| 425 | unsigned short break_timer; | ||
| 426 | unsigned short inter_char_timer; | ||
| 427 | unsigned short rx_complete_length; | ||
| 428 | unsigned short xon_char; | ||
| 429 | unsigned short xoff_char; | ||
| 430 | unsigned char comm_enabled; /* Is comm enabled or not */ | ||
| 431 | unsigned char backup; | ||
| 432 | } c; | ||
| 433 | struct | ||
| 434 | { | ||
| 435 | void* tx_status; /* Tx status element */ | ||
| 436 | void* rx_status; /* Rx status element */ | ||
| 437 | void* trace_status; /* Trace status element */ | ||
| 438 | void* txbuf; /* -> current Tx buffer */ | ||
| 439 | void* txbuf_base; /* -> first Tx buffer */ | ||
| 440 | void* txbuf_last; /* -> last Tx buffer */ | ||
| 441 | void* rxbuf_base; /* -> first Rx buffer */ | ||
| 442 | void* rxbuf_last; /* -> last Rx buffer */ | ||
| 443 | void* tracebuf; /* -> current Trace buffer */ | ||
| 444 | void* tracebuf_base; /* -> current Trace buffer */ | ||
| 445 | void* tracebuf_last; /* -> current Trace buffer */ | ||
| 446 | unsigned rx_base; /* receive buffer base */ | ||
| 447 | unsigned rx_end; /* receive buffer end */ | ||
| 448 | unsigned trace_base; /* trace buffer base */ | ||
| 449 | unsigned trace_end; /* trace buffer end */ | ||
| 450 | |||
| 451 | } h; | ||
| 452 | } u; | ||
| 453 | } sdla_t; | ||
| 454 | |||
| 455 | /****** Public Functions ****************************************************/ | ||
| 456 | |||
| 457 | void wanpipe_open (sdla_t* card); /* wpmain.c */ | ||
| 458 | void wanpipe_close (sdla_t* card); /* wpmain.c */ | ||
| 459 | void wanpipe_set_state (sdla_t* card, int state); /* wpmain.c */ | ||
| 460 | |||
| 461 | int wpx_init (sdla_t* card, wandev_conf_t* conf); /* wpx.c */ | ||
| 462 | int wpf_init (sdla_t* card, wandev_conf_t* conf); /* wpf.c */ | ||
| 463 | int wpp_init (sdla_t* card, wandev_conf_t* conf); /* wpp.c */ | ||
| 464 | int wpc_init (sdla_t* card, wandev_conf_t* conf); /* Cisco HDLC */ | ||
| 465 | int bsc_init (sdla_t* card, wandev_conf_t* conf); /* BSC streaming */ | ||
| 466 | int hdlc_init(sdla_t* card, wandev_conf_t* conf); /* HDLC support */ | ||
| 467 | int wpft1_init (sdla_t* card, wandev_conf_t* conf); /* FT1 Config support */ | ||
| 468 | int wsppp_init (sdla_t* card, wandev_conf_t* conf); /* Sync PPP on top of RAW CHDLC */ | ||
| 469 | |||
| 470 | extern sdla_t * wanpipe_find_card(char *); | ||
| 471 | extern sdla_t * wanpipe_find_card_num (int); | ||
| 472 | |||
| 473 | extern void wanpipe_queue_work (struct work_struct *); | ||
| 474 | extern void wanpipe_mark_bh (void); | ||
| 475 | extern void wakeup_sk_bh(struct net_device *dev); | ||
| 476 | extern int change_dev_flags(struct net_device *dev, unsigned flags); | ||
| 477 | extern unsigned long get_ip_address(struct net_device *dev, int option); | ||
| 478 | extern void add_gateway(sdla_t *card, struct net_device *dev); | ||
| 479 | |||
| 480 | |||
| 481 | #endif /* __KERNEL__ */ | ||
| 482 | #endif /* _WANPIPE_H */ | ||
| 483 | |||
