⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wap.h

📁 是一个手机功能的模拟程序
💻 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 + -