📄 l1_defty.h
字号:
/************* Revision Controle System Header *************
* GSM Layer 1 software
* L1_DEFTY.H
*
* Filename l1_defty.h
* Copyright 2003 (C) Texas Instruments
*
************* Revision Controle System Header *************/
#include "sys.cfg"
#include "l1sw.cfg"
#if (L1_RF_KBD_FIX == 1)
#include "l1_macro.h"
#if(OP_L1_STANDALONE == 0)
#include "kpd/kpd_scan_functions.h"
#endif
#endif
#include "cust_os.h"
#if(L1_DYN_DSP_DWNLD == 1)
#include "l1_dyn_dwl_defty.h"
#endif
#if (L1_AAC == 1) //ADDED for AAC -sajal
#include "l1aac_defty.h"
#endif
typedef struct
{
UWORD8 enable; // activation of FACCH test
UWORD8 period; // period of FACCH test
}
T_FACCH_TEST_PARAMS;
typedef struct
{
UWORD16 modulus;
UWORD16 relative_position;
}
T_BCCHS_SCHEDULE;
typedef struct
{
UWORD8 schedule_array_size;
T_BCCHS_SCHEDULE schedule_array[10];
}
T_BCCHS;
typedef struct
{
BOOL status;
UWORD16 radio_freq;
UWORD32 fn_offset;
UWORD32 time_alignmt;
UWORD8 sb26_attempt;
UWORD8 tsc;
UWORD16 bcch_blks_req;
UWORD8 timing_validity;
UWORD8 search_mode;
UWORD8 gprs_priority;
UWORD8 sb26_offset; // Set to 1 when SB26 RX win is entirely in frame 25.
#if (L1_12NEIGH ==1)
UWORD32 fn_offset_mem;
UWORD32 time_alignmt_mem;
#endif
}
T_NCELL_SINGLE;
typedef struct
{
UWORD8 active_neigh_id_norm;
UWORD8 active_neigh_tc_norm;
UWORD8 active_neigh_id_top;
UWORD8 active_neigh_tc_top;
UWORD8 current_list_size;
T_NCELL_SINGLE list[6];
}
T_BCCHN_LIST;
typedef struct
{
UWORD8 active_fb_id;
UWORD8 active_sbconf_id;
UWORD8 active_sb_id;
UWORD8 current_list_size;
UWORD8 first_in_list; //point at oldest element in list. Used when parsing the list.
#if (L1_EOTD==1)
#if L1_EOTD_QBIT_ACC
// Store serving fn_offset and time_alignmt, so that they can be tracked
// independently.
UWORD32 serv_fn_offset;
UWORD32 serv_time_alignmt;
#endif
// Need to track any TOA updates in dedicated mode else
// QB errors are introduced in the results...
UWORD8 eotd_toa_phase;
WORD32 eotd_toa_tracking;
WORD32 eotd_cache_toa_tracking;
UWORD8 eotd_meas_session;
UWORD32 fn_sb_serv; // for methods 1 & 2
UWORD32 ta_sb_serv; // for methods 1 & 2
WORD32 teotdS; // for method 2 only
UWORD32 fn_offset_serv; // for method 2 only
#endif
#if (L1_12NEIGH==1)
T_NCELL_SINGLE list[NBR_NEIGHBOURS+1]; // 1 place (13th) for S.C in EOTD.
#else
T_NCELL_SINGLE list[6];
#endif
}
T_NSYNC_LIST;
typedef struct
{
UWORD8 cbch_state;
UWORD32 starting_fn;
UWORD32 first_block[48];
UWORD8 cbch_num;
UWORD8 schedule_length;
UWORD8 next;
WORD32 start_continuous_fn;
}
T_CBCH_HEAD_SCHEDULE;
typedef struct
{
UWORD8 cbch_num;
UWORD8 next;
UWORD32 start_fn[6];
}
T_CBCH_INFO_SCHEDULE;
/*=========================================================================*/
/* Moved type definitions from Debis files. */
/*=========================================================================*/
#if (AMR == 1)
// AMR ver 1.0 parameters
typedef struct
{
BOOL noise_suppression_bit;
BOOL initial_codec_mode_indicator;
UWORD8 initial_codec_mode;
UWORD8 active_codec_set;
UWORD8 threshold[3];
UWORD8 hysteresis[3];
}
T_AMR_CONFIGURATION;
#endif
typedef struct
{
#if(L1_A5_3 == 1 && OP_L1_STANDALONE != 1)
UWORD8 A[15+1];
#else
UWORD8 A[7+1];
#endif
}
T_ENCRYPTION_KEY;
typedef struct
{
UWORD8 A[22+1];
}
T_RADIO_FRAME;
typedef struct
{
UWORD8 n32;
UWORD8 n51;
UWORD8 n26;
}
T_SHORT_FRAME_NUMBER;
typedef struct
{
UWORD16 A[31+1];
}
T_CHAN_LIST;
typedef struct
{
UWORD16 num_of_chans;
T_CHAN_LIST chan_number;
}
T_BCCH_LIST;
typedef struct
{
UWORD16 rf_chan_num;
UWORD8 l2_channel_type;
UWORD8 error_cause;
T_RADIO_FRAME l2_frame;
UWORD8 bsic;
UWORD8 tc;
}
T_PH_DATA_IND;
typedef struct
{
UWORD16 A[63+1];
}
T_MA_FIELD;
typedef struct
{
UWORD16 rf_chan_cnt;
T_MA_FIELD rf_chan_no;
}
T_MOBILE_ALLOCATION;
typedef struct
{
BOOL start_time_present;
T_SHORT_FRAME_NUMBER start_time;
}
T_STARTING_TIME;
typedef struct
{
UWORD16 radio_freq_no;
WORD8 rxlev;
}
T_RXLEV_MEAS;
typedef struct
{
UWORD8 maio;
UWORD8 hsn;
}
T_HOPPING_RF;
typedef struct
{
UWORD16 radio_freq;
}
T_SINGLE_RF;
typedef union
{
T_SINGLE_RF single_rf;
T_HOPPING_RF hopping_rf;
}
T_CHN_SEL_CHOICE;
typedef struct
{
BOOL h;
T_CHN_SEL_CHOICE rf_channel;
}
T_CHN_SEL;
typedef struct
{
T_CHN_SEL chan_sel;
UWORD8 channel_type;
UWORD8 subchannel;
UWORD8 timeslot_no;
UWORD8 tsc;
}
T_CHANNEL_DESCRIPTION;
typedef struct
{
UWORD8 ncc;
UWORD8 bcc;
UWORD16 bcch_carrier;
}
T_CELL_DESC;
typedef struct
{
T_CELL_DESC cell_description;
T_CHANNEL_DESCRIPTION channel_desc_1;
UWORD8 channel_mode_1;
T_STARTING_TIME starting_time;
UWORD8 ho_acc;
UWORD8 txpwr;
BOOL report_time_diff;
T_MOBILE_ALLOCATION frequency_list;
T_CHANNEL_DESCRIPTION channel_desc_2;
UWORD8 channel_mode_2;
T_MOBILE_ALLOCATION frequency_list_bef_sti;
T_CHANNEL_DESCRIPTION channel_desc_1_bef_sti;
T_CHANNEL_DESCRIPTION channel_desc_2_bef_sti;
BOOL cipher_mode;
UWORD8 a5_algorithm;
}
T_HO_PARAMS;
typedef struct
{
UWORD8 subchannel;
UWORD8 channel_mode;
#if (AMR == 1)
T_AMR_CONFIGURATION amr_configuration;
#endif
}
T_MPHC_CHANNEL_MODE_MODIFY_REQ;
typedef struct
{
UWORD8 sub_channel;
UWORD8 frame_erasure;
}
T_OML1_CLOSE_TCH_LOOP_REQ;
typedef struct
{
#if (defined _WINDOWS && (OP_RIV_AUDIO == 1))
T_RV_HDR header;
#endif
UWORD8 tested_device;
}
T_OML1_START_DAI_TEST_REQ;
/***********************************************************/
/* Type definitions for DEBUG... */
/***********************************************************/
typedef struct // translate string in int and int in string
{
CHAR *message;
WORD32 SignalCode;
WORD32 size;
}
MSG_DEBUG;
typedef struct // translate string in int and int in string
{
CHAR *name;
}
TASK_TRACE;
/***********************************************************/
/* Type definitions for data structures used for MFTAB */
/* managment... */
/***********************************************************/
typedef struct
{
void (*fct_ptr)(UWORD8,UWORD8);
CHAR param1;
CHAR param2;
}
T_FCT;
typedef struct
{
T_FCT fct[L1_MAX_FCT];
}
T_FRM;
typedef struct
{
T_FRM frmlst[MFTAB_SIZE];
}
T_MFTAB;
typedef struct
{
const T_FCT *address;
UWORD8 size;
}
T_TASK_MFTAB;
#if (GSM_IDLE_RAM != 0)
typedef struct
{
BOOL l1s_full_exec;
BOOL trff_ctrl_enable_cause_int;
WORD32 hw_timer;
WORD32 os_load;
UWORD32 sleep_mode;
#if GSM_IDLE_RAM_DEBUG
UWORD32 killing_flash_access;
UWORD32 killing_ext_ram_access;
UWORD32 irq;
UWORD32 fiq;
UWORD32 nb_inth;
#if (CHIPSET == 10) && (OP_WCP == 1)
UWORD16 TC_true_control;
#endif // CHIPSET && OP_WCP
#endif // GSM_IDLE_RAM_DEBUG
UWORD32 task_bitmap_idle_ram[SIZE_TAB_L1S_MONITOR];
UWORD32 mem_task_bitmap_idle_ram[SIZE_TAB_L1S_MONITOR];
}
T_L1S_GSM_IDLE_INTRAM;
#endif // GSM_IDLE_RAM
/***********************************************************/
/* TPU controle register components definition. */
/***********************************************************/
#if (CODE_VERSION==SIMULATION)
typedef struct // contents of REG_CMD register
{
unsigned int tpu_reset_bit : 1; // TPU_RESET bit : ON (reset TPU)
unsigned int tpu_pag_bit : 1; // TPU_PAG bit : 0 (page 0)
unsigned int tpu_enb_bit : 1; // TPU_ENB bit : ON (TPU commun.int.)
unsigned int dsp_pag_bit : 1; // DSP_PAG bit : 0 (page 0)
unsigned int dsp_enb_bit : 1; // DSP_ENB bit : ON (DSP commun.int.)
unsigned int tpu_stat_bit : 1; // TPU_STAT bit : ON (if TPU active) OFF (if TPU in IDLE)
unsigned int tpu_idle_bit : 1; // TPU_IDLE bit : ON (force IDLE mode)
}
T_reg_cmd; // Rem: we must keep "unsigned int" type for bitmap.
#else
typedef struct // contents of REG_CMD register
{
unsigned int tpu_reset_bit : 1; // TPU_RESET bit : ON (reset TPU)
unsigned int tpu_pag_bit : 1; // TPU_PAG bit : 0 (page 0)
unsigned int tpu_enb_bit : 1; // TPU_ENB bit : ON (TPU commun.int.)
unsigned int unused_1 : 1; //
unsigned int dsp_enb_bit : 1; // DSP_ENB bit : ON (DSP commun.int.)
unsigned int unused_2 : 1; //
unsigned int unused_3 : 1; //
unsigned int tsp_reset_bit : 1; // TSP_RESET bit : ON (reset TSP)
unsigned int tpu_idle_bit : 1; // TPU_IDLE bit : ON (force IDLE mode)
unsigned int tup_wait_bit : 1; // TPU_WAIT bit : ON (TPU ready)
unsigned int tpu_ck_enb_bit: 1; // TPU_CLK bit : ON (TPU clock on)
}
T_reg_cmd;
#endif
/***********************************************************/
/* */
/* Data structure for global info components. */
/* */
/***********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -