To Calculate Set Bits from Msb for FreqDomain Allocation 75/4375/4
authorBalaji Shankaran <balaji.shankaran@radisys.com>
Mon, 13 Jul 2020 06:51:53 +0000 (12:21 +0530)
committerBalaji Shankaran <balaji.shankaran@radisys.com>
Thu, 16 Jul 2020 14:40:33 +0000 (14:40 +0000)
JIRA ID: ODUHIGH-192

Change-Id: If9c238bbd728e5cc812893302607e690b92d1554
Signed-off-by: Balaji Shankaran <balaji.shankaran@radisys.com>
src/5gnrsch/sch_utils.c
src/5gnrsch/sch_utils.h

index 1397c65..1f0035a 100644 (file)
@@ -448,7 +448,7 @@ void schAllocFreqDomRscType0(uint16_t startPrb, uint16_t prbSize, uint8_t *freqD
 {
    uint8_t remBits = prbSize; /* each bit represents 6 PRBs */
    uint8_t firstByte = 1;
-   uint8_t numBits,startBit,byteCount = 0;
+   uint8_t numBits,startBit,byteCount = 5;
 
    while(remBits)
    {
@@ -456,7 +456,7 @@ void schAllocFreqDomRscType0(uint16_t startPrb, uint16_t prbSize, uint8_t *freqD
       if(startPrb/8)
       {
          startPrb -= 8;
-         byteCount++;
+         byteCount--;
          continue;
       }
 
@@ -477,12 +477,12 @@ void schAllocFreqDomRscType0(uint16_t startPrb, uint16_t prbSize, uint8_t *freqD
          numBits = 8 - startBit;
 
       /* bit operation to set the bits */
-               SET_BITS((startBit % 8),numBits,freqDomain[byteCount])
+               SET_BITS_MSB((startBit % 8),numBits,freqDomain[byteCount])
       firstByte = 0;
 
       /* the ramaining bits should be subtracted with the numBits set in this byte */
       remBits -= numBits;
-      byteCount++;
+      byteCount--;
    }
 }
 
index b4a3acb..ec7d0e0 100644 (file)
 #define MAX_PRACH_CONFIG_IDX   256
 #define MAX_MU_PUSCH           4
 #define TOTAL_TBSIZE_VALUES    93
-#define SET_BITS(_startBit, _numBits, _byte)                                \
-{                                                            \
-   _byte = (((~((~0)<<_numBits))<<_startBit));               \
+#define SET_BITS_MSB(_startBit, _numBits, _byte) \
+{                                                \
+   _byte = (~((0xFF) >> _numBits));              \
+       _byte >>= _startBit;                          \
+}
+
+#define SET_BITS_LSB(_startBit, _numBits, _byte) \
+{                                                \
+   _byte = (~((0xFF) << _numBits));              \
+       _byte <<= _startBit;                          \
 }
 
 /* functions declarations */