00001
00035 #ifndef __WANPIPE_API_IFACE_H_
00036 #define __WANPIPE_API_IFACE_H_
00037
00038 #include "wanpipe_api_hdr.h"
00039
00044 #if defined(__WINDOWS__)
00045 typedef HANDLE sng_fd_t;
00046 #else
00047 typedef int sng_fd_t;
00048 #endif
00049
00050
00077 #define WP_API_FEATURE_DTMF_EVENTS 1
00078 #define WP_API_FEATURE_FE_ALARM 1
00079 #define WP_API_FEATURE_EVENTS 1
00080 #define WP_API_FEATURE_LINK_STATUS 1
00081 #define WP_API_FEATURE_POL_REV 1
00082 #define WP_API_FEATURE_LOGGER 1
00083 #define WP_API_FEATURE_FAX_EVENTS 1
00084 #define WP_API_FEATURE_RM_GAIN 1
00085 #define WP_API_FEATURE_LOOP 1
00086 #define WP_API_FEATURE_BUFFER_MULT 1
00087 #define WP_API_FEATURE_RX_TX_ERRS 1
00088 #define WP_API_FEATURE_EC_CHAN_STAT 1
00089 #define WP_API_FEATURE_LIBSNG_HWEC 1
00090 #define WP_API_FEATURE_DRIVER_GAIN 1
00091 #define WP_API_FEATURE_FE_RW 1
00092 #define WP_API_FEATURE_HWEC_PERSIST 1
00093 #define WP_API_FEATURE_FAX_TYPE_EVENTS 1
00094 #define WP_API_FEATURE_HARDWARE_RESCAN 1
00095 #define WP_API_FEATURE_LED_CTRL 1
00096
00104 enum WANPIPE_IOCTL_CODE {
00105 WANPIPE_IOCTL_WRITE=1,
00106 WANPIPE_IOCTL_READ,
00107 WANPIPE_IOCTL_MGMT,
00108 WANPIPE_IOCTL_SET_IDLE_TX_BUFFER,
00109 WANPIPE_IOCTL_API_POLL,
00110 WANPIPE_IOCTL_SET_SHARED_EVENT,
00111 WANPIPE_IOCTL_PORT_MGMT,
00112 WANPIPE_IOCTL_PORT_CONFIG,
00113 WANPIPE_IOCTL_API_CMD,
00114 WANPIPE_IOCTL_PIPEMON,
00115 WANPIPE_IOCTL_SNMP,
00116 WANPIPE_IOCTL_SNMP_IFSPEED,
00117 WANPIPE_IOCTL_DEVEL,
00118 WANPIPE_IOCTL_WRITE_NON_BLOCKING,
00119 WANPIPE_IOCTL_READ_NON_BLOCKING,
00120 WANPIPE_IOCTL_CDEV_CTRL,
00121 WANPIPE_IOCTL_LOGGER_CMD,
00122 };
00123
00124
00129 enum WANPIPE_IOCTL_PIPEMON_CMDS {
00130 WANPIPEMON_ROUTER_UP_TIME = 0x50,
00131 WANPIPEMON_ENABLE_TRACING,
00132 WANPIPEMON_DISABLE_TRACING,
00133 WANPIPEMON_GET_TRACE_INFO,
00134 WANPIPEMON_READ_CODE_VERSION,
00135 WANPIPEMON_FLUSH_OPERATIONAL_STATS,
00136 WANPIPEMON_OPERATIONAL_STATS,
00137 WANPIPEMON_READ_OPERATIONAL_STATS,
00138 WANPIPEMON_READ_CONFIGURATION,
00139 WANPIPEMON_READ_COMMS_ERROR_STATS,
00140 WANPIPEMON_FLUSH_COMMS_ERROR_STATS,
00141 WANPIPEMON_AFT_LINK_STATUS,
00142 WANPIPEMON_AFT_MODEM_STATUS,
00143 WANPIPEMON_AFT_HWEC_STATUS,
00144 WANPIPEMON_DIGITAL_LOOPTEST,
00145 WANPIPEMON_SET_FT1_MODE,
00147 WANPIPEMON_GET_OPEN_HANDLES_COUNTER,
00148 WANPIPEMON_GET_CARD_TYPE,
00149 WANPIPEMON_API_NOT_USED,
00150 WANPIPEMON_GET_HW_MAC_ADDR,
00151 WANPIPEMON_FLUSH_TX_BUFFERS,
00152 WANPIPEMON_EC_IOCTL,
00153 WANPIPEMON_SET_RBS_BITS,
00154 WANPIPEMON_GET_RBS_BITS,
00155 WANPIPEMON_AFT_CUSTOMER_ID,
00156 WANPIPEMON_FT1_READ_STATUS,
00158 WANPIPEMON_DRIVER_STAT_IFSEND,
00159 WANPIPEMON_DRIVER_STAT_INTR,
00160 WANPIPEMON_DRIVER_STAT_GEN,
00161 WANPIPEMON_FLUSH_DRIVER_STATS,
00162 WANPIPEMON_GET_IBA_DATA,
00163 WANPIPEMON_TDM_API,
00165 WANPIPEMON_READ_PERFORMANCE_STATS,
00166 WANPIPEMON_FLUSH_PERFORMANCE_STATS,
00167 WANPIPEMON_GET_BIOS_ENCLOSURE3_SERIAL_NUMBER,
00169 WANPIPEMON_ENABLE_BERT,
00170 WANPIPEMON_DISABLE_BERT,
00171 WANPIPEMON_GET_BERT_STATUS,
00172 WANPIPEMON_PERFORMANCE_STATS,
00173 WANPIPEMON_LED_CTRL,
00175
00176 WANPIPEMON_CHAN_SEQ_DEBUGGING,
00177 WANPIPEMON_GEN_FIFO_ERR_TX,
00178 WANPIPEMON_GEN_FIFO_ERR_RX,
00179 WANPIPEMON_GEN_FE_SYNC_ERR,
00181
00182
00183 WANPIPEMON_PROTOCOL_PRIVATE
00184 };
00185
00186
00187 typedef enum wp_bert_sequence_type{
00188 WP_BERT_RANDOM_SEQUENCE = 1,
00189 WP_BERT_ASCENDANT_SEQUENCE,
00190 WP_BERT_DESCENDANT_SEQUENCE
00191 }wp_bert_sequence_type_t;
00192
00193 #define WP_BERT_DECODE_SEQUENCE_TYPE(sequence) \
00194 ((sequence) == WP_BERT_RANDOM_SEQUENCE) ? "WP_BERT_RANDOM_SEQUENCE" : \
00195 ((sequence) == WP_BERT_ASCENDANT_SEQUENCE) ? "WP_BERT_ASCENDANT_SEQUENCE" : \
00196 ((sequence) == WP_BERT_DESCENDANT_SEQUENCE) ? "WP_BERT_DESCENDANT_SEQUENCE" : \
00197 "(Unknown BERT sequence)"
00198
00199 #define WP_BERT_STATUS_OUT_OF_SYNCH 0
00200 #define WP_BERT_STATUS_IN_SYNCH 1
00201
00208 typedef struct _wp_bert_status{
00209
00210 unsigned char state;
00211 unsigned int errors;
00212 unsigned int synchonized_count;
00214 }wp_bert_status_t;
00215
00216
00221 enum wanpipe_api_cmds
00222 {
00223
00224 WP_API_CMD_GET_USR_MTU_MRU,
00225 WP_API_CMD_SET_USR_PERIOD,
00226 WP_API_CMD_GET_USR_PERIOD,
00227 WP_API_CMD_SET_HW_MTU_MRU,
00228 WP_API_CMD_GET_HW_MTU_MRU,
00229 WP_API_CMD_SET_CODEC,
00230 WP_API_CMD_GET_CODEC,
00231 WP_API_CMD_SET_POWER_LEVEL,
00232 WP_API_CMD_GET_POWER_LEVEL,
00233 WP_API_CMD_TOGGLE_RX,
00234 WP_API_CMD_TOGGLE_TX,
00235 WP_API_CMD_GET_HW_CODING,
00236 WP_API_CMD_SET_HW_CODING,
00237 WP_API_CMD_GET_FULL_CFG,
00238 WP_API_CMD_SET_EC_TAP,
00239 WP_API_CMD_GET_EC_TAP,
00240 WP_API_CMD_ENABLE_RBS_EVENTS,
00241 WP_API_CMD_DISABLE_RBS_EVENTS,
00242 WP_API_CMD_WRITE_RBS_BITS,
00243 WP_API_CMD_READ_RBS_BITS,
00244 WP_API_CMD_GET_STATS,
00245 WP_API_CMD_FLUSH_BUFFERS,
00246 WP_API_CMD_FLUSH_TX_BUFFERS,
00247 WP_API_CMD_FLUSH_RX_BUFFERS,
00248 WP_API_CMD_FLUSH_EVENT_BUFFERS,
00249 WP_API_CMD_READ_EVENT,
00250 WP_API_CMD_SET_EVENT,
00251 WP_API_CMD_SET_RX_GAINS,
00252 WP_API_CMD_SET_TX_GAINS,
00253 WP_API_CMD_CLEAR_RX_GAINS,
00254 WP_API_CMD_CLEAR_TX_GAINS,
00255 WP_API_CMD_GET_FE_ALARMS,
00256 WP_API_CMD_ENABLE_HWEC,
00257 WP_API_CMD_DISABLE_HWEC,
00258 WP_API_CMD_SET_FE_STATUS,
00259 WP_API_CMD_GET_FE_STATUS,
00260 WP_API_CMD_GET_HW_DTMF,
00261 WP_API_CMD_DRV_MGMNT,
00262 WP_API_CMD_RESET_STATS,
00263 WP_API_CMD_DRIVER_VERSION,
00264 WP_API_CMD_FIRMWARE_VERSION,
00265 WP_API_CMD_CPLD_VERSION,
00266 WP_API_CMD_OPEN_CNT,
00267 WP_API_CMD_SET_TX_Q_SIZE,
00268 WP_API_CMD_GET_TX_Q_SIZE,
00269 WP_API_CMD_SET_RX_Q_SIZE,
00270 WP_API_CMD_GET_RX_Q_SIZE,
00271 WP_API_CMD_EVENT_CTRL,
00272 WP_API_CMD_NOTSUPP,
00273 WP_API_CMD_SET_RM_RXFLASHTIME,
00274 WP_API_CMD_SET_IDLE_FLAG,
00275 WP_API_CMD_GET_HW_EC,
00276 WP_API_CMD_GET_HW_FAX_DETECT,
00277 WP_API_CMD_ENABLE_LOOP,
00278 WP_API_CMD_DISABLE_LOOP,
00279 WP_API_CMD_BUFFER_MULTIPLIER,
00280 WP_API_CMD_GET_HW_EC_CHAN,
00281 WP_API_CMD_GET_HW_EC_PERSIST,
00282 WP_API_CMD_EC_IOCTL,
00284
00285 WP_API_CMD_GEN_FIFO_ERR_TX=500,
00286 WP_API_CMD_GEN_FIFO_ERR_RX,
00287 WP_API_CMD_START_CHAN_SEQ_DEBUG,
00288 WP_API_CMD_STOP_CHAN_SEQ_DEBUG
00289 };
00290
00295 enum wanpipe_cdev_ctrl_cmds
00296 {
00297 WP_CDEV_CMD_SET_DPC_TIMEDIFF_MONITORING_OPTION=1,
00298 WP_CDEV_CMD_SET_TX_INTERRUPT_TIMEDIFF_MONITORING_OPTION,
00299 WP_CDEV_CMD_SET_RX_INTERRUPT_TIMEDIFF_MONITORING_OPTION,
00300 WP_CDEV_CMD_PRINT_INTERRUPT_TIMEDIFF_MONITORING_INFO,
00301 WP_CDEV_CMD_GET_INTERFACE_NAME
00302 };
00303
00316 enum wanpipe_api_events
00317 {
00318 WP_API_EVENT_NONE,
00319 WP_API_EVENT_RBS,
00320 WP_API_EVENT_ALARM,
00321 WP_API_EVENT_DTMF,
00322 WP_API_EVENT_RM_DTMF,
00323 WP_API_EVENT_RXHOOK,
00324 WP_API_EVENT_RING,
00325 WP_API_EVENT_RING_DETECT,
00326 WP_API_EVENT_RING_TRIP_DETECT,
00327 WP_API_EVENT_TONE,
00328 WP_API_EVENT_TXSIG_KEWL,
00329 WP_API_EVENT_TXSIG_START,
00330 WP_API_EVENT_TXSIG_OFFHOOK,
00331 WP_API_EVENT_TXSIG_ONHOOK,
00332 WP_API_EVENT_ONHOOKTRANSFER,
00333 WP_API_EVENT_SETPOLARITY,
00334 WP_API_EVENT_BRI_CHAN_LOOPBACK,
00335 WP_API_EVENT_LINK_STATUS,
00336 WP_API_EVENT_MODEM_STATUS,
00337 WP_API_EVENT_POLARITY_REVERSE,
00338 WP_API_EVENT_FAX_DETECT,
00339 WP_API_EVENT_SET_RM_TX_GAIN,
00340 WP_API_EVENT_SET_RM_RX_GAIN,
00341 WP_API_EVENT_FAX_1100,
00342 WP_API_EVENT_FAX_2100,
00343 WP_API_EVENT_FAX_2100_WSPR,
00344 };
00345
00346
00360 #define WP_API_EVENT_SET 0x01
00361 #define WP_API_EVENT_GET 0x02
00362 #define WP_API_EVENT_ENABLE 0x01
00363 #define WP_API_EVENT_DISABLE 0x02
00364
00365 #define WP_API_EVENT_MODE_DECODE(mode) \
00366 ((mode) == WP_API_EVENT_ENABLE) ? "Enable" : \
00367 ((mode) == WP_API_EVENT_DISABLE) ? "Disable" : \
00368 "(Unknown mode)"
00369
00370
00381 #define WPTDM_A_BIT WAN_RBS_SIG_A
00382 #define WPTDM_B_BIT WAN_RBS_SIG_B
00383 #define WPTDM_C_BIT WAN_RBS_SIG_C
00384 #define WPTDM_D_BIT WAN_RBS_SIG_D
00385
00386
00397 #define WP_API_EVENT_RXHOOK_OFF 0x01
00398 #define WP_API_EVENT_RXHOOK_ON 0x02
00399 #define WP_API_EVENT_RXHOOK_FLASH 0x03
00400 #define WP_API_EVENT_RXHOOK_DECODE(state) \
00401 ((state) == WP_API_EVENT_RXHOOK_OFF) ? "Off-hook" : \
00402 ((state) == WP_API_EVENT_RXHOOK_FLASH) ? "Flash" : \
00403 ((state) == WP_API_EVENT_RXHOOK_ON) ? "On-hook" : \
00404 "(Unknown state)"
00405
00413 #define WP_API_EVENT_RING_PRESENT 0x01
00414 #define WP_API_EVENT_RING_STOP 0x02
00415 #define WP_API_EVENT_RING_DECODE(state) \
00416 ((state) == WP_API_EVENT_RING_PRESENT) ? "Ring Present" : \
00417 ((state) == WP_API_EVENT_RING_STOP) ? "Ring Stop" : \
00418 "(Unknown state)"
00419
00428 #define WP_API_EVENT_RING_TRIP_PRESENT 0x01
00429 #define WP_API_EVENT_RING_TRIP_STOP 0x02
00430 #define WP_API_EVENT_RING_TRIP_DECODE(state) \
00431 ((state) == WP_API_EVENT_RING_TRIP_PRESENT) ? "Ring Present" : \
00432 ((state) == WP_API_EVENT_RING_TRIP_STOP) ? "Ring Stop" : \
00433 "(Unknown state)"
00434
00443 #define WP_API_EVENT_LINK_STATUS_CONNECTED 0x01
00444 #define WP_API_EVENT_LINK_STATUS_DISCONNECTED 0x02
00445 #define WP_API_EVENT_LINK_STATUS_DECODE(status) \
00446 ((status) == WP_API_EVENT_LINK_STATUS_CONNECTED) ? "Connected" : \
00447 ((status) == WP_API_EVENT_LINK_STATUS_DISCONNECTED) ? "Disconnected" : \
00448 "Unknown"
00449
00450
00459 #define WP_API_EVENT_POL_REV_POS_TO_NEG 0x01
00460 #define WP_API_EVENT_POL_REV_NEG_TO_POS 0x02
00461 #define WP_API_EVENT__POL_REV_NEG_TO_POS WP_API_EVENT_POL_REV_NEG_TO_POS
00462 #define WP_API_EVENT_POLARITY_REVERSE_DECODE(polarity_reverse) \
00463 ((polarity_reverse) == WP_API_EVENT_POL_REV_POS_TO_NEG) ? "+ve to -ve" : \
00464 ((polarity_reverse) == WP_API_EVENT_POL_REV_NEG_TO_POS) ? "-ve to +ve" : \
00465 "Unknown"
00466
00482 #define WP_API_EVENT_TONE_DIAL 0x01
00483 #define WP_API_EVENT_TONE_BUSY 0x02
00484 #define WP_API_EVENT_TONE_RING 0x03
00485 #define WP_API_EVENT_TONE_CONGESTION 0x04
00486 #define WP_API_EVENT_TONE_DTMF 0x05
00487 #define WP_API_EVENT_TONE_FAXCALLING 0x06
00488 #define WP_API_EVENT_TONE_FAXCALLED 0x07
00489
00490
00499 #define WAN_BRI_BCHAN1 0x01
00500 #define WAN_BRI_BCHAN2 0x02
00501 #define WAN_BRI_DCHAN 0x03
00502
00503
00511 #define WP_PORT_NAME_FORM "wanpipe%d"
00512 #define WP_INTERFACE_NAME_FORM "wanpipe%d_if%d"
00513 #define WP_CTRL_DEV_NAME "wanpipe_ctrl"
00514 #define WP_CONFIG_DEV_NAME "wanpipe"
00515 #define WP_TIMER_DEV_NAME_FORM "wanpipe_timer%d"
00516 #define WP_LOGGER_DEV_NAME "wanpipe_logger"
00517
00518 #pragma pack(1)
00519
00520
00527 typedef struct wanpipe_chan_stats
00528 {
00529 unsigned int rx_packets;
00530 unsigned int tx_packets;
00531 unsigned int rx_bytes;
00532 unsigned int tx_bytes;
00533
00534 unsigned int rx_errors;
00535 unsigned int tx_errors;
00536
00537 unsigned int rx_dropped;
00538
00539 unsigned int tx_dropped;
00540
00541 unsigned int multicast;
00542 unsigned int collisions;
00543
00544
00545 unsigned int rx_length_errors;
00546
00547 unsigned int rx_over_errors;
00548 unsigned int rx_crc_errors;
00549
00550 unsigned int rx_frame_errors;
00551 unsigned int rx_fifo_errors;
00552
00553 unsigned int rx_missed_errors;
00554
00555
00556 unsigned int tx_aborted_errors;
00557 unsigned int tx_carrier_errors;
00558
00559 unsigned int tx_fifo_errors;
00560
00561 unsigned int tx_heartbeat_errors;
00562 unsigned int tx_window_errors;
00563
00564 unsigned int tx_idle_packets;
00565
00566
00567
00568 unsigned int errors;
00569
00570
00571 unsigned int current_number_of_frames_in_tx_queue;
00572 unsigned int max_tx_queue_length;
00573
00574
00575 unsigned int current_number_of_frames_in_rx_queue;
00576 unsigned int max_rx_queue_length;
00577
00578
00579 unsigned int max_event_queue_length;
00580 unsigned int current_number_of_events_in_event_queue;
00581
00582 unsigned int rx_events;
00583 unsigned int rx_events_dropped;
00584
00585 unsigned int rx_events_tone;
00586
00587
00588 unsigned int rx_hdlc_abort_counter;
00589
00590
00591 }wanpipe_chan_stats_t;
00592
00593
00594 #define WP_AFT_CHAN_ERROR_STATS(chan_stats,var) chan_stats.var++;chan_stats.errors++
00595
00596 #define WP_AFT_RX_ERROR_SUM(chan_stats) chan_stats.rx_errors+ \
00597 chan_stats.rx_dropped+ \
00598 chan_stats.rx_length_errors + \
00599 chan_stats.rx_crc_errors + \
00600 chan_stats.rx_frame_errors + \
00601 chan_stats.rx_fifo_errors + \
00602 chan_stats.rx_missed_errors + \
00603 chan_stats.rx_hdlc_abort_counter
00604
00605 #define WP_AFT_TX_ERROR_SUM(chan_stats) chan_stats.tx_errors+ \
00606 chan_stats.tx_dropped + \
00607 chan_stats.tx_aborted_errors + \
00608 chan_stats.tx_carrier_errors + \
00609 chan_stats.tx_fifo_errors+ \
00610 chan_stats.tx_heartbeat_errors + \
00611 chan_stats.tx_window_errors
00612
00613 typedef struct _DRIVER_VERSION {
00614 unsigned int major;
00615 unsigned int minor;
00616 unsigned int minor1;
00617 unsigned int minor2;
00618 }wan_driver_version_t, DRIVER_VERSION, *PDRIVER_VERSION;
00619
00620 #define WANPIPE_API_CMD_SZ 512
00621 #define WANPIPE_API_DEV_CFG_MAX_SZ 337
00622
00623
00624 #define WANPIPE_API_CMD_SZ_UNION WANPIPE_API_CMD_SZ - (sizeof(unsigned int)*3) - (sizeof(unsigned char)*2)
00625
00626
00627
00628
00629
00630
00631 #define WANPIPE_API_CMD_RESERVED_SZ 128 - sizeof(int)*1 - sizeof(char)*3
00632
00633
00634
00635
00636
00637 #define WANPIPE_API_DEV_CFG_SZ sizeof(int)*20 + sizeof(char)*4 + WANPIPE_API_CMD_RESERVED_SZ + sizeof(wanpipe_chan_stats_t)
00638
00639
00649 typedef struct wanpipe_api_dev_cfg
00650 {
00651 unsigned int hw_tdm_coding;
00652 unsigned int hw_mtu_mru;
00653 unsigned int usr_period;
00654 unsigned int tdm_codec;
00655 unsigned int power_level;
00656 unsigned int rx_disable;
00657 unsigned int tx_disable;
00658 unsigned int usr_mtu_mru;
00659 unsigned int ec_tap;
00660 unsigned int rbs_poll;
00661 unsigned int rbs_rx_bits;
00662 unsigned int rbs_tx_bits;
00663 unsigned int hdlc;
00664 unsigned int idle_flag;
00665 unsigned int fe_alarms;
00666 unsigned char fe_status;
00667 unsigned int hw_dtmf;
00668 unsigned int open_cnt;
00669 unsigned int rx_queue_sz;
00670 unsigned int tx_queue_sz;
00671
00672 unsigned int rxflashtime;
00673 unsigned char hw_ec;
00674 unsigned char hw_fax;
00675 unsigned char loop;
00676
00677 unsigned char reserved[WANPIPE_API_CMD_RESERVED_SZ];
00678
00679 wanpipe_chan_stats_t stats;
00680 }wanpipe_api_dev_cfg_t;
00681
00682
00694 typedef struct wanpipe_api_cmd
00695 {
00696 unsigned int cmd;
00697 unsigned int result;
00698 unsigned char span;
00699 unsigned char chan;
00701 union {
00702 struct {
00703 unsigned int hw_tdm_coding;
00704 unsigned int hw_mtu_mru;
00705 unsigned int usr_period;
00706 unsigned int tdm_codec;
00707 unsigned int power_level;
00708 unsigned int rx_disable;
00709 unsigned int tx_disable;
00710 unsigned int usr_mtu_mru;
00711 unsigned int ec_tap;
00712 unsigned int rbs_poll;
00713 unsigned int rbs_rx_bits;
00714 unsigned int rbs_tx_bits;
00715 unsigned int hdlc;
00716 unsigned int idle_flag;
00717 unsigned int fe_alarms;
00718 unsigned char fe_status;
00719 unsigned int hw_dtmf;
00720 unsigned int open_cnt;
00721 unsigned int rx_queue_sz;
00722 unsigned int tx_queue_sz;
00723
00724 unsigned int rxflashtime;
00725 unsigned char hw_ec;
00726 unsigned char hw_fax;
00727 unsigned char loop;
00728
00729 unsigned char reserved[WANPIPE_API_CMD_RESERVED_SZ];
00730 wanpipe_chan_stats_t stats;
00731 };
00732 wp_api_event_t event;
00733 wan_driver_version_t version;
00734 wan_iovec_list_t iovec_list;
00735 struct {
00736 unsigned char data[WANPIPE_API_CMD_SZ_UNION];
00737 unsigned int data_len;
00738 };
00739 };
00740 }wanpipe_api_cmd_t;
00741
00742
00743 #define WANPIPE_API_CMD_INIT_SPAN(wp_cmd_ptr, span_no) ((wp_cmd_ptr)->span = (unsigned char)span_no)
00744
00745
00746 #define WANPIPE_API_CMD_INIT_CHAN(wp_cmd_ptr, chan_no) ((wp_cmd_ptr)->chan = (unsigned char)chan_no)
00747
00754 typedef struct wanpipe_api_callbacks
00755 {
00756 int (*wp_rbs_event)(sng_fd_t fd, unsigned char rbs_bits);
00757 int (*wp_dtmf_event)(sng_fd_t fd, unsigned char dtmf, unsigned char type, unsigned char port);
00758 int (*wp_rxhook_event)(sng_fd_t fd, unsigned char hook_state);
00759 int (*wp_ring_detect_event)(sng_fd_t fd, unsigned char ring_state);
00760 int (*wp_ring_trip_detect_event)(sng_fd_t fd, unsigned char ring_state);
00761 int (*wp_fe_alarm_event)(sng_fd_t fd, unsigned int fe_alarm_event);
00762 int (*wp_link_status_event)(sng_fd_t fd, unsigned int link_status_event);
00763 }wanpipe_api_callbacks_t;
00764
00775 typedef struct wanpipe_api
00776 {
00777 wanpipe_api_cmd_t wp_cmd;
00778 wanpipe_api_callbacks_t wp_callback;
00779 }wanpipe_api_t;
00780
00781
00782 #define WANPIPE_API_INIT_SPAN(wanpipe_api_ptr, span_no) WANPIPE_API_CMD_INIT_SPAN(&wanpipe_api_ptr->wp_cmd, span_no)
00783
00784
00785 #define WANPIPE_API_INIT_CHAN(wanpipe_api_ptr, chan_no) WANPIPE_API_CMD_INIT_CHAN(&wanpipe_api_ptr->wp_cmd, chan_no)
00786
00787 #pragma pack()
00788
00789
00790
00793 #endif