diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/generic/lib.h | 21 | ||||
-rw-r--r-- | src/arch/x86/lib.h | 20 |
2 files changed, 34 insertions, 7 deletions
diff --git a/src/arch/generic/lib.h b/src/arch/generic/lib.h new file mode 100644 index 0000000..737e795 --- /dev/null +++ b/src/arch/generic/lib.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: MIT */ + +#ifndef __INTERNAL__LIBURING_LIB_H + #error "This file should be included from src/lib.h (liburing)" +#endif + +#ifndef LIBURING_ARCH_GENERIC_LIB_H +#define LIBURING_ARCH_GENERIC_LIB_H + +static inline long get_page_size(void) +{ + long page_size; + + page_size = sysconf(_SC_PAGESIZE); + if (page_size < 0) + page_size = 4096; + + return page_size; +} + +#endif /* #ifndef LIBURING_ARCH_GENERIC_LIB_H */ diff --git a/src/arch/x86/lib.h b/src/arch/x86/lib.h index 65ad396..bacf74e 100644 --- a/src/arch/x86/lib.h +++ b/src/arch/x86/lib.h @@ -1,15 +1,15 @@ /* SPDX-License-Identifier: MIT */ +#ifndef __INTERNAL__LIBURING_LIB_H + #error "This file should be included from src/lib.h (liburing)" +#endif + #ifndef LIBURING_ARCH_X86_LIB_H #define LIBURING_ARCH_X86_LIB_H -#ifndef LIBURING_LIB_H -# error "This file should be included from src/lib.h (liburing)" -#endif - #if defined(__x86_64__) -static inline long __arch_impl_get_page_size(void) +static inline long get_page_size(void) { return 4096; } @@ -17,9 +17,15 @@ static inline long __arch_impl_get_page_size(void) #else /* #if defined(__x86_64__) */ /* - * TODO: Add x86 (32-bit) support here. + * For x86 (32-bit), fallback to libc wrapper. + * We can't use CONFIG_NOLIBC for x86 (32-bit) at the moment. + * + * TODO: Add x86 (32-bit) nolibc support. */ -#error "x86 (32-bit) is currently not supported for nolibc builds" +#ifdef CONFIG_NOLIBC + #error "x86 (32-bit) is currently not supported for nolibc builds" +#endif +#include "../generic/lib.h" #endif /* #if defined(__x86_64__) */ |