view cdg-hybrid/cdginc/p_cgrlc.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_cgrlc.val                                                    |
| SOURCE  : "sap\cgrlc.pdf"                                                |
| LastModified : "2004-05-17"                                              |
| IdAndVersion : "8010.119.008.04"                                         |
| SrcFileTime  : "Thu Nov 29 09:38:02 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                 : CGRLC
 * COMPATIBILITY_DEFINES  : NO
 * ALWAYS_ENUM_IN_VAL_FILE: NO
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: NO
 */


#ifndef P_CGRLC_VAL
#define P_CGRLC_VAL


#define CDG_ENTER__P_CGRLC_VAL

#define CDG_ENTER__FILENAME _P_CGRLC_VAL
#define CDG_ENTER__P_CGRLC_VAL__FILE_TYPE CDGINC
#define CDG_ENTER__P_CGRLC_VAL__LAST_MODIFIED _2004_05_17
#define CDG_ENTER__P_CGRLC_VAL__ID_AND_VERSION _8010_119_008_04

#define CDG_ENTER__P_CGRLC_VAL__SRC_FILE_TIME _Thu_Nov_29_09_38_02_2007

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_CGRLC_VAL

#undef CDG_ENTER__FILENAME


/*
 * Value constants for VAL_access_type
 */
#define CGRLC_AT_NULL                  (0x0)      /* No access is required          */
#define CGRLC_AT_ONE_PHASE             (0x1)      /* One phase access requested.    */
#define CGRLC_AT_TWO_PHASE             (0x2)      /* Two phase access requested.    */
#define CGRLC_AT_SHORT_ACCESS          (0x3)      /* Short access requested.        */
#define CGRLC_AT_PAGE_RESPONSE         (0x4)      /* Page response requested.       */
#define CGRLC_AT_CELL_UPDATE           (0x5)      /* Access for cell update primitive requested. */
#define CGRLC_AT_MM_PROCEDURE          (0x6)      /* Access for MM/GMM primitive requested. */
#define CGRLC_AT_SINGLE_BLOCK          (0x7)      /* Only used in GRR: access for single block without TBF */

/*
 * Value constants for VAL_dl_timeslot_offset
 */
#define CGRLC_TEST_TN0                 (0x0)      /* Downlink timeslot offset 0.    */
#define CGRLC_TEST_TN1                 (0x1)      /* Downlink timeslot offset 1.    */
#define CGRLC_TEST_TN2                 (0x2)      /* Downlink timeslot offset 2.    */
#define CGRLC_TEST_TN3                 (0x3)      /* Downlink timeslot offset 3.    */
#define CGRLC_TEST_TN4                 (0x4)      /* Downlink timeslot offset 4.    */
#define CGRLC_TEST_TN5                 (0x5)      /* Downlink timeslot offset 5.    */
#define CGRLC_TEST_TN6                 (0x6)      /* Downlink timeslot offset 6.    */
#define CGRLC_TEST_TN7                 (0x7)      /* Downlink timeslot offset 7.    */

/*
 * Value constants for VAL_failure
 */
#define CGRLC_ACCESS_2_NETWORK_NOT_ALLOWED (0x0)  /* Access to the network is not allowed. */
#define CGRLC_PACKET_ACCESS_FAILURE    (0x1)      /* Failure during packet access procedure, e.g. T3162 expired. */
#define CGRLC_RLC_MAC_ERROR            (0x2)      /* T3168 expires during contention resolution. */
#define CGRLC_TLLI_MISMATCH            (0x3)      /* TLLI mismatch has occurred.    */
#define CGRLC_TBF_ESTABLISHMENT_FAILURE (0x4)     /* T3164 expires or failure occurs due to any other reason. */
#define CGRLC_RESUMPTION_FAILURE       (0x5)      /* Resumption failure after dedicated mode was left. */
#define CGRLC_CONTENTION_RESOLUTION_FAILED (0x6)  /* Contention Resolution has failed. */

/*
 * Value constants for VAL_prim_status
 */
