/* events */
#define EVENT_SCH_CELL_CFG 1
#define EVENT_SCH_CELL_CFG_CFM 2
-#define EVENT_DL_ALLOC 3
+#define EVENT_DL_ALLOC 3
#define EVENT_UL_SCH_INFO 4
+#define EVENT_RACH_IND_TO_SCH 5
+#define EVENT_CRC_IND_TO_SCH 6
+#define EVENT_DL_RLC_BO_INFO_TO_SCH 7
/* selector */
#define MAC_SCH_LC_SELECTOR 0
#define SCH_DATATYPE_PRACH 16
#define MAX_NUMBER_OF_CRC_IND_BITS 1
+#define MAX_NUM_LOGICAL_CHANNELS 11
+
+#define CCCH_LCID 0
/*structures*/
PdschCfg rarPdschCfg;
}RarAlloc;
+typedef struct msg4Info
+{
+ uint8_t ndi;
+ uint8_t harqProcNum;
+ uint8_t dlAssignIdx;
+ uint8_t pucchTpc;
+ uint8_t pucchResInd;
+ uint8_t harqFeedbackInd;
+ uint8_t dciFormatId;
+ uint16_t crnti;
+ uint8_t *msg4Pdu;
+ uint8_t msg4PduLen;
+}Msg4Info;
+
+typedef struct msg4Alloc
+{
+ Msg4Info msg4Info;
+ PdcchCfg msg4PdcchCfg;
+ PdschCfg msg4PdschCfg;
+}Msg4Alloc;
+
typedef struct dlAlloc
{
uint16_t cellId; /* Cell Id */
/* Allocation for RAR message */
uint8_t isRarPres;
RarAlloc rarAlloc;
+
+ /* Allocation from MSG4 */
+ Msg4Alloc *msg4Alloc;
}DlAlloc;
typedef struct tbInfo
uint8_t crcInd[MAX_NUMBER_OF_CRC_IND_BITS];
}CrcIndInfo;
+typedef struct boInfo
+{
+ uint8_t lcId;
+ uint32_t dataVolume;
+}BOInfo;
+
+typedef struct dlRlcBOInfo
+{
+ uint16_t cellId;
+ uint16_t crnti;
+ uint16_t numLc;
+ BOInfo boInfo[MAX_NUM_LOGICAL_CHANNELS];
+}DlRlcBOInfo;
+
/* function pointers */
typedef int (*MacSchCrcIndFunc)(Pst *pst, CrcIndInfo *crcInd);
int packMacSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
int macSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
+typedef uint8_t (*MacSchDlRlcBoInfoFunc)(Pst *pst, DlRlcBOInfo *dlBoInfo);
+uint8_t packMacSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo);
+uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo);
+
/**********************************************************************
End of file