From c2a921e14b3bc06c24a9cc9dbeb77cd259ef70d9 Mon Sep 17 00:00:00 2001 From: wangyikai Date: Tue, 24 Jun 2025 22:10:36 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90hdf=5Fcore=E3=80=91smq=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=B4=E6=B5=8B=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyikai --- interfaces/inner_api/hdi/base/hdi_smq.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/interfaces/inner_api/hdi/base/hdi_smq.h b/interfaces/inner_api/hdi/base/hdi_smq.h index 59c7b480f..e73aa29ec 100644 --- a/interfaces/inner_api/hdi/base/hdi_smq.h +++ b/interfaces/inner_api/hdi/base/hdi_smq.h @@ -464,13 +464,14 @@ int SharedMemQueue::Write(const T *data, size_t count, int64_t waitTimeNanoSe startTime = currentTime; if (waitTimeNanoSec <= 0) { ret = WriteNonBlocking(data, count); - HDF_LOGE("Non-positive waitTimeNanoSec, WriteNonBlocking ret: %{public}d.", ret); + HDF_LOGE("Non-positive waitTimeNanoSec, data count: %{public}zu, WriteNonBlocking ret: %{public}d.", + count, ret); break; } } ret = syncer_->Wait(SharedMemQueueSyncer::SYNC_WORD_WRITE, waitTimeNanoSec); if (ret != 0 && ret != -ETIMEDOUT) { - HDF_LOGE("Write syncer wait failed, ret: %{public}d.", ret); + HDF_LOGE("Write syncer wait failed, , data count: %{public}zu, ret: %{public}d.", count, ret); break; } @@ -534,13 +535,14 @@ int SharedMemQueue::Read(T *data, size_t count, int64_t waitTimeNanoSec) startTime = currentTime; if (waitTimeNanoSec <= 0) { ret = ReadNonBlocking(data, count); - HDF_LOGE("Non-positive waitTimeNanoSec, ReadNonBlocking ret: %{public}d.", ret); + HDF_LOGE("Non-positive waitTimeNanoSec, data count: %{public}zu, ReadNonBlocking ret: %{public}d.", + count, ret); break; } } ret = syncer_->Wait(SharedMemQueueSyncer::SYNC_WORD_READ, waitTimeNanoSec); if (ret != 0 && ret != -ETIMEDOUT) { - HDF_LOGE("Read syncer wait failed, ret: %{public}d.", ret); + HDF_LOGE("Read syncer wait failed, , data count: %{public}zu, ret: %{public}d.", count, ret); break; } @@ -588,7 +590,7 @@ int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) if (wOffset + count <= (qCount + 1)) { if (memcpy_s(queueBuffer_ + (wOffset * sizeof(T)), (qCount + 1 - wOffset) * sizeof(T), data, count * sizeof(T)) != EOK) { - HDF_LOGE("whole memcpy_s failed."); + HDF_LOGE("%s whole memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; }; newWriteOffset = (wOffset + count) % (qCount + 1); @@ -597,11 +599,11 @@ int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) size_t secPartSize = count - firstPartSize; if (memcpy_s(queueBuffer_ + (wOffset * sizeof(T)), (qCount + 1 - wOffset) * sizeof(T), data, firstPartSize * sizeof(T)) != EOK) { - HDF_LOGE("Twofold, first part memcpy_s failed."); + HDF_LOGE("%s Twofold, first part memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; } if (memcpy_s(queueBuffer_, qCount * sizeof(T), data + firstPartSize, secPartSize * sizeof(T)) != EOK) { - HDF_LOGE("Twofold, second part memcpy_s failed."); + HDF_LOGE("%s Twofold, second part memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; } newWriteOffset = secPartSize; @@ -632,6 +634,7 @@ int SharedMemQueue::ReadNonBlocking(T *data, size_t count) auto rOffset = readOffset_->load(std::memory_order_acquire); if (rOffset + count <= (qCount + 1)) { if (memcpy_s(data, count * sizeof(T), queueBuffer_ + (rOffset * sizeof(T)), count * sizeof(T)) != EOK) { + HDF_LOGE("%s whole memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; } readOffset_->store((rOffset + count) % (qCount + 1), std::memory_order_release); @@ -643,10 +646,12 @@ int SharedMemQueue::ReadNonBlocking(T *data, size_t count) if (memcpy_s(data, firstPartSize * sizeof(T), queueBuffer_ + (rOffset * sizeof(T)), firstPartSize * sizeof(T)) != EOK) { + HDF_LOGE("%s Twofold, first part memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; } if (memcpy_s(data + firstPartSize, secPartSize * sizeof(T), queueBuffer_, secPartSize * sizeof(T)) != EOK) { + HDF_LOGE("%s Twofold, second part memcpy_s failed, data count: %{public}zu.", __func__, count); return HDF_FAILURE; }; readOffset_->store(secPartSize, std::memory_order_release); -- Gitee