#define CGRLC_PRIM_STATUS_NULL         (0x0)      /* No primitives shall be deleted. */
#define CGRLC_PRIM_STATUS_ONE          (0x1)      /* One primitive shall be deleted. */
#define CGRLC_PRIM_STATUS_TBF          (0x2)      /* All primitives, which belongs to the current TBF, shall be deleted. */
#define CGRLC_PRIM_STATUS_ALL          (0xff)     /* All primitives shall be deleted. */

/*
 * Value constants for VAL_prim_type
 */
#define CGRLC_PRIM_TYPE_GMM            (0x0)      /* At least one GMM primitive was confirmed. */
#define CGRLC_PRIM_TYPE_OTHER          (0x1)      /* No GMM primitive was confirmed. Other User data was confirmed. */

/*
 * Value constants for VAL_tbf_rel_cause
 */
#define CGRLC_TBF_REL_NORMAL           (0x0)      /* Normal TBF release is or shall be performed. */
#define CGRLC_TBF_REL_ABNORMAL         (0x1)      /* Abnormal TBF release is or shall be performed. */
#define CGRLC_TBF_REL_CR_FAILED        (0x2)      /* Contention resolution failed   */
#define CGRLC_TBF_REL_WITH_CELL_RESELECT (0x3)    /* TBF release with cell reselection */

/*
 * Value constants for VAL_starting_time
 */
#define CGRLC_STARTING_TIME_NOT_PRESENT (0xffffffff)/* No TBF starting time present.  */

/*
 * Value constants for VAL_test_mode_flag
 */
#define CGRLC_TEST_RANDOM              (0x0)      /* Pseudo random data.            */
#define CGRLC_LOOP                     (0x1)      /* Loop back.                     */
#define CGRLC_TEST_MODE_RELEASE        (0xfe)     /* used in GRLC, intermediate status during release procedure */
#define CGRLC_NO_TEST_MODE             (0xff)     /* No testmode active             */

/*
 * Value constants for VAL_ti
 */
#define CGRLC_TLLI_NOT_PRESENT         (0x0)      /* TLLI shall not be sent in the RLC data block. */
#define CGRLC_TLLI_PRESENT             (0x1)      /* TLLI shall be sent in the RLC data block. */

/*
 * Value constants for VAL_cs_mode
 */
#define CGRLC_CS_MODE_1                (0x0)      /* Coding scheme 1.               */
#define CGRLC_CS_MODE_2                (0x1)      /* Coding scheme 2.               */
#define CGRLC_CS_MODE_3                (0x2)      /* Coding scheme 3.               */
#define CGRLC_CS_MODE_4                (0x3)      /* Coding scheme 4.               */

/*
 * Value constants for VAL_tlli_cs_mode
 */
#define CGRLC_TLLI_CS_MODE_1           (0x0)      /* CS 1 shall be used during Contention resolution. */
#define CGRLC_TLLI_CS_MODE_DEF         (0x1)      /* Default coding scheme shall be used during Contention resolution. */

/*
 * Value constants for VAL_mac_mode
 */
#define CGRLC_MAC_MODE_DA              (0x0)      /* Dynamic allocation.            */
#define CGRLC_MAC_MODE_EDA             (0x1)      /* Extended dynamic allocation.   */
#define CGRLC_MAC_MODE_FA              (0x2)      /* Fixed allocation.              */
#define CGRLC_MAC_MODE_FA_HD           (0x3)      /* Fixed allocation, half duplex mode. */

/*
 * Value constants for VAL_queue_mode
 */
#define CGRLC_QUEUE_MODE_DEFAULT       (0x0)      /* Use current queue.             */
#define CGRLC_QUEUE_MODE_GMM           (0x1)      /* Use GMM queue (RAU procedure). */
#define CGRLC_QUEUE_MODE_LLC           (0x2)      /* Use LLC queue.                 */

/*
 * Value constants for VAL_rlc_mode
 */
#define CGRLC_RLC_MODE_ACK             (0x0)      /* RLC acknowledged mode.         */
#define CGRLC_RLC_MODE_UACK            (0x1)      /* RLC unacknowledged mode.       */

/*
 * Value constants for VAL_tbf_mode
 */
