FreeCalypso > hg > fc-tourmaline
diff src/g23m-aci/aci/psa_tcpip.h @ 1:fa8dc04885d8
src/g23m-*: import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:25:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-aci/aci/psa_tcpip.h Fri Oct 16 06:25:50 2020 +0000 @@ -0,0 +1,183 @@ +/* ++----------------------------------------------------------------------------- +| Project : WAPoverGPRS +| Modul : PSA_TPCIP ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, 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 +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : TCP/IP-related definitions and declarations for the ACI ++----------------------------------------------------------------------------- +*/ + +#ifndef PSA_TCPIP_H +#define PSA_TCPIP_H + +#include "wap_aci.h" + +/*==== CONSTANTS ==================================================*/ + +/* Option bitflag constants for the activation of TCP/IP components; + * this is meant to be sufficient even for times when there is no + * longer only IPv4 and UDP. These constants are meant to be ORed to + * the actual option value, which is then passed to + * psaTCPIP_Activate(). + */ +#define TCPIP_ACT_OPTION_V4 0x01 /* Activate IPv4. */ +#define TCPIP_ACT_OPTION_V6 0x02 /* Activate IPv6. (Not yet implemented) */ +#define TCPIP_ACT_OPTION_UDP 0x04 /* Activate UDP. */ +#define TCPIP_ACT_OPTION_TCPIP 0x08 /* Activate TCPIP. */ +#define TCPIP_ACT_OPTION_FU1 0x10 /* Reserved for future use. */ +#define TCPIP_ACT_OPTION_FU2 0x20 /* Reserved for future use. */ +#define TCPIP_ACT_OPTION_FU3 0x40 /* Reserved for future use. */ +#define TCPIP_ACT_OPTION_FU4 0x80 /* Reserved for future use. */ + + +#define TCPIP_CONNECTION_TYPE_UNKNOWN 0x00 +#define TCPIP_CONNECTION_TYPE_GPRS_WAP 0x01 +#define TCPIP_CONNECTION_TYPE_CSD_WAP 0x02 +#define TCPIP_CONNECTION_TYPE_GPRS_SAT 0x04 /* SAT class c/e */ +#define TCPIP_CONNECTION_TYPE_CSD_SAT 0x08 /* SAT class c/e */ + +#define TCPIP_CONNECTION_BUILDUP_UNKNOWN 0x00 +#define TCPIP_CONNECTION_BUILDUP_UP 0x01 +#define TCPIP_CONNECTION_BUILDUP_DOWN 0x02 + + +/*==== TYPES ======================================================*/ + +/* Shared Parameters for TCP/IP-related stuff. There should be more in + * here, for instance the wap_state, but to make changes as small as + * possible at the moment, this is left as it is for now. The handling + * of TCP/IP activation state will have to be changed in the future + * anyway. [ni 2001-09-28] + */ +typedef struct tcpipShrdPrm +{ + S8 src_id ; + UBYTE connection_type; /* distinction of GPRS or CSD connection */ + UBYTE connection_buildup; /* distinction of connection build up or + build down */ + UBYTE options ; /* Any ORed combination of the + * IP_ACT_OPTION_* values above with + * obvious semantics. */ + SHORT wap_call_id ; /* ID of WAP call (if any). */ + UBYTE ipaddr[16] ; /* Up to 16 bytes if IP address. */ + UBYTE peer_addr[16] ; /* Address of peer. */ + UBYTE dns1[16]; /* Primary dns server address */ + UBYTE dns2[16]; /* Second dns server address */ + short mtu ; /* Size of maximum transfer unit. */ + void (*callback_function)(T_ACI_RETURN result) ; + /* Function to call after the current + * operation is completed. */ +} T_TCPIP_SHRD_PRM; + +/*==== PROTOTYPES =================================================*/ +EXTERN char* wap_state_to_string(T_ACI_WAP_STATES wap_state); + +/* Initialize TCP/IP psa variables. + */ +void psaTCPIP_Init(void) ; + +/* Activate TCP/IP-related entities. + * Parameters: + * src_id + * dti_id DTI channel to use. + * options Any ORed combination of the IP_ACT_OPTION_* values + * above with obvious semantics. + * callback_function Function to call after activation is completed; + * result can be AT_FAIL or AT_CMPL. May be null. + */ +void psaTCPIP_Activate(UBYTE src_id, + UBYTE dti_id, + SHORT wap_call_id, + UBYTE options, + UBYTE connection_type, + void (*callback_function)(T_ACI_RETURN result)) ; + +/* Configure TCP/IP-related entities. + * Parameters: + * ip_address IP address to use when called for a circuit-switched + * data (i. e. PPP) connection. A pointer to an + * array of bytes containing the IP address in + * network order. The address is assumed as being + * 4 or 16 bytes long, depending on whether IPv6 + * is used. The ``pdp_address'' value returned by + * SMREG_PDP_ACTIVATE_CNF can be used here + * directly. Must be null when called for IP over + * GPRS. + * pdp_addrp Pointer to PDP address to use when called for IP + * over GPRS. Must be null when called for IP + * over CSD/PPP. + * peer_address IP address of the peer, or a null pointer to indicate + * the peer address is unknown. Only valid with IP over PPP. + * mtu Size of the maximum transfer unit or zero if unknown. + * callback_function Function to call after configuration is completed; + * result can be AT_FAIL or AT_CMPL. May be null. + */ +void psaTCPIP_Configure(UBYTE *ip_address, + void *pdp_addrp, + UBYTE *peer_address, + UBYTE *dns1, + UBYTE *dns2, + short mtu, + void (*callback_function)(T_ACI_RETURN result)) ; + +/* Deactivate TCP/IP-related entities. + * Parameters: + * callback_function Function to call after deactivation is completed; + * result can be AT_FAIL or AT_CMPL. May be null. + */ +void psaTCPIP_Deactivate(void (*callback_function)(T_ACI_RETURN result)) ; + + +/* UDP/IP activation/configuration/deactivation dipatcher function. */ +void psaUDPIP_config_dispatch(void); + +/* TCP/IP activation/configuration/deactivation dipatcher function. + */ +void psaTCPIP_config_dispatch(void); + + +/* TCP/IP activation callback for circuit-switched data. + */ +void psaTCPIP_act_csd_callback(T_ACI_RETURN result) ; + + +/* TCP/IP configuration callback for circuit-switched data. + */ +void psaTCPIP_conf_csd_callback(T_ACI_RETURN result) ; + + +/* TCP/IP deactivation callback for circuit-switched data. + */ +void psaTCPIP_deact_csd_callback(T_ACI_RETURN result) ; + + +ULONG psaTCPIP_bytes2ipv4addr(UBYTE *ip_address) ; + +void psaTCPIP_get_own_ipaddr(UBYTE *ipaddr); + +/*==== EXPORT =====================================================*/ + +#ifdef PSA_TCPIPF_C + +GLOBAL T_TCPIP_SHRD_PRM tcpipShrdPrm; + +#else + +EXTERN T_TCPIP_SHRD_PRM tcpipShrdPrm; + +#endif /* PSA_TCPIPF_C */ + +#endif /* PSA_TCPIP_H */ + +/*==== EOF =======================================================*/