📄 l1_defty.h
字号:
/************* Revision Controle System Header *************
* GSM Layer 1 software
* L1_DEFTY.H
*
* Filename l1_defty.h
* Version 1.145
* Date 04/01/03
*
************* Revision Controle System Header *************/
#if (L1_GTT == 1)
#include "l1gtt_defty.h"
#endif
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;
//TISH20040508 Mars add for PM and voice drop TISH040423
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
{
UWORD8 A[7+1];
}
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
{
T_CHANNEL_DESCRIPTION channel_desc;
T_MOBILE_ALLOCATION frequency_list;
T_STARTING_TIME starting_time;
}
T_MPHC_CHANGE_FREQUENCY;
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 cipher_mode;
UWORD8 a5_algorithm;
T_ENCRYPTION_KEY new_ciph_param;
}
T_MPHC_SET_CIPHERING_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;
/***********************************************************/
/* 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. */
/* */
/***********************************************************/
typedef struct
{
API d_task_d; // (0) Downlink task command.
API d_burst_d; // (1) Downlink burst identifier.
API d_task_u; // (2) Uplink task command.
API d_burst_u; // (3) Uplink burst identifier.
API d_task_md; // (4) Downlink Monitoring (FB/SB) command.
#if (DSP == 33) || (DSP == 34) || (DSP == 35) || (DSP == 36)
API d_background; // (5) Background tasks
#else
API d_reserved; // (5) Reserved
#endif
API d_debug; // (6) Debug/Acknowledge/general purpose word.
API d_task_ra; // (7) RA task command.
API d_fn; // (8) FN, in Rep. period and FN%104, used for TRAFFIC/TCH only.
// bit [0..7] -> b_fn_report, FN in the normalized reporting period.
// bit [8..15] -> b_fn_sid, FN % 104, used for SID positionning.
API d_ctrl_tch; // (9) Tch channel description.
// bit [0..3] -> b_chan_mode, channel mode.
// bit [4..7] -> b_chan_type, channel type.
// bit [8] -> b_sync_tch_ul, synchro. TCH/UL.
// bit [9] -> b_sync_tch_dl, synchro. TCH/DL.
// bit [10] -> b_stop_tch_ul, stop TCH/UL.
// bit [11] -> b_stop_tch_dl, stop TCH/DL.
// bit [12.13] -> b_tch_loop, tch loops A/B/C.
API hole; // (10) unused hole.
#if ((ANALOG == 1) || (ANALOG == 2) || (ANALOG == 3))
API d_ctrl_abb; // (11) Bit field indicating the analog baseband register to send.
// bit [0] -> b_ramp: the ramp information(a_ramp[]) is located in NDB
// bit [1.2] -> unused
// bit [3] -> b_apcdel: delays-register in NDB
// bit [4] -> b_afc: freq control register in DB
// bit [5..15] -> unused
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -