47 lines
880 B
C
47 lines
880 B
C
#pragma once
|
|
|
|
#include "cdef.h"
|
|
|
|
/**
|
|
* Common macros, etc
|
|
*/
|
|
|
|
#define OBTAIN_STRUCT_ADDR(member_addr, struct_name, member_name) ((struct_name*)((uintptr)(member_addr) - (uintptr)(&(((struct_name*)0)->member_name))))
|
|
|
|
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
|
|
|
#define SWAP(a, b, T) do { T temp = *(a); *(a) = *(b); *(b) = temp; } while(0);
|
|
|
|
uint64
|
|
str_len(char const *str);
|
|
|
|
|
|
uint64
|
|
str_cmp(char const *str1, char const *str2);
|
|
|
|
|
|
void
|
|
mem_cpy(void *src, void *dst, uint64 size);
|
|
|
|
|
|
void
|
|
mem_mv(void *src, void *dst, uint64 size);
|
|
|
|
#define KASSERT(expr) kassert_ex(#expr, __FILE__, __LINE__, expr)
|
|
|
|
void
|
|
kassert_ex(const char *expr_str, const char *file, int32 line, int32 expr);
|
|
|
|
void
|
|
mem_set(void *src, uint8 val, uint64 size);
|
|
|
|
|
|
static inline uint64
|
|
bit_field_mask(uint32 low, uint32 high)
|
|
{
|
|
return ~((uint64)-1 << (high - low + 1)) << low;
|
|
}
|
|
|
|
void
|
|
poor_sleep(uint32 dat);
|