FreeCalypso > hg > fc-magnetite
diff src/g23m-gprs/sm/sm_upm_output_handler.c @ 183:219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 13 Oct 2016 04:24:13 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-gprs/sm/sm_upm_output_handler.c Thu Oct 13 04:24:13 2016 +0000 @@ -0,0 +1,159 @@ +/*---------------------------------------------------------------------------- +| Project : 3G PS +| Module : SM ++----------------------------------------------------------------------------- +| Copyright 2003 Texas Instruments. +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments . +| 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. ++----------------------------------------------------------------------------- +| Purpose: Output functions for primitives from SM to the UPM entity. +| For design details, see: +| 8010.908 SM Detailed Specification ++---------------------------------------------------------------------------*/ + +/*==== DECLARATION CONTROL =================================================*/ + +/*==== INCLUDES ============================================================*/ + +#include "sm.h" + +#include "sm_upm_output_handler.h" +#include "sm_qos.h" + +/*==== CONSTS ===============================================================*/ + +/*==== TYPES ================================================================*/ + +/*==== LOCALS ===============================================================*/ + +/*==== PUBLIC FUNCTIONS =====================================================*/ + +/* ++------------------------------------------------------------------------------ +| Function : send_sm_activate_started_ind ++------------------------------------------------------------------------------ +| Description : Allocate, pack and send SM_ACTIVATE_STARTED_IND primitive. +| +| Parameters : context - Pointer to context data ++------------------------------------------------------------------------------ +*/ +void send_sm_activate_started_ind(struct T_SM_CONTEXT_DATA *context) +{ + (void)TRACE_FUNCTION("send_sm_activate_started_ind"); + + { + PALLOC(prim, SM_ACTIVATE_STARTED_IND); + + /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + prim->nsapi = context->nsapi; + prim->rat = sm_get_current_rat(); + + (void)PSEND(hCommUPM, prim); + /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + } +} + +/* ++------------------------------------------------------------------------------ +| Function : send_sm_activate_ind ++------------------------------------------------------------------------------ +| Description : Allocate, pack and send SM_ACTIVATE_IND primitive. +| +| Parameters : context - Pointer to context data ++------------------------------------------------------------------------------ +*/ +void send_sm_activate_ind(struct T_SM_CONTEXT_DATA *context) +{ + (void)TRACE_FUNCTION("send_sm_activate_ind"); + + { + PALLOC(prim, SM_ACTIVATE_IND); + + /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + prim->nsapi = context->nsapi; + prim->sapi = context->sapi; + prim->radio_prio = context->radio_prio; + if (sm_is_pfi_included(context)) { + prim->pkt_flow_id = context->pfi; + } else { + prim->pkt_flow_id = (U8)PS_PKT_FLOW_ID_NOT_PRES; + } + sm_qos_copy_from_sm(&prim->qos, &context->accepted_qos, &prim->ctrl_qos); + + if ((context->flags & SM_CONTEXT_FLAG_COMP_PARAMS) != (U8)0) { + prim->v_comp_params = (U8)TRUE; + memcpy(&prim->comp_params, &context->comp_params, sizeof(T_NAS_comp_params)); + } else { + prim->v_comp_params = (U8)FALSE; + } + + (void)PSEND(hCommUPM, prim); + /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + } +} + +/* ++------------------------------------------------------------------------------ +| Function : send_sm_deactivate_ind ++------------------------------------------------------------------------------ +| Description : Allocate, pack and send SM_DEACTIVATE_IND primitive. +| +| Parameters : context - Pointer to context data ++------------------------------------------------------------------------------ +*/ +void send_sm_deactivate_ind(U16 nsapi_set, T_PS_rel_ind rel_ind) +{ + (void)TRACE_FUNCTION("send_sm_deactivate_ind"); + + { + PALLOC(prim, SM_DEACTIVATE_IND); + + /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + prim->nsapi_set = nsapi_set; + prim->rel_ind = (U8)rel_ind; + + (void)PSEND(hCommUPM, prim); + /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + } +} + +/* ++------------------------------------------------------------------------------ +| Function : send_sm_modify_ind ++------------------------------------------------------------------------------ +| Description : Allocate, pack and send SM_MODIFY_IND primitive. +| +| Parameters : context - Pointer to context data ++------------------------------------------------------------------------------ +*/ +void send_sm_modify_ind(struct T_SM_CONTEXT_DATA *context) +{ + (void)TRACE_FUNCTION("send_sm_modify_ind"); + + { + PALLOC(prim, SM_MODIFY_IND); + + /*lint -e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + prim->nsapi = context->nsapi; + prim->sapi = context->sapi; + prim->radio_prio = context->radio_prio; + if (sm_is_pfi_included(context)) { + prim->pkt_flow_id = context->pfi; + } else { + prim->pkt_flow_id = (U8)PS_PKT_FLOW_ID_NOT_PRES; + } + sm_qos_copy_from_sm(&prim->qos, &context->accepted_qos, &prim->ctrl_qos); + + (void)PSEND(hCommUPM, prim); + /*lint +e613 (Possible use of null pointer 'prim' in left argument to operator '->') */ + } +} + +/*==== END OF FILE ==========================================================*/