view cdg-hybrid/cdginc/p_mmcm.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_mmcm.val                                                     |
| SOURCE  : "sap\mmcm.pdf"                                                 |
| LastModified : "2004-02-12"                                              |
| IdAndVersion : "6147.104.97.103"                                         |
| SrcFileTime  : "Thu Nov 29 09:45:56 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                 : MMCM
 * COMPATIBILITY_DEFINES  : NO
 * ALWAYS_ENUM_IN_VAL_FILE: NO
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: NO
 */


#ifndef P_MMCM_VAL
#define P_MMCM_VAL


#define CDG_ENTER__P_MMCM_VAL

#define CDG_ENTER__FILENAME _P_MMCM_VAL
#define CDG_ENTER__P_MMCM_VAL__FILE_TYPE CDGINC
#define CDG_ENTER__P_MMCM_VAL__LAST_MODIFIED _2004_02_12
#define CDG_ENTER__P_MMCM_VAL__ID_AND_VERSION _6147_104_97_103

#define CDG_ENTER__P_MMCM_VAL__SRC_FILE_TIME _Thu_Nov_29_09_45_56_2007

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_MMCM_VAL

#undef CDG_ENTER__FILENAME


/*
 * Value constants for VAL_ch_mode
 */
#define MMCM_CHM_SIG_ONLY              (0x0)      /* signalling only                */
#define MMCM_CHM_SPEECH                (0x1)      /* speech full rate or half rate version 1 */
#define MMCM_CHM_SPEECH_V2             (0x21)     /* speech full rate or half rate version 2 */
#define MMCM_CHM_SPEECH_V3             (0x41)     /* speech full rate or half rate version 3 */
#define MMCM_CHM_DATA_9_6              (0x3)      /* data 9.6 kBit/s                */
#define MMCM_CHM_DATA_4_8              (0xb)      /* data 4.8 kBit/s                */
#define MMCM_CHM_DATA_2_4              (0x13)     /* data 2.4 kBit/s                */
#define MMCM_CHM_DATA_14_4             (0xf)      /* data 2.4 kBit/s                */

/*
 * Value constants for VAL_ch_type
 */
#define MMCM_CH_SDCCH                  (0x0)      /* SDCCH channel                  */
#define MMCM_CH_TCH_F                  (0x1)      /* TCH Fullrate                   */
#define MMCM_CH_TCH_H                  (0x2)      /* TCH Halfrate                   */

/*
 * Value constants for VAL_estcs
 */
#define MMCM_ESTCS_SERV_REQ_MM         (0x400)    /* service requested by MM (Location updating or detach) */
#define MMCM_ESTCS_EMERGE              (0x4a0)    /* emergency call                 */
#define MMCM_ESTCS_CAL_REEST           (0x4c0)    /* call reestablishment           */
#define MMCM_ESTCS_MOB_ORIG_SPCH       (0x4e0)    /* mobile originated speech call by CC */
#define MMCM_ESTCS_MOB_ORIG_DATA       (0x4e1)    /* mobile originated data call by CC */
#define MMCM_ESTCS_MOB_ORIG_DATA_HR_SUFF (0x4e2)  /* mobile originated data call by CC, halfrate channel sufficient */

/*
 * Value constants for VAL_cause
 */
