FreeCalypso > hg > fc-magnetite
view src/g23m-gsm/rr/rr_gprs.h @ 581:a0a45c5eb3ef
gsmcomp.c: bumping trace partition size to 220 like in gprscomp.c
This change is safe in terms of RAM usage because all of these partition
pools have already been moved from XRAM to IRAM earlier, and our IRAM
usage in VO configs is currently quite low - the one near the limit
is XRAM on C11x.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 29 Jan 2019 03:52:49 +0000 |
parents | 27a4235405c6 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : | Modul : +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : Declarations for the Protocol Stack Entity | Radio Resource / GPRS-enhancements +----------------------------------------------------------------------------- */ #ifndef RR_GPRS_H #define RR_GPRS_H #define EXT_MEAS_START_CR 0x40 /* intermediate storage for data of paging indication */ typedef struct { UBYTE id_type; UBYTE chan_need; } T_PAGING_DATA; typedef enum { START_PROC_ACTIVATE_REQ, START_PROC_ENTER_LIMITED, START_PROC_NORMAL_CR, START_PROC_NORMAL_CS, START_PROC_CFG_CHG, START_PROC_GPRS_ACT, START_PROC_NOTHING } T_START_PROC; typedef struct { UBYTE rr_sdu[24]; UBYTE si13_sdu[24]; UBYTE tma_in_progress; ULONG fn; UBYTE req_ref_idx; UBYTE gprs_indic; /* flag MM wants GPRS or not */ UBYTE si13_received; /* SI13 has been received */ ULONG ptmsi; /* used PTMSI */ ULONG ptmsi2; /* used candidate PTMSI */ ULONG tlli; /* used tlli */ T_p_chan_req_des p_chan_req_des; /* Requested channel characteristics */ T_gprs_meas_results gprs_meas_results; /* GPRS Measurement Results */ UBYTE mac_req; /* */ T_PAGING_DATA pag_dat; UBYTE cs_req; /* */ UBYTE gprs_suspend; UBYTE gprs_resump; UBYTE rac; UBYTE page_mode; USHORT split_pg; /* split paging cycle */ UBYTE use_c31; UBYTE cr_pbcch_active; UBYTE cr_type; UBYTE cr_orig; T_START_PROC start_proc; UBYTE reconn_cause; /* cause sent with RRGRR_RECONNECT_REQ during PDCH Assignment procedure */ UBYTE tbf_est; /* indicate TBF establishment during PDCH Assignment / Cell Change Order */ T_DL_DATA_IND *dl_data_ind; /* store DL primitive containing d_change_order until access to new cell */ UBYTE bsic; /* BSIC of the new cell during Cell Change Order and CR*/ USHORT arfcn; /* ARFCN of the new cell during Cell Change Order and CR */ BOOL cco_need_reconnect_cnf; /* Flag indicating the need to send RRGRR-RECONNECT-CNF */ T_rai current_rai; /* last rai assigned by the network to GMM */ T_add_freq_list add_freq_lists[RRGRR_BA_LIST_SIZE]; UBYTE num_add_freq_list; T_RRGRR_EXT_MEAS_REQ *rrgrr_ext_meas_req; /* save the request for GPRS Ext Measurement */ T_RRGRR_EXT_MEAS_CNF *rrgrr_ext_meas_cnf; /* compiled result of the GPRS Ext Measurement */ T_MPH_EXT_MEAS_CNF *mph_ext_meas_cnf; /* power measurement result during GPRS Ext Measurement */ UBYTE mph_ext_meas_num; /* number of carriers used in mph_ext_meas_cnf */ UBYTE ext_meas_ctrl; /* indicate a pending Ext Meas stop request */ BOOL is_nc2_used_in_si13; /* NC state of SI13: NC2 or !NC2 */ UBYTE nc_mode_of_pmo; /* NC mode of Packet Measurement Order */ BOOL cr_pcco_active; /* PCCO in BCCH environment, cell not synced */ BOOL ready_state; /* TRUE - we are in READY STATE * FALSE - we are in STANDBY STATE * This is actually a GMM state, but has to * stored here for the NC2 handling and for * calculating the C2/C32 values */ #ifdef REL99 BOOL cbch_psi_valid; /* CBCH info on PSI8 received from GRR */ T_cbch cbch_psi8; /* This field is in GPRS data as this cbch info * on PSI 8 could be present only when PBCCH * is enabled. */ BOOL cbch_info_rxvd_in_ptm; /* This flag is set to indicate that CBCH information was received in * packet transfer mode. MPH_CBCH_COFIG_REQ should be sent to ALR * only in idle mode. When transitioning again to idle mode * if this flag is set, then CBCH info is given to ALR. * During packet transfer mode, CBCH info could be received * in SI4 or PSI8 or may need updateion because of dependent * parameters change in in PSI2 or other SI messages received in PTM. */ UBYTE nw_release; #endif UBYTE ba_bcch_modified; /*This flag will be set only when BA(BCCH) is modified by PMO or PCCO*/ } T_GPRS_DATA; #ifdef OPTION_MULTITHREAD #define hCommGRR _ENTITY_PREFIXED(hCommGRR) #endif EXTERN T_HANDLE hCommGRR; /* GRR Communication */ /* * GPRS functions */ void gprs_init_gprs_data (void); void gprs_get_table_n (const T_FUNC** table, USHORT* n); /* GPRS support functions for process DATA */ BOOL dat_check_gprs_imm_ass (T_MPH_UNITDATA_IND* unitdata, T_D_IMM_ASSIGN* imm_assign, UBYTE index); void dat_check_imm_ass_ext (T_MPH_UNITDATA_IND* unitdata, UBYTE index); UBYTE dat_check_imm_assign_pch (T_MPH_UNITDATA_IND* unitdata, T_D_IMM_ASSIGN* imm_assign); UBYTE dat_check_imm_ass_rej (UBYTE wait_ind); UBYTE dat_check_packet_paging_ind (T_MPH_PAGING_IND* pag_ind); void dat_rrgrr_channel_req (T_RRGRR_CHANNEL_REQ* chan_req); void att_check_bsic (T_RRGRR_NCELL_SYNC_REQ* check_bsic); BOOL dat_gprs_start_sabm (void); void dat_rrgrr_suspend_dcch_req (T_RRGRR_SUSPEND_DCCH_REQ* suspend_dcch_req); void dat_rrgrr_suspend_dcch_cnf (void); void dat_rrgrr_reconnect_dcch_req (T_RRGRR_RECONNECT_DCCH_REQ* reconnect_dcch_req); void dat_rrgrr_reconnect_dcch_cnf (UBYTE reconn_state); void dat_rrgrr_resumed_tbf_req (T_RRGRR_RESUMED_TBF_REQ* resumed_tbf_req); void dat_rrgrr_resumed_tbf_cnf (void); void dat_rrgrr_data_ind (T_DL_DATA_IND* dl_data_ind); void dat_rrgrr_change_order (T_DL_DATA_IND* dl_data_ind, T_D_CHANGE_ORDER* d_change_order); void dat_ask_paging_ind (T_MPH_PAGING_IND* pag_ind); void dat_ask_paging_ind_pa_only (T_MPH_PAGING_IND* pag_ind); void dat_stop_dcch_ind (UBYTE stop_cause); void dat_rrgrr_data_req (T_RRGRR_DATA_REQ* data_req); void dat_rrgrr_gprs_data_req (T_RRGRR_GPRS_DATA_REQ* data_req); BOOL dat_check_packet_access (void); void dat_rrgrr_rr_est_req (T_RRGRR_RR_EST_REQ* est_req); void dat_rrgrr_rr_est_rsp (T_RRGRR_RR_EST_RSP* rr_est_rsp); void dat_rrgrr_activate_req (T_RRGRR_ACTIVATE_REQ* act_req); void dat_set_gprs_resump (T_RR_RELEASE_IND* rr_release_ind); void dat_gprs_suspend_req (void); void dat_gprs_set_suspended (void); #ifdef REL99 BOOL dat_gprs_cell_in_ptm (void); #endif /* GPRS support functions for process ATTACHEMENT */ void att_signal_gprs_support (void); void att_for_sysinfo_type13 (T_MPH_UNITDATA_IND* data_ind, T_D_SYS_INFO_13* sys_info_13); void att_set_gprs_indication (UBYTE gprs_indic); void att_add_ptmsi (T_MPH_IDENTITY_REQ* mph_identity_req); void att_rrgrr_cr_ind (UBYTE type); void att_rrgrr_cr_req (T_RRGRR_CR_REQ* cr_req); void att_rrgrr_stop_mon_ccch_req (T_RRGRR_STOP_MON_CCCH_REQ* stop_ccch); void att_check_gprs_supp (UBYTE v_gprs_ind, T_gprs_indic* data); void att_rrgrr_start_mon_ccch_req (T_RRGRR_START_MON_CCCH_REQ* start_ccch); void att_rrgrr_start_mon_bcch_req (T_RRGRR_START_MON_BCCH_REQ* start_bcch); BOOL att_check_sync_results (T_MPH_MEASUREMENT_IND* mph_measurement_ind); BOOL att_gprs_is_avail (void); BOOL att_gprs_cell_has_pbcch (void); void att_gprs_stop_pl (void); void att_rrgrr_update_ba_req (T_RRGRR_UPDATE_BA_REQ* ba_req); void att_gprs_cr_rsp (T_RRGRR_CR_RSP* cr_rsp); void att_rrgrr_ext_meas_req (T_RRGRR_EXT_MEAS_REQ* ext_meas_req); UBYTE rr_ext_meas_idx (USHORT arfcn); void att_rrgrr_ext_meas_stop_req (T_RRGRR_EXT_MEAS_STOP_REQ* ext_meas_stop_req); void att_rrgrr_meas_rep_req (T_RRGRR_MEAS_REP_REQ* s); void att_gprs_idle_req (T_MPH_IDLE_REQ* idle_req); BOOL att_gprs_check_ncell (void); void att_start_cell_reselection_pbcch (UBYTE mode); void att_cell_reselection_gprs_failed (void); /*XXX*/ void gprs_rrgrr_stop_task (T_RRGRR_STOP_TASK_REQ* stop_task); void gprs_rrgrr_fill_from_stored_sdu (T_sdu* to, UBYTE* from); void gprs_rrgrr_store_sdu (UBYTE* to, T_sdu* from); void att_gprs_start_task (T_RRGRR_START_TASK_REQ* start_task); void att_start_cell_selection_gprs (UBYTE originator,U8 search_mode); void att_start_cell_reselection_gprs (UBYTE mode); void gprs_init_data_cr (void); void att_convert_idle_c31_cr (UBYTE index); void att_insert_c31_cr_data_in_cell (UBYTE index); BOOL att_check_cell_c31 (void); void att_check_c31_reselect_decision (UBYTE start_now); BOOL att_check_c31_criterion (UBYTE index); UBYTE att_get_next_best_c32_index (BOOL c31_calculated); void att_calculate_c31_c32 (UBYTE index); void att_rrgrr_standby_ind (T_RRGRR_STANDBY_STATE_IND* stdby); void att_rrgrr_ready_ind (T_RRGRR_READY_STATE_IND* rdy); #ifdef REL99 void att_rrgrr_cbch_info_ind (T_RRGRR_CBCH_INFO_IND* cbch_info); #endif void att_gprs_sync_req( T_RRGRR_SYNC_REQ *sync_req); BOOL is_nc2_used (void); #ifdef REL99 UBYTE att_gprs_get_nw_release (void); #endif /* * States of the GPRS Process * PIM - Packet Idle Mode * PTM - Packet Transfer Mode * PAM - Packet Access Mode */ #define GPRS_NULL 0 /* GPRS is not activated by MM */ #define GPRS_ACTIVATED 1 /* GPRS is activated by MM * and we are not on a cell */ #define GPRS_PIM_BCCH 2 /* RR has camped on a GPRS cell which has no PBCCH * RR is in idle mode */ #define GPRS_PAM_BCCH 3 /* GRR has requested the establishment of a TBF over CCCH */ #define GPRS_PTM_BCCH 4 /* GRR has established the TBF and transfer data */ #define GPRS_DEDI_SDCCH 5 /* GRR has requested a TBF but was assigned a SDCCH for further * signalling */ #define GPRS_PIM_PBCCH 6 /* GRR has camped on a GPRS cell which has a PBCCH * RR and GRR are in idle mode */ #define GPRS_PAM_PBCCH 7 /* GRR is establishing a TBF */ #define GPRS_PTM_PBCCH 8 /* GRR has established a TBF and transfers data */ #define GPRS_SUSPENDED_BCCH 9 /* RR is in or on its way to dedicated mode and was in a GPRS_*_BCCH state */ #define GPRS_SUSPENDED_PBCCH 10 /* RR is in or on its way to dedicated mode and was in a GPRS_*_PBCCH state */ EXTERN const char * const STATE_GPRS_NAME[]; #define STATE_GPRS_NAME_INIT \ "GPRS_NULL", \ "GPRS_ACTIVATED", \ "GPRS_PIM_BCCH", \ "GPRS_PAM_BCCH", \ "GPRS_PTM_BCCH", \ "GPRS_DEDI_SDCCH", \ "GPRS_PIM_PBCCH", \ "GPRS_PAM_PBCCH", \ "GPRS_PTM_PBCCH", \ "GPRS_SUSPENDED_BCCH",\ "GPRS_SUSPENDED_PBCCH" #define ESTCS_GPRS_1P 0x0478 #define ESTCS_GPRS_SB 0x0470 #define ESTCS_GPRS_PAGING 0x0481 #define TBF_EST_NONE 0 #define TBF_EST_PDCH 1 #define TBF_EST_CCO 2 #ifdef REL99 #define RR_GPRS_R97 0 #define RR_GPRS_R99 1 #define RR_GPRS_R4 2 #endif #endif /* !RR_GPRS_H */