#define CGRLC_TBF_MODE_NULL            (0x0)      /* No tbf active, used in GRR     */
#define CGRLC_TBF_MODE_ACCESS_FAILED   (0x1)      /* Access has failed. GRLC handles prim queue. */
#define CGRLC_TBF_MODE_DL              (0x2)      /* Downlink TBF is assigned/released. */
#define CGRLC_TBF_MODE_UL              (0x3)      /* Uplink TBF is assigned/released. */
#define CGRLC_TBF_MODE_TMA             (0x4)      /* Uplink TBF for Testmode A is assigned. */
#define CGRLC_TBF_MODE_TMB             (0x5)      /* Uplink TBF for Testmode B is assigned. */
#define CGRLC_TBF_MODE_DL_UL           (0x6)      /* Uplink and Downlink TBF assigned/released. */
#define CGRLC_TBF_MODE_ESTABLISHMENT_FAILURE (0x7)/* T3164 expires or failure occurs due to any other reason */
// VAL-FF: REL99 AND TI_PS_FF_TBF_EST_PACCH  
// #define CGRLC_TBF_MODE_2PA             (0x8)   /* 2 Phase access mode during TBF est on PACCH */

/*
 * Value constants for VAL_rxlev
 */
#define CGRLC_RXLEV_MIN                (0x0)      /* Minimum receive signal level value. */
#define CGRLC_RXLEV_MAX                (0x3f)     /* Maximum receive signal level value. */
#define CGRLC_RXLEV_NONE               (0x80)     /* Specific value used to indicate that no new RX value is present or RX value is invalid. */

/*
 * Value constants for VAL_alpha
 */
#define CGRLC_ALPHA_INVALID            (0xff)     /* No alpha value is available.   */

/*
 * Value constants for VAL_pc_meas_chan
 */
#define CGRLC_MEAS_CHAN_BCCH           (0x0)      /* Downlink measurements for power control shall be made on BCCH. */
#define CGRLC_MEAS_CHAN_PDCH           (0x1)      /* Downlink measurements for power control shall be made on PDCH. */

/*
 * Value constants for VAL_gamma_ch
 */
#define CGRLC_GAMMA_INVALID            (0xff)     /* No GCH is available.           */

/*
 * Value constants for VAL_disable_class
 */
#define CGRLC_DISABLE_CLASS_NULL       (0x0)      /* Initial state of the disable class */
#define CGRLC_DISABLE_CLASS_OTHER      (0x1)      /* Any other cause for disable class */
#define CGRLC_DISABLE_CLASS_CR         (0x2)      /* Disable cause is cell reselection */

/*
 * Value constants for VAL_poll_b_type
 */
#define CGRLC_POLL_NONE                (0x0)      /* No poll position present,only in grlc */
#define CGRLC_POLL_COLLISION           (0x1)      /* Collision detected, only in grlc */
#define CGRLC_POLL_DATA                (0x2)      /* Poll for dl ack/nack, only in grlc */
#define CGRLC_POLL_UACK                (0x3)      /* Poll for pca uplink tbf relaase */
#define CGRLC_POLL_CTRL                (0x4)      /* Default poll for control msg.  */
#define CGRLC_POLL_RES_NB              (0x5)      /* Poll for normal burst with packet polling req */
#define CGRLC_POLL_RES_AB              (0x6)      /* Poll for access burst with packet polling req */
// VAL-FF: REL99 AND TI_PS_FF_TBF_EST_PACCH  
// #define CGRLC_POLL_RE_ASS              (0x7)   /* Poll for TBF on PACCH for sendong PCA or PRR  */

/*
 * Value constants for VAL_burst_type
 */
#define CGRLC_BURST_TYPE_AB            (0x0)      /* Access burst                   */
#define CGRLC_BURST_TYPE_NB            (0x1)      /* Normal burst                   */

/*
 * Value constants for VAL_ab_type
 */
#define CGRLC_AB_8_BIT                 (0x0)      /* 8 bit access burst             */
#define CGRLC_AB_11_BIT                (0x1)      /* 11 bit access burst            */

/*
 * Value constants for VAL_blk_owner
 */
