diff options
Diffstat (limited to 'src/lib.h')
-rw-r--r-- | src/lib.h | 45 |
1 files changed, 19 insertions, 26 deletions
@@ -6,23 +6,31 @@ #include <string.h> #include <unistd.h> -#ifdef CONFIG_NOLIBC -# if defined(__x86_64__) || defined(__i386__) -# include "arch/x86/lib.h" -# else -# error "This arch doesn't support building liburing without libc" -# endif +#define __INTERNAL__LIBURING_LIB_H +#if defined(__x86_64__) || defined(__i386__) + #include "arch/x86/lib.h" +#else + /* + * We don't have nolibc support for this arch. Must use libc! + */ + #ifdef CONFIG_NOLIBC + #error "This arch doesn't support building liburing without libc" + #endif + /* libc wrappers. */ + #include "arch/generic/lib.h" #endif +#undef __INTERNAL__LIBURING_LIB_H + #ifndef offsetof -# define offsetof(TYPE, FIELD) ((size_t) &((TYPE *)0)->FIELD) + #define offsetof(TYPE, FIELD) ((size_t) &((TYPE *)0)->FIELD) #endif #ifndef container_of -# define container_of(PTR, TYPE, FIELD) ({ \ - __typeof__(((TYPE *)0)->FIELD) *__FIELD_PTR = (PTR); \ - (TYPE *)((char *) __FIELD_PTR - offsetof(TYPE, FIELD)); \ -}) + #define container_of(PTR, TYPE, FIELD) ({ \ + __typeof__(((TYPE *)0)->FIELD) *__FIELD_PTR = (PTR); \ + (TYPE *)((char *) __FIELD_PTR - offsetof(TYPE, FIELD)); \ + }) #endif void *__uring_malloc(size_t len); @@ -46,19 +54,4 @@ static inline void uring_free(void *ptr) #endif } -static inline long get_page_size(void) -{ -#ifdef CONFIG_NOLIBC - return __arch_impl_get_page_size(); -#else - long page_size; - - page_size = sysconf(_SC_PAGESIZE); - if (page_size < 0) - page_size = 4096; - - return page_size; -#endif -} - #endif /* #ifndef LIBURING_LIB_H */ |