L1-L2 Integration fixes.[Issue-ID: ODUHIGH-252]
[o-du/l2.git] / src / mt / mt_ss.c
index 725a850..d909e4b 100644 (file)
 #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  
 
@@ -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
 \f
 /* 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 */
 \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
@@ -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
 
 \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)
@@ -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
 {