9#if defined(__MOS_KERNEL__) && defined(__cplusplus)
36#define MIN(a, b) __extension__ ({ const auto _a = (a); __auto_type _b = (b); _a < _b ? _a : _b; })
37#define MAX(a, b) __extension__ ({ const auto _a = (a); __auto_type _b = (b); _a > _b ? _a : _b; })
44concept KMallocCapable = std::is_fundamental_v<std::remove_pointer_t<T>> || std::is_pointer_v<T>;
46template<
typename T,
typename... Args>
47requires(KMallocCapable<T>) T *kmalloc(Args &&...
args)
53 return new (
ptr) T(std::forward<Args>(
args)...);
57requires(KMallocCapable<T>) T *kcalloc(
size_t n_members)
63requires(KMallocCapable<T>) T *krealloc(T *
ptr,
size_t size)
69requires(KMallocCapable<T>)
void kfree(T *
ptr)
__attribute__((__noreturn__)) void impl_syscall_exit(u32 exit_code)
MOSAPI void * do_kmalloc(size_t size)
MOSAPI void * do_krealloc(void *ptr, size_t size)
MOSAPI void * do_kcalloc(size_t nmemb, size_t size)
MOSAPI void do_kfree(const void *ptr)
MOSAPI s64 strtoll(const char *str, char **endptr, int base)
MOSAPI unsigned char tolower(unsigned char c)
MOSAPI void exit(int status) __attribute__((noreturn))
MOSAPI unsigned long strtoul(const char *nptr, char **endptr, int base)
MOSAPI void format_size(char *buf, size_t buf_size, u64 size)
MOSAPI void abort(void) __attribute__((noreturn))
MOSAPI s64 strntoll(const char *str, char **endptr, int base, size_t n)
MOSAPI int atexit(void(*func)(void))
MOSAPI tid_t start_thread(const char *name, thread_entry_t entry, void *arg)
MOSAPI char * string_trim(char *in)
MOSAPI s32 atoi(const char *nptr)
void(* thread_entry_t)(void *arg)