00001
00035 #ifndef __WANPIPE_API_HDR__
00036 #define __WANPIPE_API_HDR__
00037
00038
00039 #pragma pack(1)
00040
00049 #define WAN_MAX_EVENT_SZ 64
00050 #define WAN_MAX_EVENT_SZ_UNION WAN_MAX_EVENT_SZ-(sizeof(u_int8_t)*4)-(sizeof(u_int32_t)*2)
00051
00060 typedef struct wp_api_event
00061 {
00062 u_int8_t event_type;
00063 u_int8_t mode;
00064 u_int8_t channel;
00065 u_int8_t span;
00066 u_int32_t time_stamp_sec;
00067 u_int32_t time_stamp_usec;
00068 union {
00069 struct {
00070 u_int32_t alarm;
00071 } te1_alarm;
00072 struct {
00073 u_int8_t rbs_bits;
00074 } te1_rbs;
00075 struct {
00076 u_int8_t state;
00077 u_int8_t sig;
00078 } rm_hook;
00079 struct {
00080 u_int8_t state;
00081 } rm_ring;
00082 struct {
00083 u_int16_t type;
00084 } rm_tone;
00085 struct {
00086 u_int8_t digit;
00087 u_int8_t port;
00088 u_int8_t type;
00089 } dtmf;
00090 struct {
00091 u_int16_t polarity;
00092 u_int16_t ohttimer;
00093 u_int16_t polarity_reverse;
00094 } rm_common;
00095 struct {
00096 int32_t gain;
00097 }rm_gain;
00098 struct{
00099 u_int16_t status;
00100 } linkstatus;
00101 struct {
00102 u_int32_t status;
00103 } serial;
00104 unsigned char reserved[WAN_MAX_EVENT_SZ_UNION];
00105 };
00106
00107
00112 #define wp_api_event_type event_type
00113 #define wp_api_event_mode mode
00114 #define wp_api_event_channel channel
00115 #define wp_api_event_span span
00116 #define wp_api_event_alarm te1_alarm.alarm
00117 #define wp_api_event_rbs_bits te1_rbs.rbs_bits
00118 #define wp_api_event_hook_state rm_hook.state
00119 #define wp_api_event_hook_sig rm_hook.sig
00120 #define wp_api_event_ring_state rm_ring.state
00121 #define wp_api_event_tone_type rm_tone.type
00122 #define wp_api_event_dtmf_digit dtmf.digit
00123 #define wp_api_event_dtmf_type dtmf.type
00124 #define wp_api_event_dtmf_port dtmf.port
00125 #define wp_api_event_ohttimer rm_common.ohttimer
00126 #define wp_api_event_polarity rm_common.polarity
00127 #define wp_api_event_polarity_reverse rm_common.polarity_reverse
00128 #define wp_api_event_link_status linkstatus.status
00129 #define wp_api_event_serial_status serial.status
00130 #define wp_api_event_time_stamp_sec time_stamp_sec
00131 #define wp_api_event_time_stamp_usec time_stamp_usec
00132 #define wp_api_event_gain_value rm_gain.gain
00133 } wp_api_event_t;
00134
00135
00136
00155 #define WAN_MAX_HDR_SZ 64
00156 #define WAN_MAX_HDR_SZ_UNION WAN_MAX_HDR_SZ-sizeof(u_int8_t)-sizeof(u_int16_t)-(sizeof(u_int32_t)*2)
00157
00165 typedef struct wp_api_hdr
00166 {
00167 u_int8_t operation_status;
00168 u_int16_t data_length;
00169 u_int32_t time_stamp_sec;
00170 u_int32_t time_stamp_usec;
00172 union {
00173
00176 struct {
00177 u_int16_t crc;
00178 u_int8_t max_rx_queue_length;
00179 u_int8_t current_number_of_frames_in_rx_queue;
00180 u_int32_t errors;
00181 }rx_h;
00182
00183 struct {
00184 u_int8_t max_tx_queue_length;
00185 u_int8_t current_number_of_frames_in_tx_queue;
00186 u_int32_t tx_idle_packets;
00187 u_int32_t errors;
00188 }tx_h;
00189
00190
00194 struct {
00195 u_int8_t status;
00196 }serial;
00197 struct {
00198 u_int8_t exception;
00199 u_int8_t pf;
00200 }lapb;
00201 struct {
00202 u_int8_t state;
00203 u_int8_t address;
00204 u_int16_t exception;
00205 }xdlc;
00206 struct {
00207 u_int8_t channel;
00208 u_int8_t direction;
00209 }bitstrm;
00210 struct {
00211 u_int8_t repeat;
00212 u_int8_t len;
00213 u_int8_t data[8];
00214 }rpt;
00215 struct {
00216 u_int8_t type;
00217 u_int8_t force_tx;
00218 u_int8_t data[8];
00219 }ss7_hw;
00220 u_int8_t reserved[WAN_MAX_HDR_SZ_UNION];
00221 };
00222
00223
00224
00230 #define wp_api_hdr_operation_status operation_status
00231 #define wp_api_hdr_data_length data_length
00232 #define wp_api_hdr_time_stamp_sec time_stamp_sec
00233 #define wp_api_hdr_time_stamp_use time_stamp_usec
00234
00235 #define wp_api_rx_hdr_crc rx_h.crc
00236 #define wp_api_rx_hdr_error_map rx_h.crc
00237 #define wp_api_rx_hdr_max_queue_length rx_h.max_rx_queue_length
00238 #define wp_api_rx_hdr_number_of_frames_in_queue rx_h.current_number_of_frames_in_rx_queue
00239 #define wp_api_rx_hdr_time_stamp_sec time_stamp_sec
00240 #define wp_api_rx_hdr_time_stamp_use time_stamp_usec
00241 #define wp_api_rx_hdr_errors rx_h.errors
00242
00243 #define wp_api_tx_hdr_max_queue_length tx_h.max_tx_queue_length
00244 #define wp_api_tx_hdr_number_of_frames_in_queue tx_h.current_number_of_frames_in_tx_queue
00245 #define wp_api_tx_hdr_tx_idle_packets tx_h.tx_idle_packets
00246 #define wp_api_tx_hdr_time_stamp_sec time_stamp_sec
00247 #define wp_api_tx_hdr_time_stamp_use time_stamp_usec
00248 #define wp_api_tx_hdr_errors tx_h.errors
00249
00250
00255 #if !defined(__WINDOWS__)
00256 #define wp_api_rx_hdr_error_flag operation_status
00257 #define wp_api_rx_hdr_station operation_status
00258 #define wp_api_rx_hdr_time_stamp data_length
00259 #endif
00260
00261 #define wp_api_tx_hdr_hdlc_rpt_len rpt.len
00262 #define wp_api_tx_hdr_hdlc_rpt_data rpt.data
00263 #define wp_api_tx_hdr_hdlc_rpt_repeat rpt.repeat
00264
00265 #define wp_api_tx_hdr_aft_ss7_type ss7_hw.type
00266 #define wp_api_tx_hdr_aft_ss7_force_tx ss7_hw.force_tx
00267 #define wp_api_tx_hdr_aft_ss7_data ss7_hw.data
00268
00269
00270 #define wp_api_rx_hdr_xdlc_state xdlc.state
00271 #define wp_api_rx_hdr_xdlc_address xdlc.address
00272 #define wp_api_rx_hdr_xdlc_exception xdlc.exception
00273
00274 #define wan_hdr_xdlc_state xdlc.state
00275 #define wan_hdr_xdlc_address xdlc.address
00276 #define wan_hdr_xdlc_exception xdlc.exception
00277
00278
00279 #define wp_api_rx_hdr_chdlc_error_flag wp_api_rx_hdr_error_flag
00280 #define wp_api_rx_hdr_chdlc_time_stamp wp_api_rx_hdr_time_stamp
00281 #define wp_api_rx_hdr_chdlc_time_sec time_stamp_sec
00282 #define wp_api_rx_hdr_chdlc_time_usec time_stamp_usec
00283
00284 #define wan_hdr_chdlc_error_flag wp_api_rx_hdr_chdlc_error_flag
00285 #define wan_hdr_chdlc_time_stamp wp_api_rx_hdr_chdlc_time_stamp
00286 #define wan_hdr_chdlc_time_sec wp_api_rx_hdr_chdlc_time_sec
00287 #define wan_hdr_chdlc_time_usec wp_api_rx_hdr_chdlc_time_usec
00288
00289
00290 #define wp_api_rx_hdr_bitstrm_error_flag wp_api_rx_hdr_error_flag
00291 #define wp_api_rx_hdr_bitstrm_time_stamp wp_api_rx_hdr_time_stamp
00292 #define wp_api_rx_hdr_bitstrm_time_sec time_stamp_sec
00293 #define wp_api_rx_hdr_bitstrm_time_usec time_stamp_usec
00294 #define wp_api_rx_hdr_bitstrm_channel bitstrm.channel
00295 #define wp_api_rx_hdr_bitstrm_direction bitstrm.direction
00296
00297 #define wan_hdr_bitstrm_error_flag wp_api_rx_hdr_bitstrm_error_flag
00298 #define wan_hdr_bitstrm_time_stamp wp_api_rx_hdr_bitstrm_data_length
00299 #define wan_hdr_bitstrm_time_sec wp_api_rx_hdr_bitstrm_time_sec
00300 #define wan_hdr_bitstrm_time_usec wp_api_rx_hdr_bitstrm_time_usec
00301 #define wan_hdr_bitstrm_channel wp_api_rx_hdr_bitstrm_channel
00302 #define wan_hdr_bitstrm_direction wp_api_rx_hdr_bitstrm_direction
00303
00304
00305 #define wp_api_rx_hdr_hdlc_error_flag wp_api_rx_hdr_error_flag
00306 #define wp_api_rx_hdr_hdlc_time_stamp wp_api_rx_hdr_time_stamp
00307 #define wp_api_rx_hdr_hdlc_time_sec time_stamp_sec
00308 #define wp_api_rx_hdr_hdlc_time_usec time_stamp_usec
00309
00310 #define wan_hdr_hdlc_error_flag wp_api_rx_hdr_error_flag
00311 #define wan_hdr_hdlc_time_stamp wp_api_rx_hdr_time_stamp
00312
00313
00314 #define wp_api_rx_hdr_lapb_pf lapb.pf
00315 #define wp_api_rx_hdr_lapb_exception lapb.exception
00316 #define wp_api_rx_hdr_lapb_time_sec time_stamp_sec
00317 #define wp_api_rx_hdr_lapb_time_usec time_stamp_usec
00318
00319 #define wan_hdr_lapb_pf wp_api_rx_hdr_lapb_pf
00320 #define wan_hdr_lapb_exception wp_api_rx_hdr_lapb_exception
00321
00322
00323 #define wp_api_rx_hdr_fr_attr wp_api_rx_hdr_error_flag
00324 #define wp_api_rx_hdr_fr_time_stamp wp_api_rx_hdr_time_stamp
00325 #define wp_api_rx_hdr_fr_time_sec time_stamp_sec
00326 #define wp_api_rx_hdr_fr_time_usec time_stamp_usec
00327
00328 #define wan_hdr_fr_attr wp_api_rx_hdr_fr_attr
00329 #define wan_hdr_fr_time_stamp wp_api_rx_hdr_fr_time_stamp
00330 #define wan_hdr_fr_time_sec wp_api_rx_hdr_fr_time_sec
00331 #define wan_hdr_fr_time_usec wp_api_rx_hdr_fr_time_usec
00332
00333
00334 #define wp_api_rx_hdr_ss7_legacy_sio wp_api_rx_hdr_error_flag
00335 #define wp_api_rx_hdr_ss7_legacy_time_stamp wp_api_rx_hdr_time_stamp
00336
00337 #define wp_api_rx_hdr_event_serial_status serial.status
00338
00339 } wp_api_hdr_t;
00340
00341
00342
00350 #define MAX_NO_DATA_BYTES_IN_FRAME 8188
00351
00352
00366 typedef struct wp_api_element{
00367
00368 wp_api_hdr_t hdr;
00369 unsigned char data[MAX_NO_DATA_BYTES_IN_FRAME];
00371
00377 #define wp_api_el_operation_status hdr.wp_api_hdr_operation_status
00378 #define wp_api_el_data_length hdr.wp_api_hdr_data_length
00379 #define wp_api_el_time_stamp_sec hdr.wp_api_hdr_time_stamp_sec
00380 #define wp_api_el_time_stamp_use hdr.wp_api_hdr_time_stamp_use
00381
00382 #define wp_api_rx_el_crc hdr.wp_api_rx_hdr_crc
00383 #define wp_api_rx_el_max_queue_length hdr.wp_api_rx_hdr_max_queue_length
00384 #define wp_api_rx_el_number_of_frames_in_queue hdr.wp_api_rx_hdr_number_of_frames_in_queue
00385
00386 #define wp_api_tx_el_max_queue_length hdr.wp_api_tx_hdr_max_queue_length
00387 #define wp_api_tx_el_number_of_frames_in_queue hdr.wp_api_tx_hdr_number_of_frames_in_queue
00388
00389 } wp_api_element_t;
00390
00391
00392 #pragma pack()
00393
00394
00395
00396
00397
00398
00399 #pragma pack(1)
00400
00410 typedef struct wan_iovec
00411 {
00412 u_int32_t iov_len;
00413
00414 void * WP_POINTER_64 iov_base;
00415 #ifndef __x86_64__
00416 u_int32_t reserved;
00417 #endif
00418 }wan_iovec_t;
00419
00427 #define WAN_IOVEC_LIST_LEN 5
00428 typedef struct wan_iovec_list
00429 {
00430 wan_iovec_t iovec_list[WAN_IOVEC_LIST_LEN];
00432 }wan_iovec_list_t;
00433
00441 typedef struct wan_msghdr {
00442 u_int32_t msg_iovlen;
00443 wan_iovec_t * WP_POINTER_64 msg_iov;
00444 #ifndef __x86_64__
00445 u_int32_t reserved;
00446 #endif
00447 }wan_msghdr_t;
00448
00449 #pragma pack()
00450
00451
00452
00462 typedef struct _API_POLL_STRUCT
00463 {
00464 unsigned char operation_status;
00465 u_int32_t user_flags_bitmap;
00466 u_int32_t poll_events_bitmap;
00467 }API_POLL_STRUCT;
00468
00469
00480 typedef enum SANG_STATUS
00481 {
00482
00483 SANG_STATUS_SUCCESS=0,
00485
00488 SANG_STATUS_RX_DATA_TIMEOUT,
00489 SANG_STATUS_RX_DATA_AVAILABLE,
00490 SANG_STATUS_NO_DATA_AVAILABLE,
00492
00495 SANG_STATUS_TX_TIMEOUT,
00496 SANG_STATUS_TX_DATA_TOO_LONG,
00497 SANG_STATUS_TX_DATA_TOO_SHORT,
00498 SANG_STATUS_TX_HDR_TOO_SHORT,
00500
00503 SANG_STATUS_LINE_DISCONNECTED,
00504 SANG_STATUS_PROTOCOL_DISCONNECTED,
00505 SANG_STATUS_LINE_CONNECTED,
00506 SANG_STATUS_PROTOCOL_CONNECTED,
00508
00512 SANG_STATUS_COMMAND_ALREADY_RUNNING,
00513 SANG_STATUS_BUFFER_TOO_SMALL,
00514 SANG_STATUS_FAILED_TO_LOCK_USER_MEMORY,
00515 SANG_STATUS_FAILED_ALLOCATE_MEMORY,
00516 SANG_STATUS_INVALID_DEVICE_REQUEST,
00517 SANG_STATUS_INVALID_PARAMETER,
00518 SANG_STATUS_GENERAL_ERROR,
00519 SANG_STATUS_DEVICE_BUSY,
00520 SANG_STATUS_INVALID_DEVICE,
00521 SANG_STATUS_IO_ERROR,
00522 SANG_STATUS_UNSUPPORTED_FUNCTION,
00523 SANG_STATUS_UNSUPPORTED_PROTOCOL,
00524 SANG_STATUS_DEVICE_ALREADY_EXIST,
00525 SANG_STATUS_DEV_INIT_INCOMPLETE,
00526 SANG_STATUS_TRACE_QUEUE_EMPTY,
00527 SANG_STATUS_OPTION_NOT_SUPPORTED,
00529
00532 SANG_STATUS_API_EVENT_AVAILABLE,
00535
00538 SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED,
00539 SANG_STATUS_CAN_NOT_RUN_TWO_PORT_CMDS_AT_THE_SAME_TIME,
00540 SANG_STATUS_ASSOCIATED_IRP_SYSTEM_BUFFER_NULL_ERROR,
00541 SANG_STATUS_STRUCTURE_SIZE_MISMATCH_ERROR,
00544
00547 SANG_STATUS_REGISTRY_ERROR=180,
00548 SANG_STATUS_IO_PENDING,
00549 SANG_STATUS_APIPOLL_TIMEOUT,
00550 SANG_STATUS_NO_FREE_BUFFERS,
00551 SANG_STATUS_SHARED_EVENT_INIT_ERROR,
00553
00557 SANG_STATUS_DATA_QUEUE_EMPTY=190,
00558 SANG_STATUS_DATA_QUEUE_FULL,
00559 SANG_STATUS_INVALID_IRQL
00561 }SANG_STATUS_T;
00562
00568 #define SDLA_DECODE_SANG_STATUS(status) \
00569 (abs((int)status) == SANG_STATUS_SUCCESS) ? "SANG_STATUS_SUCCESS" :\
00570 (abs((int)status) == SANG_STATUS_COMMAND_ALREADY_RUNNING) ? "SANG_STATUS_COMMAND_ALREADY_RUNNING":\
00571 (abs((int)status) == SANG_STATUS_BUFFER_TOO_SMALL) ? "SANG_STATUS_BUFFER_TOO_SMALL":\
00572 (abs((int)status) == SANG_STATUS_FAILED_TO_LOCK_USER_MEMORY) ? "SANG_STATUS_FAILED_TO_LOCK_USER_MEMORY":\
00573 (abs((int)status) == SANG_STATUS_FAILED_ALLOCATE_MEMORY) ? "SANG_STATUS_FAILED_ALLOCATE_MEMORY":\
00574 (abs((int)status) == SANG_STATUS_INVALID_DEVICE_REQUEST) ? "SANG_STATUS_INVALID_DEVICE_REQUEST":\
00575 (abs((int)status) == SANG_STATUS_INVALID_PARAMETER) ? "SANG_STATUS_INVALID_PARAMETER":\
00576 (abs((int)status) == SANG_STATUS_DATA_QUEUE_EMPTY) ? "SANG_STATUS_DATA_QUEUE_EMPTY":\
00577 (abs((int)status) == SANG_STATUS_DATA_QUEUE_FULL) ? "SANG_STATUS_DATA_QUEUE_FULL":\
00578 (abs((int)status) == SANG_STATUS_RX_DATA_TIMEOUT) ? "SANG_STATUS_RX_DATA_TIMEOUT":\
00579 (abs((int)status) == SANG_STATUS_RX_DATA_AVAILABLE) ? "SANG_STATUS_RX_DATA_AVAILABLE":\
00580 (abs((int)status) == SANG_STATUS_TX_TIMEOUT) ? "SANG_STATUS_TX_TIMEOUT":\
00581 (abs((int)status) == SANG_STATUS_TX_DATA_TOO_LONG) ? "SANG_STATUS_TX_DATA_TOO_LONG":\
00582 (abs((int)status) == SANG_STATUS_TX_DATA_TOO_SHORT) ? "SANG_STATUS_TX_DATA_TOO_SHORT":\
00583 (abs((int)status) == SANG_STATUS_LINE_DISCONNECTED) ? "SANG_STATUS_LINE_DISCONNECTED":\
00584 (abs((int)status) == SANG_STATUS_LINE_CONNECTED) ? "SANG_STATUS_LINE_CONNECTED":\
00585 (abs((int)status) == SANG_STATUS_PROTOCOL_DISCONNECTED) ? "SANG_STATUS_PROTOCOL_DISCONNECTED":\
00586 (abs((int)status) == SANG_STATUS_PROTOCOL_CONNECTED) ? "SANG_STATUS_PROTOCOL_CONNECTED":\
00587 (abs((int)status) == SANG_STATUS_GENERAL_ERROR) ? "SANG_STATUS_GENERAL_ERROR":\
00588 (abs((int)status) == SANG_STATUS_DEVICE_BUSY) ? "SANG_STATUS_DEVICE_BUSY":\
00589 (abs((int)status) == SANG_STATUS_INVALID_DEVICE) ? "SANG_STATUS_INVALID_DEVICE":\
00590 (abs((int)status) == SANG_STATUS_IO_ERROR) ? "SANG_STATUS_IO_ERROR":\
00591 (abs((int)status) == SANG_STATUS_UNSUPPORTED_FUNCTION) ? "SANG_STATUS_UNSUPPORTED_FUNCTION":\
00592 (abs((int)status) == SANG_STATUS_UNSUPPORTED_PROTOCOL) ? "SANG_STATUS_UNSUPPORTED_PROTOCOL":\
00593 (abs((int)status) == SANG_STATUS_DEVICE_ALREADY_EXIST) ? "SANG_STATUS_DEVICE_ALREADY_EXIST":\
00594 (abs((int)status) == SANG_STATUS_DEV_INIT_INCOMPLETE) ? "SANG_STATUS_DEV_INIT_INCOMPLETE":\
00595 (abs((int)status) == SANG_STATUS_API_EVENT_AVAILABLE) ? "SANG_STATUS_API_EVENT_AVAILABLE":\
00596 (abs((int)status) == SANG_STATUS_REGISTRY_ERROR) ? "SANG_STATUS_REGISTRY_ERROR":\
00597 (abs((int)status) == SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED) ? "SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED":\
00598 (abs((int)status) == SANG_STATUS_CAN_NOT_RUN_TWO_PORT_CMDS_AT_THE_SAME_TIME) ? "SANG_STATUS_CAN_NOT_RUN_TWO_PORT_CMDS_AT_THE_SAME_TIME":\
00599 (abs((int)status) == SANG_STATUS_ASSOCIATED_IRP_SYSTEM_BUFFER_NULL_ERROR) ? "SANG_STATUS_ASSOCIATED_IRP_SYSTEM_BUFFER_NULL_ERROR":\
00600 (abs((int)status) == SANG_STATUS_STRUCTURE_SIZE_MISMATCH_ERROR) ? "SANG_STATUS_STRUCTURE_SIZE_MISMATCH_ERROR":\
00601 (abs((int)status) == SANG_STATUS_INVALID_IRQL) ? "SANG_STATUS_INVALID_IRQL":\
00602 (abs((int)status) == SANG_STATUS_NO_DATA_AVAILABLE) ? "SANG_STATUS_NO_DATA_AVAILABLE":\
00603 (abs((int)status) == SANG_STATUS_IO_PENDING) ? "SANG_STATUS_IO_PENDING":\
00604 (abs((int)status) == SANG_STATUS_APIPOLL_TIMEOUT) ? "SANG_STATUS_APIPOLL_TIMEOUT":\
00605 (abs((int)status) == SANG_STATUS_NO_FREE_BUFFERS) ? "SANG_STATUS_NO_FREE_BUFFERS":\
00606 (abs((int)status) == SANG_STATUS_OPTION_NOT_SUPPORTED) ? "SANG_STATUS_OPTION_NOT_SUPPORTED":\
00607 "Status Unknown"
00608
00609 #define SANG_SUCCESS(status) (status == SANG_STATUS_SUCCESS)
00610 #define SANG_ERROR(status) (!SANG_SUCCESS(status))
00611
00612 #if defined(__WINDOWS__)
00613 #if defined(WAN_KERNEL) || defined(USE_SANGOMA_ERRNO)
00614
00615
00616
00617
00618 # undef EFAULT
00619 # undef EBUSY
00620 # undef ENODEV
00621 # undef EINVAL
00622 # undef EIO
00623 # undef EPFNOSUPPORT
00624 # undef EPROTONOSUPPORT
00625 # undef ENOMEM
00626 # undef EEXIST
00627 # undef ENOBUFS
00628 # undef EOPNOTSUPP
00629 # undef ENXIO
00630 # undef EAGAIN
00631 # undef EFBIG
00632
00633 # define EFAULT SANG_STATUS_GENERAL_ERROR
00634 # define EBUSY SANG_STATUS_DEVICE_BUSY
00635 # define ENODEV SANG_STATUS_INVALID_DEVICE
00636 # define EINVAL SANG_STATUS_INVALID_PARAMETER
00637 # define EIO SANG_STATUS_IO_ERROR
00638 # define EPFNOSUPPORT SANG_STATUS_UNSUPPORTED_FUNCTION
00639 # define EPROTONOSUPPORT SANG_STATUS_UNSUPPORTED_PROTOCOL
00640 # define ENOMEM SANG_STATUS_FAILED_ALLOCATE_MEMORY
00641 # define EEXIST SANG_STATUS_DEVICE_ALREADY_EXIST
00642 # define ENOBUFS SANG_STATUS_NO_FREE_BUFFERS
00643 # define EOPNOTSUPP SANG_STATUS_OPTION_NOT_SUPPORTED
00644 # define ENXIO EFAULT
00645 # define ENETDOWN SANG_STATUS_LINE_DISCONNECTED
00646 # define EAGAIN SANG_STATUS_DEVICE_BUSY
00647 # define EFBIG SANG_STATUS_TX_DATA_TOO_LONG
00648 # define EAFNOSUPPORT SANG_STATUS_UNSUPPORTED_FUNCTION
00649 #endif
00650 #endif
00651
00652 #endif