#define MMCM_MMCS_IMSI_IN_HLR          (0x402)    /* IMSI unknown in HLR            */
#define MMCM_MMCS_ILLEGAL_MS           (0x403)    /* Illegal MS                     */
#define MMCM_MMCS_IMSI_IN_VLR          (0x404)    /* IMSI unknown in VLR            */
#define MMCM_MMCS_IMEI_NOT_ACCEPTED    (0x405)    /* IMEI not accepted              */
#define MMCM_MMCS_ILLEGAL_ME           (0x406)    /* Illegal ME                     */
#define MMCM_MMCS_PLMN_NOT_ALLOWED     (0x40b)    /* PLMN not allowed               */
#define MMCM_MMCS_LA_NOT_ALLOWED       (0x40c)    /* Location Area not allowed      */
#define MMCM_MMCS_ROAMING_NOT_ALLOWED  (0x40d)    /* Roaming not allowed in this location area */
#define MMCM_MMCS_NETWORK_FAILURE      (0x411)    /* Network failure                */
#define MMCM_MMCS_CONGESTION           (0x416)    /* Congestion                     */
#define MMCM_MMCS_SERVICE_NOT_SUPPORTED (0x420)   /* Service option not supported   */
#define MMCM_MMCS_SERVICE_NOT_SUBSCRIBED (0x421)  /* Requested service option not subscribed */
#define MMCM_MMCS_SERVICE_ORDER        (0x422)    /* Service option temporarily out of order */
#define MMCM_MMCS_IDENTIFIY            (0x426)    /* Call cannot be identified      */
#define MMCM_MMCS_RETRY_IN_NEW_CELL    (0x430)    /* retry upon entry into a new cell (mapped 0x0430..0x043f -> 0x0430) */
#define MMCM_MMCS_INCORRECT_MESSAGE    (0x45f)    /* Semantically incorrect message */
#define MMCM_MMCS_INVALID_MAND_MESSAGE (0x460)    /* Invalid mandatory information  */
#define MMCM_MMCS_MESSAGE_TYPE_NOT_IMPLEM (0x461) /* Message type non-existent or not implemented */
#define MMCM_MMCS_MESSAGE_TYPE_INCOMPAT (0x462)   /* Message type not compatible with the protocol state */
#define MMCM_MMCS_IE_NOT_IMPLEM        (0x463)    /* Information element non-existent or not implemented */
#define MMCM_MMCS_CONDITIONAL_IE       (0x464)    /* Conditional IE error           */
#define MMCM_MMCS_MESSAGE_INCOMPAT     (0x465)    /* Message not compatible with the protocol state */
#define MMCM_MMCS_UNSPECIFIED          (0x46f)    /* Protocol error, unspecified    */
#define MMCM_MMCS_SUCCESS              (0xc400)   /* No error, successful operation (MM) */
#define MMCM_MMCS_NO_REGISTRATION      (0xc480)   /* MS is not registered or deregistration started */
#define MMCM_MMCS_TIMER_RECOVERY       (0xc481)   /* time-out in MM during establishment */
#define MMCM_MMCS_NO_REESTABLISH       (0xc482)   /* Cell does not support call reestablishment */
#define MMCM_MMCS_INT_PREEM            (0xc483)   /* Preemptive release, e.g. MO-MT clash in MM */
#define MMCM_MMCS_PLMN_NOT_IDLE_MODE   (0xc484)   /* reject, not in idle mode (MMR_PLMN_IND) */
#define MMCM_MMCS_AUTHENTICATION_REJECTED (0xc488)/* AUTHENTICATION REJECT received */
#define MMCM_MMCS_SIM_REMOVED          (0xc489)   /* A valid SIM is not present     */
#define MMCM_MMCS_INT_NOT_PRESENT      (0xc4ff)   /* No error cause (MM)            */

/*
 * Value constants for VAL_ti
 */
#define MMCM_VAL_TI___7                (0x7)      /* reserved                       */
#define MMCM_VAL_TI___F                (0xf)      /* reserved                       */

/*
 * Value constants for VAL_org_entity
 */
#define MMCM_ORG_ENTITY_CC             (0x0)      /* originating entity is CC       */
#define MMCM_ORG_ENTITY_SS             (0x1)      /* originating entity is SS       */
#define MMCM_ORG_ENTITY_SMS            (0x2)      /* originating entity is SMS      */

/*
 * user defined constants
 */
#define MMCM_MM_CAUSE                  (0x4)      
#define MMCM_TI_BERLIN                 (0x1)      

#include "CDG_LEAVE.h"


#endif