X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg.h;h=545aaf2f3ffac1f16d5bf057281c61fd244c35e4;hb=e550b2091fb29289d12a5722b189acbede7862f0;hp=36ead1f37fd7761c74c8a7f18e69ef2859f99864;hpb=3235ecfc7414aa0b72d0ad50db63ae8b5626045b;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg.h b/src/5gnrmac/rg.h index 36ead1f37..545aaf2f3 100755 --- a/src/5gnrmac/rg.h +++ b/src/5gnrmac/rg.h @@ -244,20 +244,46 @@ U32 macHeader[2]; #define RG_MAX_DL_HARQ_NUM 8 #endif +#define MAC_MEM_REGION 4 +#define MAC_POOL 1 +/* allocate and zero out a MAC static buffer */ +#define MAC_ALLOC(_datPtr, _size) \ +{ \ + S16 _ret; \ + _ret = SGetSBuf(MAC_MEM_REGION, MAC_POOL, \ + (Data **)&_datPtr, _size); \ + if(_ret == ROK) \ + cmMemset((U8*)_datPtr, 0, _size); \ + else \ + _datPtr = NULLP; \ +} + +/* free a static buffer */ +#define MAC_FREE(_datPtr, _size) \ + if(_datPtr) \ + SPutSBuf(MAC_MEM_REGION, MAC_POOL, \ + (Data *)_datPtr, _size); + +/* Free shared memory, received through LWLC */ +#define MAC_FREE_MEM(_region, _pool, _datPtr, _size) \ + if(_datPtr) \ + SPutSBuf(_region, _pool,(Data *)_datPtr, _size); \ + _datPtr = NULL; + #define RG_LCG_ISCFGD(lcg) ((lcg)->lcgId != RG_INVALID_LCG_ID) /* Corrected the check for dlCcchId */ #define RG_DLCCCH_ISCFGD(cell) ((cell)->dlCcchId != RG_INVALID_LC_ID) #define RG_ULCCCH_ISCFGD(cell) ((cell)->ulCcchId != RG_INVALID_LC_ID) /* After merging from 2.1 to 2.2 */ #define RG_CALC_SF_DIFF(_time1, _time2)\ - (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.subframe) < (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe)?\ - ((_time1.sfn+RG_MAX_SFN)*RG_NUM_SUB_FRAMES_5G+_time1.subframe) -\ - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe) : \ - (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.subframe) - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe) + (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.slot) < (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot)?\ + ((_time1.sfn+RG_MAX_SFN)*RG_NUM_SUB_FRAMES_5G+_time1.slot) -\ + (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot) : \ + (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.slot) - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot) /*LTE_L2_MEAS_PHASE2*/ #define RG_CALC_SFN_SF_DIFF(_time1,_sfnCycle, _time2)\ -(((_time1.sfn+RG_MAX_SFN * _sfnCycle)*RG_NUM_SUB_FRAMES_5G) + _time1.subframe -\ -(_time2.sfn*RG_NUM_SUB_FRAMES_5G + _time2.subframe)) +(((_time1.sfn+RG_MAX_SFN * _sfnCycle)*RG_NUM_SUB_FRAMES_5G) + _time1.slot -\ +(_time2.sfn*RG_NUM_SUB_FRAMES_5G + _time2.slot)) #define RG_EXT_LCID(_lcId, _byte) {\ (_lcId) = (_byte) & RG_LCID_MASK; \ @@ -311,26 +337,21 @@ U32 macHeader[2]; } #define RGADDTOCRNTTIME(crntTime, toFill, incr) \ - if ((crntTime.subframe + incr) > (RG_NUM_SUB_FRAMES_5G - 1)) \ + if ((crntTime.slot + incr) > (RG_NUM_SUB_FRAMES_5G - 1)) \ toFill.sfn = (crntTime.sfn + 1); \ else \ toFill.sfn = crntTime.sfn; \ - toFill.subframe = (crntTime.subframe + incr) % RG_NUM_SUB_FRAMES_5G; \ + toFill.slot = (crntTime.slot + incr) % RG_NUM_SUB_FRAMES_5G; \ if (toFill.sfn >= RG_MAX_SFN) \ { \ - toFill.hSfn = (crntTime.hSfn + 1)%RG_MAX_SFN; \ toFill.sfn%=RG_MAX_SFN; \ } \ - else \ - { \ - toFill.hSfn = crntTime.hSfn; \ - } #define RGSUBFRMCRNTTIME(crntTime, toFill, dcr) \ { \ if (crntTime.sfn == 0) \ { \ - if ((crntTime.subframe - (dcr)) < 0) \ + if ((crntTime.slot - (dcr)) < 0) \ { \ toFill.sfn = RG_MAX_SFN - 1; \ } \ @@ -341,21 +362,20 @@ U32 macHeader[2]; } \ else \ { \ - if ((crntTime.subframe - (dcr)) < 0) \ + if ((crntTime.slot - (dcr)) < 0) \ { \ toFill.sfn = crntTime.sfn - 1; \ } \ else \ toFill.sfn = crntTime.sfn; \ } \ -toFill.subframe = (RG_NUM_SUB_FRAMES_5G + crntTime.subframe - (dcr)) % (RG_NUM_SUB_FRAMES_5G); \ +toFill.slot = (RG_NUM_SUB_FRAMES_5G + crntTime.slot - (dcr)) % (RG_NUM_SUB_FRAMES_5G); \ } #define RGCPYTIMEINFO(src, dst) \ - dst.hSfn = src.hSfn; \ - dst.sfn = src.sfn; \ - dst.subframe = src.subframe; -#define RG_TIMEINFO_SAME(x, y) ((x.sfn == y.sfn) && (x.subframe == y.subframe)) + dst.sfn = src.sfn; \ + dst.slot = src.slot; +#define RG_TIMEINFO_SAME(x, y) ((x.sfn == y.sfn) && (x.slot == y.slot)) #define rgPBuf(_inst) rgCb[_inst].rgInit.prntBuf @@ -607,15 +627,15 @@ toFill.subframe = (RG_NUM_SUB_FRAMES_5G + crntTime.subframe - (dcr)) % (RG_NUM_S #endif #define RG_CALC_SF_DIFF(_time1, _time2)\ - (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.subframe) < (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe)?\ - ((_time1.sfn+RG_MAX_SFN)*RG_NUM_SUB_FRAMES_5G+_time1.subframe) -\ - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe) : \ - (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.subframe) - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.subframe) + (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.slot) < (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot)?\ + ((_time1.sfn+RG_MAX_SFN)*RG_NUM_SUB_FRAMES_5G+_time1.slot) -\ + (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot) : \ + (_time1.sfn*RG_NUM_SUB_FRAMES_5G+_time1.slot) - (_time2.sfn*RG_NUM_SUB_FRAMES_5G+_time2.slot) #define RG_TTI_CYCLE_INVLD 0xFFFFFFFF #define RG_CALC_TTI_CNT(_cellCb, _ttiCnt)\ _ttiCnt = (RG_NUM_SUB_FRAMES_5G * (_cellCb->crntTime.sfn + (_cellCb->ttiCycle * 1024)) )+\ - _cellCb->crntTime.subframe; + _cellCb->crntTime.slot; #endif /* LTE_L2_MEAS */ /* Tuned according to TDD Cfg Mode2 and 2UE/TTI.