📄 wap.h
字号:
/*
+-----------------------------------------------------------------------------
| File : wap.h
+-----------------------------------------------------------------------------
| Copyright Condat AG 1999-2000, Berlin
| All rights reserved.
|
| This file is confidential and a trade secret of Condat AG
| The receipt of or possession of this file does not convey
| any rights to reproduce or disclose its contents or to
| manufacture, use, or sell anything it may describe, in
| whole, or in part, without the specific written consent of
| Condat AG.
+-----------------------------------------------------------------------------
| Purpose : Definitions for the Protocol Stack Entity
| WAP
+-----------------------------------------------------------------------------
*/
#ifndef WAP_H
#define WAP_H
/*
* Macros
*/
#if defined (NEW_FRAME)
#ifdef MFW
//#define MALLOC(D,S) D = (T_desc2*)vsi_c_new(0,S,0);
//#define MFREE(D) vsi_c_free(VSI_CALLER (T_VOID_STRUCT**) &(D))
#endif /* MFW */
#else
#define MALLOC(D,S) D = (T_desc2*)vsi_c_new(0,S);
#define MFREE(D) vsi_c_free(VSI_CALLER (void **)&(D));
#endif
/*
* Constants
*/
/*
* information for dti library
*/
#define WAP_DTI_DN_INTERFACE 0
#define WAP_DTI_DN_CHANNEL 0
#define WAP_DTI_DN_DEF_INSTANCE 0
/*
* maximum number of used UDP ports (for every instance!)
*/
#define WAP_MAX_PORTS 2
/*
* wip memory size (static buffer)
* SPR#1983 - SH - This is now a sensible value
*/
#define WIP_MEMSIZE 60000
/*
* Dynamic Configuration Numbers
*/
#define RESET 0
#define BIND_REQ 1
/*
* MAX_TIMEOUT
*
* Description : The constant defines the maximum parameter value of the
* CNF_TIMEOUT configuration command,
* because AUS uses a (factor 100) different timer resolution
* XXX needed? XXX
*/
#define WAP_MAXTIMEOUT 42949672 /* ~= 2^32 / 100 */
/*
* Switches
*/
/*
* Bitoffset for encoding/decoding
*/
#define ENCODE_OFFSET 0
/*
* Block size for DTI descriptors
*/
#define WAP_DTI_BLOCK_SIZE 250
#define WAP_DTI_DATA_SIZE (WAP_DTI_BLOCK_SIZE - sizeof(T_desc2) + 1)
#define DES_LEN 256
#define SRC_LEN 256
/*
* State index for the entity processes
*/
/*==== TYPES ======================================================*/
typedef enum
{
WAP_PORT_IDLE = 0,
WAP_PORT_WAIT_BIND_CNF,
WAP_PORT_WAIT_CLOSE_CNF,
WAP_PORT_BOUND
}
T_WAP_PORTSTATES;
typedef struct
{
/*
* id of the (AUS) object, that use this port
*/
UBYTE id;
/*
* AUS channel assigned
*/
UBYTE channel;
/*
* assigned port number
*/
UINT16 port;
/*
* state of the port
*/
T_WAP_PORTSTATES state;
}
T_WAP_PORT;
/*
* entity global data
*/
typedef struct
{
UBYTE state[1];
UBYTE dti_state;
/*
* objectId <-> port table
*/
T_WAP_PORT ports[WAP_MAX_PORTS];
/*
* index of last requested bind (ports table)
*/
UBYTE last_bind_req;
/*
* dti channel (DOWN) state
*/
BOOL flow;
BOOL connection_done;
BOOL aus_runnable;
/*
* Transmission Unit Identifier
*/
USHORT Tui;
/*
* SH - port numbers as supplied by the user
*/
USHORT port1;
USHORT port2;
}
T_WAP_DATA;
/*
* This structure is used in the DTI2_DATA_IND and .._REQ primitive to transfer
* source and destination address it is always located at the beginning of the
* first buffer in the list.
*/
typedef struct
{
UBYTE src_ip[4];
UBYTE des_ip[4];
UBYTE src_port[2];
UBYTE des_port[2];
}
T_SRC_DES;
/*==== STATES =====================================================*/
/*==== EXPORT =====================================================*/
#define ENTITY_DATA wap_data
/*
* instance data base
*/
#ifdef WAP_PEI_C
#ifdef OPTION_MULTIPLE_INSTANCE
T_WAP_DATA wap_data_base [MAX_INSTANCES];
#else
T_WAP_DATA wap_data_base;
#endif
T_WAP_DATA *wap_data;
#else
#ifdef OPTION_MULTIPLE_INSTANCE
extern T_WAP_DATA wap_data_base [MAX_INSTANCES];
#else
extern T_WAP_DATA wap_data_base;
#endif
extern T_WAP_DATA *wap_data;
#endif
/*
* Prototypes
*/
GLOBAL BOOL wap_init_timer (void);
GLOBAL void wap_close_timer (void);
GLOBAL void wap_timer_expired (void);
GLOBAL void wap_stop_timer (void);
GLOBAL void wap_start_timer (ULONG interval);
void WAP_init_cache(void);
/*
* WAP MMI XXX check/change XXX
*
* WAP* primitive processing
*
*/
#ifdef OPTION_MULTITHREAD
#define mmi_wap_ind _ENTITY_PREFIXED(mmi_wap_ind)
#define mmi_wap_req _ENTITY_PREFIXED(mmi_wap_req)
#define mmi_wap_cnf _ENTITY_PREFIXED(mmi_wap_cnf)
#define mmi_wap_dti_req _ENTITY_PREFIXED(mmi_wap_dti_req)
#endif
EXTERN const void mmi_wap_ind (
T_MMI_WAP_IND *mmi_wap_ind
);
EXTERN const void mmi_wap_req (
T_MMI_WAP_REQ *mmi_wap_req
);
EXTERN const void mmi_wap_cnf (
T_MMI_WAP_CNF *mmi_wap_cnf
);
EXTERN const void mmi_wap_dti_req (
T_WAP_DTI_REQ *wap_dti_req
);
/*
* Prototypes
*
* WAP UDP
*
* UDP* primitive processing, utils
*/
#ifdef OPTION_MULTITHREAD
#define udp_bind_cnf _ENTITY_PREFIXED(udp_bind_cnf)
#define udp_closeport_cnf _ENTITY_PREFIXED(udp_closeport_cnf)
#define udp_error_ind _ENTITY_PREFIXED(udp_error_ind)
#define udp_shutdown_ind _ENTITY_PREFIXED(udp_shutdown_ind)
#define udp_init _ENTITY_PREFIXED(udp_udp_init)
#define udp_send_ready _ENTITY_PREFIXED(udp_udp_send_ready)
#define udp_conv_str_to_IP _ENTITY_PREFIXED(udp_conv_str_to_IP)
#define udp_conv_IP_to_str _ENTITY_PREFIXED(udp_conv_IP_to_str)
#endif
#define pei_dti_dti_connect_cnf _ENTITY_PREFIXED(pei_dti_dti_connect_cnf)
#define pei_dti_dti_connect_ind _ENTITY_PREFIXED(pei_dti_dti_connect_ind)
#define pei_dti_dti_disconnect_ind _ENTITY_PREFIXED(pei_dti_dti_disconnect_ind)
#define pei_dti_dti_ready_ind _ENTITY_PREFIXED(pei_dti_dti_ready_ind)
#define pei_dti_dti_data_ind _ENTITY_PREFIXED(pei_dti_dti_data_ind)
#ifdef _SIMULATION_
#define pei_dti_dti_data_test_ind _ENTITY_PREFIXED(pei_dti_dti_data_test_ind)
#endif /* _SIMLUATION_ */
#define pei_sig_callback \
_ENTITY_PREFIXED(pei_sig_callback )
#define sig_dti_udp_connection_opened_ind \
_ENTITY_PREFIXED(sig_dti_mgt_connection_opened_ind)
#define sig_dti_udp_connection_closed_ind \
_ENTITY_PREFIXED(sig_dti_mgt_connection_closed_ind)
#define sig_dti_udp_tx_buffer_full_ind \
_ENTITY_PREFIXED(sig_dti_dn_tx_buffer_full_ind )
#define sig_dti_udp_tx_buffer_ready_ind \
_ENTITY_PREFIXED(sig_dti_dn_tx_buffer_ready_ind )
#define sig_dti_udp_data_received_ind \
_ENTITY_PREFIXED(sig_dti_up_data_received_ind )
EXTERN const void udp_bind_cnf
(
T_UDP_BIND_CNF *udp_bind_cnf
);
EXTERN const void udp_closeport_cnf
(
T_UDP_CLOSEPORT_CNF *udp_closeport_cnf
);
EXTERN const void udp_error_ind
(
T_UDP_ERROR_IND *udp_error_ind
);
EXTERN const void udp_shutdown_ind
(
T_UDP_SHUTDOWN_IND *udp_shutdown_ind
);
EXTERN const void udp_init
(
void
);
EXTERN const void udp_send_ready
(
void
);
EXTERN const void udp_conv_str_to_IP(
const char* str,
UBYTE* ip
);
EXTERN const void udp_conv_IP_to_str(
UBYTE* ip,
char* buf
);
EXTERN SHORT wap_WAP_MMI_IND (UBYTE event_id,void* data, USHORT data_size);
EXTERN SHORT wap_WAP_MMI_REQ(UBYTE event_id,UBYTE ti,void* data, USHORT data_size);
EXTERN SHORT wap_WAP_MMI_CNF (UBYTE event_id,UBYTE ti,void* data, USHORT data_size);
/*
* Prototypes
*
* WAP WAP-LIB Interface
*
*/
#ifdef OPTION_MULTITHREAD
#define wap_lib_bind_callback _ENTITY_PREFIXED(wap_lib_bind_callback)
#define wap_lib_closeport_callback _ENTITY_PREFIXED(wap_lib_closeport_callback)
#define wap_lib_run_aus_callback _ENTITY_PREFIXED(wap_lib_run_aus_callback)
#define wap_lib_error_callback _ENTITY_PREFIXED(wap_lib_error_callback)
#endif
EXTERN void wap_lib_bind_callback(
UBYTE objectId,
UBYTE channelId,
UINT16 port,
BYTE errMsg
);
EXTERN void wap_lib_closeport_callback (
UBYTE objectId,
UBYTE channelId
);
EXTERN void wap_lib_run_aus_callback(void);
EXTERN void wap_lib_error_callback (
UCHAR objectId,
SHORT errNo,
UCHAR errorType
);
/*
* wrapping functions for dtilib primitives
*/
EXTERN const void pei_dti_dti_connect_cnf (
T_DTI2_CONNECT_CNF *dti_connect_cnf);
EXTERN const void pei_dti_dti_connect_ind (
T_DTI2_CONNECT_IND *dti_connect_ind);
EXTERN const void pei_dti_dti_disconnect_ind (
T_DTI2_DISCONNECT_IND *dti_disconnect_ind);
EXTERN const void pei_dti_dti_data_ind (
T_DTI2_DATA_IND *dti_data_ind);
EXTERN const void pei_dti_dti_ready_ind (
T_DTI2_READY_IND *dti_ready_ind);
#ifdef _SIMULATION_
EXTERN const void pei_dti_dti_data_test_ind (
T_DTI2_DATA_TEST_IND *dti_data_test_ind);
#endif /* _SIMULATION_ */
/*
* this function is called by DTILIB
*/
EXTERN void pei_sig_callback
(
U8 instance,
U8 interfac,
U8 channel,
U8 reason,
T_DTI2_DATA_IND *dti_data2_ind
);
/*
* these functions are called by pei_sig_callback
*/
EXTERN const void sig_dti_udp_connection_opened_ind();
EXTERN const void sig_dti_udp_connection_closed_ind();
EXTERN const void sig_dti_udp_tx_buffer_full_ind();
EXTERN const void sig_dti_udp_tx_buffer_ready_ind();
EXTERN const void sig_dti_udp_data_received_ind
(
T_DTI2_DATA_IND *dti_data_ind
);
/*
* Communication handles
*/
#ifdef OPTION_MULTITHREAD
#define hCommACI _ENTITY_PREFIXED(hCommACI)
#define hCommUDP _ENTITY_PREFIXED(hCommUDP)
#endif
EXTERN DTI_HANDLE wap_hDTI; /* DTI connection handle for DTI library */
EXTERN T_HANDLE hCommACI; /* ACI Communication */
EXTERN T_HANDLE hCommUDP; /* UDP Communication */
EXTERN T_HANDLE wap_handle;
#ifndef NCONFIG
#ifdef OPTION_MULTITHREAD
#define partab _ENTITY_PREFIXED(partab)
#endif
EXTERN KW_DATA partab[];
#endif
/* XXX check XXX
#ifndef _TMS470
#define Sprintf sprintf
#endif
*/
/*
* number of signals (max. signalNum which occurs in pei_signal)
*/
#define MAX_SIGNALS 0
/* #if defined (NEW_FRAME) */
/* typedef ULONG UINT32; */
/* #endif */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -