diff gsm-fw/g23m-aci/aci/psa_ss.h @ 775:eedbf248bac0

gsm-fw/g23m-aci subtree: initial import from LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 12 Oct 2014 01:45:14 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/g23m-aci/aci/psa_ss.h	Sun Oct 12 01:45:14 2014 +0000
@@ -0,0 +1,209 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  GSM-PS (6147)
+|  Modul   :  PSA_SS
++----------------------------------------------------------------------------- 
+|  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 :  Definitions for the protocol stack adapter 
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef PSA_SS_H
+#define PSA_SS_H
+
+/*==== CONSTANTS ==================================================*/
+#define DEF_SS_VER     (0)        /* default SS version */
+
+#define MAX_SS_NR      (4)        /* maximum number of calls */
+#define TEST_STR_LEN  (80)        /* maximum length of test parameter string */
+
+#define NO_ENTRY      (-1)        /* not a valid entry */
+#define SS_NO_PRM     (0xFF)      /* parameter not present */
+                                  
+typedef enum                      /* service status */
+{                                 
+  NO_VLD_SSS = 0,                 /* not a valid service status */
+  SSS_IDL,                         /* service idle */
+  SSS_ACT,                         /* service active */
+  SSS_PWD_REQ,                     /* service password request */
+  SSS_PWD_SND,                     /* service password sent */
+  SSS_PWD_VRF                      /* service password verified */
+} T_SS_CLST;                      
+                                  
+typedef enum                      
+{                                 
+  NO_VLD_ST = 0,                  /* not a valid service type */
+  ST_MOS,                         /* mobile originated service */
+  ST_MTS                          /* mobile terminated service */
+} T_SS_SSTP;                      
+                                  
+typedef enum                      
+{                                 
+  NO_VLD_SSF = 0,                 /* not a valid SS failure type */
+  SSF_SS_ERR,                     /* SS error component */
+  SSF_GEN_PRB,                    /* SS reject comp. general problem */
+  SSF_INV_PRB,                    /* SS reject comp. invoke problem */
+  SSF_ERR_PRB,                    /* SS reject comp. return error problem */
+  SSF_RSL_PRB,                    /* SS reject comp. return result problem */
+  SSF_CCD_DEC,                    /* CCD decode error */
+  SSF_SS_ENT                      /* SS entity error */
+} T_SS_FAIL;                      
+                                  
+typedef enum                      /* PSA notification events */
+{
+  SS_NTF_NEW_TRN = 0,             /* new SS transaction started */
+  SS_NTF_END_TRN,                 /* existing SS transaction stopped */
+  SS_NTF_CNT_TRN,                 /* existing transaction continued */
+  SS_NTF_TRN_FAIL,                /* SS transaction failed */
+  SS_NTF_TST,                     /* for test purposes only */
+  SS_NTF_MAX                      /* maximum SS notification event */
+
+} T_SS_NTF;
+
+typedef enum
+{
+  CT_INV      = 0xA1,     /* invoke component type */
+  CT_RET_RSLT,            /* return result component type */
+  CT_RET_ERR,             /* return error component type */
+  CT_RET_REJ,             /* reject component type */
+
+  CT_MAX
+
+} T_CMP_TYPE;
+
+typedef enum
+{
+  BS_BEAR_NONE        = 0xFF, /* no valid bearer service */
+  BS_BEAR_SRV         = 0x82, /* bearer service type */
+  BS_TELE_SRV,                /* teleservice type */
+
+  BS_TP_MAX
+
+} T_BS_TYPE;
+
+
+/*==== TYPES ======================================================*/
+typedef struct SSServiceTabl
+{
+  BOOL              ntryUsdFlg;           /* flags this entry as used */
+  UBYTE             ti;                   /* transaction identifier */
+  UBYTE             iId;                  /* invoke id */
+  UBYTE             srvStat;              /* service status */
+  UBYTE             srvType;              /* type of service */
+  UBYTE             SSver;                /* supplementary service version */
+  UBYTE             orgOPC;               /* originated SS operation code */
+  UBYTE             opCode;               /* SS operation code */
+  UBYTE             ssCode;               /* SS service code */
+  USHORT            ClassType;            /* holds class queried by user */
+  UBYTE             ussdReqFlg;           /* flags USSD request */
+  UBYTE             ussd_operation;       /* flags an on-going USSD operation */
+  UBYTE             failType;             /* type of SS failure */
+  USHORT            entCs;                /* entity failure cause */
+  UBYTE             rejPrb;               /* reject problem code */
+  UBYTE             errCd;                /* return error code */
+  UBYTE             errPrms;               /* Parameters associated with the Error */
+  T_ACI_AT_CMD      curCmd;               /* current command executing */
+  T_OWN             srvOwn;               /* owner of service */
+  T_MNSS_BEGIN_REQ *save_prim;            /* address where pending trans is memorized */
+} T_SS_SRV_TBL;
+
+
+typedef struct SSShrdParm
+{
+  T_SS_SRV_TBL stb[MAX_SS_NR];      /* service table for max. nr of services */
+  UBYTE iIdNxt;                     /* next available invoke id */
+  SHORT nrOfMOS;                    /* number of current MOS's */
+  SHORT nrOfMTS;                    /* number of current MTS's */
+  UBYTE cmpType;                    /* component type */
+  UBYTE ussdLen;                    /* length of ussd string */
+  UBYTE ussdDcs;                    /* DCS of ussd string */
+  UBYTE ussdBuf[MAX_USSD_STRING];   /* buffers ussd string */
+  USHORT mltyTrnFlg;                 /* holds id flag of pending transactions */
+} T_SS_SHRD_PRM;
+
+/*==== PROTOTYPES =================================================*/
+
+void  psaSS_Init ( void );
+
+EXTERN SHORT  psaSS_NewTrns  ( SHORT sId );
+EXTERN SHORT  psaSS_EndTrns  ( SHORT sId );
+EXTERN SHORT  psaSS_CntTrns  ( SHORT sId );
+
+EXTERN void  psaSS_asmEmptyRslt     ( void );
+EXTERN void  psaSS_asmErrorRslt     ( SHORT sId, UBYTE err );
+EXTERN void  psaSS_asmInterrogateSS ( UBYTE ssCode, UBYTE bscSrvType, 
+                                      UBYTE bscSrv);
+EXTERN void  psaSS_asmRegisterSS    ( UBYTE ssCode, UBYTE bscSrvType, 
+                                      UBYTE bscSrv, UBYTE ton, UBYTE npi, 
+                                      UBYTE *num, UBYTE tos, UBYTE oe,
+                                      UBYTE *sub, UBYTE time );
+EXTERN void  psaSS_asmEraseSS       ( UBYTE ssCode, UBYTE bscSrvType, 
+                                      UBYTE bscSrv );
+EXTERN void  psaSS_asmActivateSS    ( UBYTE ssCode, UBYTE bscSrvType, 
+                                      UBYTE bscSrv );
+EXTERN void  psaSS_asmDeactivateSS  ( UBYTE ssCode, UBYTE bscSrvType, 
+                                      UBYTE bscSrv );
+EXTERN void  psaSS_asmRegisterPWD   ( UBYTE ssCode );
+EXTERN void  psaSS_asmVerifyPWD     ( UBYTE *pwd );
+EXTERN void  psaSS_asmProcUSSDReq   ( UBYTE dcs, UBYTE *ussd, UBYTE len );
+EXTERN void  psaSS_asmCnfUSSDReq    ( UBYTE dcs, UBYTE *ussd, UBYTE len );
+EXTERN void  psaSS_asmCnfUSSDNtfy   ( void );
+EXTERN BOOL  psaSS_asmUSSDProt1     ( SHORT sId );
+#if 0  /* For further study, so not yet used */
+EXTERN void  psaSS_asmActivateCCBS  ( void );
+#endif
+EXTERN void  psaSS_asmDeactivateCCBS( UBYTE idx );
+EXTERN SHORT psaSS_stbNewEntry      ( void );
+EXTERN SHORT psaSS_stbFindTi        ( UBYTE ti2Find );
+EXTERN SHORT psaSS_stbFindInvId     ( UBYTE invId2Find );
+EXTERN void  psaSS_stbDump          ( void );
+EXTERN void  psaSS_chngSrvTypCnt    ( SHORT sId, SHORT dlt );
+EXTERN SHORT psaSS_getMOSTi         ( SHORT sId );
+EXTERN void  psaSS_retMOSTi         ( SHORT sId );
+EXTERN SHORT psaSS_stbFindUssdReq   ( void );
+EXTERN SHORT psaSS_stbFindActSrv    ( SHORT sId );
+EXTERN void  psaSS_InitStbNtry      ( SHORT idx );
+EXTERN void  psaSS_DumpFIE          ( T_fac_inf *fie );
+EXTERN void  psaSS_dasmInvokeCmp    ( SHORT sId,
+                                      T_inv_comp *invCmp );
+EXTERN void  psaSS_dasmResultCmp    ( SHORT sId, 
+                                      T_res_comp *resCmp );
+EXTERN T_ACI_RETURN  psaSS_dasmErrorCmp     ( SHORT sId,
+                                              T_err_comp *errCmp, 
+                                              BOOL is_fac_ussd  );
+EXTERN T_ACI_RETURN  psaSS_dasmRejectCmp    ( SHORT sId, 
+                                              T_rej_comp *rejCmp, 
+                                              BOOL is_fac_ussd  );
+EXTERN T_ACI_RETURN  psaSS_ss_end_ind       ( SHORT sId, 
+                                              T_COMPONENT *comp, 
+                                              BOOL is_fac_ussd );
+EXTERN SHORT psaSS_GetPendingTrn    ( void );
+EXTERN void  psaSS_KillAllPendingTrn( void );
+
+
+/*==== EXPORT =====================================================*/
+
+#ifdef PSA_SSF_C
+
+GLOBAL T_SS_SHRD_PRM ssShrdPrm;
+
+#else
+
+EXTERN T_SS_SHRD_PRM ssShrdPrm;
+
+#endif /* PSA_SSF_C */
+
+ 
+#endif /* PSA_SS_H */
+
+/*==== EOF =======================================================*/