From 1324d7c9f57cb8d1bb8fa61ad1907daa3323f760 Mon Sep 17 00:00:00 2001 From: wangyikai Date: Thu, 21 Aug 2025 10:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90hdf=5Fcore=E3=80=91hdf=5Fdevmgr=20bind?= =?UTF-8?q?er=E7=BA=BF=E7=A8=8B=E6=89=A9=E5=A4=A7=20&&=20code=20review?= =?UTF-8?q?=E6=A3=80=E8=A7=86=E6=84=8F=E8=A7=81=E5=A4=84=E7=90=86=20&&=20?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E6=A8=A1=E5=9D=97=E7=BC=96=E8=AF=91=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E5=8D=8F=E5=90=8C=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyikai --- adapter/uhdf2/host/BUILD.gn | 3 ++ adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp | 2 +- .../adapter/syscall/src/hdf_syscall_adapter.c | 29 +++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/adapter/uhdf2/host/BUILD.gn b/adapter/uhdf2/host/BUILD.gn index 859bd4fd5..42b31a767 100644 --- a/adapter/uhdf2/host/BUILD.gn +++ b/adapter/uhdf2/host/BUILD.gn @@ -26,6 +26,9 @@ config("libhdf_host_public_config") { "$hdf_interfaces_path/inner_api/osal/shared", "$hdf_interfaces_path/inner_api/host/shared", "$hdf_interfaces_path/inner_api/host/uhdf", + "$hdf_framework_path/core/manager/include", + "$hdf_framework_path/core/shared/include", + "include", ] } if (defined(ohos_lite)) { diff --git a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp index 9966c1bd0..5ad882019 100644 --- a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp +++ b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp @@ -29,7 +29,7 @@ #define HDF_LOG_TAG hdf_remote_adapter -static constexpr int32_t THREAD_POOL_BASE_THREAD_COUNT = 5; +static constexpr int32_t THREAD_POOL_BASE_THREAD_COUNT = 16; static int32_t g_remoteThreadMax = THREAD_POOL_BASE_THREAD_COUNT; HdfRemoteServiceStub::HdfRemoteServiceStub(struct HdfRemoteService *service) diff --git a/framework/core/adapter/syscall/src/hdf_syscall_adapter.c b/framework/core/adapter/syscall/src/hdf_syscall_adapter.c index 9e0bde661..629d6aeed 100644 --- a/framework/core/adapter/syscall/src/hdf_syscall_adapter.c +++ b/framework/core/adapter/syscall/src/hdf_syscall_adapter.c @@ -95,6 +95,11 @@ static int32_t HdfDevEventDispatchLocked( struct HdfDevEventlistener *listener = NULL; struct HdfSBuf *sbuf = NULL; + if (thread == NULL || adapter == NULL || bwr == NULL) { + HDF_LOGE("%{public}s: thread or adapter or bwr is NULL.", __func__); + return HDF_ERR_INVALID_PARAM; + } + if (bwr->readConsumed > 0) { sbuf = HdfSbufBind(bwr->readBuffer, bwr->readConsumed); } else { @@ -837,6 +842,12 @@ static int32_t HdfIoServiceStartListen(struct HdfSyscallAdapter *adapter, int po static bool AddListenerToAdapterLocked(struct HdfSyscallAdapter *adapter, struct HdfDevEventlistener *listener) { struct HdfDevEventlistener *it = NULL; + + if (adapter == NULL || listener == NULL) { + HDF_LOGE("%{public}s: adapter or listener is NULL.", __func__); + return false; + } + DLIST_FOR_EACH_ENTRY(it, &adapter->listenerList, struct HdfDevEventlistener, listNode) { if (it == listener) { HDF_LOGE("Add a listener for duplicate dev-event"); @@ -1024,6 +1035,11 @@ static int32_t GetListenerCount(struct HdfDevListenerThread *thread) struct HdfDevEventlistener *listener = NULL; int32_t count = 0; + if (thread == NULL) { + HDF_LOGE("%{public}s: thread is NULL.", __func__); + return count; + } + OsalMutexLock(&thread->mutex); if (thread->listenerListPtr != NULL) { DLIST_FOR_EACH_ENTRY(listener, thread->listenerListPtr, struct HdfDevEventlistener, listNode) { @@ -1032,12 +1048,15 @@ static int32_t GetListenerCount(struct HdfDevListenerThread *thread) } struct HdfSyscallAdapter *adapter = NULL; - DLIST_FOR_EACH_ENTRY(adapter, thread->adapterListPtr, struct HdfSyscallAdapter, listNode) { - OsalMutexLock(&adapter->mutex); - DLIST_FOR_EACH_ENTRY(listener, &adapter->listenerList, struct HdfDevEventlistener, listNode) { - count++; + + if (thread->adapterListPtr != NULL) { + DLIST_FOR_EACH_ENTRY(adapter, thread->adapterListPtr, struct HdfSyscallAdapter, listNode) { + OsalMutexLock(&adapter->mutex); + DLIST_FOR_EACH_ENTRY(listener, &adapter->listenerList, struct HdfDevEventlistener, listNode) { + count++; + } + OsalMutexUnlock(&adapter->mutex); } - OsalMutexUnlock(&adapter->mutex); } OsalMutexUnlock(&thread->mutex); -- Gitee