新增错误判断的宏,以及返回值使用检测

This commit is contained in:
fslongjin 2022-09-28 23:11:34 +08:00
parent 1872d9bd4a
commit edef02286e
2 changed files with 36 additions and 1 deletions

View File

@ -9,4 +9,9 @@
// 内存屏障
#define barrier() __asm__ __volatile__("" :: \
: "memory");
#endif
#endif
// 编译器属性
// 当函数的返回值未被使用时,编译器抛出警告信息
#define __must_check __attribute__((__warn_unused_result__))

30
kernel/common/err.h Normal file
View File

@ -0,0 +1,30 @@
#pragma once
#include <common/compiler.h>
#include <stdint.h>
#define MAX_ERRNO 4095
#define IS_ERR_VALUE(x) unlikely((x) >= (uint64_t)-MAX_ERRNO)
/**
* @brief errno
*
* @param ptr
* @return long 1 =>
* 0 =>
*/
static inline long __must_check IS_ERR(const void* ptr)
{
return IS_ERR_VALUE((uint64_t)ptr);
}
/**
* @brief errno或者为空
*
* @param ptr
* @return long 1 => NULL
* 0 => NULL
*/
static inline long __must_check IS_ERR_OR_NULL(const void* ptr)
{
return !ptr || IS_ERR_VALUE((uint64_t)ptr);
}