RT-Thread RTOS 1.2.0
An open source embedded real-time operating system
载入中...
搜索中...
未找到
misc.h 文件参考
#include <rtdef.h>
#include <cpuport.h>
+ misc.h 的引用(Include)关系图:
+ 此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

宏定义

#define RT_BITS_PER_LONG   32
 
#define RT_BITS_PER_LONG_LONG   64
 
#define RT_DIV_ROUND_UP(n, d)
 
#define RT_DIV_ROUND_CLOSEST(x, divisor)
 
#define __KEY_PLACEHOLDER_1   0,
 
#define ____KEY_ENABLED(__ignored, val, ...)
 
#define ___KEY_ENABLED(arg1_or_junk)
 
#define __KEY_ENABLED(value)
 
#define RT_KEY_ENABLED(key)
 
#define RT_FIELD_PREP(mask, val)
 
#define RT_FIELD_GET(mask, val)
 
#define RT_BIT(n)
 
#define RT_BIT_ULL(n)
 
#define RT_BIT_MASK(nr)
 
#define RT_BIT_WORD(nr)
 
#define RT_BITS_PER_BYTE   8
 
#define RT_BITS_PER_TYPE(type)
 
#define RT_BITS_TO_BYTES(nr)
 
#define RT_BITS_TO_LONGS(nr)
 
#define RT_GENMASK(h, l)
 
#define RT_GENMASK_ULL(h, l)
 
#define RT_ARRAY_SIZE(arr)
 
#define rt_offsetof(s, field)
 
#define rt_err_ptr(err)
 
#define rt_ptr_err(ptr)
 
#define rt_is_err_value(ptr)
 
#define rt_is_err(ptr)
 
#define rt_is_err_or_null(ptr)
 
#define rt_upper_32_bits(n)
 
#define rt_lower_32_bits(n)
 
#define rt_upper_16_bits(n)
 
#define rt_lower_16_bits(n)
 
#define rt_min(x, y)
 
#define rt_max(x, y)
 
#define rt_min_t(type, x, y)
 
#define rt_max_t(type, x, y)
 
#define rt_clamp(val, lo, hi)
 
#define rt_do_div(n, base)
 
#define rt_abs(x)
 

函数

rt_inline int rt_ilog2 (rt_ubase_t v)
 

宏定义说明

◆ RT_BITS_PER_LONG

#define RT_BITS_PER_LONG   32

在文件 misc.h20 行定义.

◆ RT_BITS_PER_LONG_LONG

#define RT_BITS_PER_LONG_LONG   64

在文件 misc.h22 行定义.

◆ RT_DIV_ROUND_UP

#define RT_DIV_ROUND_UP ( n,
d )
值:
(((n) + (d) - 1) / (d))

在文件 misc.h24 行定义.

◆ RT_DIV_ROUND_CLOSEST

#define RT_DIV_ROUND_CLOSEST ( x,
divisor )
值:
({ \
typeof(x) __x = x; \
typeof(divisor) __d = divisor; \
(((typeof(x))-1) > 0 || \
((typeof(divisor))-1) > 0 || \
(((__x) > 0) == ((__d) > 0))) ? \
(((__x) + ((__d) / 2)) / (__d)) : \
(((__x) - ((__d) / 2)) / (__d)); \
})

在文件 misc.h26 行定义.

26#define RT_DIV_ROUND_CLOSEST(x, divisor) \
27({ \
28 typeof(x) __x = x; \
29 typeof(divisor) __d = divisor; \
30 (((typeof(x))-1) > 0 || \
31 ((typeof(divisor))-1) > 0 || \
32 (((__x) > 0) == ((__d) > 0))) ? \
33 (((__x) + ((__d) / 2)) / (__d)) : \
34 (((__x) - ((__d) / 2)) / (__d)); \
35})

◆ __KEY_PLACEHOLDER_1

#define __KEY_PLACEHOLDER_1   0,

在文件 misc.h37 行定义.

◆ ____KEY_ENABLED

#define ____KEY_ENABLED ( __ignored,
val,
... )
值:
val

在文件 misc.h38 行定义.

◆ ___KEY_ENABLED

#define ___KEY_ENABLED ( arg1_or_junk)
值:
____KEY_ENABLED(arg1_or_junk 1, 0)
#define ____KEY_ENABLED(__ignored, val,...)
定义 misc.h:38

在文件 misc.h39 行定义.

◆ __KEY_ENABLED

