X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fmt%2Fmt_ss.c;h=d909e4b504d2e5ec0d30a253fda6bb1f437b86f1;hb=ba78fa13b01e0729fe0a6a7a18cbf1d52cdcda1c;hp=725a850c4fb1f39f726245ec9d4aa05ee514a4dd;hpb=def50dc175cebc67238db5f1acd5ff322a2279bd;p=o-du%2Fl2.git diff --git a/src/mt/mt_ss.c b/src/mt/mt_ss.c index 725a850c4..d909e4b50 100644 --- a/src/mt/mt_ss.c +++ b/src/mt/mt_ss.c @@ -102,6 +102,12 @@ #include #endif /* SS_WATCHDOG */ +#ifdef SS_USE_WLS_MEM +#include +#include +#include +#endif + /* header/extern include files (.x) */ #include "gen.x" /* general layer */ @@ -153,24 +159,20 @@ #include "sys/syscall.h" #endif -#if defined(RGL_SPECIFIC_CHANGES) || defined(INTEL_WLS) +#if defined(RGL_SPECIFIC_CHANGES) || defined(INTEL_WLS) || defined(SS_USE_WLS_MEM) #include #include #endif -#ifdef INTEL_WLS -EXTERN void LwrMacRecvPhyMsg(); -#endif - #if defined(SPLIT_RLC_DL_TASK) && defined(RLC_MAC_STA_RSP_RBUF) -EXTERN S16 rgBatchProc (Void); +S16 rgBatchProc (Void); #endif #ifdef RLC_MAC_DAT_REQ_RBUF -EXTERN S16 rgDlDatReqBatchProc ARGS(( +S16 rgDlDatReqBatchProc ARGS(( Void)); #endif #if defined(SPLIT_RLC_DL_TASK) && defined(RLC_MAC_STA_RSP_RBUF) -EXTERN S16 rgBatchProc ARGS(( +S16 rgBatchProc ARGS(( Void)); #endif @@ -203,12 +205,12 @@ Void cmPrcTmr ARGS((CmTqCp* tqCp, CmTqType* tq, PFV func)); void dump_external(void); #ifdef ANSI -PRIVATE Void mtDelSigals +static Void mtDelSigals ( Void ) #else -PRIVATE Void mtDelSignals() +static Void mtDelSignals() #endif { struct sigaction sa; @@ -324,18 +326,18 @@ void *pthreadCreateHdlr(void* arg); Buffer *mtTskBuffer1; Buffer *mtTskBuffer2; -EXTERN pthread_t tmpRegTidMap[20]; -EXTERN uint8_t stopBtInfo; -EXTERN S16 SGlobMemInfoShow(void); +pthread_t tmpRegTidMap[20]; +uint8_t stopBtInfo; + S16 SGlobMemInfoShow(void); #endif /* SS_LOCKLESS_MEMORY */ #ifdef L2_L3_SPLIT -EXTERN APP_CONTEXT AppContext; -EXTERN S32 clusterMode; +APP_CONTEXT AppContext; +S32 clusterMode; #endif #ifdef TENB_T2K3K_SPECIFIC_CHANGES -EXTERN unsigned int tlPost(void *handle); +unsigned int tlPost(void *handle); #endif /* forward references */ @@ -346,56 +348,56 @@ Void *mtTskHdlrT2kL2 ARGS((Void*)); void mtSigUsr2Hndlr ARGS((void)); #endif -PRIVATE S16 ssdSetPthreadAttr ARGS ((S32 tskPrior, pthread_attr_t *attr)); -PRIVATE Void *mtTskHdlr ARGS((void *)); -PRIVATE S16 mtTskHdlMsg ARGS((SsSTskEntry *sTsk)); +static S16 ssdSetPthreadAttr ARGS ((S32 tskPrior, pthread_attr_t *attr)); +static Void *mtTskHdlr ARGS((void *)); +static S16 mtTskHdlMsg ARGS((SsSTskEntry *sTsk)); -PRIVATE Void *mtTmrHdlr ARGS((void *)); -PRIVATE Void mtTimeout ARGS((PTR tCb, S16 evnt)); +static Void *mtTmrHdlr ARGS((void *)); +static Void mtTimeout ARGS((PTR tCb, S16 evnt)); /*mt010.301 Fix for core when run with -o option and when killed with SIGINT*/ -PRIVATE Void mtIntSigHndlr ARGS((int)); -PRIVATE Void mtExitClnup ARGS((void)); +static Void mtIntSigHndlr ARGS((int)); +static Void mtExitClnup ARGS((void)); #ifdef CONAVL -PRIVATE Void *mtConHdlr ARGS((void *)); +static Void *mtConHdlr ARGS((void *)); #endif #ifndef L2_L3_SPLIT #ifdef SS_DRVR_SUPPORT -PRIVATE Void *mtIsTskHdlr ARGS((void *)); +static Void *mtIsTskHdlr ARGS((void *)); #endif #endif /* mt020.201 - Addition for no command line available */ #ifndef NOCMDLINE -PRIVATE Void mtGetOpts ARGS((void)); +static Void mtGetOpts ARGS((void)); /* mt003.301 Additions - File Based task registration made * common for both MULTICORE and NON-MULTICORE */ -PRIVATE Bool fileBasedMemCfg = FALSE; +static Bool fileBasedMemCfg = FALSE; #endif /* mt033.201 - addition of local function to print the statistics such as * (size vs. numAttempts) and (allocations vs. deallocations) */ #ifdef SSI_DEBUG_LEVEL1 -PRIVATE S16 SPrintRegMemStats ARGS((Region region)); +static S16 SPrintRegMemStats ARGS((Region region)); #endif /* SSI_DEBUG_LEVEL1 */ #ifdef SS_MULTICORE_SUPPORT -PRIVATE SsSTskEntry* ssdAddTmrSTsk(Void); -PRIVATE SsSTskEntry* ssdReAddTmrSTsk ARGS((uint8_t idx)); +static SsSTskEntry* ssdAddTmrSTsk(Void); +static SsSTskEntry* ssdReAddTmrSTsk ARGS((uint8_t idx)); #ifndef SS_LOCKLESS_MEMORY #ifndef RGL_SPECIFIC_CHANGES -PRIVATE S16 ssdInitMemInfo ARGS((void)); +static S16 ssdInitMemInfo ARGS((void)); #endif #endif #endif /* mt005.301: Cavium changes */ #ifdef SS_SEUM_CAVIUM -PRIVATE Void *workRcvTsk ARGS((void *)); +static Void *workRcvTsk ARGS((void *)); #endif /* SS_SEUM_CAVIUM */ #ifdef SS_THR_REG_MAP @@ -434,6 +436,7 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] = { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, { SS_POOL_STATIC, 0 } } } @@ -460,6 +463,7 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] = { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, { SS_POOL_STATIC, 0 } } }, @@ -470,6 +474,7 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] = { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, { SS_POOL_STATIC, 0 } } }, @@ -480,6 +485,7 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] = { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, { SS_POOL_STATIC, 0 } } }, @@ -490,9 +496,21 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] = { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, + { SS_POOL_STATIC, 0 } + } + }, + { + SS_DFLT_REGION + 5, SS_MAX_POOLS_PER_REG - 1, + { + { SS_POOL_DYNAMIC, MT_POOL_0_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE }, + { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE }, { SS_POOL_STATIC, 0 } } - } + } #endif /* SS_LOCKLESS_MEMORY */ }; /* mt003.301 Modifications - File Based task registration made @@ -512,7 +530,8 @@ MtDynMemCfg mtDynMemoCfg = {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, - {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} } }, { @@ -523,7 +542,8 @@ MtDynMemCfg mtDynMemoCfg = {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, - {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} } }, { @@ -534,7 +554,8 @@ MtDynMemCfg mtDynMemoCfg = {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, - {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} } }, { @@ -545,7 +566,8 @@ MtDynMemCfg mtDynMemoCfg = {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, - {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} } }, { @@ -556,7 +578,20 @@ MtDynMemCfg mtDynMemoCfg = {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, - {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} + } + }, + { + SS_DFLT_REGION + 5, /* region id */ + MT_MAX_BKTS, /* number of buckets */ + { + /* block size, no. of blocks, Upper threshold, lower threshold */ + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}, + {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD} } } #if ((defined (SPLIT_RLC_DL_TASK)) && (!defined (L2_L3_SPLIT))) @@ -586,7 +621,8 @@ MtGlobMemCfg mtGlobMemoCfg = {MT_BKT_0_DSIZE, (MT_BKT_0_NUMBLKS + MT_BKT_0_NUMBLKS), SS_DFLT_MEM_BLK_SET_SIZE}, {MT_BKT_1_DSIZE, MT_BKT_1_NUMBLKS, SS_DFLT_MEM_BLK_SET_SIZE}, {MT_BKT_2_DSIZE, MT_BKT_2_NUMBLKS, SS_DFLT_MEM_BLK_SET_SIZE}, - {MT_BKT_3_DSIZE, MT_BKT_3_NUMBLKS, SS_DFLT_MEM_BLK_SET_SIZE} + {MT_BKT_3_DSIZE, MT_BKT_3_NUMBLKS, SS_DFLT_MEM_BLK_SET_SIZE}, + {MT_BKT_4_DSIZE, MT_BKT_4_NUMBLKS, SS_DFLT_MEM_BLK_SET_SIZE} #else {1024, 12800 /* MT_BKT_0_NUMBLKS */, SS_DFLT_MEM_BLK_SET_SIZE}, {1664, 12800 /* MT_BKT_1_NUMBLKS */, SS_DFLT_MEM_BLK_SET_SIZE}, @@ -620,7 +656,8 @@ MtMemCfg mtMemoCfg = {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ - {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS} /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} #else {256, 491520}, /* 60 pages of 2M*/ {512, 12288}, /* 3 pages of 2M */ @@ -659,7 +696,8 @@ MtMemCfg mtMemoCfg = {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ - {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS} /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} /* block size, no. of blocks */ } }, { @@ -670,7 +708,8 @@ MtMemCfg mtMemoCfg = {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ - {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS} /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} /* block size, no. of blocks */ } }, { @@ -681,7 +720,8 @@ MtMemCfg mtMemoCfg = {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ - {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS} /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} /* block size, no. of blocks */ } }, { @@ -692,10 +732,22 @@ MtMemCfg mtMemoCfg = {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ - {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS} /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} /* block size, no. of blocks */ + } + }, + { + SS_DFLT_REGION + 5, /* region id */ + MT_MAX_BKTS, /* number of buckets */ + MT_HEAP_SIZE, /* heap size */ + { + {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS}, /* block size, no. of blocks */ + {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS} /* block size, no. of blocks */ } } - #endif /* SS_LOCKLESS_MEMORY */ STATIC_MEM_CFG } @@ -712,27 +764,34 @@ S16 msOptInd; /* SGetOpt vars */ S8 *msOptArg; /* SGetOpt vars */ -#ifdef INTEL_WLS +#if defined (INTEL_WLS) || defined (SS_USE_WLS_MEM) typedef struct _MtRegMemSz { uint32_t reqdSz; uint8_t *startAddr; }MtRegMemSz; -PRIVATE MtRegMemSz mtRegMemSz[MT_MAX_BKTS+1]; +#ifdef SS_USE_WLS_MEM +static MtRegMemSz mtDynMemSz[MT_MAX_BKTS]; +static S16 SPartitionWlsDynMem(); +static S16 SAllocateWlsDynMem(); +#endif +#ifdef INTEL_WLS +static MtRegMemSz mtRegMemSz[MT_MAX_BKTS+1]; +#endif #endif /* private variable declarations */ /* mt018.201 - change mtCMMRegCfg as array of pointers */ -PRIVATE CmMmRegCfg *mtCMMRegCfg[SS_MAX_REGS]; -PRIVATE CmMmRegCb *mtCMMRegCb[SS_MAX_REGS]; +static CmMmRegCfg *mtCMMRegCfg[SS_MAX_REGS]; +static CmMmRegCb *mtCMMRegCb[SS_MAX_REGS]; /* mt003.301 - Fixed compilation warnings */ /*mt004.301-addede new veriable for FAP*/ /*mt010.301 - removed veriable defined for FA*/ -#ifdef INTEL_WLS +#if defined (INTEL_WLS) || defined (SS_USE_WLS_MEM) #ifdef NTL_LIB void mtSetNtlHdl(unsigned int hdl) @@ -746,21 +805,33 @@ unsigned int mtGetNtlHdl() } #endif /* NTL_LIB */ - -void * mtGetWlsHdl() +void mtGetWlsHdl(void **hdlr) { - return (osCp.wls.intf); -} + *hdlr = osCp.wls.intf; +} #ifdef XEON_MULTIPLE_CELL_CHANGES -EXTERN S8 gWrWlsDeviceName[MAX_WLS_DEVICE_NAME_LEN]; -EXTERN S16 smWrReadWlsConfigParams (Void); +S8 gWrWlsDeviceName[MAX_WLS_DEVICE_NAME_LEN]; +S16 smWrReadWlsConfigParams (Void); #endif -PRIVATE int SOpenWlsIntf() +static int SOpenWlsIntf() { + uint8_t i; void *hdl; - #define WLS_DEVICE_NAME "/dev/wls" + #define WLS_DEVICE_NAME "wls0" + + char *my_argv[] = {"gnodeb", "-c3", "--proc-type=auto", "--file-prefix", WLS_DEVICE_NAME, "--iova-mode=pa"}; + printf("Calling rte_eal_init: "); + for (i = 0; i < RTE_DIM(my_argv); i++) + { + printf("%s ", my_argv[i]); + } + printf("\n"); + + if (rte_eal_init(RTE_DIM(my_argv), my_argv) < 0) + rte_panic("Cannot init EAL\n"); + #ifdef XEON_SPECIFIC_CHANGES #ifdef XEON_MULTIPLE_CELL_CHANGES @@ -769,7 +840,7 @@ PRIVATE int SOpenWlsIntf() hdl = WLS_Open(WLS_DEVICE_NAME, 1); #endif #else - hdl = WLS_Open(WLS_DEVICE_NAME, WLS_MASTER_CLIENT, (512 *1024 * 1024)); + hdl = WLS_Open(WLS_DEVICE_NAME, WLS_MASTER_CLIENT, WLS_MEM_SIZE); #endif osCp.wls.intf = hdl; @@ -825,7 +896,7 @@ char **argv; /* argument vector */ } /* end of if statement */ #endif -#ifdef INTEL_WLS +#if defined (INTEL_WLS) || defined (SS_USE_WLS_MEM) if(!SOpenWlsIntf()) return (0); #endif /* INTEL_WLS */ @@ -1375,7 +1446,7 @@ uint32_t doNotBlockForLock; /* Boolean whether to block for #define NUM_CALLS_TO_CHECK_MEM_DYN_AGAIN 100 uint32_t gDynMemAlrm[4]; -PRIVATE uint32_t memoryCheckCounter; +static uint32_t memoryCheckCounter; #ifdef ANSI uint32_t isMemThreshReached( @@ -1473,9 +1544,54 @@ Region region; #endif /* SS_USE_ICC_MEMORY */ #ifdef T2K_MEM_LEAK_DBG -extern RegionMemLeakInfo regMemLeakInfo; +RegionMemLeakInfo regMemLeakInfo; #endif /* T2K_MEM_LEAK_DBG */ +#ifdef SS_USE_WLS_MEM +static S16 SPartitionWlsDynMem() +{ + uint32_t i; + uint8_t *bktMemStrtAddr = (uint8_t *)(((uint8_t*)osCp.wls.allocAddr) + (4 * 1024 * 1024)); + + for (i = 0 ; i < mtGlobMemoCfg.numBkts ; i++) + { + mtDynMemSz[i].startAddr = bktMemStrtAddr; + bktMemStrtAddr += mtDynMemSz[i].reqdSz; + } + + printf("Global Memory Info: \n"); + for (i = 0 ; i < mtGlobMemoCfg.numBkts ; i++) + { + printf("mtDynMemSz[%d]: [0x%016lx]\n", i, (unsigned long int)mtDynMemSz[i].startAddr); + } + return ROK; +} + +static S16 SAllocateWlsDynMem() +{ + uint32_t reqdMemSz; + uint32_t i; + reqdMemSz = 0; + memset(&mtDynMemSz[0], 0, sizeof(mtDynMemSz)); + + for (i = 0 ; i < mtGlobMemoCfg.numBkts ; i++) + { + reqdMemSz += (mtGlobMemoCfg.bkt[i].blkSize * mtGlobMemoCfg.bkt[i].numBlks); + mtDynMemSz[i].reqdSz += (mtGlobMemoCfg.bkt[i].blkSize * mtGlobMemoCfg.bkt[i].numBlks); + } + osCp.wls.allocAddr = WLS_Alloc(osCp.wls.intf, +#ifdef INTEL_L1_V19_10 + WLS_MEMORY_SIZE); +#else + (reqdMemSz + (4 * 1024 * 1024))); +#endif + printf("\n *************** \n WLS memory: %lx, %d\n", (PTR)osCp.wls.allocAddr, reqdMemSz); + SPartitionWlsDynMem(); + return ROK; +} + +#endif + #ifdef INTEL_WLS S16 SPartitionWlsMemory() @@ -1711,13 +1827,22 @@ S16 ssdInitMem() globReg = (CmMmGlobRegCb *)osCp.globRegCb; +#ifdef SS_USE_WLS_MEM + SAllocateWlsDynMem(); +#endif + for(i = 0; i < mtGlobMemoCfg.numBkts; i++) { memSize = (mtGlobMemoCfg.bkt[i].blkSize * mtGlobMemoCfg.bkt[i].numBlks); +#if !defined (INTEL_WLS) && defined (SS_USE_WLS_MEM) + globReg->bktTbl[i].startAddr = (Data *)mtDynMemSz[i].startAddr; + printf("Starting Address of Bkt Entry [%d]: [0x%016lx], memSize[%d]\n", i, (unsigned long int)globReg->bktTbl[i].startAddr, memSize); +#else #ifndef INTEL_WLS globReg->bktTbl[i].startAddr = (Data *)calloc(memSize, sizeof(Data)); #else globReg->bktTbl[i].startAddr = (Data *)mtRegMemSz[i].startAddr; +#endif #endif if(globReg->bktTbl[i].startAddr == NULLP) { @@ -1753,6 +1878,7 @@ S16 ssdInitMem() #endif return RFAILED; } + dynRegCb->bktTbl[k].poolId = k; dynRegCb->bktTbl[k].size = mtGlobMemoCfg.bkt[k].blkSize; dynRegCb->bktTbl[k].blkSetRelThreshold = mtDynMemoCfg.region[i].bkt[k].blkSetRelThreshold; dynRegCb->bktTbl[k].blkSetAcquireThreshold = mtDynMemoCfg.region[i].bkt[k].blkSetAcquireThreshold; @@ -2918,12 +3044,12 @@ uint32_t type; * */ #ifdef ANSI -PRIVATE Void mtGetOpts +static Void mtGetOpts ( void ) #else -PRIVATE Void mtGetOpts() +static Void mtGetOpts() #endif { S32 argc; @@ -3781,13 +3907,13 @@ void* arg; */ #ifdef ANSI -PRIVATE S16 ssdSetPthreadAttr +static S16 ssdSetPthreadAttr ( S32 tskPrior, pthread_attr_t *attr ) #else -PRIVATE S16 ssdSetPthreadAttr(sTsk, attr) +static S16 ssdSetPthreadAttr(sTsk, attr) S32 tskPrior, pthread_attr_t *attr #endif @@ -4691,9 +4817,9 @@ SsIdx idx; //#ifndef SPLIT_RLC_DL_TASK #ifdef TENB_T2K3K_SPECIFIC_CHANGES #if defined (L2_L3_SPLIT) && defined(SPLIT_RLC_DL_TASK) -EXTERN Void ysMtTskHdlr(Void); -EXTERN Void ysMtPollPhyMsg(uint8_t region); -EXTERN Void ysMtRcvPhyMsg(Void); +Void ysMtTskHdlr(Void); +Void ysMtPollPhyMsg(uint8_t region); +Void ysMtRcvPhyMsg(Void); #ifdef ANSI Void *mtTskHdlrT2kL2 ( @@ -4728,8 +4854,8 @@ Ptr tskPtr; /* pointer to task entry */ return (NULLP); } #else -EXTERN Void ysMtTskHdlr(Void); -EXTERN Void YsPhyRecvMsg(); +Void ysMtTskHdlr(Void); +Void YsPhyRecvMsg(); #ifdef ANSI Void *mtTskHdlrT2kL2 ( @@ -4856,11 +4982,6 @@ Ptr tskPtr; /* pointer to task entry */ #endif while (1) { -#ifndef ODU_TEST_STUB -#ifdef INTEL_WLS - LwrMacRecvPhyMsg(); -#endif -#endif /* Wait for a message from the demand queue */ #ifdef SS_CDMNDQ_SUPPORT ret = ssCDmndQWait(&sTsk->dQ); @@ -5344,13 +5465,13 @@ Void mtTmrHdlrPublic() */ /*mt041.201 Modified SSI tick handling in mtTmrHdlr() */ #ifdef ANSI -PRIVATE Void *mtTmrHdlr +static Void *mtTmrHdlr ( void *parm /* unused */ ) #else /* mt009.21: addition */ -PRIVATE Void *mtTmrHdlr(parm) +static Void *mtTmrHdlr(parm) void *parm; /* unused */ #endif { @@ -5366,7 +5487,7 @@ void *parm; /* unused */ S16 ret; /* mt039.201 changes for nanosleep */ struct timespec tsN; - PRIVATE uint32_t err_in_usec; + static uint32_t err_in_usec; /*mt013.301 : doesn't need TRC macro ,as this will never return*/ @@ -5743,13 +5864,13 @@ S16 evnt; /* event */ * */ #ifdef ANSI -PRIVATE Void *mtConHdlr +static Void *mtConHdlr ( Ptr parm /* unused */ ) #else /* mt009.21: addition */ -PRIVATE Void *mtConHdlr(parm) +static Void *mtConHdlr(parm) Ptr parm; /* unused */ #endif { @@ -5812,13 +5933,13 @@ Ptr parm; /* unused */ */ #ifdef ANSI /* mt009.21: addition */ -PRIVATE Void *mtIsTskHdlr +static Void *mtIsTskHdlr ( Ptr tskPtr /* pointer to task entry */ ) #else /* mt009.21: addition */ -PRIVATE Void *mtIsTskHdlr(tskPtr) +static Void *mtIsTskHdlr(tskPtr) Ptr tskPtr; /* pointer to task entry */ #endif { @@ -6251,7 +6372,7 @@ EpcTime *et; /* date and time */ #endif { /* mt003.301 Modifications */ -PRIVATE uint64_t now; +static uint64_t now; uint64_t to_sec = 1000000; uint64_t to_nsec = 1000; #ifndef SS_LINUX @@ -6582,12 +6703,12 @@ S16 SRelInt() * */ #ifdef ANSI -INLINE S16 SEnbInt +inline S16 SEnbInt ( void ) #else -INLINE S16 SEnbInt() +inline S16 SEnbInt() #endif { @@ -6611,12 +6732,12 @@ INLINE S16 SEnbInt() * */ #ifdef ANSI -INLINE S16 SDisInt +inline S16 SDisInt ( void ) #else -INLINE S16 SDisInt() +inline S16 SDisInt() #endif { @@ -6867,13 +6988,13 @@ Inst inst; /* instance */ * */ #ifdef ANSI -INLINE S16 SSetIntPend +inline S16 SSetIntPend ( uint16_t id, /* driver task identifier */ Bool flag /* flag */ ) #else -INLINE S16 SSetIntPend(id, flag) +inline S16 SSetIntPend(id, flag) uint16_t id; /* driver task identifier */ Bool flag; /* flag */ #endif @@ -7132,13 +7253,13 @@ uint32_t SMemMidThreshold[SSI_MAX_REG_THRESHOLD][SSI_MAX_BKT_THRESHOLD] = {{0}}; uint32_t SMemLowThreshold[SSI_MAX_REG_THRESHOLD][SSI_MAX_BKT_THRESHOLD] = {{0}}; #ifdef ANSI -PRIVATE Void SInitMemThreshold +static Void SInitMemThreshold ( Region region, uint8_t maxBkt ) #else -PRIVATE Void SInitMemThreshold(region, maxBkt) +static Void SInitMemThreshold(region, maxBkt) Region region; uint8_t maxBkt; #endif @@ -7167,7 +7288,7 @@ uint8_t maxBkt; { uint8_t idx = 0; uint8_t memStatus = 3; - PRIVATE uint8_t initFlag = 1; + static uint8_t initFlag = 1; if(initFlag) { initFlag = 0; @@ -7425,12 +7546,12 @@ uint8_t typeFlag; * */ #ifdef ANSI -PRIVATE S16 SPrintRegMemStats +static S16 SPrintRegMemStats ( Region region ) #else -PRIVATE S16 SPrintRegMemStats(region) +static S16 SPrintRegMemStats(region) Region region; #endif { @@ -7911,9 +8032,9 @@ uint32_t SGetSystemTsk() * --*/ #ifdef ANSI -PRIVATE SsSTskEntry* ssdAddTmrSTsk(Void) +static SsSTskEntry* ssdAddTmrSTsk(Void) #else -PRIVATE SsSTskEntry* ssdAddTmrSTsk() +static SsSTskEntry* ssdAddTmrSTsk() #endif { SsSTskEntry *sTsk; @@ -8420,12 +8541,12 @@ S16 ssInitRcvWork() **/ #ifdef ANSI -PRIVATE void *workRcvTsk +static void *workRcvTsk ( Ptr ptr ) #else -PRIVATE void *workRcvTsk (ptr) +static void *workRcvTsk (ptr) Ptr ptr; #endif { @@ -8593,9 +8714,9 @@ pthread_t threadId, /* Thread Id of system task */ Region region /* Region associated with thread */ ) { - PRIVATE uint32_t createdThreads; - PRIVATE pthread_t createdThreadIds[SS_MAX_THREAD_CREATE_RETRY]; - uint32_t indx; + static uint32_t createdThreads; + static pthread_t createdThreadIds[SS_MAX_THREAD_CREATE_RETRY]; + uint32_t indx; /* Here 0xFF is considered as invalid region and if the mapping table @@ -8710,13 +8831,13 @@ pthread_t threadId /* Thread Id of system task */ #ifdef ANSI S16 SStartTask ( -VOLATILE uint32_t *startTime, -uint32_t taskId +volatile uint32_t *startTime, +uint32_t taskId ) #else S16 SStartTask(startTime, taskId) -VOLATILE uint32_t *startTime; -uint32_t taskId; +volatile uint32_t *startTime; +uint32_t taskId; #endif { #ifdef MSPD_MLOG_NEW @@ -8743,13 +8864,13 @@ uint32_t taskId; #ifdef ANSI S16 SStopTask ( -VOLATILE uint32_t startTime, -uint32_t taskId +volatile uint32_t startTime, +uint32_t taskId ) #else S16 SStopTask(startTime, taskId) -VOLATILE uint32_t startTime; -uint32_t taskId; +volatile uint32_t startTime; +uint32_t taskId; #endif { /*uint32_t stopTime;*/ @@ -8792,13 +8913,13 @@ uint32_t taskId; #ifdef ANSI S16 SStartTask ( -VOLATILE uint32_t *startTime, -uint32_t taskId +volatile uint32_t * startTime, +uint32_t taskId ) #else S16 SStartTask(startTime, taskId) -VOLATILE uint32_t *startTime; -uint32_t taskId; +volatile uint32_t * startTime; +uint32_t taskId; #endif { *startTime = 0; @@ -8808,13 +8929,13 @@ uint32_t taskId; #ifdef ANSI S16 SStopTask ( -VOLATILE uint32_t startTime, -uint32_t taskId +volatile uint32_t startTime, +uint32_t taskId ) #else S16 SStopTask(startTime, taskId) -VOLATILE uint32_t startTime; -uint32_t taskId; +volatile uint32_t startTime; +uint32_t taskId; #endif { return ROK; @@ -8922,11 +9043,11 @@ uint8_t idx; * --*/ #ifdef ANSI -PRIVATE SsSTskEntry* ssdReAddTmrSTsk( +static SsSTskEntry* ssdReAddTmrSTsk( uint8_t idx ) #else -PRIVATE SsSTskEntry* ssdReAddTmrSTsk(idx) +static SsSTskEntry* ssdReAddTmrSTsk(idx) uint8_t idx; #endif {