FreeCalypso > hg > freecalypso-citrine
diff g23m-gsm/mm/mm_fors.c @ 0:75a11d740a02
initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 09 Jun 2016 00:02:41 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/g23m-gsm/mm/mm_fors.c Thu Jun 09 00:02:41 2016 +0000 @@ -0,0 +1,255 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-PS (8410) +| Modul : MM_FORS ++----------------------------------------------------------------------------- +| 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 Modul defines the functions for the formatter +| capability of the module Mobility Managemant. ++----------------------------------------------------------------------------- +*/ + +#ifndef MM_FORS_C +#define MM_FORS_C + +#include "config.h" +#include "fixedconf.h" +#include "condat-features.h" + +#define ENTITY_MM + +/*==== INCLUDES ===================================================*/ +#if defined (NEW_FRAME) + +#include <string.h> +#include <stdlib.h> +#include <stddef.h> +#include "typedefs.h" +#include "pcm.h" +#include "pconst.cdg" +#include "mconst.cdg" +#include "message.h" +#include "ccdapi.h" +#include "vsi.h" +#include "custom.h" +#include "gsm.h" +#include "prim.h" +#include "cnf_mm.h" +#include "mon_mm.h" +#include "pei.h" +#include "tok.h" +#include "mm.h" + +#else + +#include <string.h> +#include <stdlib.h> +#include <stddef.h> +#include "stddefs.h" +#include "pcm.h" +#include "pconst.cdg" +#include "mconst.cdg" +#include "message.h" +#include "ccdapi.h" +#include "custom.h" +#include "gsm.h" +#include "prim.h" +#include "cnf_mm.h" +#include "mon_mm.h" +#include "vsi.h" +#include "pei.h" +#include "tok.h" +#include "mm.h" + +#endif + +/*==== EXPORT =====================================================*/ + +/*==== PRIVAT =====================================================*/ + +/*==== VARIABLES ==================================================*/ + +/*==== FUNCTIONS ==================================================*/ + +/* + * ------------------------------------------------------------------- + * SIGNAL Processing functions + * ------------------------------------------------------------------- + */ + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : MM_FOR | +| STATE : code ROUTINE : for_cm_message | ++--------------------------------------------------------------------+ + + PURPOSE : Process the signal cm_message. + +*/ + +GLOBAL void for_cm_message (T_RR_DATA_REQ *rr_data_req) +{ + TRACE_FUNCTION ("for_cm_message()"); + + TIMERSTOP (T3240); + + PSENDX (RR, rr_data_req); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : MM_FOR | +| STATE : code ROUTINE : for_data_req | ++--------------------------------------------------------------------+ + + PURPOSE : Process the signal data_req. + +*/ + +GLOBAL void for_data_req (USHORT bit_size_message) +{ + U8 *payload; + U16 length; +/* Implements Measure#32: Row 26,...,33 */ + PALLOC_SDU (data, RR_DATA_REQ, bit_size_message); + + TRACE_FUNCTION ("for_data_req()"); + + data->sdu.o_buf = ENCODE_OFFSET ; + + ccd_codeMsg (CCDENT_MM, + UPLINK, + (T_MSGBUF *) &data->sdu, + (UBYTE *) _decodedMsg, + NOT_PRESENT_8BIT); + + ccd_codeByte (data->sdu.buf, (USHORT)(data->sdu.o_buf - 8), 8, + PD_MM_TI_0); + data->sdu.l_buf += 8; + data->sdu.o_buf -= 8; + + payload = &(data->sdu.buf[0]); /* beginning of buffer */ + payload += (data->sdu.o_buf) >> 3; /* plus offset (bytes) */ + length = (data->sdu.l_buf) >> 3; /* length (bytes, bits / 8) */ + +/* Implements Measure#32: Row 26,...,33 */ + switch ( _decodedMsg [0] ) + { + case U_AUTH_RES: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: AUTHENTICATION RESPONSE", + payload, + length); + break; + + case U_IDENT_RES: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: IDENTITY RESPONSE", + payload, + length); + break; + + case U_CM_REESTAB_REQ: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: CM RE-ESTABLISH REQUEST", + payload, + length); + break; + + case U_CM_SERV_ABORT: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: CM SERVICE ABORT", + payload, + length); + break; + + case U_CM_SERV_REQ: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: CM SERVICE REQUEST", + payload, + length); + break; + + case U_IMSI_DETACH_IND: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: IMSI DETACH INDICATION", + payload, + length); + break; + + case U_LOC_UPD_REQ: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: LOC UPDATE REQUEST", + payload, + length); + break; + + case U_TMSI_REALLOC_COMP: + TRACE_BINDUMP( mm_handle, + TC_USER4, + "Up Link: TMSI REALLOC COMPLETE", + payload, + length); + break; + + default: + break; + } + PSENDX (RR, data); +} + +/* ++--------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : MM_FOR | +| STATE : code ROUTINE : for_est_req | ++--------------------------------------------------------------------+ + + PURPOSE : Process the signal est_req. + +*/ + +GLOBAL void for_est_req (USHORT est_cause, USHORT bit_size_message) +{ + PALLOC_SDU ( establish_req, RR_ESTABLISH_REQ, bit_size_message); + + TRACE_FUNCTION ("for_est_req()"); + + TIMERSTOP (T3240); + + establish_req->sdu.o_buf = ENCODE_OFFSET; + + ccd_codeMsg (CCDENT_MM, + UPLINK, + (T_MSGBUF *) &establish_req->sdu, + (UBYTE *) _decodedMsg, + 0xff); + + ccd_codeByte (establish_req->sdu.buf, + (USHORT)(establish_req->sdu.o_buf - 8), + 8, + PD_MM_TI_0); + establish_req->sdu.l_buf += 8; + establish_req->sdu.o_buf -= 8; + establish_req->estcs = est_cause; + + PSENDX (RR, establish_req); +} + +#endif