#define __KEY_ENABLED ( value)
值:
___KEY_ENABLED(__KEY_PLACEHOLDER_##value)
#define ___KEY_ENABLED(arg1_or_junk)
定义 misc.h:39

在文件 misc.h40 行定义.

◆ RT_KEY_ENABLED

#define RT_KEY_ENABLED ( key)
值:
#define __KEY_ENABLED(value)
定义 misc.h:40

在文件 misc.h41 行定义.

◆ RT_FIELD_PREP

#define RT_FIELD_PREP ( mask,
val )
值:
(((rt_uint64_t)(val) << (__rt_ffsl((mask)) - 1)) & (mask))
unsigned long __rt_ffsl(unsigned long value)
unsigned long long rt_uint64_t

在文件 misc.h43 行定义.

◆ RT_FIELD_GET

#define RT_FIELD_GET ( mask,
val )
值:
(((val) & (mask)) >> (__rt_ffsl((mask)) - 1))

在文件 misc.h44 行定义.

◆ RT_BIT

#define RT_BIT ( n)
值:
(1UL << (n))

在文件 misc.h46 行定义.

◆ RT_BIT_ULL

#define RT_BIT_ULL ( n)
值:
(1ULL << (n))

在文件 misc.h47 行定义.

◆ RT_BIT_MASK

#define RT_BIT_MASK ( nr)
值:
(1UL << ((nr) % RT_BITS_PER_LONG))
#define RT_BITS_PER_LONG
定义 misc.h:20

在文件 misc.h48 行定义.

◆ RT_BIT_WORD

#define RT_BIT_WORD ( nr)
值:

在文件 misc.h49 行定义.

◆ RT_BITS_PER_BYTE

#define RT_BITS_PER_BYTE   8

在文件 misc.h51 行定义.

◆ RT_BITS_PER_TYPE

#define RT_BITS_PER_TYPE ( type)
值:
(sizeof(type) * RT_BITS_PER_BYTE)
#define RT_BITS_PER_BYTE
定义 misc.h:51

在文件 misc.h52 行定义.

◆ RT_BITS_TO_BYTES

#define RT_BITS_TO_BYTES ( nr)
值:
#define RT_BITS_PER_TYPE(type)
定义 misc.h:52
#define RT_DIV_ROUND_UP(n, d)
定义 misc.h:24

在文件 misc.h53 行定义.

◆ RT_BITS_TO_LONGS

#define RT_BITS_TO_LONGS ( nr)
值:

在文件 misc.h54 行定义.

◆ RT_GENMASK

#define RT_GENMASK ( h,
l )
值:
(((~0UL) << (l)) & (~0UL >> (RT_BITS_PER_LONG - 1 - (h))))

在文件 misc.h56 行定义.

◆ RT_GENMASK_ULL

#define RT_GENMASK_ULL ( h,
l )
值:
(((~0ULL) << (l)) & (~0ULL >> (RT_BITS_PER_LONG_LONG - 1 - (h))))
#define RT_BITS_PER_LONG_LONG
定义 misc.h:22

在文件 misc.h57 行定义.

◆ RT_ARRAY_SIZE

#define RT_ARRAY_SIZE ( arr)
值:
(sizeof(arr) / sizeof(arr[0]))

在文件 misc.h59 行定义.

◆ rt_offsetof

#define rt_offsetof ( s,
field )
值:
((rt_size_t)&((s *)0)->field)
rt_ubase_t rt_size_t

在文件 misc.h61 行定义.

◆ rt_err_ptr

#define rt_err_ptr ( err)
值:
((void *)(rt_base_t)(err))
rt_int32_t rt_base_t

在文件 misc.h63 行定义.

◆ rt_ptr_err

#define rt_ptr_err ( ptr)
值:
rt_base_t rt_err_t

在文件 misc.h64 行定义.

◆ rt_is_err_value

#define rt_is_err_value ( ptr)
值:
((rt_ubase_t)(void *)(ptr) >= (rt_ubase_t)-4095)
rt_uint32_t rt_ubase_t

在文件 misc.h65 行定义.

◆ rt_is_err

#define rt_is_err ( ptr)
值:
#define rt_is_err_value(ptr)
定义 misc.h:65

在文件 misc.h66 行定义.

◆ rt_is_err_or_null

#define rt_is_err_or_null ( ptr)
值:
(!(ptr) || rt_is_err_value((rt_ubase_t)(ptr)))

在文件 misc.h67 行定义.

◆ rt_upper_32_bits

