#include <arpa/inet.h>
#endif /* SS_WATCHDOG */
+#ifdef SS_USE_WLS_MEM
+#include <rte_common.h>
+#include <rte_debug.h>
+#include <rte_eal.h>
+#endif
+
/* header/extern include files (.x) */
#include "gen.x" /* general layer */
#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 <wls_lib.h>
#include <hugetlbfs.h>
#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
void dump_external(void);
#ifdef ANSI
-PRIVATE Void mtDelSigals
+static Void mtDelSigals
(
Void
)
#else
-PRIVATE Void mtDelSignals()
+static Void mtDelSignals()
#endif
{
struct sigaction sa;
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
\f
/* forward references */
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 */
\f
#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
{ 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_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_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_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_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
{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_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_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_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_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)))
{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},
{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 */
{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 */
}
},
{
{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 */
}
},
{
{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 */
}
},
{
{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
}
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
\f
/* 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)
}
#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
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;
} /* end of if statement */
#endif
-#ifdef INTEL_WLS
+#if defined (INTEL_WLS) || defined (SS_USE_WLS_MEM)
if(!SOpenWlsIntf())
return (0);
#endif /* INTEL_WLS */
#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(
#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()
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)
{
#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;
*
*/
#ifdef ANSI
-PRIVATE Void mtGetOpts
+static Void mtGetOpts
(
void
)
#else
-PRIVATE Void mtGetOpts()
+static Void mtGetOpts()
#endif
{
S32 argc;
*/
#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
//#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
(
return (NULLP);
}
#else
-EXTERN Void ysMtTskHdlr(Void);
-EXTERN Void YsPhyRecvMsg();
+Void ysMtTskHdlr(Void);
+Void YsPhyRecvMsg();
#ifdef ANSI
Void *mtTskHdlrT2kL2
(
#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);
*/
/*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
{
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*/
*
*/
#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
{
*/
#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
{
#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
*
*/
#ifdef ANSI
-INLINE S16 SEnbInt
+inline S16 SEnbInt
(
void
)
#else
-INLINE S16 SEnbInt()
+inline S16 SEnbInt()
#endif
{
*
*/
#ifdef ANSI
-INLINE S16 SDisInt
+inline S16 SDisInt
(
void
)
#else
-INLINE S16 SDisInt()
+inline S16 SDisInt()
#endif
{
*
*/
#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
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
{
uint8_t idx = 0;
uint8_t memStatus = 3;
- PRIVATE uint8_t initFlag = 1;
+ static uint8_t initFlag = 1;
if(initFlag)
{
initFlag = 0;
*
*/
#ifdef ANSI
-PRIVATE S16 SPrintRegMemStats
+static S16 SPrintRegMemStats
(
Region region
)
#else
-PRIVATE S16 SPrintRegMemStats(region)
+static S16 SPrintRegMemStats(region)
Region region;
#endif
{
*
--*/
#ifdef ANSI
-PRIVATE SsSTskEntry* ssdAddTmrSTsk(Void)
+static SsSTskEntry* ssdAddTmrSTsk(Void)
#else
-PRIVATE SsSTskEntry* ssdAddTmrSTsk()
+static SsSTskEntry* ssdAddTmrSTsk()
#endif
{
SsSTskEntry *sTsk;
**/
#ifdef ANSI
-PRIVATE void *workRcvTsk
+static void *workRcvTsk
(
Ptr ptr
)
#else
-PRIVATE void *workRcvTsk (ptr)
+static void *workRcvTsk (ptr)
Ptr ptr;
#endif
{
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
#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
#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;*/
#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;
#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;
*
--*/
#ifdef ANSI
-PRIVATE SsSTskEntry* ssdReAddTmrSTsk(
+static SsSTskEntry* ssdReAddTmrSTsk(
uint8_t idx
)
#else
-PRIVATE SsSTskEntry* ssdReAddTmrSTsk(idx)
+static SsSTskEntry* ssdReAddTmrSTsk(idx)
uint8_t idx;
#endif
{