diff --git a/libpurgeablemem/c/src/purgeable_mem_c.c b/libpurgeablemem/c/src/purgeable_mem_c.c index 291e44276d49d4ef70a853400da475f7894fb9ea..88973a0a32701814c96c163e16666360d883231e 100644 --- a/libpurgeablemem/c/src/purgeable_mem_c.c +++ b/libpurgeablemem/c/src/purgeable_mem_c.c @@ -89,7 +89,7 @@ static struct PurgMem *PurgMemCreate_(size_t len, struct PurgMemBuilder *builder goto free_uxpt; } int lockInitRet = pthread_rwlock_init(&(pugObj->rwlock), NULL); - if (lockInitRet) { + if (lockInitRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: pthread_rwlock_init fail, %{public}d", __func__, lockInitRet); goto deinit_upt; } @@ -118,7 +118,7 @@ free_pug_obj: struct PurgMem *PurgMemCreate(size_t len, PurgMemModifyFunc func, void *funcPara) { - if (!len) { + if (len == 0) { HILOG_ERROR(LOG_CORE, "%{public}s: input len 0", __func__); return NULL; } @@ -151,7 +151,7 @@ bool PurgMemDestroy(struct PurgMem *purgObj) PMState err = PM_OK; /* destroy rwlock */ int ret = pthread_rwlock_destroy(&(purgObj->rwlock)); - if (ret) { + if (ret != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: pthread_rwlock_destroy fail, %{public}d", __func__, ret); } /* destroy builder */ @@ -166,7 +166,7 @@ bool PurgMemDestroy(struct PurgMem *purgObj) /* unmap purgeable mem region */ if (purgObj->dataPtr) { size_t size = RoundUp_(purgObj->dataSizeInput, PAGE_SIZE); - if (munmap(purgObj->dataPtr, size)) { + if (munmap(purgObj->dataPtr, size) != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: munmap dataPtr fail", __func__); err = PM_UNMAP_PURG_FAIL; } else { @@ -229,7 +229,7 @@ static inline bool PurgMemBuildData_(struct PurgMem *purgObj) static PMState TryBeginRead_(struct PurgMem *purgObj) { int rwlockRet = pthread_rwlock_rdlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: rdlock fail. %{public}d", __func__, rwlockRet); return PM_LOCK_READ_FAIL; } @@ -240,7 +240,7 @@ static PMState TryBeginRead_(struct PurgMem *purgObj) } rwlockRet = pthread_rwlock_unlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: rd unlock fail. %{public}d", __func__, rwlockRet); return PM_UNLOCK_READ_FAIL; } @@ -263,7 +263,7 @@ static PMState BeginReadBuildData_(struct PurgMem *purgObj) } rwlockRet = pthread_rwlock_unlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: wr unlock fail. %{public}d", __func__, rwlockRet); return PM_UNLOCK_WRITE_FAIL; } @@ -324,7 +324,7 @@ bool PurgMemBeginWrite(struct PurgMem *purgObj) UxpteGet(purgObj->uxPageTable, (uint64_t)(purgObj->dataPtr), purgObj->dataSizeInput); rwlockRet = pthread_rwlock_wrlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: wrlock fail. %{public}d", __func__, rwlockRet); err = PM_LOCK_WRITE_FAIL; goto uxpte_put; @@ -343,7 +343,7 @@ bool PurgMemBeginWrite(struct PurgMem *purgObj) /* data is purged and rebuild failed. return false */ err = PMB_BUILD_ALL_FAIL; rwlockRet = pthread_rwlock_unlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: wr unlock fail. %{public}d", __func__, rwlockRet); } @@ -363,7 +363,7 @@ static inline void EndAccessPurgMem_(struct PurgMem *purgObj) } int rwlockRet = 0; rwlockRet = pthread_rwlock_unlock(&(purgObj->rwlock)); - if (rwlockRet) { + if (rwlockRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: unlock fail. %{public}d", __func__, rwlockRet); } UxptePut(purgObj->uxPageTable, (uint64_t)(purgObj->dataPtr), purgObj->dataSizeInput); diff --git a/libpurgeablemem/common/src/ux_page_table_c.c b/libpurgeablemem/common/src/ux_page_table_c.c index ba2bd78ad480fc295cae71fe46a3737cd42dd623..efe403e20e18aed9a8efffe7b5749f3d9aab3db8 100644 --- a/libpurgeablemem/common/src/ux_page_table_c.c +++ b/libpurgeablemem/common/src/ux_page_table_c.c @@ -24,7 +24,7 @@ #undef LOG_TAG #define LOG_TAG "PurgeableMemC: UPT" -#if (USE_UXPT == true) /* (USE_UXPT == true) means using uxpt */ +#if defined(USE_UXPT) && (USE_UXPT == true) /* (USE_UXPT == true) means using uxpt */ /* * using uint64_t as uxpte_t to avoid avoid confusion on 32-bit and 64 bit systems. @@ -73,7 +73,7 @@ static inline uint64_t UxpteOffset_(uint64_t vaddr) static const size_t UXPTE_PRESENT_BIT = 1; static const size_t UXPTE_PRESENT_MASK = (1 << UXPTE_PRESENT_BIT) - 1; static const size_t UXPTE_REFCNT_ONE = 1 << UXPTE_PRESENT_BIT; -static uxpte_t UXPTE_UNDER_RECLAIM = (uxpte_t)(-UXPTE_REFCNT_ONE); +static const uxpte_t UXPTE_UNDER_RECLAIM = (uxpte_t)(-UXPTE_REFCNT_ONE); static inline bool IsUxptePresent_(uxpte_t pte) { @@ -113,7 +113,7 @@ enum UxpteOp { UPT_IS_PRESENT = 3, }; -static void __attribute__((constructor)) CheckUxpt_(void); +static void __attribute__((constructor)) CheckUxpt(void); static void UxpteAdd_(uxpte_t *pte, size_t incNum); static void UxpteSub_(uxpte_t *pte, size_t decNum); @@ -125,7 +125,7 @@ static PMState UxpteOps_(UxPageTableStruct *upt, uint64_t addr, size_t len, enum static uxpte_t *MapUxptePages_(uint64_t dataAddr, size_t dataSize); static int UnmapUxptePages_(uxpte_t *ptes, size_t size); -static void __attribute__((constructor)) CheckUxpt_(void) +static void __attribute__((constructor)) CheckUxpt(void) { int prot = PROT_READ | PROT_WRITE; int type = MAP_ANONYMOUS | MAP_PURGEABLE; @@ -144,7 +144,7 @@ static void __attribute__((constructor)) CheckUxpt_(void) if (ptes != MAP_FAILED) { g_supportUxpt = true; /* free uxpt */ - if (munmap(ptes, uptSize)) { + if (munmap(ptes, uptSize) != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: unmap uxpt fail", __func__); } } else { /* MAP_FAILED */ @@ -153,7 +153,7 @@ static void __attribute__((constructor)) CheckUxpt_(void) } ptes = NULL; /* free data */ - if (munmap(dataPtr, dataSize)) { + if (munmap(dataPtr, dataSize) != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: unmap purg data fail", __func__); } dataPtr = NULL; @@ -197,7 +197,7 @@ PMState DeinitUxPageTable(UxPageTableStruct *upt) int unmapRet = 0; if (upt->uxpte) { unmapRet = UnmapUxptePages_(upt->uxpte, size); - if (unmapRet) { + if (unmapRet != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: unmap uxpt fail", __func__); return PM_UNMAP_UXPT_FAIL; } @@ -275,7 +275,7 @@ static void UxpteSub_(uxpte_t *pte, size_t decNum) static void UxpteClear_(uxpte_t *pte) { uxpte_t old = UxpteLoad_(pte); - if (!old) { + if ((unsigned long long)old == 0) { return; /* has been set to zero */ } HILOG_ERROR(LOG_CORE, "%{public}s: upte(0x%{public}llx) != 0", __func__, (unsigned long long)old); @@ -385,7 +385,7 @@ static int UnmapUxptePages_(uxpte_t *ptes, size_t size) return munmap(ptes, size); } -#else /* (USE_UXPT == false), it means does not using uxpt */ +#else /* !(defined(USE_UXPT) && (USE_UXPT == true)), it means does not using uxpt */ typedef struct UserExtendPageTable { /* i am empty */ diff --git a/libpurgeablemem/cpp/src/purgeable_mem.cpp b/libpurgeablemem/cpp/src/purgeable_mem.cpp index 415782686e3389ca8a12335146675aef5a42b9b5..c379327b6e19c77580c3c2d76dc48eeb25875979 100644 --- a/libpurgeablemem/cpp/src/purgeable_mem.cpp +++ b/libpurgeablemem/cpp/src/purgeable_mem.cpp @@ -69,7 +69,7 @@ PurgeableMem::~PurgeableMem() { HILOG_DEBUG(LOG_CORE, "%{public}s %{public}s", __func__, ToString_().c_str()); if (dataPtr_) { - if (munmap(dataPtr_, RoundUp_(dataSizeInput_, PAGE_SIZE))) { + if (munmap(dataPtr_, RoundUp_(dataSizeInput_, PAGE_SIZE)) != 0) { HILOG_ERROR(LOG_CORE, "%{public}s: munmap dataPtr fail", __func__); } else { if (UxpteIsEnabled() && !IsPurged_()) {