diff options
Diffstat (limited to 'lib/libc/include')
| -rw-r--r-- | lib/libc/include/__aio.h | 35 | ||||
| -rw-r--r-- | lib/libc/include/__dirent.h | 24 | ||||
| -rw-r--r-- | lib/libc/include/__select.h | 8 | ||||
| -rw-r--r-- | lib/libc/include/__signal.h | 12 | ||||
| -rw-r--r-- | lib/libc/include/__statvfs.h | 21 | ||||
| -rw-r--r-- | lib/libc/include/__stdio.h | 38 | ||||
| -rw-r--r-- | lib/libc/include/__thread.h | 9 | ||||
| -rw-r--r-- | lib/libc/include/atomic.h | 23 | ||||
| -rw-r--r-- | lib/libc/include/byteswap.h | 8 | ||||
| -rw-r--r-- | lib/libc/include/internal/io_uring.h | 6 | ||||
| -rw-r--r-- | lib/libc/include/io_uring.h | 53 | ||||
| -rw-r--r-- | lib/libc/include/libc.h | 25 | ||||
| -rw-r--r-- | lib/libc/include/libc/dirent.h | 6 | ||||
| -rw-r--r-- | lib/libc/include/malloc.h | 98 | ||||
| -rw-r--r-- | lib/libc/include/syscall.h | 59 |
15 files changed, 0 insertions, 425 deletions
diff --git a/lib/libc/include/__aio.h b/lib/libc/include/__aio.h deleted file mode 100644 index 93cb1f79..00000000 --- a/lib/libc/include/__aio.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __LIBC_AIO_H -#define __LIBC_AIO_H - -#include <aio.h> - -#define AIO_REQUEST_STATUS_PENDING 0 -#define AIO_REQUEST_STATUS_COMPLETED 1 - -struct lio_group { - int pending; - int error; - int eventfd; - struct sigevent *sig; -}; - -struct aio_context { - struct aio_request *head; - struct aio_request *tail; -}; - -struct aio_request { - struct aiocb *aiocbp; - int status; - ssize_t result; - struct aio_request *next; - struct lio_group *grp; -}; - -void __aio_poll(void); - -int __aio_request(struct aio_request *, int); -struct aio_request *__aio_lookup(const struct aiocb *); -struct aio_request *__aio_remove(const struct aiocb *); - -#endif diff --git a/lib/libc/include/__dirent.h b/lib/libc/include/__dirent.h deleted file mode 100644 index 4f9ead80..00000000 --- a/lib/libc/include/__dirent.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __LIBC_DIRENT_H -#define __LIBC_DIRENT_H - -#include <stdint.h> -#include <stdio.h> -#include <sys/types.h> - -struct linux_dirent64 { - uint64_t d_ino; - int64_t d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[]; -}; - -struct __DIR { - int fildes; - int cached; - off_t tell; - off_t offset; - char buffer[BUFSIZ] __attribute__((__aligned__(8))); -}; - -#endif diff --git a/lib/libc/include/__select.h b/lib/libc/include/__select.h deleted file mode 100644 index a38bbdce..00000000 --- a/lib/libc/include/__select.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __LIBC_SELECT_H -#define __LIBC_SELECT_H - -struct __fd_set { - unsigned long fds_bits[16]; -}; - -#endif diff --git a/lib/libc/include/__signal.h b/lib/libc/include/__signal.h deleted file mode 100644 index 6b762dee..00000000 --- a/lib/libc/include/__signal.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __LIBC_SIGNAL_H -#define __LIBC_SIGNAL_H - -static const char *__sys_signame[] = { - "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", "SIGABRT", - "SIGBUS", "SIGFPE", "SIGKILL", "SIGUSR1", "SIGSEGV", "SIGUSR2", - "SIGPIPE", "SIGALRM", "SIGTERM", "SIGCHLD", "SIGCONT", "SIGSTOP", - "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGXCPU", "SIGXFSZ", - "SIGVTALRM", "SIGPROF", "SIGWINCH", "SIGIO", "SIGSYS" -}; - -#endif diff --git a/lib/libc/include/__statvfs.h b/lib/libc/include/__statvfs.h deleted file mode 100644 index c8a746d4..00000000 --- a/lib/libc/include/__statvfs.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __LIBC_STATVFS_H__ -#define __LIBC_STATVFS_H__ - -typedef __UINT64_TYPE__ fsblkcnt_t; -typedef __UINT64_TYPE__ fsfilcnt_t; - -struct __statvfs { - unsigned long f_bsize; - unsigned long f_frsize; - fsblkcnt_t f_blocks; - fsblkcnt_t f_bfree; - fsblkcnt_t f_bavail; - fsfilcnt_t f_files; - fsfilcnt_t f_ffree; - fsfilcnt_t f_favail; - unsigned long f_fsid; - unsigned long f_flag; - unsigned long f_namemax; -}; - -#endif diff --git a/lib/libc/include/__stdio.h b/lib/libc/include/__stdio.h deleted file mode 100644 index 487a0382..00000000 --- a/lib/libc/include/__stdio.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __LIBC_STDIO_H__ -#define __LIBC_STDIO_H__ - -#include <stdatomic.h> -#include <stddef.h> -#include <stdint.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -typedef __SIZE_TYPE__ size_t; - -#define _IO_ERR 0x4 -#define _IO_EOF 0x8 -#define _IO_WIDE 0x10 - -struct __FILE { - int fd; - uint32_t flags; - int type; - pid_t pid; - atomic_flag lock; - char *buf; - int eof; - size_t buf_size; - size_t buf_pos; - size_t buf_len; - unsigned char unget_buf[16]; - size_t unget_cnt; - off_t offset; - struct __FILE *next; -}; - -#define __FILE(__stream) ((struct __FILE *)(__stream)) - -void __libc_fadd(struct __FILE *f); - -#endif diff --git a/lib/libc/include/__thread.h b/lib/libc/include/__thread.h deleted file mode 100644 index f978d018..00000000 --- a/lib/libc/include/__thread.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __LIBC_THREAD_H -#define __LIBC_THREAD_H - -struct __thread_self { - int tid; - int terrno; -}; - -#endif diff --git a/lib/libc/include/atomic.h b/lib/libc/include/atomic.h deleted file mode 100644 index e0593021..00000000 --- a/lib/libc/include/atomic.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __LIBC_ATOMIC_H -#define __LIBC_ATOMIC_H - -#include <stdatomic.h> - -#define LIBC_LOCK(__lock) __libc_lock(&((__lock))) -#define LIBC_UNLOCK(__lock) atomic_flag_clear(&((__lock))) - -static __inline void __libc_lock(volatile atomic_flag *lock) -{ - while (atomic_flag_test_and_set_explicit(lock, memory_order_acquire)) { - unsigned int spins = 1; - do { - for (unsigned int i = 0; i < spins; i++) - __asm__ volatile("pause"); - if (spins < 64) - spins *= 2; - } while (atomic_flag_test_and_set_explicit( - lock, memory_order_relaxed)); - } -} - -#endif diff --git a/lib/libc/include/byteswap.h b/lib/libc/include/byteswap.h deleted file mode 100644 index 9dfe6520..00000000 --- a/lib/libc/include/byteswap.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __LIBC_BYTESWAP_H -#define __LIBC_BYTESWAP_H - -#define bswap16(x) __builtin_bswap16(x) -#define bswap32(x) __builtin_bswap32(x) -#define bswap64(x) __builtin_bswap64(x) - -#endif diff --git a/lib/libc/include/internal/io_uring.h b/lib/libc/include/internal/io_uring.h deleted file mode 100644 index e7369146..00000000 --- a/lib/libc/include/internal/io_uring.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __INTERNAL_IO_URING_H -#define __INTERNAL_IO_URING_H - -void __io_uring_init(void); - -#endif diff --git a/lib/libc/include/io_uring.h b/lib/libc/include/io_uring.h deleted file mode 100644 index 4dac4583..00000000 --- a/lib/libc/include/io_uring.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __LIBC_IO_URING_H -#define __LIBC_IO_URING_H - -#include <linux/io_uring.h> -#include <signal.h> - -#define IO_URING_ENTRIES 256 - -struct io_uring_sq { - void *ring; - size_t ring_size; - struct io_uring_sqe *sqes; - - unsigned *head; - unsigned *tail; - unsigned *ring_mask; - unsigned *ring_entries; - unsigned *flags; - unsigned *dropped; - unsigned *array; -}; - -struct io_uring_cq { - void *ring; - size_t ring_size; - - unsigned *head; - unsigned *tail; - unsigned *ring_mask; - unsigned *ring_entries; - unsigned *overflow; - struct io_uring_cqe *cqes; - unsigned *flags; -}; - -struct io_uring { - int fd; - int eventfd; - - struct io_uring_sq sq; - struct io_uring_cq cq; -}; - -extern struct io_uring __io_uring; - -int io_uring_setup(unsigned int, struct io_uring_params *); - -int io_uring_register(unsigned int, unsigned int, void *, unsigned int); - -int io_uring_enter(unsigned int, unsigned int, unsigned int, unsigned int, - sigset_t *, size_t); - -#endif diff --git a/lib/libc/include/libc.h b/lib/libc/include/libc.h deleted file mode 100644 index 87d4e88f..00000000 --- a/lib/libc/include/libc.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __LIBC_LIBC_H -#define __LIBC_LIBC_H - -#include <stddef.h> -#include <stdatomic.h> - -#define weak_reference(old, new) extern __typeof(old)((new)) __attribute__((__weak__, __alias__(#old))) - -struct libc { - size_t auxv[32]; - - enum { - LIBC_ENVP_TOUCHED = 1 << 0, - } flags; - - struct { - volatile atomic_flag abort; - volatile atomic_flag malloc; - volatile atomic_flag environ; - } lock; -}; - -extern struct libc __libc; - -#endif diff --git a/lib/libc/include/libc/dirent.h b/lib/libc/include/libc/dirent.h deleted file mode 100644 index 296cc91e..00000000 --- a/lib/libc/include/libc/dirent.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __LIBC_DIRENT_H -#define __LIBC_DIRENT_H - -struct __DIR {}; - -#endif diff --git a/lib/libc/include/malloc.h b/lib/libc/include/malloc.h deleted file mode 100644 index b7cb0093..00000000 --- a/lib/libc/include/malloc.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __LIBC_MALLOC_H -#define __LIBC_MALLOC_H - -#include <stdatomic.h> -#include <stdint.h> - -struct class { - uint32_t size; - uint32_t count; -}; - -struct page { - volatile atomic_flag lock; - - enum { - PAGE_SMALL = 0x0, - PAGE_MEDIUM = 0x1, - PAGE_LARGE = 0x2, - } flags; - - struct { - uint32_t size; - uint32_t used; - uint32_t count; - } block; - - uint8_t *bitmap; - uint8_t *heap; - - struct page *next; - struct page *prev; -}; - -extern struct page *__malloc_pvec; - -#define SMALL_PAGE_SIZE_SHIFT 16 -#define SMALL_PAGE_SIZE (1 << SMALL_PAGE_SIZE_SHIFT) -#define SMALL_PAGE_MASK (~((uintptr_t)SMALL_PAGE_SIZE - 1)) - -#define MEDIUM_PAGE_SIZE_SHIFT 22 -#define MEDIUM_PAGE_SIZE (1 << MEDIUM_PAGE_SIZE_SHIFT) -#define MEDIUM_PAGE_MASK (~((uintptr_t)MEDIUM_PAGE_SIZE - 1)) - -#define LARGE_PAGE_SIZE_SHIFT 26 -#define LARGE_PAGE_SIZE (1 << LARGE_PAGE_SIZE_SHIFT) -#define LARGE_PAGE_MASK (~((uintptr_t)LARGE_PAGE_SIZE - 1)) - -#define SMALL_CLASS(n) \ - { (((n)) * 16), (SMALL_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } -#define MEDIUM_CLASS(n) \ - { (((n)) * 16), \ - (MEDIUM_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } -#define LARGE_CLASS(n) \ - { (((n)) * 16), (LARGE_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) } - -static const struct class global_size_class[] = { - SMALL_CLASS(1), SMALL_CLASS(1), SMALL_CLASS(2), - SMALL_CLASS(3), SMALL_CLASS(4), SMALL_CLASS(5), - SMALL_CLASS(6), SMALL_CLASS(7), SMALL_CLASS(8), - SMALL_CLASS(9), SMALL_CLASS(10), SMALL_CLASS(11), - SMALL_CLASS(12), SMALL_CLASS(13), SMALL_CLASS(14), - SMALL_CLASS(15), SMALL_CLASS(16), SMALL_CLASS(17), - SMALL_CLASS(18), SMALL_CLASS(19), SMALL_CLASS(20), - SMALL_CLASS(21), SMALL_CLASS(22), SMALL_CLASS(23), - SMALL_CLASS(24), SMALL_CLASS(25), SMALL_CLASS(26), - SMALL_CLASS(27), SMALL_CLASS(28), SMALL_CLASS(29), - SMALL_CLASS(30), SMALL_CLASS(31), SMALL_CLASS(32), - SMALL_CLASS(33), SMALL_CLASS(34), SMALL_CLASS(35), - SMALL_CLASS(36), SMALL_CLASS(37), SMALL_CLASS(38), - SMALL_CLASS(39), SMALL_CLASS(40), SMALL_CLASS(41), - SMALL_CLASS(42), SMALL_CLASS(43), SMALL_CLASS(44), - SMALL_CLASS(45), SMALL_CLASS(46), SMALL_CLASS(47), - SMALL_CLASS(48), SMALL_CLASS(49), SMALL_CLASS(50), - SMALL_CLASS(51), SMALL_CLASS(52), SMALL_CLASS(53), - SMALL_CLASS(54), SMALL_CLASS(55), SMALL_CLASS(56), - SMALL_CLASS(57), SMALL_CLASS(58), SMALL_CLASS(59), - SMALL_CLASS(60), SMALL_CLASS(61), SMALL_CLASS(62), - SMALL_CLASS(63), SMALL_CLASS(64), SMALL_CLASS(80), - SMALL_CLASS(96), SMALL_CLASS(112), SMALL_CLASS(128), - SMALL_CLASS(160), SMALL_CLASS(192), SMALL_CLASS(224), - SMALL_CLASS(256), MEDIUM_CLASS(320), MEDIUM_CLASS(384), - MEDIUM_CLASS(448), MEDIUM_CLASS(512), MEDIUM_CLASS(640), - MEDIUM_CLASS(768), MEDIUM_CLASS(896), MEDIUM_CLASS(1024), - MEDIUM_CLASS(1280), MEDIUM_CLASS(1536), MEDIUM_CLASS(1792), - MEDIUM_CLASS(2048), MEDIUM_CLASS(2560), MEDIUM_CLASS(3072), - MEDIUM_CLASS(3584), MEDIUM_CLASS(4096), MEDIUM_CLASS(5120), - MEDIUM_CLASS(6144), MEDIUM_CLASS(7168), MEDIUM_CLASS(8192), - MEDIUM_CLASS(10240), MEDIUM_CLASS(12288), MEDIUM_CLASS(14336), - MEDIUM_CLASS(16384), LARGE_CLASS(20480), LARGE_CLASS(24576), - LARGE_CLASS(28672), LARGE_CLASS(32768), LARGE_CLASS(40960), - LARGE_CLASS(49152), LARGE_CLASS(57344), LARGE_CLASS(65536), - LARGE_CLASS(81920), LARGE_CLASS(98304), LARGE_CLASS(114688), - LARGE_CLASS(131072), LARGE_CLASS(163840), LARGE_CLASS(196608), - LARGE_CLASS(229376), LARGE_CLASS(262144), LARGE_CLASS(327680), - LARGE_CLASS(393216), LARGE_CLASS(458752), LARGE_CLASS(524288) -}; - -#endif diff --git a/lib/libc/include/syscall.h b/lib/libc/include/syscall.h deleted file mode 100644 index 645c4bcd..00000000 --- a/lib/libc/include/syscall.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __LIBC_SYSCALL_H -#define __LIBC_SYSCALL_H - -#include <asm/syscall.h> -#include <asm/unistd_64.h> -#include <errno.h> - -typedef long syscall_arg_t; - -#define __SYSCALL_NARGS_(a, b, c, d, e, f, g, h, n, ...) n -#define __SYSCALL_NARGS(...) \ - __SYSCALL_NARGS_(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0, ) - -#define __SYSCALL_CONCAT_(a, b) a##b -#define __SYSCALL_CONCAT(a, b) __SYSCALL_CONCAT_(a, b) - -#define __SYSCALL_(b, ...) \ - __SYSCALL_CONCAT(b, __SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__) - -#define __syscall(...) __SYSCALL_(__syscall_, __VA_ARGS__) -#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__)) - -#define __sa(x) ((syscall_arg_t)(x)) - -#define __syscall_0(n) __syscall0(__NR_##n) -#define __syscall_1(n, a) __syscall1(__NR_##n, __sa(a)) -#define __syscall_2(n, a, b) __syscall2(__NR_##n, __sa(a), __sa(b)) -#define __syscall_3(n, a, b, c) __syscall3(__NR_##n, __sa(a), __sa(b), __sa(c)) -#define __syscall_4(n, a, b, c, d) \ - __syscall4(__NR_##n, __sa(a), __sa(b), __sa(c), __sa(d)) -#define __syscall_5(n, a, b, c, d, e) \ - __syscall5(__NR_##n, __sa(a), __sa(b), __sa(c), __sa(d), __sa(e)) -#define __syscall_6(n, a, b, c, d, e, f) \ - __syscall6(__NR_##n, __sa(a), __sa(b), __sa(c), __sa(d), __sa(e), \ - __sa(f)) -#define __syscall_7(n, a, b, c, d, e, f, g) \ - __syscall7(__NR_##n, __sa(a), __sa(b), __sa(c), __sa(d), __sa(e), \ - __sa(f), __sa(g)) - -static __inline long __syscall_ret(long ret) -{ - if (ret > -4096 && ret < 0) { - errno = -ret; - ret = -1; - } - return ret; -} - -#ifdef __NR_pread64 -#undef __NR_pread -#define __NR_pread __NR_pread64 -#endif - -#ifdef __NR_pwrite64 -#undef __NR_pwrite -#define __NR_pwrite __NR_pwrite64 -#endif - -#endif |
