Основной подключаемый файл RTOS MULTEX-ARM.
Подробнее...
|
typedef int(* | FUNCPTR) (int) |
| Указатель на функцию, которая используется как точка входа для процессов. Подробнее...
|
|
|
#define | __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask)) |
|
#define | ALIGN(x, a) __ALIGN_MASK((x),(typeof(x))(a)-1) |
|
#define | ALLOC_ALIGN_BUFFER(type, name, size, align) |
|
#define | ALLOC_CACHE_ALIGN_BUFFER(type, name, size) ALLOC_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN) |
|
#define | ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
|
#define | DEFINE_ALIGN_BUFFER(type, name, size, align) |
|
#define | DEFINE_CACHE_ALIGN_BUFFER(type, name, size) DEFINE_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN) |
|
#define | DIV_ROUND(n, d) (((n) + ((d)/2)) / (d)) |
|
#define | DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) |
|
#define | MAX(a, b) (((a)>(b))?(a):(b)) |
|
#define | MAX_SAFE(a, b) |
|
#define | MEMBER_SIZE(type, member) (sizeof(((type *)0)->member)) |
|
#define | MIN(a, b) (((a)<(b))?(a):(b)) |
|
#define | MIN_SAFE(a, b) |
|
#define | ROUND(a, b) (((a) + (b) - 1) & ~((b) - 1)) |
| Округление. Подробнее...
|
|
#define | roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) |
| Округление в большую сторону. Подробнее...
|
|
#define | START_ONCE do{static int Started = 0;if(Started == 1){return;} Started = 1;}while(0) |
|
#define | START_ONCE_R(r) do{static int Started = 0;if(Started == 1){return (r);} Started = 1;}while(0) |
|
В данном файле содержатся базовые определения операционной системы RTOS MULTEX-ARM.
- См. также
- Операционная система жесткого реального времени MULTEX-ARM.
◆ __ALIGN_MASK
#define __ALIGN_MASK |
( |
|
x, |
|
|
|
mask |
|
) |
| (((x)+(mask))&~(mask)) |
◆ __be32_to_cpu
#define __be32_to_cpu |
( |
|
x | ) |
|
Макроопределение: ((((x) & 0x000000ff) << 24) | \
(((x) & 0x0000ff00) << 8) | \
(((x) & 0x00ff0000) >> 8) | \
(((x) & 0xff000000) >> 24))
◆ __LITTLE_ENDIAN
Используемый в системе порядок следования бит.
◆ _MULTEX_
Используемая операционная система.
◆ ALIGN
◆ ALLOC_ALIGN_BUFFER
#define ALLOC_ALIGN_BUFFER |
( |
|
type, |
|
|
|
name, |
|
|
|
size, |
|
|
|
align |
|
) |
| |
Макроопределение: char __##name[
ROUND(size *
sizeof(
type), align) + (align - 1)]; \
STATUS type(const char *filePath)
#define ROUND(a, b)
Округление.
Definition: multex.h:128
#define ALIGN(x, a)
Definition: multex.h:134
unsigned int uintptr_t
Definition: stdint.h:65
◆ ALLOC_CACHE_ALIGN_BUFFER
◆ ARCH_DMA_MINALIGN
#define ARCH_DMA_MINALIGN 64 |
◆ ARRAY_SIZE
#define ARRAY_SIZE |
( |
|
x | ) |
(sizeof(x) / sizeof((x)[0])) |
Макрос, возвращающий количество элементов массива.
◆ clamp
#define clamp |
( |
|
val, |
|
|
|
min, |
|
|
|
max |
|
) |
| |
Макроопределение: ({ \
typeof(val) __val = (val); \
typeof(min) __min = (min); \
typeof(max) __max = (max); \
(void) (&__val == &__min); \
(void) (&__val == &__max); \
__val = __val < __min ? __min: __val; \
__val > __max ? __max: __val; })
◆ debug_cond
#define debug_cond |
( |
|
cond, |
|
|
|
fmt, |
|
|
|
args... |
|
) |
| |
Макроопределение: do { \
if (cond) \
printf(fmt, ##args); \
} while (0)
◆ DEFINE_ALIGN_BUFFER
#define DEFINE_ALIGN_BUFFER |
( |
|
type, |
|
|
|
name, |
|
|
|
size, |
|
|
|
align |
|
) |
| |
Макроопределение: static char __##name[
roundup(size *
sizeof(
type), align)] \
__attribute__((aligned(align))); \
#define roundup(x, y)
Округление в большую сторону.
Definition: multex.h:131
◆ DEFINE_CACHE_ALIGN_BUFFER
◆ DIV_ROUND
#define DIV_ROUND |
( |
|
n, |
|
|
|
d |
|
) |
| (((n) + ((d)/2)) / (d)) |
◆ DIV_ROUND_CLOSEST
#define DIV_ROUND_CLOSEST |
( |
|
x, |
|
|
|
divisor |
|
) |
| |
Макроопределение:( \
{ \
typeof(x) __x = x; \
typeof(divisor) __d = divisor; \
(((typeof(x))-1) > 0 || \
((typeof(divisor))-1) > 0 || (__x) > 0) ? \
(((__x) + ((__d) / 2)) / (__d)) : \
(((__x) - ((__d) / 2)) / (__d)); \
} \
)
◆ DIV_ROUND_UP
#define DIV_ROUND_UP |
( |
|
n, |
|
|
|
d |
|
) |
| (((n) + (d) - 1) / (d)) |
◆ get_unaligned
#define get_unaligned |
( |
|
ptr | ) |
|
Макроопределение: ((__force typeof(*(ptr)))({ \
__builtin_choose_expr(sizeof(*(ptr)) == 1, *(ptr), \
__builtin_choose_expr(sizeof(*(ptr)) == 2, get_unaligned_le16((ptr)), \
__builtin_choose_expr(sizeof(*(ptr)) == 4, get_unaligned_le32((ptr)), \
__builtin_choose_expr(sizeof(*(ptr)) == 8, get_unaligned_le64((ptr)), \
__bad_unaligned_access_size())))); \
}))
◆ KERN_DEBUG
#define KERN_DEBUG "MK_Debug:" |
◆ KERN_INFO
#define KERN_INFO "MK_Info:" |
◆ likely
#define likely |
( |
|
x | ) |
__builtin_expect((x),1) |
Встроенная функция, дающая компилятору подсказку о том, что условие x - истинно.
◆ MAX
#define MAX |
( |
|
a, |
|
|
|
b |
|
) |
| (((a)>(b))?(a):(b)) |
Не-типобезопасный макрос, возвращающий максимальное значение из 2х вариантов.
◆ MAX_SAFE
#define MAX_SAFE |
( |
|
a, |
|
|
|
b |
|
) |
| |
Макроопределение: ({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })
Типобезопасный макрос, возвращающий максимальное значение из 2х вариантов.
- Заметки
- Может быть использован только в теле функции.
◆ MEMBER_SIZE
#define MEMBER_SIZE |
( |
|
type, |
|
|
|
member |
|
) |
| (sizeof(((type *)0)->member)) |
Макрос, возвращающий размер поля типа.
◆ MIN
#define MIN |
( |
|
a, |
|
|
|
b |
|
) |
| (((a)<(b))?(a):(b)) |
Не-типобезопасный макрос, возвращающий минимальное значение из 2х вариантов.
◆ MIN_SAFE
#define MIN_SAFE |
( |
|
a, |
|
|
|
b |
|
) |
| |
Макроопределение: ({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a < _b ? _a : _b; })
Типобезопасный макрос, возвращающий минимальное значение из 2х вариантов.
- Заметки
- Может быть использован только в теле функции.
◆ printk
◆ put_unaligned
#define put_unaligned |
( |
|
val, |
|
|
|
ptr |
|
) |
| |
Макроопределение: ({ \
void *__gu_p = (ptr); \
switch (sizeof(*(ptr))) { \
case 1: \
*(u8 *)__gu_p = (__force u8)(val); \
break; \
case 2: \
put_unaligned_le16((__force u16)(val), __gu_p); \
break; \
case 4: \
put_unaligned_le32((__force u32)(val), __gu_p); \
break; \
case 8: \
put_unaligned_le64((__force u64)(val), __gu_p); \
break; \
default: \
break; \
} \
(void)0; })
◆ ROUND
#define ROUND |
( |
|
a, |
|
|
|
b |
|
) |
| (((a) + (b) - 1) & ~((b) - 1)) |
Округление величины a до числа кратного заданному b.
◆ roundup
#define roundup |
( |
|
x, |
|
|
|
y |
|
) |
| ((((x) + ((y) - 1)) / (y)) * (y)) |
Округление величины x до большего числа кратного заданному y.
◆ SHELL_NAME
#define SHELL_NAME "init" |
◆ SHELL_PRIORITY
#define SHELL_PRIORITY 100 |
◆ START_ONCE
#define START_ONCE do{static int Started = 0;if(Started == 1){return;} Started = 1;}while(0) |
Макрос, обеспечивающий запуск функции только один раз (для функций, не имеющих возвращаемого значения).
◆ START_ONCE_R
#define START_ONCE_R |
( |
|
r | ) |
do{static int Started = 0;if(Started == 1){return (r);} Started = 1;}while(0) |
Макрос, обеспечивающий запуск функции только один раз (для функций, имеющих возвращаемое значение).
◆ unlikely
#define unlikely |
( |
|
x | ) |
__builtin_expect((x),0) |
Встроенная функция, дающая компилятору подсказку о том, что условие x - ложно.
◆ VX_SUPERVISOR_MODE
#define VX_SUPERVISOR_MODE 0 |
◆ dma_addr_t
◆ FUNCPTR
typedef int(* FUNCPTR) (int) |
◆ irqreturn_t
◆ resource_size_t
◆ STATUS
Результат выполнения действия (функции).
Элементы перечислений |
---|
OK | Успешное выполнение.
|
ERROR | Неудача.
|
STATUS
Результат выполнения.
Definition: multex.h:64
@ OK
Успешное выполнение.
Definition: multex.h:65
@ ERROR
Неудача.
Definition: multex.h:66