⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmc_context.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 4 页
字号:
rmc_freq_list_struct;

typedef struct
{
  kal_uint8 valid;
  kal_uint16 old_cell_arfcn;
}
rmc_old_cell_struct;

typedef struct rmpc_cell_desc_struct
{
   kal_uint8 is_valid;
   kal_uint8 bsic;
   kal_uint16 arfcn;
   kal_uint32 chan_type;
} rmpc_cell_desc_struct;

typedef struct sync_ind_info_struct
{
  kal_uint8 nci;                /* Normal Cell Ind.- whether out of
                                   range Timing Advance is
                                   accepted or not */
  kal_uint8 rot;                /* Report Observed Time Difference -
                                   whether ROT should be included in
                                   the Handover Complete Message */
  kal_uint8 si;                 /* Sync Ind.- whether Non-Sync,Sync,
                                   Pre-Sync,Pseudo-Sync Handover */
  kal_uint8 atc;                /* Access Type Control - Indicates
                                   whether sending Access Bursts is
                                   mandatory or not */
}
sync_ind_info_struct;

typedef struct backup_cell_alloc_struct
{
  kal_uint8 num_chan;
  kal_uint16 *arfcn_list;
}
backup_cell_alloc_struct;

/* DEDICATED MODE RELATED PARAMS */
typedef struct rmc_ded_mode_params_struct
{
  /* For RR cell Change Order */
  rmc_cell_desc_struct target_cell_desc; /* target cell Description */

  /* For assignment Command & PDCH assignment */
  #if 0  /* Claire del */
/* under construction !*/
/* under construction !*/
  #endif
  kal_uint8 asgn_type; /* flag indicating whether we
                        are processing assignment
                        Command or PDCH assignment or
                        Immediate asgn Extd:
                        0 -> asgn Cmd
                        1 -> PDCH Asgnmnt
                        2 -> Imme asgn extd
                        Init value = 0xff */


  /* Shahul: for temp storage, freq-redef */
#if 0 /* Claire del  20021025 */
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif

  channel_desc_struct chan_desc_before_time; /* Channel Description before
                                                   Time */
  channel_desc_struct chan_desc_after_time; /* Channel Description after Time */

  channel_desc_struct chan_desc2after_time; /* Channel2 Description after
                                               Time */
  channel_desc_struct chan_desc2before_time;
  STARTING_TIME_STRUCT_1 start_time; /* Starting Time for Channel1 */
  ts_frame_no_struct ts_frame_no; /* used for PDCH Assign msg */


  rmc_pwr_level_struct power_level; /* Power level to be used */
  rmc_freq_list_struct freq_list_before_time; /* Reference frequency/MA/
                                                   freq Chl1 Seq  before time */
  rmc_freq_list_struct freq_list_after_time;  /* Reference frequency/ MA chl1
                                            Seq after time */
  rmc_freq_list_struct freq_list2after_time; /* Reference frequency/ MA chl2
                                                 Seq after time */
  /* In above case, we've taken only one data Str for Ref freq list/ MA/
   * freq Chl Seq because only one of these list will be provided (& valid)
   * for the MS for a given assignment Command/ PDCH assignment Message */
  /* Doubt: Do we need to put it directly in psi.h as Mobile Allocation ?? */

  /* For EMO */
  rmc_ext_meas_struct ext_meas_freq; /* Extended Measurement Frequency
                                           structure */
  kal_uint8 chl_mode;
  kal_uint8 chl_type; /* channel mode for chl set 1, see assignment command */

  kal_uint8 rr_cause; /* The assignment status */
  sync_ind_info_struct sync_info;  /* Type of handover */
  kal_uint8 rtd;                   /* Real Time Difference */
  /*kal_uint8 otd; */                  /* Observed Timer Difference */
  kal_uint32 otd;                   /* Observed Timer Difference */
  kal_uint8 handover_ref;          /* Handover Reference */
  kal_uint8 phy_info_recvd;
}
rmc_ded_mode_params_struct;

/* Claire add (CSRR)*/

typedef struct multi_rate_config_struct
{
  kal_uint8 length;
  kal_uint8 mr_version;
  kal_uint8 start_mode;
  kal_uint8 icmi;
  kal_uint8 speech_params[5];
}
multi_rate_config_struct;

/* Claire add: Previously defined in mpal_common_struct.h */
typedef struct {
    kal_uint8 ul_slot_map;
    kal_uint8 dl_slot_map;
    kal_uint8 is_mode_valid;
    kal_uint8 set_mode;
} multi_slot_struct;

