+/* allocate and zero out a static buffer */
+#define DU_ALLOC(_datPtr, _size) \
+{ \
+ S16 _ret; \
+ _ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, \
+ (Data **)&_datPtr, _size); \
+ if(_ret == ROK) \
+ cmMemset((U8*)_datPtr, 0, _size); \
+ else \
+ _datPtr = NULLP; \
+}
+
+/* free a static buffer */
+#define DU_FREE(_datPtr, _size) \
+ if(_datPtr) \
+ SPutSBuf(DU_APP_MEM_REGION, DU_POOL, \
+ (Data *)_datPtr, _size);
+
+typedef enum
+{
+ CELL_OUT_OF_SERVICE,
+ ACTIVATION_IN_PROGRESS,
+ ACTIVATED,
+ DELETION_IN_PROGRESS
+}CellStatus;
+
+typedef struct cellCfgParams
+{
+ NrEcgi nrEcgi; /* ECGI */
+ U16 nrPci; /* PCI */
+ U16 fiveGsTac; /* 5gSTac */
+ PlmnId plmn[MAX_PLMN]; /* List of serving PLMN IDs */
+ U32 maxUe; /* max UE per slot */
+}CellCfgParams;
+
+
+typedef struct duCellCb
+{
+ U32 cellId; /* Internal cell Id */
+ CellCfgParams cellInfo; /* Cell info */
+ CellStatus cellStatus; /*Cell status */
+}DuCellCb;
+
+typedef struct duLSapCb
+{
+ Pst pst;
+ SuId suId;
+ SpId spId;
+ State sapState;
+ Mem mem;
+ CmTimer timer;
+ U8 bndRetryCnt;
+ U8 maxBndRetry;
+ TmrCfg bndTmr;
+}DuLSapCb;