From: Waldemar Kozaczuk <jwkozac...@gmail.com> Committer: Nadav Har'El <n...@scylladb.com> Branch: master
libc: replace more include/api/ headers with their musl copies All these headers were initially copied from an earlier version of musl as-is and have not been changed since on OSv side. Though they have changed on musl side between that early version and the one corresponding to musl/ folder (0.9.12). Because those changes are minimal and do not affect compilation of OSv we replaces those headers with their symlinked copies in musl/ folder. Please note that one header signal.h has changed in a way that may require updating include/api/$ARCH/bits/alltypes.h.sh file - more specifically the siginfo_t is struct defined musl signal.h whereas OSv defines "TYPEDEF struct __siginfo siginfo_t;" in alltypes.h.sh. Strangely the change does not cause any conflict but possibly that typedef will need to be removed from alltypes.h.sh. The side-to-side diff of the affected headers: ``` ----------------------------------------- DIFF: [dlfcn.h] > #define RTLD_DI_LINKMAP 2 > > int dlinfo(void *, int, void *); ----------------------------------------- DIFF: [float.h] > #define FLT_TRUE_MIN 1.40129846e-45F > #define DBL_TRUE_MIN 4.9406564584124654e-324 ----------------------------------------- DIFF: [langinfo.h] #define __NEED_nl_item | #include <nl_types.h> > ----------------------------------------- DIFF: [netdb.h] > #include <netinet/in.h> #endif < < #define __NEED_socklen_t < #define __NEED_uint32_t < < > #endif ----------------------------------------- DIFF: [netinet/if_ether.h] > #define ETH_P_BATMAN 0x4305 > > #define ETH_P_802_3_MIN 0x0600 ----------------------------------------- DIFF: [netinet/tcp.h] #define TCP_COOKIE_TRANSACTIONS 15 < ----------------------------------------- DIFF: [nl_types.h] #define __NEED_nl_item | typedef int nl_item; #include <bits/alltypes.h> | typedef void *nl_catd; < typedef long nl_catd; < ----------------------------------------- DIFF: [signal.h] #define __siginfo siginfo < #define __NEED_siginfo_t < > #define BUS_MCEERR_AR 4 > #define BUS_MCEERR_AO 5 struct sigaction { | typedef struct sigaltstack { union { < void (*sa_handler)(int); < void (*sa_sigaction)(int, siginfo_t *, void * < } __sa_handler; < sigset_t sa_mask; < int sa_flags; < void (*sa_restorer)(void); < }; < #define sa_handler __sa_handler.sa_handler < #define sa_sigaction __sa_handler.sa_sigaction < < typedef struct { < struct __siginfo { | typedef struct { > short si_addr_lsb; > struct { > void *si_call_addr; > int si_syscall; > unsigned si_arch; > } __sigsys; }; | } siginfo_t; > #define si_addr_lsb __si_fields.__sigfault.si_addr_lsb > #define si_call_addr __si_fields.__sigsys.si_call_addr > #define si_syscall __si_fields.__sigsys.si_syscall > #define si_arch __si_fields.__sigsys.si_arch > > struct sigaction { > union { > void (*sa_handler)(int); > void (*sa_sigaction)(int, siginfo_t *, void * > } __sa_handler; > sigset_t sa_mask; > int sa_flags; > void (*sa_restorer)(void); > }; > #define sa_handler __sa_handler.sa_handler > #define sa_sigaction __sa_handler.sa_sigaction ----------------------------------------- DIFF: [sys/ptrace.h] > #include <stdint.h> > > #define PTRACE_PEEKSIGINFO 0x4209 > > #define PTRACE_PEEKSIGINFO_SHARED 1 > > struct ptrace_peeksiginfo_args { > uint64_t off; > uint32_t flags; > int32_t nr; > }; ----------------------------------------- DIFF: [sys/select.h] > #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) > #define NFDBITS (8*(int)sizeof(long)) > #endif ----------------------------------------- DIFF: [sys/wait.h] #define __NEED_siginfo_t < typedef int idtype_t; | typedef enum { > P_ALL = 0, > P_PID = 1, > P_PGID = 2 > } idtype_t; < #define P_ALL 0 < #define P_PID 1 < #define P_PGID 2 < ----------------------------------------- DIFF: [utmp.h] > #define ut_addr ut_addr_v6[0] #define _PATH_UTMP "/dev/null" | #define _PATH_UTMP "/dev/null/utmp" #define _PATH_WTMP "/dev/null" | #define _PATH_WTMP "/dev/null/wtmp" > > #define UTMP_FILE _PATH_UTMP > #define WTMP_FILE _PATH_WTMP > #define UTMP_FILENAME _PATH_UTMP > #define WTMP_FILENAME _PATH_WTMP ----------------------------------------- DIFF: [wctype.h] #define __NEED_wctrans_t < > typedef const int * wctrans_t; > #define WEOF (-1) | #define WEOF 0xffffffffU ``` Signed-off-by: Waldemar Kozaczuk <jwkozac...@gmail.com> Message-Id: <20200807144153.27505-1-jwkozac...@gmail.com> --- diff --git a/core/select.cc b/core/select.cc --- a/core/select.cc +++ b/core/select.cc @@ -203,8 +203,6 @@ int pselect(int nfds, fd_set *readfds, fd_set *writefds, return ret; } -#define NFDBITS (8 * sizeof(fd_mask)) - extern "C" unsigned long int __fdelt_chk (unsigned long int d) { diff --git a/include/api/dlfcn.h b/include/api/dlfcn.h --- a/include/api/dlfcn.h +++ b/include/api/dlfcn.h @@ -1,39 +0,0 @@ -#ifndef _DLFCN_H -#define _DLFCN_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#define RTLD_LAZY 1 -#define RTLD_NOW 2 -#define RTLD_NOLOAD 4 -#define RTLD_NODELETE 4096 -#define RTLD_GLOBAL 256 -#define RTLD_LOCAL 0 - -#define RTLD_NEXT ((void *)-1) -#define RTLD_DEFAULT ((void *)0) - -int dlclose(void *); -char *dlerror(void); -void *dlopen(const char *, int); -void *dlsym(void *__restrict, const char *__restrict); - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -typedef struct { - const char *dli_fname; - void *dli_fbase; - const char *dli_sname; - void *dli_saddr; -} Dl_info; -int dladdr(void *, Dl_info *); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/dlfcn.h b/include/api/dlfcn.h --- a/include/api/dlfcn.h +++ b/include/api/dlfcn.h @@ -0,0 +1 @@ +../../musl/include/dlfcn.h \ No newline at end of file diff --git a/include/api/float.h b/include/api/float.h --- a/include/api/float.h +++ b/include/api/float.h @@ -1,32 +0,0 @@ -#ifndef _FLOAT_H -#define _FLOAT_H - -#define FLT_RADIX 2 - -#define FLT_MIN 1.17549435e-38F -#define FLT_MAX 3.40282347e+38F -#define FLT_EPSILON 1.19209290e-07F - -#define FLT_MANT_DIG 24 -#define FLT_MIN_EXP (-125) -#define FLT_MAX_EXP 128 - -#define FLT_DIG 6 -#define FLT_MIN_10_EXP (-37) -#define FLT_MAX_10_EXP 38 - -#define DBL_MIN 2.2250738585072014e-308 -#define DBL_MAX 1.7976931348623157e+308 -#define DBL_EPSILON 2.2204460492503131e-16 - -#define DBL_MANT_DIG 53 -#define DBL_MIN_EXP (-1021) -#define DBL_MAX_EXP 1024 - -#define DBL_DIG 15 -#define DBL_MIN_10_EXP (-307) -#define DBL_MAX_10_EXP 308 - -#include <bits/float.h> - -#endif diff --git a/include/api/float.h b/include/api/float.h --- a/include/api/float.h +++ b/include/api/float.h @@ -0,0 +1 @@ +../../musl/include/float.h \ No newline at end of file diff --git a/include/api/langinfo.h b/include/api/langinfo.h --- a/include/api/langinfo.h +++ b/include/api/langinfo.h @@ -1,87 +0,0 @@ -#ifndef _LANGINFO_H -#define _LANGINFO_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define __NEED_nl_item -#define __NEED_locale_t - -#include <bits/alltypes.h> - -#define ABDAY_1 0x20000 -#define ABDAY_2 0x20001 -#define ABDAY_3 0x20002 -#define ABDAY_4 0x20003 -#define ABDAY_5 0x20004 -#define ABDAY_6 0x20005 -#define ABDAY_7 0x20006 - -#define DAY_1 0x20007 -#define DAY_2 0x20008 -#define DAY_3 0x20009 -#define DAY_4 0x2000A -#define DAY_5 0x2000B -#define DAY_6 0x2000C -#define DAY_7 0x2000D - -#define ABMON_1 0x2000E -#define ABMON_2 0x2000F -#define ABMON_3 0x20010 -#define ABMON_4 0x20011 -#define ABMON_5 0x20012 -#define ABMON_6 0x20013 -#define ABMON_7 0x20014 -#define ABMON_8 0x20015 -#define ABMON_9 0x20016 -#define ABMON_10 0x20017 -#define ABMON_11 0x20018 -#define ABMON_12 0x20019 - -#define MON_1 0x2001A -#define MON_2 0x2001B -#define MON_3 0x2001C -#define MON_4 0x2001D -#define MON_5 0x2001E -#define MON_6 0x2001F -#define MON_7 0x20020 -#define MON_8 0x20021 -#define MON_9 0x20022 -#define MON_10 0x20023 -#define MON_11 0x20024 -#define MON_12 0x20025 - -#define AM_STR 0x20026 -#define PM_STR 0x20027 - -#define D_T_FMT 0x20028 -#define D_FMT 0x20029 -#define T_FMT 0x2002A -#define T_FMT_AMPM 0x2002B - -#define ERA 0x2002C -#define ERA_D_FMT 0x2002E -#define ALT_DIGITS 0x2002F -#define ERA_D_T_FMT 0x20030 -#define ERA_T_FMT 0x20031 - -#define CODESET 14 - -#define CRNCYSTR 0x4000F - -#define RADIXCHAR 0x10000 -#define THOUSEP 0x10001 -#define YESEXPR 0x50000 -#define NOEXPR 0x50001 -#define YESSTR 0x50002 -#define NOSTR 0x50003 - -char *nl_langinfo(nl_item); -char *nl_langinfo_l(nl_item, locale_t); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/langinfo.h b/include/api/langinfo.h --- a/include/api/langinfo.h +++ b/include/api/langinfo.h @@ -0,0 +1 @@ +../../musl/include/langinfo.h \ No newline at end of file diff --git a/include/api/netdb.h b/include/api/netdb.h --- a/include/api/netdb.h +++ b/include/api/netdb.h @@ -1,164 +0,0 @@ -#ifndef _NETDB_H -#define _NETDB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -#define __NEED_size_t -#endif - -#define __NEED_socklen_t -#define __NEED_uint32_t - -#include <bits/alltypes.h> - -struct addrinfo -{ - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - socklen_t ai_addrlen; - struct sockaddr *ai_addr; - char *ai_canonname; - struct addrinfo *ai_next; -}; - -#define IPPORT_RESERVED 1024 - -#define AI_PASSIVE 0x01 -#define AI_CANONNAME 0x02 -#define AI_NUMERICHOST 0x04 -#define AI_V4MAPPED 0x08 -#define AI_ALL 0x10 -#define AI_ADDRCONFIG 0x20 -#define AI_NUMERICSERV 0x400 - - -#define NI_NUMERICHOST 0x01 -#define NI_NUMERICSERV 0x02 -#define NI_NOFQDN 0x04 -#define NI_NAMEREQD 0x08 -#define NI_DGRAM 0x10 -/*#define NI_NUMERICSCOPE */ - -#define EAI_BADFLAGS -1 -#define EAI_NONAME -2 -#define EAI_AGAIN -3 -#define EAI_FAIL -4 -#define EAI_FAMILY -6 -#define EAI_SOCKTYPE -7 -#define EAI_SERVICE -8 -#define EAI_MEMORY -10 -#define EAI_SYSTEM -11 -#define EAI_OVERFLOW -12 - -int getaddrinfo (const char *__restrict, const char *__restrict, const struct addrinfo *__restrict, struct addrinfo **__restrict); -void freeaddrinfo (struct addrinfo *); -int getnameinfo (const struct sockaddr *__restrict, socklen_t, char *__restrict, socklen_t, char *__restrict, socklen_t, int); -const char *gai_strerror(int); - - -/* Legacy functions follow (marked OBsolete in SUS) */ - -struct netent -{ - char *n_name; - char **n_aliases; - int n_addrtype; - uint32_t n_net; -}; - -struct hostent -{ - char *h_name; - char **h_aliases; - int h_addrtype; - int h_length; - char **h_addr_list; -}; -#define h_addr h_addr_list[0] - -struct servent -{ - char *s_name; - char **s_aliases; - int s_port; - char *s_proto; -}; - -struct protoent -{ - char *p_name; - char **p_aliases; - int p_proto; -}; - -void sethostent (int); -void endhostent (void); -struct hostent *gethostent (void); - -void setnetent (int); -void endnetent (void); -struct netent *getnetent (void); -struct netent *getnetbyaddr (uint32_t, int); -struct netent *getnetbyname (const char *); - -void setservent (int); -void endservent (void); -struct servent *getservent (void); -struct servent *getservbyname (const char *, const char *); -struct servent *getservbyport (int, const char *); - -void setprotoent (int); -void endprotoent (void); -struct protoent *getprotoent (void); -struct protoent *getprotobyname (const char *); -struct protoent *getprotobynumber (int); - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \ - || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \ - || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) -struct hostent *gethostbyname (const char *); -struct hostent *gethostbyaddr (const void *, socklen_t, int); -#ifdef __GNUC__ -__attribute__((const)) -#endif -int *__h_errno_location(void); -#define h_errno (*__h_errno_location()) -#define HOST_NOT_FOUND 1 -#define TRY_AGAIN 2 -#define NO_RECOVERY 3 -#define NO_DATA 4 -#endif - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -const char *hstrerror(int); -int gethostbyname_r(const char *, struct hostent *, char *, size_t, struct hostent **, int *); -int gethostbyname2_r(const char *, int, struct hostent *, char *, size_t, struct hostent **, int *); -struct hostent *gethostbyname2(const char *, int); -int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *, char *, size_t, struct hostent **, int *); -int getservbyport_r(int, const char *, struct servent *, char *, size_t, struct servent **); -int getservbyname_r(const char *, const char *, struct servent *, char *, size_t, struct servent **); -#define EAI_NODATA -5 -#define EAI_ADDRFAMILY -9 -#define EAI_INPROGRESS -100 -#define EAI_CANCELED -101 -#define EAI_NOTCANCELED -102 -#define EAI_ALLDONE -103 -#define EAI_INTR -104 -#define EAI_IDN_ENCODE -105 -#define NI_MAXHOST 255 -#define NI_MAXSERV 32 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/netdb.h b/include/api/netdb.h --- a/include/api/netdb.h +++ b/include/api/netdb.h @@ -0,0 +1 @@ +../../musl/include/netdb.h \ No newline at end of file diff --git a/include/api/netinet/if_ether.h b/include/api/netinet/if_ether.h --- a/include/api/netinet/if_ether.h +++ b/include/api/netinet/if_ether.h @@ -1,123 +0,0 @@ -#ifndef _NETINET_IF_ETHER_H -#define _NETINET_IF_ETHER_H - -#include <stdint.h> -#include <sys/types.h> - -#define ETH_ALEN 6 -#define ETH_HLEN 14 -#define ETH_ZLEN 60 -#define ETH_DATA_LEN 1500 -#define ETH_FRAME_LEN 1514 -#define ETH_FCS_LEN 4 - -#define ETH_P_LOOP 0x0060 -#define ETH_P_PUP 0x0200 -#define ETH_P_PUPAT 0x0201 -#define ETH_P_IP 0x0800 -#define ETH_P_X25 0x0805 -#define ETH_P_ARP 0x0806 -#define ETH_P_BPQ 0x08FF -#define ETH_P_IEEEPUP 0x0a00 -#define ETH_P_IEEEPUPAT 0x0a01 -#define ETH_P_DEC 0x6000 -#define ETH_P_DNA_DL 0x6001 -#define ETH_P_DNA_RC 0x6002 -#define ETH_P_DNA_RT 0x6003 -#define ETH_P_LAT 0x6004 -#define ETH_P_DIAG 0x6005 -#define ETH_P_CUST 0x6006 -#define ETH_P_SCA 0x6007 -#define ETH_P_TEB 0x6558 -#define ETH_P_RARP 0x8035 -#define ETH_P_ATALK 0x809B -#define ETH_P_AARP 0x80F3 -#define ETH_P_8021Q 0x8100 -#define ETH_P_IPX 0x8137 -#define ETH_P_IPV6 0x86DD -#define ETH_P_PAUSE 0x8808 -#define ETH_P_SLOW 0x8809 -#define ETH_P_WCCP 0x883E -#define ETH_P_PPP_DISC 0x8863 -#define ETH_P_PPP_SES 0x8864 -#define ETH_P_MPLS_UC 0x8847 -#define ETH_P_MPLS_MC 0x8848 -#define ETH_P_ATMMPOA 0x884c -#define ETH_P_LINK_CTL 0x886c -#define ETH_P_ATMFATE 0x8884 -#define ETH_P_PAE 0x888E -#define ETH_P_AOE 0x88A2 -#define ETH_P_8021AD 0x88A8 -#define ETH_P_802_EX1 0x88B5 -#define ETH_P_TIPC 0x88CA -#define ETH_P_8021AH 0x88E7 -#define ETH_P_MVRP 0x88F5 -#define ETH_P_1588 0x88F7 -#define ETH_P_FCOE 0x8906 -#define ETH_P_TDLS 0x890D -#define ETH_P_FIP 0x8914 -#define ETH_P_QINQ1 0x9100 -#define ETH_P_QINQ2 0x9200 -#define ETH_P_QINQ3 0x9300 -#define ETH_P_EDSA 0xDADA -#define ETH_P_AF_IUCV 0xFBFB - -#define ETH_P_802_3 0x0001 -#define ETH_P_AX25 0x0002 -#define ETH_P_ALL 0x0003 -#define ETH_P_802_2 0x0004 -#define ETH_P_SNAP 0x0005 -#define ETH_P_DDCMP 0x0006 -#define ETH_P_WAN_PPP 0x0007 -#define ETH_P_PPP_MP 0x0008 -#define ETH_P_LOCALTALK 0x0009 -#define ETH_P_CAN 0x000C -#define ETH_P_CANFD 0x000D -#define ETH_P_PPPTALK 0x0010 -#define ETH_P_TR_802_2 0x0011 -#define ETH_P_MOBITEX 0x0015 -#define ETH_P_CONTROL 0x0016 -#define ETH_P_IRDA 0x0017 -#define ETH_P_ECONET 0x0018 -#define ETH_P_HDLC 0x0019 -#define ETH_P_ARCNET 0x001A -#define ETH_P_DSA 0x001B -#define ETH_P_TRAILER 0x001C -#define ETH_P_PHONET 0x00F5 -#define ETH_P_IEEE802154 0x00F6 -#define ETH_P_CAIF 0x00F7 - -struct ethhdr { - uint8_t h_dest[ETH_ALEN]; - uint8_t h_source[ETH_ALEN]; - uint16_t h_proto; -}; - -#include <net/ethernet.h> -#include <net/if_arp.h> - -struct ether_arp { - struct arphdr ea_hdr; - uint8_t arp_sha[ETH_ALEN]; - uint8_t arp_spa[4]; - uint8_t arp_tha[ETH_ALEN]; - uint8_t arp_tpa[4]; -}; -#define arp_hrd ea_hdr.ar_hrd -#define arp_pro ea_hdr.ar_pro -#define arp_hln ea_hdr.ar_hln -#define arp_pln ea_hdr.ar_pln -#define arp_op ea_hdr.ar_op - -#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ -do { \ - (enaddr)[0] = 0x01; \ - (enaddr)[1] = 0x00; \ - (enaddr)[2] = 0x5e; \ - (enaddr)[3] = ((uint8_t *)ipaddr)[1] & 0x7f; \ - (enaddr)[4] = ((uint8_t *)ipaddr)[2]; \ - (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \ -} while(0) - - -#endif diff --git a/include/api/netinet/if_ether.h b/include/api/netinet/if_ether.h --- a/include/api/netinet/if_ether.h +++ b/include/api/netinet/if_ether.h @@ -0,0 +1 @@ +../../../musl/include/netinet/if_ether.h \ No newline at end of file diff --git a/include/api/netinet/tcp.h b/include/api/netinet/tcp.h --- a/include/api/netinet/tcp.h +++ b/include/api/netinet/tcp.h @@ -1,37 +0,0 @@ -#ifndef _NETINET_TCP_H -#define _NETINET_TCP_H - -#include <features.h> - -#define TCP_NODELAY 1 -#define TCP_MAXSEG 2 -#define TCP_CORK 3 -#define TCP_KEEPIDLE 4 -#define TCP_KEEPINTVL 5 -#define TCP_KEEPCNT 6 -#define TCP_SYNCNT 7 -#define TCP_LINGER2 8 -#define TCP_DEFER_ACCEPT 9 -#define TCP_WINDOW_CLAMP 10 -#define TCP_INFO 11 -#define TCP_QUICKACK 12 -#define TCP_CONGESTION 13 -#define TCP_MD5SIG 14 -#define TCP_COOKIE_TRANSACTIONS 15 -#define TCP_THIN_LINEAR_TIMEOUTS 16 -#define TCP_THIN_DUPACK 17 -#define TCP_USER_TIMEOUT 18 -#define TCP_REPAIR 19 -#define TCP_REPAIR_QUEUE 20 -#define TCP_QUEUE_SEQ 21 -#define TCP_REPAIR_OPTIONS 22 -#define TCP_FASTOPEN 23 -#define TCP_TIMESTAMP 24 - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -#define SOL_TCP 6 -#include <sys/types.h> -#include <sys/socket.h> -#endif - -#endif diff --git a/include/api/netinet/tcp.h b/include/api/netinet/tcp.h --- a/include/api/netinet/tcp.h +++ b/include/api/netinet/tcp.h @@ -0,0 +1 @@ +../../../musl/include/netinet/tcp.h \ No newline at end of file diff --git a/include/api/nl_types.h b/include/api/nl_types.h --- a/include/api/nl_types.h +++ b/include/api/nl_types.h @@ -1,24 +0,0 @@ -#ifndef _NL_TYPES_H -#define _NL_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define NL_SETD 1 -#define NL_CAT_LOCALE 1 - -#define __NEED_nl_item -#include <bits/alltypes.h> - -typedef long nl_catd; - -nl_catd catopen (const char *, int); -char *catgets (nl_catd, int, int, const char *); -int catclose (nl_catd); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/nl_types.h b/include/api/nl_types.h --- a/include/api/nl_types.h +++ b/include/api/nl_types.h @@ -0,0 +1 @@ +../../musl/include/nl_types.h \ No newline at end of file diff --git a/include/api/signal.h b/include/api/signal.h --- a/include/api/signal.h +++ b/include/api/signal.h @@ -1,245 +0,0 @@ -#ifndef _SIGNAL_H -#define _SIGNAL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ - || defined(_BSD_SOURCE) - -#ifdef _GNU_SOURCE -#define __siginfo siginfo -#define __ucontext ucontext -#endif - -#define __NEED_size_t -#define __NEED_pid_t -#define __NEED_uid_t -#define __NEED_struct_timespec -#define __NEED_pthread_t -#define __NEED_pthread_attr_t -#define __NEED_time_t -#define __NEED_clock_t -#define __NEED_sigset_t -#define __NEED_siginfo_t - -#include <bits/alltypes.h> - -#define SIG_HOLD ((void (*)(int)) 2) - -#define SIG_BLOCK 0 -#define SIG_UNBLOCK 1 -#define SIG_SETMASK 2 - -#define SI_ASYNCNL (-60) -#define SI_TKILL (-6) -#define SI_SIGIO (-5) -#define SI_ASYNCIO (-4) -#define SI_MESGQ (-3) -#define SI_TIMER (-2) -#define SI_QUEUE (-1) -#define SI_USER 0 -#define SI_KERNEL 128 - -#define FPE_INTDIV 1 -#define FPE_INTOVF 2 -#define FPE_FLTDIV 3 -#define FPE_FLTOVF 4 -#define FPE_FLTUND 5 -#define FPE_FLTRES 6 -#define FPE_FLTINV 7 -#define FPE_FLTSUB 8 - -#define ILL_ILLOPC 1 -#define ILL_ILLOPN 2 -#define ILL_ILLADR 3 -#define ILL_ILLTRP 4 -#define ILL_PRVOPC 5 -#define ILL_PRVREG 6 -#define ILL_COPROC 7 -#define ILL_BADSTK 8 - -#define SEGV_MAPERR 1 -#define SEGV_ACCERR 2 - -#define BUS_ADRALN 1 -#define BUS_ADRERR 2 -#define BUS_OBJERR 3 - -#define CLD_EXITED 1 -#define CLD_KILLED 2 -#define CLD_DUMPED 3 -#define CLD_TRAPPED 4 -#define CLD_STOPPED 5 -#define CLD_CONTINUED 6 - -struct sigaction { - union { - void (*sa_handler)(int); - void (*sa_sigaction)(int, siginfo_t *, void *); - } __sa_handler; - sigset_t sa_mask; - int sa_flags; - void (*sa_restorer)(void); -}; -#define sa_handler __sa_handler.sa_handler -#define sa_sigaction __sa_handler.sa_sigaction - -typedef struct { - void *ss_sp; - int ss_flags; - size_t ss_size; -} stack_t; - -union sigval { - int sival_int; - void *sival_ptr; -}; - -struct __siginfo { - int si_signo, si_errno, si_code; - union { - char __pad[128 - 2*sizeof(int) - sizeof(long)]; - struct { - pid_t si_pid; - uid_t si_uid; - union sigval si_sigval; - } __rt; - struct { - unsigned int si_timer1, si_timer2; - } __timer; - struct { - pid_t si_pid; - uid_t si_uid; - int si_status; - clock_t si_utime, si_stime; - } __sigchld; - struct { - void *si_addr; - } __sigfault; - struct { - long si_band; - int si_fd; - } __sigpoll; - } __si_fields; -}; -#define si_pid __si_fields.__sigchld.si_pid -#define si_uid __si_fields.__sigchld.si_uid -#define si_status __si_fields.__sigchld.si_status -#define si_utime __si_fields.__sigchld.si_utime -#define si_stime __si_fields.__sigchld.si_stime -#define si_value __si_fields.__rt.si_sigval -#define si_addr __si_fields.__sigfault.si_addr -#define si_band __si_fields.__sigpoll.si_band -#define si_fd __si_fields.__sigpoll.si_fd -#define si_timer1 __si_fields.__timer.si_timer1 -#define si_timer2 __si_fields.__timer.si_timer2 -#define si_ptr __si_fields.__rt.si_sigval.sival_ptr -#define si_int __si_fields.__rt.si_sigval.sival_int - -struct sigevent { - union sigval sigev_value; - int sigev_signo; - int sigev_notify; - void (*sigev_notify_function)(union sigval); - pthread_attr_t *sigev_notify_attributes; - char __pad[56-3*sizeof(long)]; -}; - -#define SIGEV_SIGNAL 0 -#define SIGEV_NONE 1 -#define SIGEV_THREAD 2 - -int __libc_current_sigrtmin(void); -int __libc_current_sigrtmax(void); - -#define SIGRTMIN (__libc_current_sigrtmin()) -#define SIGRTMAX (__libc_current_sigrtmax()) - -int kill(pid_t, int); - -int sigemptyset(sigset_t *); -int sigfillset(sigset_t *); -int sigaddset(sigset_t *, int); -int sigdelset(sigset_t *, int); -int sigismember(const sigset_t *, int); - -int sigprocmask(int, const sigset_t *__restrict, sigset_t *__restrict); -int sigsuspend(const sigset_t *); -int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict); -int sigpending(sigset_t *); -int sigwait(const sigset_t *__restrict, int *__restrict); -int sigwaitinfo(const sigset_t *__restrict, siginfo_t *__restrict); -int sigtimedwait(const sigset_t *__restrict, siginfo_t *__restrict, const struct timespec *__restrict); -int sigqueue(pid_t, int, const union sigval); - -int pthread_sigmask(int, const sigset_t *__restrict, sigset_t *__restrict); -int pthread_kill(pthread_t, int); - -void psiginfo(const siginfo_t *, const char *); -void psignal(int, const char *); - -#endif - -#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -int killpg(pid_t, int); -int sigaltstack(const stack_t *__restrict, stack_t *__restrict); -int sighold(int); -int sigignore(int); -int siginterrupt(int, int); -int sigpause(int); -int sigrelse(int); -void (*sigset(int, void (*)(int)))(int); -#define TRAP_BRKPT 1 -#define TRAP_TRACE 2 -#define POLL_IN 1 -#define POLL_OUT 2 -#define POLL_MSG 3 -#define POLL_ERR 4 -#define POLL_PRI 5 -#define POLL_HUP 6 -#define SS_ONSTACK 1 -#define SS_DISABLE 2 -#define MINSIGSTKSZ 2048 -#define SIGSTKSZ 8192 -#endif - -#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -#define NSIG _NSIG -#endif - -#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) -typedef void (*sig_t)(int); -#endif - -#ifdef _GNU_SOURCE -typedef void (*sighandler_t)(int); -void (*bsd_signal(int, void (*)(int)))(int); -int sigisemptyset(const sigset_t *); -int sigorset (sigset_t *, sigset_t *, sigset_t *); -int sigandset(sigset_t *, sigset_t *, sigset_t *); - -#define SA_NOMASK SA_NODEFER -#define SA_ONESHOT SA_RESETHAND -#endif - -#include <bits/signal.h> - -#define SIG_ERR ((void (*)(int))-1) -#define SIG_DFL ((void (*)(int)) 0) -#define SIG_IGN ((void (*)(int)) 1) - -typedef int sig_atomic_t; - -void (*signal(int, void (*)(int)))(int); -int raise(int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/signal.h b/include/api/signal.h --- a/include/api/signal.h +++ b/include/api/signal.h @@ -0,0 +1 @@ +../../musl/include/signal.h \ No newline at end of file diff --git a/include/api/sys/ptrace.h b/include/api/sys/ptrace.h --- a/include/api/sys/ptrace.h +++ b/include/api/sys/ptrace.h @@ -1,85 +0,0 @@ -#ifndef _SYS_PTRACE_H -#define _SYS_PTRACE_H -#ifdef __cplusplus -extern "C" { -#endif - -#define PTRACE_TRACEME 0 -#define PT_TRACE_ME PTRACE_TRACEME - -#define PTRACE_PEEKTEXT 1 -#define PTRACE_PEEKDATA 2 -#define PTRACE_PEEKUSER 3 -#define PTRACE_POKETEXT 4 -#define PTRACE_POKEDATA 5 -#define PTRACE_POKEUSER 6 -#define PTRACE_CONT 7 -#define PTRACE_KILL 8 -#define PTRACE_SINGLESTEP 9 -#define PTRACE_GETREGS 12 -#define PTRACE_SETREGS 13 -#define PTRACE_GETFPREGS 14 -#define PTRACE_SETFPREGS 15 -#define PTRACE_ATTACH 16 -#define PTRACE_DETACH 17 -#define PTRACE_GETFPXREGS 18 -#define PTRACE_SETFPXREGS 19 -#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 PT_READ_I PTRACE_PEEKTEXT -#define PT_READ_D PTRACE_PEEKDATA -#define PT_READ_U PTRACE_PEEKUSER -#define PT_WRITE_I PTRACE_POKETEXT -#define PT_WRITE_D PTRACE_POKEDATA -#define PT_WRITE_U PTRACE_POKEUSER -#define PT_CONTINUE PTRACE_CONT -#define PT_KILL PTRACE_KILL -#define PT_STEP PTRACE_SINGLESTEP -#define PT_GETREGS PTRACE_GETREGS -#define PT_SETREGS PTRACE_SETREGS -#define PT_GETFPREGS PTRACE_GETFPREGS -#define PT_SETFPREGS PTRACE_SETFPREGS -#define PT_ATTACH PTRACE_ATTACH -#define PT_DETACH PTRACE_DETACH -#define PT_GETFPXREGS PTRACE_GETFPXREGS -#define PT_SETFPXREGS PTRACE_SETFPXREGS -#define PT_SYSCALL PTRACE_SYSCALL -#define PT_SETOPTIONS PTRACE_SETOPTIONS -#define PT_GETEVENTMSG PTRACE_GETEVENTMSG -#define PT_GETSIGINFO PTRACE_GETSIGINFO -#define PT_SETSIGINFO PTRACE_SETSIGINFO - -#define PTRACE_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_MASK 0x001000ff - -#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 - -long ptrace(int, ...); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/include/api/sys/ptrace.h b/include/api/sys/ptrace.h --- a/include/api/sys/ptrace.h +++ b/include/api/sys/ptrace.h @@ -0,0 +1 @@ +../../../musl/include/sys/ptrace.h \ No newline at end of file diff --git a/include/api/sys/select.h b/include/api/sys/select.h --- a/include/api/sys/select.h +++ b/include/api/sys/select.h @@ -1,39 +0,0 @@ -#ifndef _SYS_SELECT_H -#define _SYS_SELECT_H -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#define __NEED_size_t -#define __NEED_time_t -#define __NEED_suseconds_t -#define __NEED_struct_timeval -#define __NEED_struct_timespec -#define __NEED_sigset_t - -#include <bits/alltypes.h> - -#define FD_SETSIZE 1024 - -typedef unsigned long fd_mask; - -typedef struct -{ - unsigned long fds_bits[FD_SETSIZE / 8 / sizeof(long)]; -} fd_set; - -#define FD_ZERO(s) do { int __i; unsigned long *__b=(s)->fds_bits; for(__i=sizeof (fd_set)/sizeof (long); __i; __i--) *__b++=0; } while(0) -#define FD_SET(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] |= (1UL<<((d)%(8*sizeof(long))))) -#define FD_CLR(d, s) ((s)->fds_bits[(d)/(8*sizeof(long))] &= ~(1UL<<((d)%(8*sizeof(long))))) -#define FD_ISSET(d, s) !!((s)->fds_bits[(d)/(8*sizeof(long))] & (1UL<<((d)%(8*sizeof(long))))) - -int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict); -int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict); - - -#ifdef __cplusplus -} -#endif -#endif diff --git a/include/api/sys/select.h b/include/api/sys/select.h --- a/include/api/sys/select.h +++ b/include/api/sys/select.h @@ -0,0 +1 @@ +../../../musl/include/sys/select.h \ No newline at end of file diff --git a/include/api/sys/wait.h b/include/api/sys/wait.h --- a/include/api/sys/wait.h +++ b/include/api/sys/wait.h @@ -1,56 +0,0 @@ -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#include <signal.h> - -#define __NEED_pid_t -#define __NEED_id_t -#define __NEED_siginfo_t -#include <bits/alltypes.h> - -typedef int idtype_t; - -pid_t wait (int *); -int waitid (idtype_t, id_t, siginfo_t *, int); -pid_t waitpid (pid_t, int *, int ); - -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -#include <sys/resource.h> -pid_t wait3 (int *, int, struct rusage *); -pid_t wait4 (pid_t, int *, int, struct rusage *); -#endif - -#define WNOHANG 1 -#define WUNTRACED 2 - -#define WSTOPPED 2 -#define WEXITED 4 -#define WCONTINUED 8 -#define WNOWAIT 0x1000000 - -#define __WNOTHREAD 0x20000000 -#define __WALL 0x40000000 -#define __WCLONE 0x80000000 - -#define P_ALL 0 -#define P_PID 1 -#define P_PGID 2 - -#define WEXITSTATUS(s) (((s) & 0xff00) >> 8) -#define WTERMSIG(s) ((s) & 0x7f) -#define WSTOPSIG(s) WEXITSTATUS(s) -#define WCOREDUMP(s) ((s) & 0x80) -#define WIFEXITED(s) (!WTERMSIG(s)) -#define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) -#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) -#define WIFCONTINUED(s) ((s) == 0xffff) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/include/api/sys/wait.h b/include/api/sys/wait.h --- a/include/api/sys/wait.h +++ b/include/api/sys/wait.h @@ -0,0 +1 @@ +../../../musl/include/sys/wait.h \ No newline at end of file diff --git a/include/api/utmp.h b/include/api/utmp.h --- a/include/api/utmp.h +++ b/include/api/utmp.h @@ -1,41 +0,0 @@ -#ifndef _UTMP_H -#define _UTMP_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <utmpx.h> - -#define ACCOUNTING 9 -#define UT_NAMESIZE 32 -#define UT_HOSTSIZE 256 - -struct lastlog { - time_t ll_time; - char ll_line[UT_LINESIZE]; - char ll_host[UT_HOSTSIZE]; -}; - -#define ut_time ut_tv.tv_sec -#define ut_name ut_user -#define utmp utmpx -#define utmpname(x) (-1) - -void endutent(void); -struct utmp *getutent(void); -struct utmp *getutid(const struct utmp *); -struct utmp *getutline(const struct utmp *); -struct utmp *pututline(const struct utmp *); -void setutent(void); - -void updwtmp(const char *, const struct utmp *); - -#define _PATH_UTMP "/dev/null" -#define _PATH_WTMP "/dev/null" - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/utmp.h b/include/api/utmp.h --- a/include/api/utmp.h +++ b/include/api/utmp.h @@ -0,0 +1 @@ +../../musl/include/utmp.h \ No newline at end of file diff --git a/include/api/wctype.h b/include/api/wctype.h --- a/include/api/wctype.h +++ b/include/api/wctype.h @@ -1,76 +0,0 @@ -#ifndef _WCTYPE_H -#define _WCTYPE_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <features.h> - -#define __NEED_wint_t -#define __NEED_wctrans_t -#define __NEED_wctype_t - -#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -#define __NEED_locale_t -#endif - -#include <bits/alltypes.h> - -#undef WEOF -#define WEOF (-1) - -#undef iswdigit - -int iswalnum(wint_t); -int iswalpha(wint_t); -int iswblank(wint_t); -int iswcntrl(wint_t); -int iswdigit(wint_t); -int iswgraph(wint_t); -int iswlower(wint_t); -int iswprint(wint_t); -int iswpunct(wint_t); -int iswspace(wint_t); -int iswupper(wint_t); -int iswxdigit(wint_t); -int iswctype(wint_t, wctype_t); -wint_t towctrans(wint_t, wctrans_t); -wint_t towlower(wint_t); -wint_t towupper(wint_t); -wctrans_t wctrans(const char *); -wctype_t wctype(const char *); - -#undef iswdigit -#define iswdigit(a) (((unsigned)(a)-L'0') < 10) - -#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) - -int iswalnum_l(wint_t, locale_t); -int iswalpha_l(wint_t, locale_t); -int iswblank_l(wint_t, locale_t); -int iswcntrl_l(wint_t, locale_t); -int iswdigit_l(wint_t, locale_t); -int iswgraph_l(wint_t, locale_t); -int iswlower_l(wint_t, locale_t); -int iswprint_l(wint_t, locale_t); -int iswpunct_l(wint_t, locale_t); -int iswspace_l(wint_t, locale_t); -int iswupper_l(wint_t, locale_t); -int iswxdigit_l(wint_t, locale_t); -int iswctype_l(wint_t, wctype_t, locale_t); -wint_t towlower_l(wint_t, locale_t); -wint_t towupper_l(wint_t, locale_t); -wint_t towctrans_l(wint_t, wctrans_t, locale_t); -wctrans_t wctrans_l(const char *, locale_t); -wctype_t wctype_l(const char *, locale_t); - -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/api/wctype.h b/include/api/wctype.h --- a/include/api/wctype.h +++ b/include/api/wctype.h @@ -0,0 +1 @@ +../../musl/include/wctype.h \ No newline at end of file -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/000000000000e6522b05ac6e39a8%40google.com.