view cdg-hybrid/cdginc/p_gmmrr.val @ 268:f2e52cab0a73

abb_inth.c: check all interrupt causes, not just one The original code used if - else if - else if etc constructs, thus the first detected interrupt was the only one handled. However, Iota ITSTATREG is a clear-on-read register, thus if we only handle the first detected interrupt and skip checking the others, then the other interrupts will be lost, if more than one interrupt happened to occur in one ABB interrupt handling cycle - a form of rare race condition. Change the code to check all interrupts that were read in this cycle.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 13 Jun 2021 18:17:53 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_gmmrr.val                                                    |
| SOURCE  : "sap\gmmrr.pdf"                                                |
| LastModified : "2003-09-02"                                              |
| IdAndVersion : "8441.101.03.025"                                         |
| SrcFileTime  : "Thu Nov 29 09:42:28 2007"                                |
| Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016                   |
|           !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!!                |
+--------------------------------------------------------------------------+
*/

/* PRAGMAS
 * PREFIX                 : NONE
 * COMPATIBILITY_DEFINES  : NO (require PREFIX)
 * ALWAYS_ENUM_IN_VAL_FILE: NO
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: NO
 */


#ifndef P_GMMRR_VAL
#define P_GMMRR_VAL


#define CDG_ENTER__P_GMMRR_VAL

#define CDG_ENTER__FILENAME _P_GMMRR_VAL
#define CDG_ENTER__P_GMMRR_VAL__FILE_TYPE CDGINC
#define CDG_ENTER__P_GMMRR_VAL__LAST_MODIFIED _2003_09_02
#define CDG_ENTER__P_GMMRR_VAL__ID_AND_VERSION _8441_101_03_025

#define CDG_ENTER__P_GMMRR_VAL__SRC_FILE_TIME _Thu_Nov_29_09_42_28_2007

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_GMMRR_VAL

#undef CDG_ENTER__FILENAME


/*
 * Value constants for VAL_old_tlli
 */
#define GMMRR_TLLI_INVALID             (0xffffffff)/* TLLI invalid (see GSM 3.03)    */

/*
 * Value constants for VAL_service_state
 */
#define GMMRR_SERVICE_NONE             (0x0)      /* No service                     */
#define GMMRR_SERVICE_LIMITED          (0x1)      /* Limited service                */
#define GMMRR_SERVICE_FULL             (0x2)      /* Full service                   */
#define GMMRR_SERVICE_UNKNOWN          (0x3)      /* Service unknown                */

/*
 * Value constants for VAL_net_mode
 */
#define GMMRR_NET_MODE_I               (0x0)      /* Network operation mode I, only one Paging channel for both: PCCCH or  CCCH */
#define GMMRR_NET_MODE_II              (0x1)      /* Network operation mode II, Paging only on CCCH */
#define GMMRR_NET_MODE_III             (0x2)      /* Network operation mode III, Paging on CCCH for CS and either on CCCH or on PCCCH for GPRS, if PCCH allocated in the cell */

/*
 * Value constants for VAL_standby_cause
 */
#define GMMRR_TIMEOUT_OF_T3314         (0x1)      /* GMM enters state STANDBY because of timeout of READY timer T3314 */
#define GMMRR_RESET_OF_T3314           (0x2)      /* GMM enters state STANDBY because GMM receives a message witrh timer_value 0 */
#define GMMRR_FORCE_TO_STANDBY         (0x3)      /* GMM receives a message indicating FORCE TO STANDBY */

/*
 * Value constants for VAL_old_ptmsi
 */
#define GMMRR_TMSI_INVALID             (0xffffffff)/* P-TMSI or TMSI invalid (see GSM 3.03) */

/*
 * Value constants for VAL_v_mid
 */
#define V_MID_NOT_PRES                 (0x0)      /* not present                    */
#define V_MID_PRES                     (0x1)      /* present                        */

/*
 * Value constants for VAL_id_type
 */
#define TYPE_NO_ID                     (0x0)      /* no identity                    */
#define TYPE_IMSI                      (0x1)      /* IMSI                           */
#define TYPE_TMSI                      (0x4)      /* TMSI                           */

/*
 * Value constants for VAL_response
 */
#define VAL_RESPONSE___DEF             (0x0)      /* The call is confirmed          */
#define GMMRR_CS_PAGE_REJ              (0x0)      /* The call is rejected           */
#define GMMRR_CS_PAGE_CNF              (0x1)      /* The call is confirmed          */

