user: implement mlibc as the libc, finally.

It's finally done..

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
kaguya
2026-05-02 03:31:49 -04:00
parent 2fa39ad85a
commit 9a9b91c940
2387 changed files with 152741 additions and 315 deletions
+9
View File
@@ -0,0 +1,9 @@
#ifndef _ABIBITS_ACCESS_H
#define _ABIBITS_ACCESS_H
#define F_OK 1
#define R_OK 2
#define W_OK 4
#define X_OK 8
#endif /* _ABIBITS_ACCESS_H */
+9
View File
@@ -0,0 +1,9 @@
#ifndef _ABIBITS_AUXV_H
#define _ABIBITS_AUXV_H
#define AT_EXECPATH 15
#define AT_SECURE 23
#define AT_RANDOM 25
#define AT_EXECFN 31
#endif /* _ABIBITS_AUXV_H */
+7
View File
@@ -0,0 +1,7 @@
#ifndef _ABIBITS_BLKCNT_T_H
#define _ABIBITS_BLKCNT_T_H
/* TODO: use int64_t? */
typedef long blkcnt_t;
#endif /* _ABIBITS_BLKCNT_T_H */
+9
View File
@@ -0,0 +1,9 @@
#ifndef _ABIBITS_BLKSIZE_T_H
#define _ABIBITS_BLKSIZE_T_H
/* TODO: use int64_t? */
typedef long blksize_t;
#endif /* _ABIBITS_BLKSIZE_T_H */
+7
View File
@@ -0,0 +1,7 @@
#ifndef _ABIBITS_CLOCKID_T_H
#define _ABIBITS_CLOCKID_T_H
typedef long clockid_t;
#endif /* _ABIBITS_CLOCKID_T_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_DEV_T_H
#define _ABIBITS_DEV_T_H
typedef unsigned long dev_t;
#endif /* _ABIBITS_DEV_T_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef _ABIBITS_EPOLL_H
#define _ABIBITS_EPOLL_H
#define EPOLL_CLOEXEC 1
#endif /* _ABIBITS_EPOLL_H */
+126
View File
@@ -0,0 +1,126 @@
#ifndef _ABIBITS_ERRNO_H
#define _ABIBITS_ERRNO_H
#define EDOM 1
#define EILSEQ 2
#define ERANGE 3
#define E2BIG 1001
#define EACCES 1002
#define EADDRINUSE 1003
#define EADDRNOTAVAIL 1004
#define EAFNOSUPPORT 1005
#define EAGAIN 1006
#define EALREADY 1007
#define EBADF 1008
#define EBADMSG 1009
#define EBUSY 1010
#define ECANCELED 1011
#define ECHILD 1012
#define ECONNABORTED 1013
#define ECONNREFUSED 1014
#define ECONNRESET 1015
#define EDEADLK 1016
#define EDESTADDRREQ 1017
#define EDQUOT 1018
#define EEXIST 1019
#define EFAULT 1020
#define EFBIG 1021
#define EHOSTUNREACH 1022
#define EIDRM 1023
#define EINPROGRESS 1024
#define EINTR 1025
#define EINVAL 1026
#define EIO 1027
#define EISCONN 1028
#define EISDIR 1029
#define ELOOP 1030
#define EMFILE 1031
#define EMLINK 1032
#define EMSGSIZE 1034
#define EMULTIHOP 1035
#define ENAMETOOLONG 1036
#define ENETDOWN 1037
#define ENETRESET 1038
#define ENETUNREACH 1039
#define ENFILE 1040
#define ENOBUFS 1041
#define ENODEV 1042
#define ENOENT 1043
#define ENOEXEC 1044
#define ENOLCK 1045
#define ENOLINK 1046
#define ENOMEM 1047
#define ENOMSG 1048
#define ENOPROTOOPT 1049
#define ENOSPC 1050
#define ENOSYS 1051
#define ENOTCONN 1052
#define ENOTDIR 1053
#define ENOTEMPTY 1054
#define ENOTRECOVERABLE 1055
#define ENOTSOCK 1056
#define ENOTSUP 1057
#define ENOTTY 1058
#define ENXIO 1059
#define EOPNOTSUPP 1060
#define EOVERFLOW 1061
#define EOWNERDEAD 1062
#define EPERM 1063
#define EPIPE 1064
#define EPROTO 1065
#define EPROTONOSUPPORT 1066
#define EPROTOTYPE 1067
#define EROFS 1068
#define ESPIPE 1069
#define ESRCH 1070
#define ESTALE 1071
#define ETIMEDOUT 1072
#define ETXTBSY 1073
#define EWOULDBLOCK EAGAIN
#define EXDEV 1075
#define ENODATA 1076
#define ETIME 1077
#define ENOKEY 1078
#define ESHUTDOWN 1079
#define EHOSTDOWN 1080
#define EBADFD 1081
#define ENOMEDIUM 1082
#define ENOTBLK 1083
#define ENONET 1084
#define EPFNOSUPPORT 1085
#define ESOCKTNOSUPPORT 1086
#define ESTRPIPE 1087
#define EREMOTEIO 1088
#define ERFKILL 1089
#define EBADR 1090
#define EUNATCH 1091
#define EMEDIUMTYPE 1092
#define EREMOTE 1093
#define EKEYREJECTED 1094
#define EUCLEAN 1095
#define EBADSLT 1096
#define ENOANO 1097
#define ENOCSI 1098
#define ENOSTR 1099
#define ETOOMANYREFS 1100
#define ENOPKG 1101
#define EKEYREVOKED 1102
#define EXFULL 1103
#define ELNRNG 1104
#define ENOTUNIQ 1105
#define ERESTART 1106
#define EUSERS 1107
#define ECHRNG 1108
#define ELIBBAD 1109
#define EL2HLT 1110
#define EL3HLT 1111
#define EKEYEXPIRED 1112
#define ECOMM 1113
#define EBADE 1114
#define EHWPOISON 1115
#define EBADRQC 1116
#define EIEIO 1524152434
#endif /* _ABIBITS_ERRNO_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_GID_T_H
#define _ABIBITS_GID_T_H
typedef unsigned int gid_t;
#endif /* _ABIBITS_GID_T_H */
+169
View File
@@ -0,0 +1,169 @@
#ifndef _ABIBITS_IN_H
#define _ABIBITS_IN_H
#include <bits/posix/in_addr_t.h>
#include <bits/posix/in_port_t.h>
#include <abi-bits/socket.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
struct in_addr {
in_addr_t s_addr;
};
struct sockaddr_in {
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
uint8_t pad[8];
};
#define sin_zero pad /* for BSD Unix compatibility */
struct in6_addr {
union {
uint8_t __s6_addr[16];
uint16_t __s6_addr16[8];
uint32_t __s6_addr32[4];
} __in6_union;
};
#define s6_addr __in6_union.__s6_addr
#define s6_addr16 __in6_union.__s6_addr16
#define s6_addr32 __in6_union.__s6_addr32
struct in6_pktinfo {
struct in6_addr ipi6_addr;
uint32_t ipi6_ifindex;
};
struct sockaddr_in6 {
sa_family_t sin6_family;
in_port_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr sin6_addr;
uint32_t sin6_scope_id;
};
struct ipv6_mreq {
struct in6_addr ipv6mr_multiaddr;
unsigned ipv6mr_interface;
};
struct ip_mreq {
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct ip_mreq_source {
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
struct in_addr imr_sourceaddr;
};
struct ip_mreqn {
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct in_pktinfo {
unsigned int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
struct group_source_req {
uint32_t gsr_interface;
struct sockaddr_storage gsr_group;
struct sockaddr_storage gsr_source;
};
#ifdef __cplusplus
}
#endif
#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
#define IPPROTO_IP 1
#define IPPROTO_IPV6 2
#define IPPROTO_ICMP 3
#define IPPROTO_RAW 4
#define IPPROTO_TCP 5
#define IPPROTO_UDP 6
#define IPPROTO_IGMP 7
#define IPPROTO_IPIP 8
#define IPPROTO_DCCP 33
#define IPPROTO_ROUTING 43
#define IPPROTO_GRE 47
#define IPPROTO_ESP 50
#define IPPROTO_AH 51
#define IPPROTO_ICMPV6 58
#define IPPROTO_DSTOPTS 60
#define IPPROTO_COMP 108
#define IPPROTO_SCTP 132
#define IPPROTO_UDPLITE 136
#define IPPROTO_MAX 256
#define INADDR_ANY ((in_addr_t)0x00000000)
#define INADDR_BROADCAST ((in_addr_t)0xffffffff)
#define INADDR_LOOPBACK ((in_addr_t)0x7f000001)
#define INADDR_NONE ((in_addr_t)0xffffffff)
#define INET_ADDRSTRLEN 16
#define INET6_ADDRSTRLEN 46
#define IPV6_JOIN_GROUP 1
#define IPV6_LEAVE_GROUP 2
#define IPV6_MULTICAST_HOPS 3
#define IPV6_MULTICAST_IF 4
#define IPV6_MULTICAST_LOOP 5
#define IPV6_UNICAST_HOPS 6
#define IPV6_V6ONLY 7
#define IPV6_PMTUDISC_DONT 8
#define IPV6_PMTUDISC_DO 9
#define IPV6_MTU 10
#define IPV6_2292PKTOPTIONS 11
#define IPV6_MTU_DISCOVER 23
#define IPV6_RECVERR 25
#define IPV6_RECVPKTINFO 49
#define IPV6_PKTINFO 50
#define IPV6_RECVHOPLIMIT 51
#define IPV6_HOPLIMIT 52
#define IPV6_TCLASS 67
#define IP_TOS 1
#define IP_TTL 2
#define IP_OPTIONS 4
#define IP_PMTUDISC_OMIT 5
#define IP_PKTINFO 8
#define IP_PKTOPTIONS 9
#define IP_MTU_DISCOVER 10
#define IP_RECVERR 11
#define IP_RECVTTL 12
#define IP_UNICAST_IF 13
#define IP_MTU 14
#define IP_DEFAULT_MULTICAST_TTL 1
#define IP_MULTICAST_IF 32
#define IP_MULTICAST_TTL 33
#define IP_MULTICAST_LOOP 34
#define IP_ADD_MEMBERSHIP 35
#define IP_DROP_MEMBERSHIP 36
#define IP_UNBLOCK_SOURCE 37
#define IP_BLOCK_SOURCE 38
#define IP_ADD_SOURCE_MEMBERSHIP 39
#define IP_DROP_SOURCE_MEMBERSHIP 40
#define MCAST_JOIN_SOURCE_GROUP 46
#define MCAST_LEAVE_SOURCE_GROUP 47
#define IP_PMTUDISC_DONT 0
#define IP_PMTUDISC_DO 2
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
#endif /* _ABIBITS_IN_H */
+9
View File
@@ -0,0 +1,9 @@
#ifndef _ABIBITS_INO_T_H
#define _ABIBITS_INO_T_H
/* TODO: use (u)int64_t? */
typedef long ino_t;
#endif /* _ABIBITS_INO_T_H */
+7
View File
@@ -0,0 +1,7 @@
#ifndef _ABIBITS_INOTIFY_H
#define _ABIBITS_INOTIFY_H
#define IN_CLOEXEC 1
#define IN_NONBLOCK 2
#endif /* _ABIBITS_INOTIFY_H */
+51
View File
@@ -0,0 +1,51 @@
#ifndef _ABIBITS_IPC_H
#define _ABIBITS_IPC_H
#include <abi-bits/uid_t.h>
#include <abi-bits/gid_t.h>
#include <abi-bits/mode_t.h>
#ifdef __cplusplus
extern "C" {
#endif
#define IPC_CREAT 01000
#define IPC_EXCL 02000
#define IPC_NOWAIT 04000
#define IPC_RMID 0
#define IPC_SET 1
#define IPC_STAT 2
#define IPC_INFO 3
#define IPC_PRIVATE ((key_t) 0)
#if defined(__aarch64__) || defined(__i386__) || defined(__m68k__)
#define IPC_64 0x100
#elif defined(__x86_64__) || (defined(__riscv) && __riscv_xlen == 64) || defined(__loongarch64)
#define IPC_64 0
#else
#error "Unsupported arch!"
#endif
typedef int key_t;
struct ipc64_perm {
key_t __ipc_perm_key;
uid_t uid;
gid_t gid;
uid_t cuid;
gid_t cgid;
mode_t mode;
short __ipc_perm_seq;
short __pad;
unsigned long __unused[2];
};
#define ipc_perm ipc64_perm
#ifdef __cplusplus
}
#endif
#endif
+14
View File
@@ -0,0 +1,14 @@
#ifndef _ABIBITS_LIMITS_H
#define _ABIBITS_LIMITS_H
#define IOV_MAX 1024
/* Niceness related */
#define NZERO 20
/* Maximum hostname length, posix defines it as 255 */
#define HOST_NAME_MAX 255
#define OPEN_MAX 256
#endif /*_ABIBITS_LIMITS_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_MODE_T_H
#define _ABIBITS_MODE_T_H
typedef int mode_t;
#endif /* _ABIBITS_MODE_T_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_NLINK_T_H
#define _ABIBITS_NLINK_T_H
typedef int nlink_t;
#endif /* _ABIBITS_NLINK_T_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef _ABIBITS_PACKET_H
#define _ABIBITS_PACKET_H
#define PACKET_HOST 0
#endif /* _ABIBITS_PACKET_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_PID_T_H
#define _ABIBITS_PID_T_H
typedef int pid_t;
#endif /* _ABIBITS_PID_T_H */
+16
View File
@@ -0,0 +1,16 @@
#ifndef _ABIBITS_POLL_H
#define _ABIBITS_POLL_H
#define POLLIN 0x01
#define POLLOUT 0x02
#define POLLPRI 0x04
#define POLLHUP 0x08
#define POLLERR 0x10
#define POLLRDHUP 0x20
#define POLLNVAL 0x40
#define POLLWRNORM 0x80
#define POLLRDNORM 0x100
#define POLLWRBAND 0x200
#define POLLRDBAND 0x400
#endif /* _ABIBITS_POLL_H */
+56
View File
@@ -0,0 +1,56 @@
#ifndef _ABIBITS_PTRACE_H
#define _ABIBITS_PTRACE_H
#define PTRACE_PEEKTEXT 1
#define PTRACE_PEEKDATA 2
#define PTRACE_PEEKUSER 3
#define PTRACE_POKETEXT 4
#define PTRACE_POKEDATA 5
#define PTRACE_CONT 7
#define PTRACE_KILL 8
#define PTRACE_SINGLESTEP 9
#define PTRACE_GETREGS 14
#define PTRACE_SETREGS 15
#define PTRACE_ATTACH 16
#define PTRACE_DETACH 17
#define PTRACE_GETFPXREGS 18
#define PTRACE_SETFPXREGS 19
#define PTRACE_GETFPREGS 20
#define PTRACE_SYSCALL 24
#define PTRACE_SETOPTIONS 0x4200
#define PTRACE_GETEVENTMSG 0x4201
#define PTRACE_GETSIGINFO 0x4202
#define PTRACE_SETSIGINFO 0x4203
#define PTRACE_GETREGSET 0x4204
#define PTRACE_SETREGSET 0x4205
#define PTRACE_SEIZE 0x4206
#define PTRACE_INTERRUPT 0x4207
#define PTRACE_LISTEN 0x4208
#define PTRACE_PEEKSIGINFO 0x4209
#define PTRACE_GETSIGMASK 0x420A
#define PTRACE_SETSIGMASK 0x420B
#define PTRACE_SECCOMP_GET_FILTER 0x420C
#define PTRACE_CE_O_TRACESYSGOOD 0x00000001
#define PTRACE_O_TRACEFORK 0x00000002
#define PTRACE_O_TRACEVFORK 0x00000004
#define PTRACE_O_TRACECLONE 0x00000008
#define PTRACE_O_TRACEEXEC 0x00000010
#define PTRACE_O_TRACEVFORKDONE 0x00000020
#define PTRACE_O_TRACEEXIT 0x00000040
#define PTRACE_O_TRACESECCOMP 0x00000080
#define PTRACE_O_EXITKILL 0x00100000
#define PTRACE_O_SUSPEND_SECCOMP 0x00200000
#define PTRACE_O_MASK 0x003000ff
#define PTRACE_EVENT_FORK 1
#define PTRACE_EVENT_VFORK 2
#define PTRACE_EVENT_CLONE 3
#define PTRACE_EVENT_EXEC 4
#define PTRACE_EVENT_VFORK_DONE 5
#define PTRACE_EVENT_EXIT 6
#define PTRACE_EVENT_SECCOMP 7
#define PTRACE_PEEKSIGINFO_SHARED 1
#endif /* _ABIBITS_PTRACE_H */
+7
View File
@@ -0,0 +1,7 @@
#ifndef _ABIBITS_RANDOM_H
#define _ABIBITS_RANDOM_H
#define GRND_RANDOM 1
#define GRND_NONBLOCK 2
#endif /* _ABIBITS_RANDOM_H */
+53
View File
@@ -0,0 +1,53 @@
#ifndef _ABIBITS_RESOURCE_H
#define _ABIBITS_RESOURCE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <bits/posix/timeval.h>
#define RUSAGE_SELF 1
#define RUSAGE_CHILDREN 2
#define RLIMIT_CORE 1
#define RLIMIT_CPU 2
#define RLIMIT_DATA 3
#define RLIMIT_FSIZE 4
#define RLIMIT_NOFILE 5
#define RLIMIT_STACK 6
#define RLIMIT_AS 7
#define RLIMIT_MEMLOCK 8
#define RLIMIT_RSS 9
#define RLIMIT_NPROC 10
#define RLIMIT_LOCKS 11
#define RLIMIT_SIGPENDING 12
#define RLIMIT_MSGQUEUE 13
#define RLIMIT_NICE 14
#define RLIMIT_RTPRIO 15
#define RLIMIT_NLIMITS 16
struct rusage {
struct timeval ru_utime;
struct timeval ru_stime;
long int ru_maxrss;
long int ru_ixrss;
long int ru_idrss;
long int ru_isrss;
long int ru_minflt;
long int ru_majflt;
long int ru_nswap;
long int ru_inblock;
long int ru_oublock;
long int ru_msgsnd;
long int ru_msgrcv;
long int ru_nsignals;
long int ru_nvcsw;
long int ru_nivcsw;
};
#ifdef __cplusplus
}
#endif
#endif /* _ABIBITS_RESOURCE_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef _ABIBITS_RLIM_T_H
#define _ABIBITS_RLIM_T_H
typedef unsigned long long rlim_t;
#endif /* _ABIBITS_RLIM_T_H */
@@ -0,0 +1,10 @@
#ifndef _ABIBITS_SEEK_WHENCE_H
#define _ABIBITS_SEEK_WHENCE_H
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 3
#define SEEK_DATA 4
#define SEEK_HOLE 5
#endif /* _ABIBITS_SEEK_WHENCE_H */
+84
View File
@@ -0,0 +1,84 @@
#ifndef _ABIBITS_SHM_H
#define _ABIBITS_SHM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <bits/ansi/time_t.h>
#include <abi-bits/pid_t.h>
#include <unistd.h>
#include <sys/ipc.h>
#define SHM_R 0400
#define SHM_W 0200
#define SHM_RDONLY 010000
#define SHM_RND 020000
#define SHM_REMAP 040000
#define SHM_EXEC 0100000
#define SHM_LOCK 11
#define SHM_UNLOCK 12
#define SHM_STAT 13
#define SHM_INFO 14
#define SHM_STAT_ANY 15
#define SHM_DEST 01000
#define SHM_LOCKED 02000
#define SHM_HUGETLB 04000
#define SHM_NORESERVE 010000
#define SHM_HUGE_SHIFT 26
#define SHM_HUGE_MASK 0x3f
#define SHM_HUGE_64KB (16 << 26)
#define SHM_HUGE_512KB (19 << 26)
#define SHM_HUGE_1MB (20 << 26)
#define SHM_HUGE_2MB (21 << 26)
#define SHM_HUGE_8MB (23 << 26)
#define SHM_HUGE_16MB (24 << 26)
#define SHM_HUGE_32MB (25 << 26)
#define SHM_HUGE_256MB (28 << 26)
#define SHM_HUGE_512MB (29 << 26)
#define SHM_HUGE_1GB (30 << 26)
#define SHM_HUGE_2GB (31 << 26)
#define SHM_HUGE_16GB (34U << 26)
typedef unsigned long shmatt_t;
struct shmid_ds {
struct ipc_perm shm_perm;
size_t shm_segsz;
time_t shm_atime;
time_t shm_dtime;
time_t shm_ctime;
pid_t shm_cpid;
pid_t shm_lpid;
unsigned long shm_nattch;
};
struct shminfo {
unsigned long shmmax;
unsigned long shmmin;
unsigned long shmmni;
unsigned long shmseg;
unsigned long shmall;
unsigned long __unused[4];
};
struct shm_info {
int used_ids;
unsigned long shm_tot;
unsigned long shm_rss;
unsigned long shm_swp;
unsigned long swap_attempts;
unsigned long swap_successes;
};
#define SHMLBA (getpagesize())
#ifdef __cplusplus
}
#endif
#endif /* _ABIBITS_SHM_H */
+165
View File
@@ -0,0 +1,165 @@
#ifndef _ABIBITS_SOCKET_H
#define _ABIBITS_SOCKET_H
#include <abi-bits/socklen_t.h>
#include <bits/posix/iovec.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned int sa_family_t;
struct msghdr {
void *msg_name;
socklen_t msg_namelen;
struct iovec *msg_iov;
int msg_iovlen;
void *msg_control;
socklen_t msg_controllen;
int msg_flags;
};
struct sockaddr_storage {
sa_family_t ss_family;
char __padding[128 - sizeof(sa_family_t)];
};
struct mmsghdr {
struct msghdr msg_hdr;
unsigned int msg_len;
};
struct cmsghdr {
socklen_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
#ifdef __cplusplus
}
#endif
#define SCM_RIGHTS 1
#define SCM_TIMESTAMP SO_TIMESTAMP
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
/*MISSING: CMSG_DATA, CMSG_NXTHDR, CMSG_FIRSTHDR */
#define SCM_CREDENTIALS 0x02
#define SOCK_DGRAM 1
#define SOCK_RAW 2
#define SOCK_SEQPACKET 3
#define SOCK_STREAM 4
#define SOCK_DCCP 5
#define SOCK_NONBLOCK 0x10000
#define SOCK_CLOEXEC 0x20000
#define SOCK_RDM 0x40000
#define SOL_SOCKET 1
#define SOL_IPV6 41
#define SOL_PACKET 263
#define SOL_NETLINK 270
#define SO_ACCEPTCONN 1
#define SO_BROADCAST 2
#define SO_DEBUG 3
#define SO_DONTROUTE 4
#define SO_ERROR 5
#define SO_KEEPALIVE 6
#define SO_LINGER 7
#define SO_OOBINLINE 8
#define SO_RCVBUF 9
#define SO_RCVLOWAT 10
#define SO_RCVTIMEO 11
#define SO_REUSEADDR 12
#define SO_SNDBUF 13
#define SO_SNDLOWAT 14
#define SO_SNDTIMEO 15
#define SO_TYPE 16
#define SO_SNDBUFFORCE 17
#define SO_PEERCRED 18
#define SO_ATTACH_FILTER 19
#define SO_PASSCRED 20
#define SO_RCVBUFFORCE 21
#define SO_DETACH_FILTER 22
#define SO_PROTOCOL 23
#define SO_REUSEPORT 24
#define SO_TIMESTAMP 25
#define SO_PEERSEC 26
#define SO_BINDTODEVICE 27
#define SO_DOMAIN 28
#define SO_PASSSEC 29
#define SO_TIMESTAMPNS 30
#define SO_PRIORITY 31
#define SO_MARK 32
#define SOMAXCONN 1
#define MSG_CTRUNC 0x1
#define MSG_DONTROUTE 0x2
#define MSG_EOR 0x4
#define MSG_OOB 0x8
#define MSG_NOSIGNAL 0x10
#define MSG_PEEK 0x20
#define MSG_TRUNC 0x40
#define MSG_WAITALL 0x80
#define MSG_FIN 0x200
#define MSG_CONFIRM 0x800
/* Linux extensions. */
#define MSG_DONTWAIT 0x1000
#define MSG_CMSG_CLOEXEC 0x2000
#define MSG_MORE 0x4000
#define MSG_FASTOPEN 0x20000000
/* GNU (?) extension: Protocol family constants. */
#define PF_INET 1
#define PF_INET6 2
#define PF_UNIX 3
#define PF_LOCAL 3
#define PF_UNSPEC 4
#define PF_NETLINK 5
#define PF_BRIDGE 6
#define PF_APPLETALK 7
#define PF_BLUETOOTH 8
#define PF_DECnet 9
#define PF_IPX 10
#define PF_ISDN 11
#define PF_SNA 12
#define PF_PACKET 13
#define PF_AX25 14
#define PF_NETROM 15
#define PF_ROSE 16
#define PF_TIPC 30
#define PF_ALG 38
#define PF_MAX 46
#define AF_INET PF_INET
#define AF_INET6 PF_INET6
#define AF_UNIX PF_UNIX
#define AF_LOCAL PF_LOCAL
#define AF_UNSPEC PF_UNSPEC
#define AF_NETLINK PF_NETLINK
#define AF_BRIDGE PF_BRIDGE
#define AF_APPLETALK PF_APPLETALK
#define AF_BLUETOOTH PF_BLUETOOTH
#define AF_DECnet PF_DECnet
#define AF_IPX PF_IPX
#define AF_ISDN PF_ISDN
#define AF_SNA PF_SNA
#define AF_PACKET PF_PACKET
#define AF_PACKET PF_PACKET
#define AF_AX25 PF_AX25
#define AF_NETROM PF_NETROM
#define AF_ROSE PF_ROSE
#define AF_TIPC PF_TIPC
#define AF_ALG PF_ALG
#define AF_MAX PF_MAX
#define SHUT_RD 1
#define SHUT_RDWR 2
#define SHUT_WR 3
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef _ABIBITS_TIME_H
#define _ABIBITS_TIME_H
#include <bits/posix/timeval.h>
struct itimerval {
struct timeval it_interval; /* Interval for periodic timer */
struct timeval it_value; /* Time until next expiration */
};
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
#endif /* _ABIBITS_TIME_H */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _ABIBITS_UID_T_H
#define _ABIBITS_UID_T_H
typedef unsigned int uid_t;
#endif /* _ABIBITS_UID_T_H */
+46
View File
@@ -0,0 +1,46 @@
#ifndef _ABIBITS_MMAP_FLAGS_H
#define _ABIBITS_MMAP_FLAGS_H
#define PROT_NONE 0x00
#define PROT_READ 0x01
#define PROT_WRITE 0x02
#define PROT_EXEC 0x04
#define MAP_FAILED ((void *)(-1))
#define MAP_FILE 0x00
#define MAP_PRIVATE 0x01
#define MAP_SHARED 0x02
#define MAP_FIXED 0x04
#define MAP_ANON 0x08
#define MAP_ANONYMOUS 0x08
#define MAP_NORESERVE 0x10
#define MAP_FIXED_NOREPLACE 0x20
#define MS_ASYNC 0x01
#define MS_SYNC 0x02
#define MS_INVALIDATE 0x04
#define MCL_CURRENT 0x01
#define MCL_FUTURE 0x02
#define POSIX_MADV_NORMAL 1
#define POSIX_MADV_SEQUENTIAL 2
#define POSIX_MADV_RANDOM 3
#define POSIX_MADV_DONTNEED 4
#define POSIX_MADV_WILLNEED 5
#define MADV_NORMAL 0
#define MADV_RANDOM 1
#define MADV_SEQUENTIAL 2
#define MADV_WILLNEED 3
#define MADV_DONTNEED 4
#define MADV_FREE 8
/* Linux extensions: */
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
#define MFD_CLOEXEC 1U
#define MFD_ALLOW_SEALING 2U
#endif /* _ABIBITS_MMAP_FLAGS_H */