#define CGRLC_BLK_OWNER_CTRL           (0x0)      /* Owner is service ctrl (GRR).   */
#define CGRLC_BLK_OWNER_CS             (0x1)      /* Owner is service cs (GRR).     */
#define CGRLC_BLK_OWNER_TM             (0x2)      /* Owner is service tm (GRLC).    */
#define CGRLC_BLK_OWNER_MEAS           (0x3)      /* Owner is service meas (GRR).   */
#define CGRLC_BLK_OWNER_NONE           (0x4)      /* Owner is not specified         */

/*
 * Value constants for VAL_cu_cause
 */
#define CGRLC_RA_DEFAULT               (0x0)      /* No action required             */
#define CGRLC_RA_CU                    (0x1)      /* Next packet access cause will be cell update */

/*
 * Value constants for VAL_pmax
 */
#define CGRLC_NO_UPDATE_N3102          (0xff)     /* N3102 shall not be updated     */

/*
 * Value constants for VAL_llc_prim_type
 */
#define CGRLC_LLC_PRIM_TYPE_NULL       (0x0)      /* No primitive available         */
#define CGRLC_LLC_PRIM_TYPE_DATA_REQ   (0x1)      /* GRLC_DATA_REQ                  */
#define CGRLC_LLC_PRIM_TYPE_UNITDATA_REQ (0x2)    /* GRLC_UNITDATA_REQ              */

/*
 * Value constants for VAL_ac_class
 */
#define CGRLC_CCCH_AC_NOT_ALLOWED      (0x8)      /* CCCH access control class not allowed */
#define CGRLC_PCCCH_AC_NOT_ALLOWED     (0x9)      /* PCCCH access control class not allowed */
#define CGRLC_PCCCH_AC_ALLOWED         (0xa)      /* PCCCH access control class allowed */

/*
 * Value constants for VAL_enable_cause
 */
#define CGRLC_ENAC_NORMAL              (0x0)      /* Normal Operation               */
#define CGRLC_ENAC_ABNORM_RELEASE_CRESELECT_FAILED (0x1)/* Abnormal Release with Cell Re-Selection has Failed */

/*
 * Value constants for VAL_rlc_db_granted
 */
#define CGRLC_OPEN_ENDED_TBF           (0x0)      /* Open ended tbf                 */

/*
 * Value constants for VAL_t3314_val
 */
#define CGRLC_STANDBY                  (0x0)      /* MS always in STANDBY state.    */
#define CGRLC_T3314_DEFAULT            (0xabe0)   /* Default timeout value for T3314. */
#define CGRLC_DEACTIVATED              (0xffffffff)/* MS always in READY state.      */

/*
 * Value constants for VAL_pdch_band
 */
#define CGRLC_GSM_400                  (0x0)      /* GSM 400MHz Band.               */
#define CGRLC_GSM_850                  (0x1)      /* GSM 850MHz Band.               */
#define CGRLC_GSM_900                  (0x2)      /* GSM 900MHz Band.               */
#define CGRLC_DCS_1800                 (0x3)      /* DCS 1800MHz Band.              */
#define CGRLC_PCS_1900                 (0x4)      /* PCS 1900MHz Band.              */

/*
 * Value constants for VAL_ilev
 */
#define CGRLC_ILEV_MIN                 (0x0)      /* Minimum interference level value. */
#define CGRLC_ILEV_MAX                 (0x3f)     /* Maximum interference level value. */
#define CGRLC_ILEV_NONE                (0x80)     /* Specific value used to indicate that no new interference level value is present or interference level value is invalid. */

// VALTAB-FF: REL99 
// 
// Value constants for Val_pfi_support
// 
// #define CGRLC_PFI_NOT_SUPPORTED        (0x0)   /* PFC Not Supported              */
// #define CGRLC_PFI_SUPPORTED            (0x1)   /* PFC  Supported                 */

/*
 * user defined constants
 */
#define CGRLC_MAX_CTRL_MSG_SIZE        (0x17)     
#define CGRLC_MAX_TIMESLOTS            (0x8)      

#include "CDG_LEAVE.h"


#endif