typedef struct ho_rel_para_struct
{
  MS_CIPHER_MODE_ENUM ms_cipher_mode;   /* Flag indicating ciphering
                                           state of CSRR */
  cipher_setting_struct cipher_set;     /* Stucture used to store
                                           ciphering related parameters. */

  kal_uint8 new_cipher_key[8]; /* Store cipher key assigned by MM*/

  /* Claire add to store CKSN */
  kal_uint8 cipher_key_seq_num;
  kal_bool multislot_decode_req;        /* Flag indicating whether
                                           multimode IE needs to be
                                           decoded. */
  multi_slot_struct ch_set_desc[8];     /* multi slot IE stuct */

  kal_uint8 ischl_mode_supported;  /* flag indicating whether the
                                      channel mode is supported
                                      or not. */
  kal_uint8 is_multi_slot_set;  /* Flag indicating whether
                                   multi slot mode is enabled
                                   or not */
  kal_uint8 num_ch_set;         /* number of channel sets in
                                   multislot IE */
}
multi_slot_para_struct;


/* Begin Paul add */
#ifdef __CB__

typedef struct
{
   kal_bool                       is_scheduled;
   kal_uint8                      begin_slot;
   kal_uint8                      end_slot;
   kal_uint8                      current_slot;
   kal_uint8                      schedule_period;
   kal_uint8                      new_message_count;
   kal_uint8                      schedule_bitmap[CB_SCHEDULE_BITMAP_SIZE];
   kal_uint8                      message_description
                                  [CB_SCHEDULE_MESSAGE_DESCRIPTION_SIZE];
}
cb_schedule_data_struct; /* Used to keep the data of schedule message
                          * from the L1 */

typedef struct
{
   kal_uint16                     cbmi_num;
   kal_uint16                     cbmir_num;
   kal_uint16                     cbmid_num;
   kal_uint16                     cbmi[MAX_CB_MSG_ID];
   kal_uint16                     cbmir[MAX_CB_MSG_ID_RANGE*2];
   kal_uint16                     cbmid[MAX_CB_MSG_ID_DWNLD];
}
cb_mi_struct; /* Used to keep the data of CBMI from the MMI */

typedef struct
{
   kal_uint8                      dcs_num;
   kal_uint16                     dcs[MAX_CB_DCS];
}
cb_dcs_struct; /* Used to keep the data of DCS from the MMI */

typedef struct
{
   kal_uint16                     sn;
   kal_uint16                     mi;
   kal_uint8                      cbch_mode; /* CBCH_MODE_NORMAL/
                                                CBCH_MODE_EXTENDED */
   kal_uint8                      pp;
}
cb_received_entry_struct; /* The history is used to keep the received
                           * Normal CB and STK CB */

#ifdef __GEOGRAPHY_CB__
typedef enum
{
   CELL_CHANGED ,
   LA_CHANGED,
   PLMN_CHANGED
} cb_geography_enum;


/* 040809 Henry change */
typedef struct
{
   la_identification_struct       old_la_plmn;
   cell_id_struct                 old_ci;
   kal_uint8                      history_num;
   cb_received_entry_struct       history[MAX_CB_HISTORY];
}
cb_received_history_struct; /* list of history */
#else
typedef struct
{
   kal_uint8                      old_plmn[3];
   kal_uint8                      old_lai[2];
   kal_uint8                      old_ci[2];
   kal_uint8                      history_num;
   cb_received_entry_struct       history[MAX_CB_HISTORY];
}
cb_received_history_struct; /* list of history */

#endif

#endif
/* End Paul add */

#ifdef __GPRS_MODE__
/*****************************************************************************
 * GPRS part  (Vincent add)
 *****************************************************************************/
/* TBF RELATED PARAMETERS */
typedef struct rmc_tbf_params_struct
{

  channel_desc_struct chan_desc_before_time; /* Channel Description before
                                                Time */
  channel_desc_struct chan_desc_after_time; /* Channel Description after Time*/
  STARTING_TIME_STRUCT_1 start_time; /* Starting Time */

  rmc_freq_list_struct freq_list_before_time;
  rmc_freq_list_struct freq_list_after_time;

  kal_uint8 *tbf_asgn_ptr; /* Pointer to UL/DL IE in a PDCH msg or
                             IA Rest Octets in Imm Asgn Msg */
  kal_uint8 tbf_asgn_length; /* Length of UL/DL IE in a PDCH msg */
} rmc_tbf_params_struct;
#endif /* end of __GPRS_MODE__ */

#ifdef __EGPRS_MODE__
/* EGPRS part  */
typedef struct 
{
   kal_bool valid_flag;
   kal_uint8 value;
}ext_ra_struct;
#endif /* end of __EPGRS_MODE__ */