/*
 * Value constants for VAL_page_id
 */
#define VAL_PAGE_ID___DEF              (0x0)      /* P-TMSI                         */
#define GMMRR_IMSI                     (0x0)      /* IMSI                           */
#define GMMRR_PTMSI                    (0x1)      /* P-TMSI                         */

/*
 * Value constants for VAL_mobile_class
 */
#define VAL_MOBILE_CLASS___DEF         (0x0)      /* Combined GPRS attach           */
#define GMMRR_CLASS_A                  (0x1)      /* Combined GPRS                  */
#define GMMRR_CLASS_B                  (0x2)      /* GPRS and GSM                   */
#define GMMRR_CLASS_BC                 (0x3)      /* Combined GPRS if possible, otherwise GSM only */
#define GMMRR_CLASS_BG                 (0x4)      /* Combined GPRS if possible, otherwise GPRS only */
#define GMMRR_CLASS_CC                 (0x5)      /* reserved. (GSM-only)           */
#define GMMRR_CLASS_CG                 (0x6)      /* GPRS-only                      */

/*
 * Value constants for VAL_susp_gprs
 */
#define VAL_SUSP_GPRS___DEF            (0x0)      /* Suspend GPRS                   */
#define GMMRR_NOT_SUSP_GPRS            (0x0)      /* Do not suspend GPRS            */
#define GMMRR_SUSP_GPRS                (0x1)      /* Suspend GPRS                   */

/*
 * Value constants for VAL_split_pg_cycle
 */
#define GMMRR_NO_DRX                   (0x2c0)    /* Non DRX mode                   */

/*
 * Value constants for VAL_lac
 */
#define VAL_LAC___DEF                  (0x0)      /* lac                            */
#define GMMRR_LA_INVALID               (0xfffe)   /* la invalid                     */

/*
 * Value constants for VAL_rac
 */
#define GMMRR_RAC_INVALID              (0xff)     /* routing area code invalid      */

/*
 * Value constants for VAL_gmmrr_non_drx_timer
 */
#define DRX_NO                         (0x0)      /* no non-DRX mode after transfer state */
#define DRX_1_SEC                      (0x1)      /* max. 1 sec non-DRX mode after transfer */
#define DRX_2_SEC                      (0x2)      /* max. 2 sec non-DRX mode after transfer */
#define DRX_4_SEC                      (0x3)      /* max. 4 sec non-DRX mode after transfer */
#define DRX_8_SEC                      (0x4)      /* max. 8 sec non-DRX mode after transfer */
#define DRX_16_SEC                     (0x5)      /* max. 16 sec non-DRX mode after transfer */
#define DRX_32_SEC                     (0x6)      /* max. 32 sec non-DRX mode after transfer */
#define DRX_64_SEC                     (0x7)      /* max. 64 sec non-DRX mode after transfer */

/*
 * Value constants for VAL_gmmrr_susp_cause
 */
#define GMMRR_ABNORMAL_RELEASE         (0x0)      /* GRR should release immediately the running TBF */
#define GMMRR_NORMAL_RELEASE           (0x1)      /* GRR should wait until TBF is released */

/*
 * Value constants for VAL_spgc_ccch_supp
 */
#define GMMRR_SPGC_CCCH_SUPP_NO        (0x0)      /* Split paging cycle on CCCH is not supported by the mobile station */
#define GMMRR_SPGC_CCCH_SUPP_YES       (0x1)      /* Split paging cycle on CCCH is supported by the mobile station */

/*
 * Value constants for VAL_cu_cause
 */
#define GMMRR_RA_DEFAULT               (0x0)      /* GRR should not perform Cell Update Access */
#define GMMRR_RA_CU                    (0x1)      /* GRR should perforn Random Access with cause Cell Update */

/*
 * Value constants for VAL_rt
 */
#define RT_GSM                         (0x0)      /* GSM                            */
#define RT_GPRS                        (0x1)      /* GSM/GPRS                       */
#define RT_EDGE                        (0x2)      /* GSM/GPRS/EDGE                  */
#define RT_UMTS_FDD                    (0x3)      /* UMTS FDD                       */

/*
 * user defined constants
 */
#define MAX_DIGITS                     (0x10)     
#define SIZE_MCC                       (0x3)      
#define SIZE_MNC                       (0x3)      

#include "CDG_LEAVE.h"


#endif