FreeCalypso > hg > fc-magnetite
diff src/aci2/aci/psa_sms.c @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/aci2/aci/psa_sms.c Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,192 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : ++----------------------------------------------------------------------------- +| 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 : This module defines the signalling functions of the +| protocol stack adapter for the registration part of +| GPRS session management. ++----------------------------------------------------------------------------- +*/ + +#ifdef GPRS + +#ifndef PSA_SMS_C +#define PSA_SMS_C +#endif + +#include "aci_all.h" +/*==== INCLUDES ===================================================*/ +#include "dti.h" /* functionality of the dti library */ +#include "aci_cmh.h" +#include "ati_cmd.h" +#include "aci_cmd.h" +#include "aci.h" +#include "psa.h" + +#include "dti_conn_mng.h" +#include "dti_cntrl_mng.h" + +#include "gaci_cmh.h" +#include "psa_gmm.h" +#include "psa_sm.h" +#include "cmh.h" +#include "gaci.h" +#include "gaci_cmh.h" +#include "cmh_sm.h" + +/*==== CONSTANTS ==================================================*/ + + +/*==== TYPES ======================================================*/ + + +/*==== EXPORT =====================================================*/ + + +/*==== VARIABLES ==================================================*/ + + +/*==== FUNCTIONS ==================================================*/ + +/* ++-------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : PSA_SMS | +| STATE : finished ROUTINE : psaSM_ActivateReq | ++-------------------------------------------------------------------+ + + PURPOSE : MS initiates a PDP context activation + +*/ +GLOBAL void psaSM_ActivateReq ( SHORT cid, + UBYTE ppp_hc, + UBYTE msid, + UBYTE hcomp, + ULONG dti_linkid, + ULONG dti_neighbor, + UBYTE dti_direction ) +{ + USHORT PCO_length = pdp_context[cid - 1].user_pco.len << 3; + + TRACE_FUNCTION ("psaSM_ActivateReq()"); + +/* + *------------------------------------------------------------------- + * create and send primitive for context activation + *------------------------------------------------------------------- + */ + + { + PALLOC_SDU ( smreg_pdp_activate_req, SMREG_PDP_ACTIVATE_REQ, PCO_length ); + + smreg_pdp_activate_req -> direc = smShrdPrm.direc; + smreg_pdp_activate_req -> ppp_hc = ppp_hc; + smreg_pdp_activate_req -> msid = msid; + smreg_pdp_activate_req -> hcomp = hcomp; + smreg_pdp_activate_req -> dcomp = (1 EQ cmhSM_Get_d_comp()) ? + SMREG_COMP_BOTH_DIRECT: SMREG_COMP_NEITHER_DIRECT; + + smreg_pdp_activate_req -> pdp_type = cmhSM_Get_pdp_type(); + smreg_pdp_activate_req -> smreg_nsapi = pdp_context[cid - 1].nsapi; + smreg_pdp_activate_req -> smreg_ti = gprs_call_table[current_gprs_ct_index].sm_ind.smreg_ti; + + + cmhSM_Get_QOS ( &smreg_pdp_activate_req -> smreg_qos ); + cmhSM_Get_QOS_min ( &smreg_pdp_activate_req -> smreg_min_qos ); + cmhSM_Get_pdp_address ( &smreg_pdp_activate_req -> pdp_address ); + cmhSM_Get_smreg_apn ( &smreg_pdp_activate_req -> smreg_apn ); + + smreg_pdp_activate_req -> dti_linkid = dti_linkid; + smreg_pdp_activate_req -> dti_neighbor = dti_neighbor; + smreg_pdp_activate_req -> dti_direction = dti_direction; + + smreg_pdp_activate_req -> sdu.l_buf = PCO_length; + smreg_pdp_activate_req -> sdu.o_buf = 0; + + if ( PCO_length ) + { + memcpy(&smreg_pdp_activate_req -> sdu.buf, + pdp_context[cid - 1].user_pco.pco, + pdp_context[cid - 1].user_pco.len); + } + + psaGMM_NetworkRegistrationStatus(SMREG_PDP_ACTIVATE_REQ, smreg_pdp_activate_req); + + PSEND (hCommSM, smreg_pdp_activate_req); + } +} + + +/* ++-------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : PSA_SMS | +| STATE : finished ROUTINE : psaSM_PDP_Deactivate | ++-------------------------------------------------------------------+ + + PURPOSE : MS initiates a PDP context deactivation + +*/ +GLOBAL void psaSM_PDP_Deactivate ( USHORT nsapi_set, UBYTE smreg_local ) +{ + + TRACE_FUNCTION ("psaSM_PDP_Deactivate()"); + +/* + *------------------------------------------------------------------- + * create and send primitive for context deactivation + *------------------------------------------------------------------- + */ + { + PALLOC (smreg_pdp_deactivate_req, SMREG_PDP_DEACTIVATE_REQ); + + smreg_pdp_deactivate_req -> nsapi_set = nsapi_set; + smreg_pdp_deactivate_req -> smreg_local = smreg_local; + + PSEND (hCommSM, smreg_pdp_deactivate_req); + } +} + +/* ++-------------------------------------------------------------------+ +| PROJECT : GPRS (8441) MODULE : PSA_SMS | +| STATE : finished ROUTINE : psaSM_PDP_No_activate | ++-------------------------------------------------------------------+ + + PURPOSE : GACI is not able to set up another context + +*/ +GLOBAL void psaSM_PDP_No_activate ( UBYTE smreg_ti, USHORT smreg_cause ) +{ + + TRACE_FUNCTION ("psaSM_PDP_No_activate()"); + +/* + *------------------------------------------------------------------- + * create and send primitive for rejection + * the network requested context activation + *------------------------------------------------------------------- + */ + { + PALLOC (smreg_pdp_activate_res, SMREG_PDP_ACTIVATE_RES); + + smreg_pdp_activate_res -> smreg_ti = smreg_ti; + smreg_pdp_activate_res -> smreg_cause = smreg_cause; + + PSEND (hCommSM, smreg_pdp_activate_res); + } +} + +#endif /* GPRS */ +/*==== EOF ========================================================*/ +