/*****************************************************************************
 * RMC Context
 *****************************************************************************/
typedef struct rmc_context_struct
{
  kal_uint16 begin_of_rmc_cntx;
  
  kal_uint8 rmc_state; /* value in rmc_state enum */

  rmc_ded_mode_params_struct dedicated_mode_params;
  rmc_ded_mode_params_struct backup_dedicated_mode_params; /* To keep the
                                                              backup of the
                                                              dedicated_mode_params
                                                              during Handover
                                                              */
  /* Already in Pkt_Access_Var struct */
  timing_advance_struct time_adv;  /* Timing Advance */
  kal_uint8 curr_req_id; /* request id of current access procedure */
  kal_uint8 num_channel_req; /* number of Channel Requests sent */
  est_cause_enum chan_req_cause; /* Packet Access cause */
  kal_uint8 tx_integer; /* tx-Integer parameter */
  kal_uint16 slot_param; /* Slot Params */
/* Lanslo 20050814 */
#ifdef __EGPRS_MODE__
  /*Simon: for 11 bit EPCR */
  kal_uint16 chan_req_mesg; /* actual channel request */
#else
  kal_uint8 chan_req_mesg; /* actual channel request */
#endif
/* eo Lanslo 20050814 */
  kal_uint8 acs_type_req; /* access type requested by,
                           MAC ONE_PHASE or TWO_PHASE */
  /* Claire note : acs_type_req use ACCESS_TYPE enum */

  kal_uint8 rand_val; /* random value to be passed to L1 */
  kal_uint8 is_assignment_received; /* flag set after receiving any
                                       assignment msg (Imm asgn) */

  kal_uint8 two_message_assignment;  /* first part of a two message assignment
                                       recvd */
  kal_uint8 reject_rcvd; /* Packet Reject has been received */
  rmc_req_ref_struct first_assign; /* Request reference of first immediate
                                       assignment */
  rmc_req_ref_struct second_assign;/*Simon20060808  Request reference of second immediate
                                       assignment */
  rmc_req_ref_struct chan_req[3]; /* Three Channel Requests to be stored */
  kal_uint8 index_of_chan_req; /* Index to chan_req array
                                 matched  */

  /* 2004-01-27, define extra backup cell_reselection candidate */                                 
  kal_uint8 num_monitor_resel_arfcn;

  /*Byron: 2005-03-31: record the channel type to identify if SI1 exists or not*/
  kal_uint8 channel_type;

#if 0  //jack 20040730, useless and remove                               
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif                                 

  kal_uint8 is_rlc_triggered_cell_resel; /* flag to indicate if the reselection is triggered
                                        by the RLC*/
  kal_uint8 is_dsf_trigger_resel ;      /*The flag to indicate if the reselection
                                       is triggered by Downlink Signalling Failure. */
  kal_uint8 is_c1based_cell_resel;	/* jack: new add, this flag (if RR_SET) indicates that the*/

  kal_uint8 is_c2based_cell_resel;	/* this flag (if RR_SET) indicates that the reselection is triggered
                                       by every C2 resel (IMP) */
  kal_uint8 is_t3126based_cell_resel;	/* this flag (if RR_SET) indicates that the reselection is triggered
                                       by t3126 timer timeout */
  kal_uint8 is_cba_cell_resel;	/* this flag (if RR_SET) indicates that the reselection is triggered
                                       by cell bar access */

#ifdef __GPRS_MODE__
  kal_uint8  is_si_triggered_cell_resel; /* flag to indicate if the reselection is triggered
                                       by the lack of receiving SI13 for 60sec*/

  kal_uint8  is_c32based_cell_resel;	/*jack: new add, The flag is set when one of the top
                                       SIX neighbor cells' C32 value meets the
                                       requirement of C32 triggering reselection
                                       according to the Spec. of 05.08. */

  kal_uint16  C32_arfcn;	             /*jack: new add, When the C32_criteria
                                       is met, set c32_arfcn to
                                       be the candidate for the C32 reselection.*/
#endif /*end of __GPRS_MODE__ */


  kal_bool   is_C1_criteria;              /*jack: new add, The flag is set when
                                       update serving cell C1 value below 0.*/
  kal_bool   is_C2_criteria;	         /*jack: new add, The flag is set when one of the top
                                       SIX neighbor cells' C2 value meets the
                                       requirement of C2 triggering reselection
                                       according to the Spec. of 05.08. */

  kal_uint8   C1_resel_counter;          /* The coutner is to count the C1 reselection (C1<0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -