diff --git a/common/src/concurrent_task_utils.cpp b/common/src/concurrent_task_utils.cpp index 82df7b7e26679c64e635f96926352c6c0a981747..4cbf5b64490bf7d9da143337695a11e7d1d84ed0 100644 --- a/common/src/concurrent_task_utils.cpp +++ b/common/src/concurrent_task_utils.cpp @@ -21,8 +21,10 @@ uint64_t GetAddrTag(void* addr) { uint64_t tag = 0; +#if !defined(CROSS_PLATFORM) if (addr != nullptr) { tag = fdsan_create_owner_tag(FDSAN_OWNER_TYPE_FILE, (uint64_t)addr); } +#endif return tag; } \ No newline at end of file diff --git a/services/src/qos_interface.cpp b/services/src/qos_interface.cpp index 4caa8824998784f27c7e2e5a74e32c6ef62f8ffa..25e2694116095663a79c1a2c051cae42f6727c0e 100644 --- a/services/src/qos_interface.cpp +++ b/services/src/qos_interface.cpp @@ -27,7 +27,10 @@ #include #include "concurrent_task_log.h" + +#if !defined(CROSS_PLATFORM) #include "concurrent_task_utils.h" +#endif static int TrivalOpenRtgNode(void) { @@ -62,14 +65,19 @@ int EnableRtg(bool flag) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif int ret = ioctl(fd, CMD_ID_SET_ENABLE, &enableData); if (ret < 0) { CONCUR_LOGE("set rtg config enable failed."); } - +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return 0; }; @@ -87,7 +95,9 @@ int QosApplyForOther(unsigned int level, int tid) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif struct QosCtrlData data; data.level = level; @@ -98,7 +108,11 @@ int QosApplyForOther(unsigned int level, int tid) if (ret < 0) { CONCUR_LOGE("[Interface] task %{public}d apply qos failed, errno = %{public}d", tid, errno); } +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return ret; } @@ -108,7 +122,9 @@ int QosLeave(void) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif struct QosCtrlData data; data.type = static_cast(QosManipulateType::QOS_LEAVE); @@ -118,7 +134,11 @@ int QosLeave(void) if (ret < 0) { CONCUR_LOGE("[Interface] task %{public}d leave qos failed, errno = %{public}d", gettid(), errno); } +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return ret; } @@ -128,7 +148,9 @@ int QosLeaveForOther(int tid) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif struct QosCtrlData data; data.type = static_cast(QosManipulateType::QOS_LEAVE); @@ -138,7 +160,11 @@ int QosLeaveForOther(int tid) if (ret < 0) { CONCUR_LOGE("[Interface] task %{public}d leave qos failed, errno = %{public}d", tid, errno); } +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return ret; } @@ -148,13 +174,19 @@ int QosPolicySet(const struct QosPolicyDatas* policyDatas) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif int ret = ioctl(fd, QOS_CTRL_POLICY_OPERATION, policyDatas); if (ret < 0) { CONCUR_LOGE("[Interface] set qos policy failed, errno = %{public}d", errno); } +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return ret; } @@ -170,7 +202,9 @@ int QosGetForOther(int tid, int& level) if (fd < 0) { return fd; } +#if !defined(CROSS_PLATFORM) fdsan_exchange_owner_tag(fd, 0, GetAddrTag(static_cast(&fd))); +#endif struct QosCtrlData data; data.type = static_cast(QosManipulateType::QOS_GET); @@ -182,7 +216,10 @@ int QosGetForOther(int tid, int& level) CONCUR_LOGE("[Interface] task %{public}d get qos failed, errno = %{public}d", tid, errno); } level = data.qos; - +#if !defined(CROSS_PLATFORM) fdsan_close_with_tag(fd, GetAddrTag(static_cast(&fd))); +#else + close(fd); +#endif return ret; } \ No newline at end of file