diff --git a/.gitignore b/.gitignore index 2a96d98beca78874843755fe344798d8c137c2a3..7e4e2616d8e26516ea0dcbdba0c26ce7bf753485 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ cscope.* tags pwrapic/gtest/lib pwrapic/gtest/include/gtest +.cache +compile_commands.json \ No newline at end of file diff --git a/common/inc/pwrbuffer.h b/common/inc/pwrbuffer.h index 06cff037f9ec9ce44ab5a5e390842ac8655f87cd..d40339dde3d3808a25517df4120dd6c6a87fda2a 100644 --- a/common/inc/pwrbuffer.h +++ b/common/inc/pwrbuffer.h @@ -18,7 +18,7 @@ #include #include "pwrmsg.h" -#define PWR_BUFFER_SIZE 128 +#define PWR_BUFFER_SIZE 256 // Ring Queue, FIFO typedef struct PwrMsgBuffer { int head; @@ -60,8 +60,8 @@ static inline int IsFullBuffer(const PwrMsgBuffer *smb) if (!smb) { return 0; } - int t = (smb->head + 1) % PWR_BUFFER_SIZE; - return t == smb->tail; + int t = (smb->tail + 1) % PWR_BUFFER_SIZE; + return t == smb->head; } ResultWaitingMsgNode *CreateResultWaitingMsgNode(void); diff --git a/pwrapic/gtest/CMakeLists.txt b/pwrapic/gtest/CMakeLists.txt index d2bd3f6c5d95c87d01495d6641e637d0ea4b2a1f..9847864f0b7e495081d00592d6dd3267a1d4ea7a 100644 --- a/pwrapic/gtest/CMakeLists.txt +++ b/pwrapic/gtest/CMakeLists.txt @@ -31,6 +31,7 @@ target_link_libraries(gtest_test PRIVATE -lpwrapi -lgtest -lgtest_main + -lpthread ) set (CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/pwrapic/src/pwrproc.c b/pwrapic/src/pwrproc.c index a3b92cf6c888559326d764874d6ab96b25dfed6c..2e90e6b6b20c180ad63eebe2237b045d992023ac 100644 --- a/pwrapic/src/pwrproc.c +++ b/pwrapic/src/pwrproc.c @@ -117,9 +117,9 @@ int GetProcWattAttrs(PWR_PROC_WattAttrs *wattAttrs) int ret = SendReqAndWaitForRsp(input, output); if (ret != PWR_SUCCESS) { - PwrLog(ERROR, "GetProcWattState failed. ret:%d", ret); + PwrLog(ERROR, "GetProcWattAttrs failed. ret:%d", ret); } else { - PwrLog(DEBUG, "GetProcWattState succeed."); + PwrLog(DEBUG, "GetProcWattAttrs succeed."); } return ret; } diff --git a/pwrapis/src/server.c b/pwrapis/src/server.c index b5dd8e5f8468eef5047db279bd5ba66dd099a398..93a29d69cca14df4b037cdbfee08fad9574e8261 100644 --- a/pwrapis/src/server.c +++ b/pwrapis/src/server.c @@ -313,6 +313,15 @@ static void ProcessRecvMsgFromClient(int clientIdx) return; } + if (IsFullBuffer(&g_recvBuff)) { + Logger(WARNING, MD_NM_SVR, + "Receive buffer is full, opt:%d, sysId:%d, seqId:%d", + msg->head.optType, msg->head.sysId, msg->head.seqId); + SendRspToClient(msg, PWR_ERR_MSG_BUFFER_FULL, NULL, 0); + ReleasePwrMsg(&msg); + return; + } + if (msg->head.sysId != (uint32_t)g_pwrClients[clientIdx].sysId) { ReleasePwrMsg(&msg); return;