#ifndef __LWR_MAC_H__
#define __LWR_MAC_H__
-#define MAX_NUM_CELL_SUPP 1
+#ifdef INTEL_WLS_MEM
+#define LWR_MAC_ALLOC(_datPtr, _size) WLS_MEM_ALLOC(_datPtr, _size);
+#else
+#define LWR_MAC_ALLOC(_datPtr, _size) MAC_ALLOC(_datPtr, _size);
+#endif
-#include "envdep.h"
-#include "gen.h"
-#include "ssi.h"
-#include "cm_hash.h"
-#include "cm_lte.h"
-
-#include "gen.x"
-#include "ssi.x"
-#include "cm_hash.x"
-#include "cm_lte.x"
-#include "cm_lib.x"
-#include "du_app_mac_inf.h"
+#ifdef INTEL_WLS_MEM
+#define LWR_MAC_FREE(_datPtr, _size) WLS_MEM_FREE(_datPtr, _size);
+#else
+#define LWR_MAC_FREE(_datPtr, _size) MAC_FREE(_datPtr, _size);
+#endif
typedef enum
{
/* Events in Lower Mac */
typedef enum{
- PARAM_REQUEST,
- PARAM_RESPONSE,
- CONFIG_REQUEST,
- CONFIG_RESPONSE,
- START_REQUEST,
- STOP_REQUEST,
- MAX_EVENT
+#ifdef INTEL_TIMER_MODE
+ UL_IQ_SAMPLE,
+#endif
+ PARAM_REQUEST,
+ PARAM_RESPONSE,
+ CONFIG_REQUEST,
+ CONFIG_RESPONSE,
+ START_REQUEST,
+ STOP_REQUEST,
+ MAX_EVENT
}EventState;
-typedef struct clCb
+typedef struct cellCb
+{
+ uint16_t cellId;
+ uint16_t phyCellId;
+ PhyState state;
+}LwrMacCellCb;
+
+typedef struct lwrMacGlobalCb
{
Region region;
Pool pool;
- Bool clCfgDone; /* CL configuration done */
- CmHashListCp cellCbLst; /* List of Cells configured */
- U8 numOfCells; /* Number of Cells configured */
+ bool clCfgDone; /* CL configuration done */
+ LwrMacCellCb cellCb[MAX_NUM_CELL]; /* List of Cells configured */
+ uint8_t numCell; /* Number of Cells configured */
PhyState phyState; /* State of PHY */
EventState event; /* State of Event */
-}ClCb;
-
-typedef struct cellCb
-{
- U16 cellId;
- MacCellCfg cellCfg;
- PhyState phyState;
-}ClCellCb;
+}LwrMacCb;
typedef enum
{
ParamSupport precoderGranularityCoreset;
ParamSupport pdcchMuMimo;
ParamSupport pdcchPrecoderCycling;
- U8 maxPdcchsPerSlot;
+ uint8_t maxPdcchsPerSlot;
Formats pucchFormats;
- U8 maxPucchsPerSlot;
+ uint8_t maxPucchsPerSlot;
MappingType pdschMappingType;
AllocationType pdschAllocationTypes;
VrbToPrbMap pdschVrbToPrbMapping;
DmrsConfigType pdschDmrsConfigTypes;
DmrMaxLen pdschDmrsMaxLength;
DmrsPos pdschDmrsAdditionalPos;
- U8 maxPdschsTBsPerSlot;
- U8 maxNumberMimoLayersPdsch;
+ uint8_t maxPdschsTBsPerSlot;
+ uint8_t maxNumberMimoLayersPdsch;
ModulationOrder supportedMaxModulationOrderDl;
- U8 maxMuMimoUsersDl;
+ uint8_t maxMuMimoUsersDl;
ParamSupport pdschDataInDmrsSymbols;
ParamSupport premptionSupport;
ParamSupport pdschNonSlotSupport;
MappingType puschMappingType;
AllocationType puschAllocationTypes;
VrbToPrbMap puschVrbToPrbMapping;
- U8 puschMaxPtrsPorts;
- U8 maxPduschsTBsPerSlot;
- U8 maxNumberMimoLayersNonCbPusch;
+ uint8_t puschMaxPtrsPorts;
+ uint8_t maxPduschsTBsPerSlot;
+ uint8_t maxNumberMimoLayersNonCbPusch;
ModulationOrder supportedModulationOrderUl;
- U8 maxMuMimoUsersUl;
+ uint8_t maxMuMimoUsersUl;
ParamSupport dftsOfdmSupport;
AggregationFactor puschAggregationFactor;
Formats prachLongFormats;
RssiMeasurement rssiMeasurementSupport;
}ClCellParam;
-EXTERN ClCb clGlobalCp;
-EXTERN ClCellCb * rgClUtlGetCellCb ARGS((U16 cellId));
+LwrMacCb lwrMacCb;
+LwrMacCellCb * lwrMacGetCellCb ARGS((uint16_t cellId));
+uint32_t reverseBits(uint32_t num, uint8_t numBits);
+void fillDlDciPayload(uint8_t *buf, uint8_t *bytePos, uint8_t *bitPos,\
+ uint32_t val, uint8_t valSize);
+void lwrMacLayerInit();
#endif
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/