00001
00035 #ifndef __WANPIPE_API_LEGACY__
00036 #define __WANPIPE_API_LEGACY__
00037
00038 #pragma pack(1)
00039
00040
00041
00046 #define WAN_API_MAX_DATA 4096
00047 typedef struct{
00048 unsigned char pktType;
00049 unsigned short length;
00050 unsigned char result;
00051 union {
00052 struct {
00053 unsigned char arg1;
00054 unsigned short time_stamp;
00055 } chdlc;
00056 struct {
00057 unsigned char attr;
00058 unsigned short time_stamp;
00059 } fr;
00060 struct {
00061 unsigned char qdm;
00062 unsigned char cause;
00063 unsigned char diagn;
00064 unsigned short lcn;
00065 } x25;
00066 struct {
00067 unsigned char station;
00068 unsigned char PF_bit;
00069 unsigned short poll_interval;
00070 unsigned char general_mailbox_byte;
00071 }sdlc;
00072 struct {
00073 unsigned char exception;
00074 }xdlc;
00075 } wan_protocol;
00076 #define wan_apihdr_chdlc_error_flag wan_protocol.chdlc.arg1
00077 #define wan_apihdr_chdlc_attr wan_protocol.chdlc.arg1
00078 #define wan_apihdr_chdlc_time_stamp wan_protocol.chdlc.time_stamp
00079 #define wan_apihdr_fr_attr wan_protocol.fr.attr
00080 #define wan_apihdr_fr_time_stamp wan_protocol.fr.time_stamp
00081 #define wan_apihdr_x25_qdm wan_protocol.x25.qdm
00082 #define wan_apihdr_x25_cause wan_protocol.x25.cause
00083 #define wan_apihdr_x25_diagn wan_protocol.x25.diagn
00084 #define wan_apihdr_x25_lcn wan_protocol.x25.lcn
00085
00086 #define wan_apihdr_sdlc_station wan_protocol.sdlc.station
00087 #define wan_apihdr_sdlc_pf wan_protocol.sdlc.PF_bit
00088 #define wan_apihdr_sdlc_poll_interval wan_protocol.sdlc.poll_interval
00089 #define wan_apihdr_sdlc_general_mb_byte wan_protocol.sdlc.general_mailbox_byte
00090
00091 #define wan_apihdr_xdlc_exception wan_protocol.xdlc.exception
00092 } wan_api_hdr_t;
00093
00094 typedef struct{
00095 wan_api_hdr_t api_hdr;
00096 unsigned char data[WAN_API_MAX_DATA];
00097 #define wan_api_pktType api_hdr.pktType
00098 #define wan_api_length api_hdr.length
00099 #define wan_api_result api_hdr.result
00100 #define wan_api_chdlc_error_flag api_hdr.wan_apihdr_chdlc_error_flag
00101 #define wan_api_chdlc_time_stamp api_hdr.wan_apihdr_chdlc_time_stamp
00102 #define wan_api_chdlc_attr api_hdr.wan_apihdr_chdlc_attr
00103 #define wan_api_chdlc_misc_Tx_bits api_hdr.wan_apihdr_chdlc_misc_Tx_bits
00104 #define wan_api_fr_attr api_hdr.wan_apihdr_fr_attr
00105 #define wan_api_fr_time_stamp api_hdr.wan_apihdr_fr_time_stamp
00106 #define wan_api_x25_qdm api_hdr.wan_apihdr_x25_qdm
00107 #define wan_api_x25_cause api_hdr.wan_apihdr_x25_cause
00108 #define wan_api_x25_diagn api_hdr.wan_apihdr_x25_diagn
00109 #define wan_api_x25_lcn api_hdr.wan_apihdr_x25_lcn
00110 #define wan_api_sdlc_station api_hdr.wan_apihdr_sdlc_station
00111 #define wan_api_sdlc_pf api_hdr.wan_apihdr_sdlc_pf
00112 #define wan_api_sdlc_poll_interval api_hdr.wan_apihdr_sdlc_poll_interval
00113 #define wan_api_sdlc_general_mb_byte api_hdr.wan_apihdr_sdlc_general_mb_byte
00114 #define wan_api_xdlc_exception api_hdr.wan_apihdr_xdlc_exception
00115 } wan_api_t;
00116
00117
00118
00119 #define WAN_MAILBOX_SIZE 16
00120 #define WAN_MAX_POS_DATA_SIZE 1030
00121 #define WAN_MAX_DATA_SIZE 4096
00122 #define MAX_LGTH_UDP_MGNT_PKT WAN_MAX_DATA_SIZE
00123
00130 typedef struct wan_cmd_api_
00131 {
00132 unsigned int cmd;
00133 unsigned short len;
00134 unsigned char bar;
00135 u_int32_t offset;
00136 unsigned char data[WAN_MAX_DATA_SIZE];
00137 } wan_cmd_api_t;
00138
00139
00140
00150 typedef struct wan_cmd {
00151 union {
00152 struct {
00153 unsigned char opp_flag;
00154 unsigned char command;
00155 unsigned short data_len;
00156 unsigned char return_code;
00157 union {
00158 struct {
00159 unsigned char PF_bit;
00160 } hdlc;
00161 struct {
00162 unsigned short dlci;
00163 unsigned char attr;
00164 unsigned short rxlost1;
00165 u_int32_t rxlost2;
00166 } fr;
00167 struct {
00168 unsigned char pf;
00169 unsigned short lcn;
00170 unsigned char qdm;
00171 unsigned char cause;
00172 unsigned char diagn;
00173 unsigned char pktType;
00174 } x25;
00175 struct {
00176 unsigned char misc_Tx_Rx_bits;
00177 unsigned char Rx_error_bits;
00178 unsigned short Rx_time_stamp;
00179 unsigned char port;
00180 } bscstrm;
00181 struct {
00182 unsigned char misc_tx_rx_bits;
00183 unsigned short heading_length;
00184 unsigned short notify;
00185 unsigned char station;
00186 unsigned char poll_address;
00187 unsigned char select_address;
00188 unsigned char device_address;
00189 unsigned char notify_extended;
00190 } bsc;
00191 struct {
00192 unsigned char sdlc_address;
00193 unsigned char PF_bit;
00194 unsigned short poll_interval;
00195 unsigned char general_mailbox_byte;
00196 } sdlc;
00197 struct {
00198 unsigned char force;
00199 } fe;
00200 } wan_protocol;
00201 } wan_p_cmd;
00202 struct {
00203 unsigned char opp_flag;
00204 unsigned char pos_state;
00205 unsigned char async_state;
00206 } wan_pos_cmd;
00207 unsigned char mbox[WAN_MAILBOX_SIZE];
00208 } wan_cmd_u;
00209 #define wan_cmd_opp_flag wan_cmd_u.wan_p_cmd.opp_flag
00210 #define wan_cmd_command wan_cmd_u.wan_p_cmd.command
00211 #define wan_cmd_data_len wan_cmd_u.wan_p_cmd.data_len
00212 #define wan_cmd_return_code wan_cmd_u.wan_p_cmd.return_code
00213 #define wan_cmd_hdlc_PF_bit wan_cmd_u.wan_p_cmd.wan_protocol.hdlc.PF_bit
00214 #define wan_cmd_fe_force wan_cmd_u.wan_p_cmd.wan_protocol.fe.force
00215 #define wan_cmd_fr_dlci wan_cmd_u.wan_p_cmd.wan_protocol.fr.dlci
00216 #define wan_cmd_fr_attr wan_cmd_u.wan_p_cmd.wan_protocol.fr.attr
00217 #define wan_cmd_fr_rxlost1 wan_cmd_u.wan_p_cmd.wan_protocol.fr.rxlost1
00218 #define wan_cmd_fr_rxlost2 wan_cmd_u.wan_p_cmd.wan_protocol.fr.rxlost2
00219 #define wan_cmd_x25_pf wan_cmd_u.wan_p_cmd.wan_protocol.x25.pf
00220 #define wan_cmd_x25_lcn wan_cmd_u.wan_p_cmd.wan_protocol.x25.lcn
00221 #define wan_cmd_x25_qdm wan_cmd_u.wan_p_cmd.wan_protocol.x25.qdm
00222 #define wan_cmd_x25_cause wan_cmd_u.wan_p_cmd.wan_protocol.x25.cause
00223 #define wan_cmd_x25_diagn wan_cmd_u.wan_p_cmd.wan_protocol.x25.diagn
00224 #define wan_cmd_x25_pktType wan_cmd_u.wan_p_cmd.wan_protocol.x25.pktType
00225 #define wan_cmd_bscstrm_misc_bits wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.misc_Tx_Rx_bits
00226 #define wan_cmd_bscstrm_Rx_err_bits wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.Rx_error_bits
00227 #define wan_cmd_bscstrm_Rx_time_stamp wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.Rx_time_stamp
00228 #define wan_cmd_bscstrm_port wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.port
00229 #define wan_cmd_bsc_misc_bits wan_cmd_u.wan_p_cmd.wan_protocol.bsc.misc_tx_rx_bits
00230 #define wan_cmd_bsc_heading_len wan_cmd_u.wan_p_cmd.wan_protocol.bsc.heading_length
00231 #define wan_cmd_bsc_notify wan_cmd_u.wan_p_cmd.wan_protocol.bsc.notify
00232 #define wan_cmd_bsc_station wan_cmd_u.wan_p_cmd.wan_protocol.bsc.station
00233 #define wan_cmd_bsc_poll_addr wan_cmd_u.wan_p_cmd.wan_protocol.bsc.poll_address
00234 #define wan_cmd_bsc_select_addr wan_cmd_u.wan_p_cmd.wan_protocol.bsc.select_address
00235 #define wan_cmd_bsc_device_addr wan_cmd_u.wan_p_cmd.wan_protocol.bsc.device_address
00236 #define wan_cmd_bsc_notify_ext wan_cmd_u.wan_p_cmd.wan_protocol.bsc.notify_extended
00237 #define wan_cmd_sdlc_address wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.sdlc_address
00238 #define wan_cmd_sdlc_pf wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.PF_bit
00239 #define wan_cmd_sdlc_poll_interval wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.poll_interval
00240 #define wan_cmd_sdlc_general_mb_byte wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.general_mailbox_byte
00241
00242 #define wan_cmd_pos_opp_flag wan_cmd_u.wan_pos_cmd.opp_flag
00243 #define wan_cmd_pos_pos_state wan_cmd_u.wan_pos_cmd.pos_state
00244 #define wan_cmd_pos_async_state wan_cmd_u.wan_pos_cmd.async_state
00245 } wan_cmd_t;
00246
00247
00248 typedef struct {
00249 wan_cmd_t wan_cmd;
00250 union {
00251 struct {
00252 unsigned char command;
00253 unsigned short data_len;
00254 unsigned char return_code;
00255 unsigned char port_num;
00256 unsigned char attr;
00257 unsigned char reserved[10];
00258 unsigned char data[WAN_MAX_POS_DATA_SIZE];
00259 } pos_data;
00260 unsigned char data[WAN_MAX_DATA_SIZE];
00261 } wan_u_data;
00262 #define wan_opp_flag wan_cmd.wan_cmd_opp_flag
00263 #define wan_command wan_cmd.wan_cmd_command
00264 #define wan_data_len wan_cmd.wan_cmd_data_len
00265 #define wan_return_code wan_cmd.wan_cmd_return_code
00266 #define wan_hdlc_PF_bit wan_cmd.wan_cmd_hdlc_PF_bit
00267 #define wan_fr_dlci wan_cmd.wan_cmd_fr_dlci
00268 #define wan_fr_attr wan_cmd.wan_cmd_fr_attr
00269 #define wan_fr_rxlost1 wan_cmd.wan_cmd_fr_rxlost1
00270 #define wan_fr_rxlost2 wan_cmd.wan_cmd_fr_rxlost2
00271 #define wan_x25_pf wan_cmd.wan_cmd_x25_pf
00272 #define wan_x25_lcn wan_cmd.wan_cmd_x25_lcn
00273 #define wan_x25_qdm wan_cmd.wan_cmd_x25_qdm
00274 #define wan_x25_cause wan_cmd.wan_cmd_x25_cause
00275 #define wan_x25_diagn wan_cmd.wan_cmd_x25_diagn
00276 #define wan_x25_pktType wan_cmd.wan_cmd_x25_pktType
00277 #define wan_bscstrm_misc_bits wan_cmd.wan_cmd_bscstrm_misc_bits
00278 #define wan_bscstrm_Rx_err_bits wan_cmd.wan_cmd_bscstrm_Rx_error_bits
00279 #define wan_bscstrm_Rx_time_stamp wan_cmd.wan_cmd_bscstrm_Rx_time_stamp
00280 #define wan_bscstrm_port wan_cmd.wan_cmd_bscstrm_port
00281 #define wan_bsc_misc_bits wan_cmd.wan_cmd_bsc_misc_bits
00282 #define wan_bsc_heading_len wan_cmd.wan_cmd_bsc_heading_length
00283 #define wan_bsc_notify wan_cmd.wan_cmd_bsc_notify
00284 #define wan_bsc_station wan_cmd.wan_cmd_bsc_station
00285 #define wan_bsc_poll_addr wan_cmd.wan_cmd_bsc_poll_address
00286 #define wan_bsc_select_addr wan_cmd.wan_cmd_bsc_select_address
00287 #define wan_bsc_device_addr wan_cmd.wan_cmd_bsc_device_address
00288 #define wan_bsc_notify_ext wan_cmd.wan_cmd_bsc_notify_extended
00289 #define wan_sdlc_address wan_cmd.wan_cmd_sdlc_address
00290 #define wan_sdlc_pf wan_cmd.wan_cmd_sdlc_pf
00291 #define wan_sdlc_poll_interval wan_cmd.wan_cmd_sdlc_poll_interval
00292 #define wan_sdlc_general_mb_byte wan_cmd.wan_cmd_sdlc_general_mb_byte
00293 #define wan_data wan_u_data.data
00294
00295 #define wan_pos_opp_flag wan_cmd.wan_cmd_pos_opp_flag
00296 #define wan_pos_pos_state wan_cmd.wan_cmd_pos_pos_state
00297 #define wan_pos_async_state wan_cmd.wan_cmd_pos_async_state
00298 #define wan_pos_command wan_u_data.pos_data.command
00299 #define wan_pos_data_len wan_u_data.pos_data.data_len
00300 #define wan_pos_return_code wan_u_data.pos_data.return_code
00301 #define wan_pos_port_num wan_u_data.pos_data.port_num
00302 #define wan_pos_attr wan_u_data.pos_data.attr
00303 #define wan_pos_data wan_u_data.pos_data.data
00304 } wan_mbox_t;
00305
00306 #define WAN_MBOX_INIT(mbox) memset(mbox, 0, sizeof(wan_cmd_t));
00307
00308
00309 #pragma pack()
00310
00311 #endif