diff --git a/openair1/PHY/defs_UE.h b/openair1/PHY/defs_UE.h index 0a4bd36731..d6da512e9a 100755 --- a/openair1/PHY/defs_UE.h +++ b/openair1/PHY/defs_UE.h @@ -204,6 +204,12 @@ typedef struct { /// condition variable for timer_thread; pthread_cond_t cond_ticking; //time_stats_t timer_stats; + + // below 3 members is used for waiting each UE threads(multiple UEs test) in L2 FAPI simulator. + // This used in UE_phy_stub_single_thread_rxn_txnp4 + pthread_mutex_t mutex_single_thread; + pthread_cond_t cond_single_thread; + int num_single_thread[NUMBER_OF_UE_MAX]; } SF_ticking; typedef struct { diff --git a/openair2/PHY_INTERFACE/IF_Module.h b/openair2/PHY_INTERFACE/IF_Module.h old mode 100644 new mode 100755 index 0390a90551..f89fcda568 --- a/openair2/PHY_INTERFACE/IF_Module.h +++ b/openair2/PHY_INTERFACE/IF_Module.h @@ -128,6 +128,17 @@ typedef struct IF_Module_s{ pthread_mutex_t if_mutex; }IF_Module_t; +// These mutex is used for multiple UEs L2 FAPI simulator. +// Each UEs set these value in UL and UL_INFO is shared in all UE's thread. +typedef struct { + pthread_mutex_t rx_mutex; + pthread_mutex_t crc_mutex; + pthread_mutex_t sr_mutex; + pthread_mutex_t harq_mutex; + pthread_mutex_t cqi_mutex; + pthread_mutex_t rach_mutex; +}FILL_UL_INFO_MUTEX_t; + /*Initial */ IF_Module_t *IF_Module_init(int Mod_id); void IF_Module_kill(int Mod_id); diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.h b/openair2/PHY_INTERFACE/phy_stub_UE.h old mode 100644 new mode 100755 index 9060951b26..1afb82add3 --- a/openair2/PHY_INTERFACE/phy_stub_UE.h +++ b/openair2/PHY_INTERFACE/phy_stub_UE.h @@ -17,6 +17,9 @@ //#include "openair1/PHY/defs.h" //#include "openair1/PHY/LTE_TRANSPORT/defs.h" +// this mutex is used to set multiple UE's UL value in L2 FAPI simulator. +FILL_UL_INFO_MUTEX_t fill_ul_mutex; + UL_IND_t *UL_INFO; nfapi_tx_request_pdu_t* tx_request_pdu_list;