#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 "gen.x"
-#include "ssi.x"
-#include "cm_hash.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_REQ,
- PARAM_RSP,
- CONFIG_REQ,
- CONFIG_RSP,
- START_REQ,
- STOP_REQ,
- 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 */
+ uint8_t phySlotIndCntr;
+ 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
{
- RELEASE_15
+ FAPI_RELEASE_15
}ReleaseCapab;
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);
#endif
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/