#define rt_upper_32_bits ( n)
值:
((rt_uint32_t)(((n) >> 16) >> 16))
unsigned int rt_uint32_t

在文件 misc.h69 行定义.

◆ rt_lower_32_bits

#define rt_lower_32_bits ( n)
值:
((rt_uint32_t)((n) & 0xffffffff))

在文件 misc.h70 行定义.

◆ rt_upper_16_bits

#define rt_upper_16_bits ( n)
值:
((rt_uint16_t)((n) >> 16))
unsigned short rt_uint16_t

在文件 misc.h71 行定义.

◆ rt_lower_16_bits

#define rt_lower_16_bits ( n)
值:
((rt_uint16_t)((n) & 0xffff))

在文件 misc.h72 行定义.

◆ rt_min

#define rt_min ( x,
y )
值:
({ \
typeof(x) _x = (x); \
typeof(y) _y = (y); \
(void) (&_x == &_y); \
_x < _y ? _x : _y; \
})

在文件 misc.h74 行定义.

74#define rt_min(x, y) \
75({ \
76 typeof(x) _x = (x); \
77 typeof(y) _y = (y); \
78 (void) (&_x == &_y); \
79 _x < _y ? _x : _y; \
80})

◆ rt_max

#define rt_max ( x,
y )
值:
({ \
typeof(x) _x = (x); \
typeof(y) _y = (y); \
(void) (&_x == &_y); \
_x > _y ? _x : _y; \
})

在文件 misc.h82 行定义.

82#define rt_max(x, y) \
83({ \
84 typeof(x) _x = (x); \
85 typeof(y) _y = (y); \
86 (void) (&_x == &_y); \
87 _x > _y ? _x : _y; \
88})

◆ rt_min_t

#define rt_min_t ( type,
x,
y )
值:
({ \
type _x = (x); \
type _y = (y); \
_x < _y ? _x: _y; \
})

在文件 misc.h90 行定义.

90#define rt_min_t(type, x, y) \
91({ \
92 type _x = (x); \
93 type _y = (y); \
94 _x < _y ? _x: _y; \
95})

◆ rt_max_t

#define rt_max_t ( type,
x,
y )
值:
({ \
type _x = (x); \
type _y = (y); \
_x > _y ? _x: _y; \
})

在文件 misc.h97 行定义.

97#define rt_max_t(type, x, y) \
98({ \
99 type _x = (x); \
100 type _y = (y); \
101 _x > _y ? _x: _y; \
102})

◆ rt_clamp

#define rt_clamp ( val,
lo,
hi )
值:
rt_min((typeof(val))rt_max(val, lo), hi)
#define rt_max(x, y)
定义 misc.h:82
#define rt_min(x, y)
定义 misc.h:74

在文件 misc.h104 行定义.

◆ rt_do_div

#define rt_do_div ( n,
base )
值:
({ \
rt_uint32_t _base = (base), _rem; \
_rem = ((rt_uint64_t)(n)) % _base; \
(n) = ((rt_uint64_t)(n)) / _base; \
if (_rem > _base / 2) \
++(n); \
_rem; \
})

在文件 misc.h106 行定义.

106#define rt_do_div(n, base) \
107({ \
108 rt_uint32_t _base = (base), _rem; \
109 _rem = ((rt_uint64_t)(n)) % _base; \
110 (n) = ((rt_uint64_t)(n)) / _base; \
111 if (_rem > _base / 2) \
112 ++(n); \
113 _rem; \
114})

◆ rt_abs

#define rt_abs ( x)
值:
({ \
long ret; \
if (sizeof(x) == sizeof(long)) \
{ \
long __x = (x); \
ret = (__x < 0) ? -__x : __x; \
} \
else \
{ \
int __x = (x); \
ret = (__x < 0) ? -__x : __x; \
} \
ret; \
})

在文件 misc.h116 行定义.

116#define rt_abs(x) \
117({ \
118 long ret; \
119 if (sizeof(x) == sizeof(long)) \
120 { \
121 long __x = (x); \
122 ret = (__x < 0) ? -__x : __x; \
123 } \
124 else \
125 { \
126 int __x = (x); \
127 ret = (__x < 0) ? -__x : __x; \
128 } \
129 ret; \
130})

函数说明

◆ rt_ilog2()

rt_inline int rt_ilog2 ( rt_ubase_t v)

在文件 misc.h133 行定义.

134{
135 int l = 0;
136
137 while ((1UL << l) < v)
138 {
139 l++;
140 }
141
142 return l;
143}