refactor: los_cir_buf.c中接口整合
将循环buf的上/解锁操作合进读/写操作里,删除对外上/解锁接口 BREAKING CHANGE: 1. 删除 LOS_CirBufLock(),LOS_CirBufUnlock()内核对外接口 2. LOS_CirBufWrite(),LOS_CirBufRead()由原先内部不进行上/解锁操作,变为默认已包含上/解锁操作。 close: #I4MC13 Signed-off-by: arvinzzz <zhaotianyu9@huawei.com> Change-Id: Ie3cc1abde7fa0e5479ccbf4e596426e509b5cef5
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
*/
|
||||
|
||||
#include "los_cir_buf.h"
|
||||
#include "los_spinlock.h"
|
||||
|
||||
|
||||
UINT32 LOS_CirBufUsedSize(CirBuf *cirbufCB)
|
||||
@@ -103,14 +104,17 @@ STATIC UINT32 OsCirBufWriteLoop(CirBuf *cirbufCB, const CHAR *buf, UINT32 size)
|
||||
|
||||
UINT32 LOS_CirBufWrite(CirBuf *cirbufCB, const CHAR *buf, UINT32 size)
|
||||
{
|
||||
UINT32 cpSize;
|
||||
UINT32 cpSize = 0;
|
||||
UINT32 intSave;
|
||||
|
||||
if ((cirbufCB == NULL) || (buf == NULL) || (size == 0)) {
|
||||
if ((cirbufCB == NULL) || (buf == NULL) || (size == 0) || (cirbufCB->status != CBUF_USED)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LOS_SpinLockSave(&cirbufCB->lock, &intSave);
|
||||
|
||||
if ((cirbufCB->fifo == NULL) || (cirbufCB->remain == 0)) {
|
||||
return 0;
|
||||
goto EXIT;;
|
||||
}
|
||||
|
||||
if (cirbufCB->startIdx <= cirbufCB->endIdx) {
|
||||
@@ -119,6 +123,8 @@ UINT32 LOS_CirBufWrite(CirBuf *cirbufCB, const CHAR *buf, UINT32 size)
|
||||
cpSize = OsCirBufWriteLinear(cirbufCB, buf, size);
|
||||
}
|
||||
|
||||
EXIT:
|
||||
LOS_SpinUnlockRestore(&cirbufCB->lock, intSave);
|
||||
return cpSize;
|
||||
}
|
||||
|
||||
@@ -173,14 +179,17 @@ STATIC UINT32 OsCirBufReadLoop(CirBuf *cirbufCB, CHAR *buf, UINT32 size)
|
||||
|
||||
UINT32 LOS_CirBufRead(CirBuf *cirbufCB, CHAR *buf, UINT32 size)
|
||||
{
|
||||
UINT32 cpSize;
|
||||
UINT32 cpSize = 0;
|
||||
UINT32 intSave;
|
||||
|
||||
if ((cirbufCB == NULL) || (buf == NULL) || (size == 0)) {
|
||||
if ((cirbufCB == NULL) || (buf == NULL) || (size == 0) || (cirbufCB->status != CBUF_USED)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LOS_SpinLockSave(&cirbufCB->lock, &intSave);
|
||||
|
||||
if ((cirbufCB->fifo == NULL) || (cirbufCB->remain == cirbufCB->size)) {
|
||||
return 0;
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
if (cirbufCB->startIdx >= cirbufCB->endIdx) {
|
||||
@@ -189,6 +198,8 @@ UINT32 LOS_CirBufRead(CirBuf *cirbufCB, CHAR *buf, UINT32 size)
|
||||
cpSize = OsCirBufReadLinear(cirbufCB, buf, size);
|
||||
}
|
||||
|
||||
EXIT:
|
||||
LOS_SpinUnlockRestore(&cirbufCB->lock, intSave);
|
||||
return cpSize;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user