X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fmt%2Fss_rbuf.c;h=1da1b38c51fbdd226c69363dd98155d4096734ea;hb=def50dc175cebc67238db5f1acd5ff322a2279bd;hp=e0ef97c1c677eb544f08088122afcd5bc964fc12;hpb=829bbd114f1c3dc00c1da47bca0a8207c049df3f;p=o-du%2Fl2.git diff --git a/src/mt/ss_rbuf.c b/src/mt/ss_rbuf.c index e0ef97c1c..1da1b38c5 100755 --- a/src/mt/ss_rbuf.c +++ b/src/mt/ss_rbuf.c @@ -39,19 +39,19 @@ #include "ss_rbuf.h" #include "ss_rbuf.x" -U32 ssRngBufStatus = 0; +uint32_t ssRngBufStatus = 0; /* Global Ring Loop Up Table */ SsRngBufTbl SsRngInfoTbl[SS_RNG_BUF_MAX]; -PUBLIC Void SsRngBufEnable(Void) +Void SsRngBufEnable(Void) { ssRngBufStatus = TRUE; } -PUBLIC Void SsRngBufDisable(Void) +Void SsRngBufDisable(Void) { ssRngBufStatus = FALSE; @@ -63,21 +63,21 @@ Desc: Creates Ring Buffer for the given Id. Region and Pool */ #ifdef ANSI -PUBLIC S16 SCreateSRngBuf +S16 SCreateSRngBuf ( -U32 id, +uint32_t id, Region region, Pool pool, -U32 elmSize, -U32 rngSize +uint32_t elmSize, +uint32_t rngSize ) #else -PUBLIC S16 SCreateSRngBuf (id, region, pool, elmSize, rngSize) -U32 id; +S16 SCreateSRngBuf (id, region, pool, elmSize, rngSize) +uint32_t id; Region region; Pool pool; -U32 elmSize; -U32 rngSize; +uint32_t elmSize; +uint32_t rngSize; #endif { SsRngBuf* ring; @@ -88,7 +88,7 @@ U32 rngSize; #if (ERRCLASS & ERRCLS_DEBUG) SSLOGERROR(ERRCLS_DEBUG, ESSXXX, id, "Invalid RBUF ID"); #endif - RETVALUE(RFAILED); + return RFAILED; } if(SsRngInfoTbl[id].r_addr != 0) { @@ -96,7 +96,7 @@ U32 rngSize; SSLOGERROR(ERRCLS_DEBUG, ESSXXX, id, "Failed to Create Ring Buffer Id Ring already exist"); #endif - RETVALUE(RFAILED); + return RFAILED; } /* Get Element Size */ @@ -108,7 +108,7 @@ U32 rngSize; #if (ERRCLASS & ERRCLS_DEBUG) SSLOGERROR(ERRCLS_INT_PAR, ESSXXX, ERRZERO, "Allocating Ring Failed!!!") #endif - RETVALUE(RFAILED); + return RFAILED; } #if (ERRCLASS & ERRCLS_DEBUG) SSLOGERROR(ERRCLS_DEBUG, ESSXXX, ring, @@ -128,7 +128,7 @@ U32 rngSize; SSLOGERROR(ERRCLS_INT_PAR, ESSXXX, ERRZERO, "Allocating Ring Failed!!!") #endif free(ring); - RETVALUE(RFAILED); + return RFAILED; } /* Update Buffer Id Table */ SsRngInfoTbl[id].r_addr = ring; @@ -141,7 +141,7 @@ U32 rngSize; #else printf("Ring Buffer Created with id =%d rSize:%d eSize:%d %lx\n",id,ring->size,ring->type,(PTR)ring); #endif - RETVALUE(ROK); + return ROK; } /* @@ -150,17 +150,17 @@ Desc: Attach the calling Entity to a ring buffer as consumer(Rx) or producer (Tx) */ #ifdef ANSI -PUBLIC S16 SAttachSRngBuf +S16 SAttachSRngBuf ( -U32 id, -U32 ent, -U32 txRx +uint32_t id, +uint32_t ent, +uint32_t txRx ) #else -PUBLIC S16 SAttachSRngBuf (id, ent, txRx) -U32 id; -U32 ent; -U32 txRx; +S16 SAttachSRngBuf (id, ent, txRx) +uint32_t id; +uint32_t ent; +uint32_t txRx; #endif { /* Retrive Buffer from Global Info Table */ @@ -169,7 +169,7 @@ U32 txRx; #if (ERRCLASS & ERRCLS_DEBUG) SSLOGERROR(ERRCLS_DEBUG, ESSXXX, id, "Invalid RBUF ID"); #endif - RETVALUE(RFAILED); + return RFAILED; } if(SsRngInfoTbl[id].rngState < SS_RNG_CREATED) { @@ -184,7 +184,7 @@ U32 txRx; printf("Attach Request in Invalid Ring State %d id%d \n", SsRngInfoTbl[id].rngState,id); #endif - RETVALUE(RFAILED); + return RFAILED; } if(txRx == SS_RNG_TX) { @@ -196,7 +196,7 @@ U32 txRx; SsRngInfoTbl[id].rxEnt = ent; SsRngInfoTbl[id].rngState = SS_RNG_RX_ATTACHED; } - RETVALUE(ROK); + return ROK; } /* Func: SConnectSRngBuf @@ -204,19 +204,19 @@ Desc: Establish a pipe between producer and consumer */ #ifdef ANSI -PUBLIC S16 SConnectSRngBuf +S16 SConnectSRngBuf ( -U32 id, -U32 rxEnt +uint32_t id, +uint32_t rxEnt ) #else -PUBLIC S16 SConnectSRngBuf (id, rxEnt) -U32 id; -U32 rxEnt; +S16 SConnectSRngBuf (id, rxEnt) +uint32_t id; +uint32_t rxEnt; #endif { /* Send to Reciever ENT*/ - RETVALUE(ROK); + return ROK; } /* @@ -225,10 +225,6 @@ Desc: Checks if Ring is full */ inline static S16 IsFull(SsRngBuf* rBuf) { -#if 0 - /* write+1 == read implies ring is full */ - return ((((rBuf->write + 1)> rBuf->size)?0:(rBuf->write+1))==rBuf->read); -#endif #if 1 if((rBuf->write+1) == rBuf->read) { @@ -255,7 +251,7 @@ inline static S16 IsEmpty(SsRngBuf* rBuf) return (rBuf->write == rBuf->read); } -PUBLIC S16 isRngEmpty(U32 id) +S16 isRngEmpty(uint32_t id) { return (IsEmpty(SsRngInfoTbl[id].r_addr)); } @@ -264,112 +260,112 @@ Func: SEnqSRngBuf Desc: Perform Queue operation on Ring bufer */ #ifdef ANSI -PUBLIC S16 SEnqSRngBuf +S16 SEnqSRngBuf ( -U32 id, +uint32_t id, Void* elem ) #else -PUBLIC S16 SEnqSRngBuf(id,elem) -U32 id; +S16 SEnqSRngBuf(id,elem) +uint32_t id; Void* elem; #endif { - U8* w_ptr; - U8 i=0; - U8 *element = (U8 *)elem; - U32 wrIndex; + uint8_t* w_ptr; + uint8_t i=0; + uint8_t *element = (uint8_t *)elem; + uint32_t wrIndex; /* TBD To replace id with ring addr when SAttachSRngBuf is used*/ /* Retrive Buffer from Id */ SsRngBuf* ring = SsRngInfoTbl[id].r_addr; if (IsFull(ring)) { SsRngInfoTbl[id].nWriteFail++; - RETVALUE(RFAILED); + return RFAILED; } /* TBD Avoid multiplication for optimisation */ - w_ptr = (U8*)ring->elem + (ring->write * ring->type); + w_ptr = (uint8_t*)ring->elem + (ring->write * ring->type); /* TBD Avoid for loop - use memcpy */ for( i=0; i < ring->type; i++) { - *(U8*)w_ptr = *(U8*)element; + *(uint8_t*)w_ptr = *(uint8_t*)element; w_ptr++; - (U8*)element++; + (uint8_t*)element++; } /* Increment write index */ wrIndex = ring->write + 1 ; ring->write = (wrIndex == ring->size)?0: wrIndex; /* Update Statistics */ SsRngInfoTbl[id].n_write++; - RETVALUE(ROK); + return ROK; } #ifdef ANSI -PUBLIC S16 SGetNumElemInRng +S16 SGetNumElemInRng ( -U32 id +uint32_t id ) #else -PUBLIC S16 SGetNumElemInRng (id) -U32 id; +S16 SGetNumElemInRng (id) +uint32_t id; #endif { S16 freeDist = (SsRngInfoTbl[id].n_write- SsRngInfoTbl[id].n_read); - RETVALUE(freeDist); + return (freeDist); } /* Func: SDeqSRngBuf Desc: Perform DeQueue operation on Ring bufer */ #ifdef ANSI -PUBLIC S16 SDeqSRngBuf +S16 SDeqSRngBuf ( -U32 id, +uint32_t id, Void *elem ) #else -PUBLIC S16 SDeqSRngBuf (id,elem) -U8 id; +S16 SDeqSRngBuf (id,elem) +uint8_t id; Void *elem; #endif { - U8* r_ptr; - U8 i=0; - U8 *element = (U8 *)elem; - U32 rdIndex; + uint8_t* r_ptr; + uint8_t i=0; + uint8_t *element = (uint8_t *)elem; + uint32_t rdIndex; /* Retrive Buffer from Id*/ SsRngBuf* ring = SsRngInfoTbl[id].r_addr; if(IsEmpty(ring)) { SsRngInfoTbl[id].nReadFail++; - RETVALUE(RFAILED); + return RFAILED; } - r_ptr = (U8*)ring->elem + (ring->read * ring->type); + r_ptr = (uint8_t*)ring->elem + (ring->read * ring->type); for(i=0; itype; i++) { - *(U8*)element = *r_ptr; - (U8*)element++; + *(uint8_t*)element = *r_ptr; + (uint8_t*)element++; r_ptr++; } // Avoiding % operation for wrap around rdIndex= ring->read + 1; ring->read = (rdIndex == ring->size)?0:rdIndex; SsRngInfoTbl[id].n_read++; - RETVALUE(ROK); + return ROK; } #ifdef ANSI -PUBLIC S16 SDestroySRngBuf +S16 SDestroySRngBuf ( -U32 id, +uint32_t id, Region region, Pool pool ) #else -PUBLIC S16 SDestroySRngBuf(id, region, pool) -U32 id; +S16 SDestroySRngBuf(id, region, pool) +uint32_t id; Region region; Pool pool; #endif @@ -388,25 +384,25 @@ Pool pool; SsRngInfoTbl[id].rngState = SS_RNG_DESTROYED; SsRngInfoTbl[id].r_addr = 0; } - RETVALUE(ROK); + return ROK; } #ifdef ANSI -PUBLIC S16 SPrintSRngStats +S16 SPrintSRngStats ( Void ) #else -PUBLIC S16 SPrintSRngStats () +S16 SPrintSRngStats () Void; #endif { -U32 i; +uint32_t i; Txt prntBuf[100]; #ifdef RGL_SPECIFIC_CHANGES - RETVALUE(ROK); + return ROK; #endif for(i=0; i< SS_RNG_BUF_MAX;i++) { @@ -462,17 +458,17 @@ U32 i; #endif } } - RETVALUE(ROK); + return ROK; } #ifdef ANSI -PUBLIC Void* SRngGetWIndx +Void* SRngGetWIndx ( -U32 rngId +uint32_t rngId ) #else -PUBLIC Void* SRngGetWIndx (rngId) -U32 rngId; +Void* SRngGetWIndx (rngId) +uint32_t rngId; #endif { /* Retrive Buffer from Id*/ @@ -480,22 +476,22 @@ U32 rngId; if (IsFull(ring)) { SsRngInfoTbl[rngId].nWriteFail++; - RETVALUE(NULLP); + return (NULLP); } else { - RETVALUE(((U8 *)ring->elem) + (ring->type * ring->write)); + return (((uint8_t *)ring->elem) + (ring->type * ring->write)); } } #ifdef ANSI -PUBLIC Void* SRngGetRIndx +Void* SRngGetRIndx ( -U32 rngId +uint32_t rngId ) #else -PUBLIC Void* SRngGetRIndx (rngId) -U32 rngId; +Void* SRngGetRIndx (rngId) +uint32_t rngId; #endif { /* Retrive Buffer from Id*/ @@ -503,25 +499,25 @@ U32 rngId; if(IsEmpty(ring)) { SsRngInfoTbl[rngId].nReadFail++; - RETVALUE(NULLP); + return (NULLP); } else { - RETVALUE(((U8 *)ring->elem) + (ring->type * ring->read)); + return (((uint8_t *)ring->elem) + (ring->type * ring->read)); } } #ifdef ANSI -PUBLIC Void SRngIncrWIndx +Void SRngIncrWIndx ( -U32 rngId +uint32_t rngId ) #else -PUBLIC Void SRngIncrWIndx (rngId) -U32 rngId; +Void SRngIncrWIndx (rngId) +uint32_t rngId; #endif { - U32 wrIndex; + uint32_t wrIndex; /* Retrive Buffer from Id*/ SsRngBuf* ring = SsRngInfoTbl[rngId].r_addr; wrIndex = ring->write + 1; @@ -531,16 +527,16 @@ U32 rngId; } #ifdef ANSI -PUBLIC Void SRngIncrRIndx +Void SRngIncrRIndx ( -U32 rngId +uint32_t rngId ) #else -PUBLIC Void SRngIncrRIndx (rngId) -U32 rngId; +Void SRngIncrRIndx (rngId) +uint32_t rngId; #endif { - U32 rdIndex; + uint32_t rdIndex; /* Retrive Buffer from Id*/ SsRngBuf* ring = SsRngInfoTbl[rngId].r_addr; rdIndex = ring->read + 1; @@ -550,7 +546,7 @@ U32 rngId; } #ifdef XEON_SPECIFIC_CHANGES #if (defined (MAC_FREE_RING_BUF) || defined (RLC_FREE_RING_BUF)) -S16 mtAddBufToRing(SsRngBufId ringId,void *bufPtr,U8 freeType) +S16 mtAddBufToRing(SsRngBufId ringId,void *bufPtr,uint8_t freeType) { S16 ret1 = ROK; @@ -576,40 +572,13 @@ S16 mtAddBufToRing(SsRngBufId ringId,void *bufPtr,U8 freeType) SsRngInfoTbl[ringId].pktDrop++; ret1 = RFAILED; } - RETVALUE(ret1); + return (ret1); } #endif #endif -#if 0 -int main(int argc, char **argv) -{ - SCreateSRngBuf(1,sizeof(SsRngBuf), 10); - rngElem* buf; - /* Fill buffer with test elements 3 times */ - buf = (SsRngBuf*)malloc(sizeof(rngBuf)); - buf->ptr = 1; - SEnqSRngBuf(1, buf); - buf = (SsRngBuf*)malloc(sizeof(rngBuf)); - buf->ptr = 2; - SEnqSRngBuf(1, buf); - buf = (SsRngBuf*)malloc(sizeof(rngBuf)); - buf->ptr = 3; - SEnqSRngBuf(1, buf); - - SDeqSRngBuf(1,buf); - printf("buf 1 = %d",buf->ptr); - SDeqSRngBuf(1,buf); - printf("buf 2 = %d",buf->ptr); - SDeqSRngBuf(1,buf); - printf("buf 3 = %d",buf->ptr); - - return 0; -} -#endif - /********************************************************************** End of file **********************************************************************/