--- posix-2018/arpa_inet.api 2025-08-26 15:59:27.917367806 +0200 +++ posix-2024/arpa_inet.api 2025-08-26 14:58:27.956990027 +0200 @@ -1,6 +1,7 @@ #include typedef in_port_t; typedef in_addr_t; +typedef socklen_t; struct in_addr; define INET_ADDRSTRLEN; [IP6] define INET6_ADDRSTRLEN; @@ -10,8 +11,8 @@ maybe_define maybe_function ntohs: uint16_t ntohs(uint16_t); typedef uint32_t; typedef uint16_t; -maybe_define function inet_addr: in_addr_t inet_addr(const char *); -maybe_define function inet_ntoa: char *inet_ntoa(struct in_addr); +[OB] maybe_define function inet_addr: in_addr_t inet_addr(const char *); +[OB] maybe_define function inet_ntoa: char *inet_ntoa(struct in_addr); maybe_define function inet_ntop: const char *inet_ntop(int, const void *restrict, char *restrict, socklen_t); maybe_define function inet_pton: int inet_pton(int, const char *restrict, void *restrict); optional include netinet: netinet/in.h; --- posix-2018/complex.api 2025-08-26 15:59:29.257378058 +0200 +++ posix-2024/complex.api 2025-08-26 14:58:27.956990027 +0200 @@ -4,6 +4,9 @@ optional define imaginary; optional define _Imaginary_I; define I; +define CMPLX: double complex CMPLX(double x, double y); +define CMPLXF: float complex CMPLXF(float x, float y); +define CMPLXL: long double complex CMPLXL(long double x, long double y); maybe_define function cabs: double cabs(double complex); maybe_define function cabsf: float cabsf(float complex); maybe_define function cabsl: long double cabsl(long double complex); --- posix-2018/ctype.api 2025-08-26 15:59:28.253370376 +0200 +++ posix-2024/ctype.api 2025-08-26 14:58:27.956990027 +0200 @@ -4,7 +4,6 @@ [CX] maybe_define function isalnum_l: int isalnum_l(int, locale_t); maybe_define function isalpha: int isalpha(int); [CX] maybe_define function isalpha_l: int isalpha_l(int, locale_t); -[OB XSI] maybe_define function isascii: int isascii(int); maybe_define function isblank: int isblank(int); [CX] maybe_define function isblank_l: int isblank_l(int, locale_t); maybe_define function iscntrl: int iscntrl(int); @@ -25,10 +24,7 @@ [CX] maybe_define function isupper_l: int isupper_l(int, locale_t); maybe_define function isxdigit: int isxdigit(int); [CX] maybe_define function isxdigit_l: int isxdigit_l(int, locale_t); -[OB XSI] maybe_define function toascii: int toascii(int); maybe_define function tolower: int tolower(int); [CX] maybe_define function tolower_l: int tolower_l(int, locale_t); maybe_define function toupper: int toupper(int); [CX] maybe_define function toupper_l: int toupper_l(int, locale_t); -[OB XSI] define _toupper: int _toupper(int); -[OB XSI] define _tolower: int _tolower(int); --- posix-2018/dirent.api 2025-08-26 15:59:29.521380078 +0200 +++ posix-2024/dirent.api 2025-08-26 14:58:27.956990027 +0200 @@ -1,16 +1,37 @@ #include typedef DIR; struct dirent; -[XSI] parent struct dirent struct_member d_ino: ino_t d_ino; +parent struct dirent struct_member d_ino: ino_t d_ino; parent struct dirent struct_member d_name: char d_name[]; -[XSI] typedef ino_t; +struct posix_dent; +parent struct posix_dent struct_member d_ino: ino_t d_ino; +parent struct posix_dent struct_member d_reclen: reclen_t d_reclen; +parent struct posix_dent struct_member d_type: unsigned char d_type; +parent struct posix_dent struct_member d_name: char d_name[]; +typedef ino_t; +typedef reclen_t; +typedef size_t; +typedef ssize_t; +define DT_BLK; +define DT_CHR; +define DT_DIR; +define DT_FIFO; +define DT_LNK; +define DT_REG; +define DT_SOCK; +define DT_UNKNOWN; +define DT_MQ; +define DT_SEM; +define DT_SHM; +[TYM] define DT_TMO; maybe_define function alphasort: int alphasort(const struct dirent **, const struct dirent **); maybe_define function closedir: int closedir(DIR *); maybe_define function dirfd: int dirfd(DIR *); maybe_define function fdopendir: DIR *fdopendir(int); maybe_define function opendir: DIR *opendir(const char *); +maybe_define function posix_getdents: ssize_t posix_getdents(int, void *, size_t, int); maybe_define function readdir: struct dirent *readdir(DIR *); -maybe_define function readdir_r: int readdir_r(DIR *restrict, struct dirent *restrict, struct dirent **restrict); +[OB] maybe_define function readdir_r: int readdir_r(DIR *restrict, struct dirent *restrict, struct dirent **restrict); maybe_define function rewinddir: void rewinddir(DIR *); maybe_define function scandir: int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)); [XSI] maybe_define function seekdir: void seekdir(DIR *, long); --- posix-2018/dlfcn.api 2025-08-26 15:59:28.357371172 +0200 +++ posix-2024/dlfcn.api 2025-08-26 14:58:27.956990027 +0200 @@ -1,8 +1,14 @@ #include +typedef Dl_info_t; +parent Dl_info_t struct_member dli_fname: const char *dli_fname; +parent Dl_info_t struct_member dli_fbase: void *dli_fbase; +parent Dl_info_t struct_member dli_sname: const char *dli_sname; +parent Dl_info_t struct_member dli_saddr: void *dli_saddr; symbolic_constant RTLD_LAZY; symbolic_constant RTLD_NOW; symbolic_constant RTLD_GLOBAL; symbolic_constant RTLD_LOCAL; +maybe_define function dladdr: int dladdr(const void *restrict, Dl_info_t *restrict); maybe_define function dlclose: int dlclose(void *); maybe_define function dlerror: char *dlerror(void); maybe_define function dlopen: void *dlopen(const char *, int); --- posix-2018/errno.api 2025-08-26 15:59:29.689381364 +0200 +++ posix-2024/errno.api 2025-08-26 14:58:27.956990027 +0200 @@ -42,7 +42,6 @@ define ENETUNREACH; define ENFILE; define ENOBUFS; -[OB XSR] define ENODATA; define ENODEV; define ENOENT; define ENOEXEC; @@ -52,8 +51,6 @@ define ENOMSG; define ENOPROTOOPT; define ENOSPC; -[OB XSR] define ENOSR; -[OB XSR] define ENOSTR; define ENOSYS; define ENOTCONN; define ENOTDIR; @@ -73,10 +70,10 @@ define EPROTOTYPE; define ERANGE; define EROFS; +define ESOCKTNOSUPPORT; define ESPIPE; define ESRCH; define ESTALE; -[OB XSR] define ETIME; define ETIMEDOUT; define ETXTBSY; define EWOULDBLOCK; --- posix-2018/fcntl.api 2025-08-26 15:59:30.533387822 +0200 +++ posix-2024/fcntl.api 2025-08-26 14:58:27.960990058 +0200 @@ -1,6 +1,19 @@ #include +struct f_owner_ex; +parent struct f_owner_ex struct_member type: int type; +parent struct f_owner_ex struct_member pid: pid_t pid; +struct flock; +parent struct flock struct_member l_type: short l_type; +parent struct flock struct_member l_whence: short l_whence; +parent struct flock struct_member l_start: off_t l_start; +parent struct flock struct_member l_len: off_t l_len; +parent struct flock struct_member l_pid: pid_t l_pid; +typedef mode_t; +typedef off_t; +typedef pid_t; define F_DUPFD; define F_DUPFD_CLOEXEC; +define F_DUPFD_CLOFORK; define F_GETFD; define F_SETFD; define F_GETFL; @@ -8,16 +21,25 @@ define F_GETLK; define F_SETLK; define F_SETLKW; +define F_OFD_GETLK; +define F_OFD_SETLK; +define F_OFD_SETLKW; define F_GETOWN; +define F_GETOWN_EX; define F_SETOWN; -symbolic_constant FD_CLOEXEC; +define F_SETOWN_EX; +[SPN] define FD_CLOEXEC; +define FD_CLOFORK; define F_RDLCK; define F_UNLCK; define F_WRLCK; +symbolic_constant F_OWNER_PID; +symbolic_constant F_OWNER_PGRP; define SEEK_SET; define SEEK_CUR; define SEEK_END; define O_CLOEXEC; +define O_CLOFORK; define O_CREAT; define O_DIRECTORY; define O_EXCL; @@ -62,15 +84,6 @@ [ADV] symbolic_constant POSIX_FADV_RANDOM; [ADV] symbolic_constant POSIX_FADV_SEQUENTIAL; [ADV] symbolic_constant POSIX_FADV_WILLNEED; -struct flock; -parent struct flock struct_member l_type: short l_type; -parent struct flock struct_member l_whence: short l_whence; -parent struct flock struct_member l_start: off_t l_start; -parent struct flock struct_member l_len: off_t l_len; -parent struct flock struct_member l_pid: pid_t l_pid; -typedef mode_t; -typedef off_t; -typedef pid_t; maybe_define function creat: int creat(const char *, mode_t); maybe_define function fcntl: int fcntl(int, int, ...); maybe_define function open: int open(const char *, int, ...); --- posix-2018/float.api 2025-08-26 15:59:29.897382956 +0200 +++ posix-2024/float.api 2025-08-26 14:58:27.960990058 +0200 @@ -1,10 +1,16 @@ #include define FLT_ROUNDS; define FLT_EVAL_METHOD; +define FLT_HAS_SUBNORM; +define DBL_HAS_SUBNORM; +define LDBL_HAS_SUBNORM; define FLT_RADIX; define FLT_MANT_DIG; define DBL_MANT_DIG; define LDBL_MANT_DIG; +define FLT_DECIMAL_DIG; +define DBL_DECIMAL_DIG; +define LDBL_DECIMAL_DIG; define DECIMAL_DIG; define FLT_DIG; define DBL_DIG; @@ -30,3 +36,6 @@ define FLT_MIN; define DBL_MIN; define LDBL_MIN; +define FLT_TRUE_MIN; +define DBL_TRUE_MIN; +define LDBL_TRUE_MIN; --- posix-2018/fnmatch.api 2025-08-26 15:59:27.497364592 +0200 +++ posix-2024/fnmatch.api 2025-08-26 14:58:27.960990058 +0200 @@ -3,4 +3,6 @@ symbolic_constant FNM_PATHNAME; symbolic_constant FNM_PERIOD; symbolic_constant FNM_NOESCAPE; +symbolic_constant FNM_CASEFOLD; +symbolic_constant FNM_IGNORECASE; maybe_define function fnmatch: int fnmatch(const char *, const char *, int); --- posix-2018/ftw.api 2025-08-26 15:59:27.289363000 +0200 +++ posix-2024/ftw.api 2025-08-26 14:58:27.960990058 +0200 @@ -11,9 +11,9 @@ [XSI] symbolic_constant FTW_SLN; [XSI] symbolic_constant FTW_PHYS; [XSI] symbolic_constant FTW_MOUNT; +[XSI] symbolic_constant FTW_XDEV; [XSI] symbolic_constant FTW_DEPTH; [XSI] symbolic_constant FTW_CHDIR; -[XSI|OB] maybe_define function ftw: int ftw(const char *, int (*)(const char *, const struct stat *, int), int); [XSI] maybe_define function nftw: int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int); [XSI] struct stat; [XSI] define S_IRWXU; --- posix-2018/langinfo.api 2025-08-26 15:59:30.477387393 +0200 +++ posix-2024/langinfo.api 2025-08-26 14:58:27.960990058 +0200 @@ -34,6 +34,18 @@ symbolic_constant MON_10; symbolic_constant MON_11; symbolic_constant MON_12; +symbolic_constant ALTMON_1; +symbolic_constant ALTMON_2; +symbolic_constant ALTMON_3; +symbolic_constant ALTMON_4; +symbolic_constant ALTMON_5; +symbolic_constant ALTMON_6; +symbolic_constant ALTMON_7; +symbolic_constant ALTMON_8; +symbolic_constant ALTMON_9; +symbolic_constant ALTMON_10; +symbolic_constant ALTMON_11; +symbolic_constant ALTMON_12; symbolic_constant ABMON_1; symbolic_constant ABMON_2; symbolic_constant ABMON_3; @@ -46,6 +58,18 @@ symbolic_constant ABMON_10; symbolic_constant ABMON_11; symbolic_constant ABMON_12; +symbolic_constant ABALTMON_1; +symbolic_constant ABALTMON_2; +symbolic_constant ABALTMON_3; +symbolic_constant ABALTMON_4; +symbolic_constant ABALTMON_5; +symbolic_constant ABALTMON_6; +symbolic_constant ABALTMON_7; +symbolic_constant ABALTMON_8; +symbolic_constant ABALTMON_9; +symbolic_constant ABALTMON_10; +symbolic_constant ABALTMON_11; +symbolic_constant ABALTMON_12; symbolic_constant ERA; symbolic_constant ERA_D_FMT; symbolic_constant ERA_D_T_FMT; --- posix-2018/limits.api 2025-08-26 15:59:29.777382037 +0200 +++ posix-2024/limits.api 2025-08-26 14:58:27.960990058 +0200 @@ -26,10 +26,6 @@ optional define STREAM_MAX; optional define SYMLOOP_MAX; optional define TIMER_MAX; -[OB TRC] optional define TRACE_EVENT_NAME_MAX; -[OB TRC] optional define TRACE_NAME_MAX; -[OB TRC] optional define TRACE_SYS_MAX; -[OB TRC] optional define TRACE_USER_EVENT_MAX; optional define TTY_NAME_MAX; optional define TZNAME_MAX; optional define FILESIZEBITS; @@ -45,6 +41,7 @@ [ADV] optional define POSIX_REC_MIN_XFER_SIZE; [ADV] optional define POSIX_REC_XFER_ALIGN; optional define SYMLINK_MAX; +[XSI] optional define TEXTDOMAIN_MAX; define BC_BASE_MAX; define BC_DIM_MAX; define BC_SCALE_MAX; @@ -55,7 +52,7 @@ define LINE_MAX; define NGROUPS_MAX; define RE_DUP_MAX; -[MON] define _POSIX_CLOCKRES_MIN; +define _POSIX_CLOCKRES_MIN; define _POSIX_AIO_LISTIO_MAX; define _POSIX_AIO_MAX; define _POSIX_ARG_MAX; @@ -87,10 +84,6 @@ define _POSIX_THREAD_KEYS_MAX; define _POSIX_THREAD_THREADS_MAX; define _POSIX_TIMER_MAX; -[OB TRC] define _POSIX_TRACE_EVENT_NAME_MAX; -[OB TRC] define _POSIX_TRACE_NAME_MAX; -[OB TRC] define _POSIX_TRACE_SYS_MAX; -[OB TRC] define _POSIX_TRACE_USER_EVENT_MAX; define _POSIX_TTY_NAME_MAX; define _POSIX_TZNAME_MAX; define _POSIX2_BC_BASE_MAX; @@ -111,15 +104,15 @@ [CX] define INT_MAX; [CX] define INT_MIN; define LLONG_MAX; -define LLONG_MIN; +[CX] define LLONG_MIN; [CX] define LONG_BIT; define LONG_MAX; -define LONG_MIN; +[CX] define LONG_MIN; define MB_LEN_MAX; [CX] define SCHAR_MAX; [CX] define SCHAR_MIN; define SHRT_MAX; -define SHRT_MIN; +[CX] define SHRT_MIN; [CX] define SSIZE_MAX; [CX] define UCHAR_MAX; [CX] define UINT_MAX; @@ -127,9 +120,11 @@ define ULONG_MAX; define USHRT_MAX; [CX] define WORD_BIT; +define GETENTROPY_MAX; define NL_ARGMAX; [XSI] define NL_LANGMAX; define NL_MSGMAX; define NL_SETMAX; define NL_TEXTMAX; +define NSIG_MAX; [XSI] define NZERO; --- posix-2018/locale.api 2025-08-26 15:59:30.233385526 +0200 +++ posix-2024/locale.api 2025-08-26 14:58:27.960990058 +0200 @@ -43,6 +43,7 @@ [CX] typedef locale_t; [CX] maybe_define function duplocale: locale_t duplocale(locale_t); [CX] maybe_define function freelocale: void freelocale(locale_t); +[CX] maybe_define function getlocalename_l: const char *getlocalename_l(int, locale_t); maybe_define function localeconv: struct lconv *localeconv(void); [CX] maybe_define function newlocale: locale_t newlocale(int, const char *, locale_t); maybe_define function setlocale: char *setlocale(int, const char *); --- posix-2018/math.api 2025-08-26 15:59:30.697389076 +0200 +++ posix-2024/math.api 2025-08-26 14:58:27.960990058 +0200 @@ -13,20 +13,42 @@ define isnormal: int isnormal(real-floating x); define isunordered: int isunordered(real-floating x, real-floating y); define signbit: int signbit(real-floating x); -[XSI] symbolic_constant M_E; -[XSI] symbolic_constant M_LOG2E; -[XSI] symbolic_constant M_LOG10E; -[XSI] symbolic_constant M_LN2; -[XSI] symbolic_constant M_LN10; -[XSI] symbolic_constant M_PI; -[XSI] symbolic_constant M_PI_2; -[XSI] symbolic_constant M_PI_4; -[XSI] symbolic_constant M_1_PI; -[XSI] symbolic_constant M_2_PI; -[XSI] symbolic_constant M_2_SQRTPI; -[XSI] symbolic_constant M_SQRT2; -[XSI] symbolic_constant M_SQRT1_2; -[OB XSI] symbolic_constant MAXFLOAT; +[XSI] symbolic_constant M_E: double M_E; +[XSI] symbolic_constant M_El: long double M_El; +[XSI] symbolic_constant M_EGAMMA: double M_EGAMMA; +[XSI] symbolic_constant M_EGAMMAl: long double M_EGAMMAl; +[XSI] symbolic_constant M_LOG2E: double M_LOG2E; +[XSI] symbolic_constant M_LOG2El: long double M_LOG2El; +[XSI] symbolic_constant M_LOG10E: double M_LOG10E; +[XSI] symbolic_constant M_LOG10El: long double M_LOG10El; +[XSI] symbolic_constant M_LN2: double M_LN2; +[XSI] symbolic_constant M_LN2l: long double M_LN2l; +[XSI] symbolic_constant M_LN10: double M_LN10; +[XSI] symbolic_constant M_LN10l: long double M_LN10l; +[XSI] symbolic_constant M_PHI: double M_PHI; +[XSI] symbolic_constant M_PHIl: long double M_PHIl; +[XSI] symbolic_constant M_PI: double M_PI; +[XSI] symbolic_constant M_PIl: long double M_PIl; +[XSI] symbolic_constant M_PI_2: double M_PI_2; +[XSI] symbolic_constant M_PI_2l: long double M_PI_2l; +[XSI] symbolic_constant M_PI_4: double M_PI_4; +[XSI] symbolic_constant M_PI_4l: long double M_PI_4l; +[XSI] symbolic_constant M_1_PI: double M_1_PI; +[XSI] symbolic_constant M_1_PIl: long double M_1_PIl; +[XSI] symbolic_constant M_1_SQRTPI: double M_1_SQRTPI; +[XSI] symbolic_constant M_1_SQRTPIl: long double M_1_SQRTPIl; +[XSI] symbolic_constant M_2_PI: double M_2_PI; +[XSI] symbolic_constant M_2_PIl: long double M_2_PIl; +[XSI] symbolic_constant M_2_SQRTPI: double M_2_SQRTPI; +[XSI] symbolic_constant M_2_SQRTPIl: long double M_2_SQRTPIl; +[XSI] symbolic_constant M_SQRT2: double M_SQRT2; +[XSI] symbolic_constant M_SQRT2l: long double M_SQRT2l; +[XSI] symbolic_constant M_SQRT3: double M_SQRT3; +[XSI] symbolic_constant M_SQRT3l: long double M_SQRT3l; +[XSI] symbolic_constant M_SQRT1_2: double M_SQRT1_2; +[XSI] symbolic_constant M_SQRT1_2l: long double M_SQRT1_2l; +[XSI] symbolic_constant M_SQRT1_3: double M_SQRT1_3; +[XSI] symbolic_constant M_SQRT1_3l: long double M_SQRT1_3l; define HUGE_VAL; define HUGE_VALF; define HUGE_VALL; --- posix-2018/mqueue.api 2025-08-26 15:59:28.785374447 +0200 +++ posix-2024/mqueue.api 2025-08-26 14:58:27.960990058 +0200 @@ -1,6 +1,5 @@ [MSG] #include [MSG] typedef mqd_t; -[MSG] typedef pthread_attr_t; [MSG] typedef size_t; [MSG] typedef ssize_t; [MSG] struct timespec; @@ -10,6 +9,12 @@ [MSG] parent struct mq_attr struct_member mq_maxmsg: long mq_maxmsg; [MSG] parent struct mq_attr struct_member mq_msgsize: long mq_msgsize; [MSG] parent struct mq_attr struct_member mq_curmsgs: long mq_curmsgs; +[MSG] define O_RDONLY; +[MSG] define O_WRONLY; +[MSG] define O_RDWR; +[MSG] define O_CREAT; +[MSG] define O_EXCL; +[MSG] define O_NONBLOCK; [MSG] maybe_define function mq_close: int mq_close(mqd_t); [MSG] maybe_define function mq_getattr: int mq_getattr(mqd_t, struct mq_attr *); [MSG] maybe_define function mq_notify: int mq_notify(mqd_t, const struct sigevent *); --- posix-2018/netdb.api 2025-08-26 15:59:28.649373406 +0200 +++ posix-2024/netdb.api 2025-08-26 14:58:27.960990058 +0200 @@ -1,6 +1,4 @@ #include -optional typedef in_port_t; -optional typedef in_addr_t; struct hostent; parent struct hostent struct_member h_name: char *h_name; parent struct hostent struct_member h_aliases: char **h_aliases; --- posix-2018/poll.api 2025-08-26 15:59:29.461379619 +0200 +++ posix-2024/poll.api 2025-08-26 14:58:27.964990090 +0200 @@ -4,6 +4,8 @@ parent struct pollfd struct_member events: short events; parent struct pollfd struct_member revents: short revents; typedef nfds_t; +typedef sigset_t; +struct timespec; symbolic_constant POLLIN; symbolic_constant POLLRDNORM; symbolic_constant POLLRDBAND; @@ -15,3 +17,6 @@ symbolic_constant POLLHUP; symbolic_constant POLLNVAL; maybe_define function poll: int poll(struct pollfd [], nfds_t, int); +maybe_define function ppoll: int ppoll(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict); +optional include signal: signal.h; +optional include time: time.h; --- posix-2018/pthread.api 2025-08-26 15:59:28.777374385 +0200 +++ posix-2024/pthread.api 2025-08-26 14:58:27.964990090 +0200 @@ -26,6 +26,7 @@ symbolic_constant PTHREAD_COND_INITIALIZER: pthread_cond_t PTHREAD_COND_INITIALIZER; symbolic_constant PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t PTHREAD_MUTEX_INITIALIZER; symbolic_constant PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t PTHREAD_RWLOCK_INITIALIZER; +symbolic_constant PTHREAD_NULL: pthread_t PTHREAD_NULL; typedef pthread_attr_t; typedef pthread_barrier_t; typedef pthread_barrierattr_t; @@ -39,7 +40,7 @@ typedef pthread_rwlockattr_t; typedef pthread_spinlock_t; typedef pthread_t; -maybe_define function pthread_atfork: int pthread_atfork(void (*)(void), void (*)(void), void(*)(void)); +[OB] maybe_define function pthread_atfork: int pthread_atfork(void (*)(void), void (*)(void), void(*)(void)); maybe_define function pthread_attr_destroy: int pthread_attr_destroy(pthread_attr_t *); maybe_define function pthread_attr_getdetachstate: int pthread_attr_getdetachstate(const pthread_attr_t *, int *); maybe_define function pthread_attr_getguardsize: int pthread_attr_getguardsize(const pthread_attr_t *restrict, size_t *restrict); @@ -67,6 +68,7 @@ [TSH] maybe_define function pthread_barrierattr_setpshared: int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); maybe_define function pthread_cancel: int pthread_cancel(pthread_t); maybe_define function pthread_cond_broadcast: int pthread_cond_broadcast(pthread_cond_t *); +maybe_define function pthread_cond_clockwait: int pthread_cond_clockwait(pthread_cond_t *restrict, pthread_mutex_t *restrict, clockid_t, const struct timespec *restrict); maybe_define function pthread_cond_destroy: int pthread_cond_destroy(pthread_cond_t *); maybe_define function pthread_cond_init: int pthread_cond_init(pthread_cond_t *restrict, const pthread_condattr_t *restrict); maybe_define function pthread_cond_signal: int pthread_cond_signal(pthread_cond_t *); @@ -81,14 +83,14 @@ maybe_define function pthread_create: int pthread_create(pthread_t *restrict, const pthread_attr_t *restrict, void *(*)(void*), void *restrict); maybe_define function pthread_detach: int pthread_detach(pthread_t); maybe_define function pthread_equal: int pthread_equal(pthread_t, pthread_t); -maybe_define function pthread_exit: void pthread_exit(void *); -[OB XSI] maybe_define function pthread_getconcurrency: int pthread_getconcurrency(void); +maybe_define function pthread_exit: _Noreturn void pthread_exit(void *); [TCT] maybe_define function pthread_getcpuclockid: int pthread_getcpuclockid(pthread_t, clockid_t *); [TPS] maybe_define function pthread_getschedparam: int pthread_getschedparam(pthread_t, int *restrict, struct sched_param *restrict); maybe_define function pthread_getspecific: void *pthread_getspecific(pthread_key_t); maybe_define function pthread_join: int pthread_join(pthread_t, void **); maybe_define function pthread_key_create: int pthread_key_create(pthread_key_t *, void (*)(void*)); maybe_define function pthread_key_delete: int pthread_key_delete(pthread_key_t); +maybe_define function pthread_mutex_clocklock: int pthread_mutex_clocklock(pthread_mutex_t *restrict, clockid_t, const struct timespec *restrict); maybe_define function pthread_mutex_consistent: int pthread_mutex_consistent(pthread_mutex_t *); maybe_define function pthread_mutex_destroy: int pthread_mutex_destroy(pthread_mutex_t *); [RPP|TPP] maybe_define function pthread_mutex_getprioceiling: int pthread_mutex_getprioceiling(const pthread_mutex_t *restrict, int *restrict); @@ -113,6 +115,8 @@ maybe_define function pthread_once: int pthread_once(pthread_once_t *, void (*)(void)); maybe_define function pthread_rwlock_destroy: int pthread_rwlock_destroy(pthread_rwlock_t *); maybe_define function pthread_rwlock_init: int pthread_rwlock_init(pthread_rwlock_t *restrict, const pthread_rwlockattr_t *restrict); +maybe_define function pthread_rwlock_clockrdlock: int pthread_rwlock_clockrdlock(pthread_rwlock_t *restrict, clockid_t, const struct timespec *restrict); +maybe_define function pthread_rwlock_clockwrlock: int pthread_rwlock_clockwrlock(pthread_rwlock_t *restrict, clockid_t, const struct timespec *restrict); maybe_define function pthread_rwlock_rdlock: int pthread_rwlock_rdlock(pthread_rwlock_t *); maybe_define function pthread_rwlock_timedrdlock: int pthread_rwlock_timedrdlock(pthread_rwlock_t *restrict, const struct timespec *restrict); maybe_define function pthread_rwlock_timedwrlock: int pthread_rwlock_timedwrlock(pthread_rwlock_t *restrict, const struct timespec *restrict); @@ -127,7 +131,6 @@ maybe_define function pthread_self: pthread_t pthread_self(void); maybe_define function pthread_setcancelstate: int pthread_setcancelstate(int, int *); maybe_define function pthread_setcanceltype: int pthread_setcanceltype(int, int *); -[OB XSI] maybe_define function pthread_setconcurrency: int pthread_setconcurrency(int); [TPS] maybe_define function pthread_setschedparam: int pthread_setschedparam(pthread_t, int, const struct sched_param *); [TPS] maybe_define function pthread_setschedprio: int pthread_setschedprio(pthread_t, int); maybe_define function pthread_setspecific: int pthread_setspecific(pthread_key_t, const void *); --- posix-2018/regex.api 2025-08-26 15:59:29.781382068 +0200 +++ posix-2024/regex.api 2025-08-26 14:58:27.964990090 +0200 @@ -8,6 +8,7 @@ parent regmatch_t struct_member rm_eo: regoff_t rm_eo; symbolic_constant REG_EXTENDED; symbolic_constant REG_ICASE; +symbolic_constant REG_MINIMAL; symbolic_constant REG_NOSUB; symbolic_constant REG_NEWLINE; symbolic_constant REG_NOTBOL; --- posix-2018/search.api 2025-08-26 15:59:28.289370652 +0200 +++ posix-2024/search.api 2025-08-26 14:58:27.964990090 +0200 @@ -11,6 +11,7 @@ [XSI] parent VISIT enum_member postorder; [XSI] parent VISIT enum_member endorder; [XSI] typedef size_t; +[XSI] typedef posix_tnode; [XSI] maybe_define function hcreate: int hcreate(size_t); [XSI] maybe_define function hdestroy: void hdestroy(void); [XSI] maybe_define function hsearch: ENTRY *hsearch(ENTRY, ACTION); @@ -18,7 +19,7 @@ [XSI] maybe_define function lfind: void *lfind(const void *, const void *, size_t *, size_t, int (*)(const void *, const void *)); [XSI] maybe_define function lsearch: void *lsearch(const void *, void *, size_t *, size_t, int (*)(const void *, const void *)); [XSI] maybe_define function remque: void remque(void *); -[XSI] maybe_define function tdelete: void *tdelete(const void *restrict, void **restrict, int(*)(const void *, const void *)); -[XSI] maybe_define function tfind: void *tfind(const void *, void *const *, int(*)(const void *, const void *)); -[XSI] maybe_define function tsearch: void *tsearch(const void *, void **, int(*)(const void *, const void *)); -[XSI] maybe_define function twalk: void twalk(const void *, void (*)(const void *, VISIT, int )); +[XSI] maybe_define function tdelete: void *tdelete(const void *restrict, posix_tnode **restrict, int(*)(const void *, const void *)); +[XSI] maybe_define function tfind: posix_tnode *tfind(const void *, posix_tnode *const *, int(*)(const void *, const void *)); +[XSI] maybe_define function tsearch: posix_tnode *tsearch(const void *, posix_tnode **, int(*)(const void *, const void *)); +[XSI] maybe_define function twalk: void twalk(const posix_tnode *, void (*)(const posix_tnode *, VISIT, int)); --- posix-2018/semaphore.api 2025-08-26 15:59:28.269370499 +0200 +++ posix-2024/semaphore.api 2025-08-26 14:58:27.964990090 +0200 @@ -1,6 +1,10 @@ #include typedef sem_t; +struct timespec; symbolic_constant SEM_FAILED; +define O_CREAT; +define O_EXCL; +maybe_define function sem_clockwait: int sem_clockwait(sem_t *restrict, clockid_t, const struct timespec *restrict); maybe_define function sem_close: int sem_close(sem_t *); maybe_define function sem_destroy: int sem_destroy(sem_t *); maybe_define function sem_getvalue: int sem_getvalue(sem_t *restrict, int *restrict); --- posix-2018/setjmp.api 2025-08-26 15:59:26.721358655 +0200 +++ posix-2024/setjmp.api 2025-08-26 14:58:27.964990090 +0200 @@ -1,9 +1,7 @@ #include typedef jmp_buf; [CX] typedef sigjmp_buf; -[OB XSI] maybe_define function _longjmp: void _longjmp(jmp_buf, int); -maybe_define function longjmp: void longjmp(jmp_buf, int); -[CX] maybe_define function siglongjmp: void siglongjmp(sigjmp_buf, int); -[OB XSI] maybe_define maybe_function _setjmp: int _setjmp(jmp_buf); +maybe_define function longjmp: _Noreturn void longjmp(jmp_buf, int); +[CX] maybe_define function siglongjmp: _Noreturn void siglongjmp(sigjmp_buf, int); maybe_define maybe_function setjmp: int setjmp(jmp_buf); [CX] maybe_define maybe_function sigsetjmp: int sigsetjmp(sigjmp_buf, int); --- posix-2018/signal.api 2025-08-26 15:59:31.161392627 +0200 +++ posix-2024/signal.api 2025-08-26 14:58:27.964990090 +0200 @@ -1,7 +1,6 @@ #include define SIG_DFL; define SIG_ERR; -[OB XSI] define SIG_HOLD; define SIG_IGN; [CX] typedef pthread_t; [CX] typedef size_t; @@ -25,6 +24,7 @@ [CX] parent union sigval union_member sival_ptr: void *sival_ptr; [CX] define SIGRTMIN; [CX] define SIGRTMAX; +[CX] define SIG2STR_MAX; define SIGABRT; define SIGALRM; define SIGBUS; @@ -45,10 +45,9 @@ define SIGTTOU; define SIGUSR1; define SIGUSR2; -[OB XSR] define SIGPOLL; -[OB XSI] define SIGPROF; +define SIGWINCH; [XSI] define SIGSYS; -define SIGTRAP; +[XSI] define SIGTRAP; define SIGURG; [XSI] define SIGVTALRM; [XSI] define SIGXCPU; @@ -90,7 +89,6 @@ [CX] parent siginfo_t struct_member si_uid: uid_t si_uid; [CX] parent siginfo_t struct_member si_addr: void *si_addr; [CX] parent siginfo_t struct_member si_status: int si_status; -[OB XSR] parent siginfo_t struct_member si_band: long si_band; [CX] parent siginfo_t struct_member si_value: union sigval si_value; [CX] symbolic_constant ILL_ILLOPC; [CX] symbolic_constant ILL_ILLOPN; @@ -111,8 +109,8 @@ [CX] symbolic_constant SEGV_MAPERR; [CX] symbolic_constant SEGV_ACCERR; [CX] symbolic_constant BUS_ADRALN; -symbolic_constant BUS_ADRERR; -symbolic_constant BUS_OBJERR; +[CX] symbolic_constant BUS_ADRERR; +[CX] symbolic_constant BUS_OBJERR; [XSI] symbolic_constant TRAP_BRKPT; [XSI] symbolic_constant TRAP_TRACE; [CX] symbolic_constant CLD_EXITED; @@ -121,12 +119,6 @@ [CX] symbolic_constant CLD_TRAPPED; [CX] symbolic_constant CLD_STOPPED; [CX] symbolic_constant CLD_CONTINUED; -[OB XSR] symbolic_constant POLL_IN; -[OB XSR] symbolic_constant POLL_OUT; -[OB XSR] symbolic_constant POLL_MSG; -[OB XSR] symbolic_constant POLL_ERR; -[OB XSR] symbolic_constant POLL_PRI; -[OB XSR] symbolic_constant POLL_HUP; [CX] symbolic_constant SI_USER; [CX] symbolic_constant SI_QUEUE; [CX] symbolic_constant SI_TIMER; @@ -139,25 +131,21 @@ [CX] maybe_define function pthread_kill: int pthread_kill(pthread_t, int); [CX] maybe_define function pthread_sigmask: int pthread_sigmask(int, const sigset_t *restrict, sigset_t *restrict); maybe_define function raise: int raise(int); +[CX] maybe_define function sig2str: int sig2str(int, char *); [CX] maybe_define function sigaction: int sigaction(int, const struct sigaction *restrict, struct sigaction *restrict); [CX] maybe_define function sigaddset: int sigaddset(sigset_t *, int); [XSI] maybe_define function sigaltstack: int sigaltstack(const stack_t *restrict, stack_t *restrict); [CX] maybe_define function sigdelset: int sigdelset(sigset_t *, int); [CX] maybe_define function sigemptyset: int sigemptyset(sigset_t *); [CX] maybe_define function sigfillset: int sigfillset(sigset_t *); -[OB XSI] maybe_define function sighold: int sighold(int); -[OB XSI] maybe_define function sigignore: int sigignore(int); -[OB XSI] maybe_define function siginterrupt: int siginterrupt(int, int); [CX] maybe_define function sigismember: int sigismember(const sigset_t *, int); maybe_define function signal: void (*signal(int, void (*)(int)))(int); -[OB XSI] maybe_define function sigpause: int sigpause(int); [CX] maybe_define function sigpending: int sigpending(sigset_t *); [CX] maybe_define function sigprocmask: int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict); [CX] maybe_define function sigqueue: int sigqueue(pid_t, int, union sigval); -[OB XSI] maybe_define function sigrelse: int sigrelse(int); -[OB XSI] maybe_define function sigset: void (*sigset(int, void (*)(int)))(int); [CX] maybe_define function sigsuspend: int sigsuspend(const sigset_t *); [CX] maybe_define function sigtimedwait: int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict, const struct timespec *restrict); [CX] maybe_define function sigwait: int sigwait(const sigset_t *restrict, int *restrict); [CX] maybe_define function sigwaitinfo: int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict); +[CX] maybe_define function str2sig: int str2sig(const char *restrict, int *restrict); [CX] optional include time: time.h; --- posix-2018/spawn.api 2025-08-26 15:59:28.461371968 +0200 +++ posix-2024/spawn.api 2025-08-26 14:58:27.964990090 +0200 @@ -9,11 +9,14 @@ [SPN] symbolic_constant POSIX_SPAWN_SETPGROUP; [SPN|PS] symbolic_constant POSIX_SPAWN_SETSCHEDPARAM; [SPN|PS] symbolic_constant POSIX_SPAWN_SETSCHEDULER; +[SPN] symbolic_constant POSIX_SPAWN_SETSID; [SPN] symbolic_constant POSIX_SPAWN_SETSIGDEF; [SPN] symbolic_constant POSIX_SPAWN_SETSIGMASK; -[SPN] maybe_define function posix_spawn: int posix_spawn(pid_t *restrict, const char *restrict, const posix_spawn_file_actions_t *, const posix_spawnattr_t *restrict, char *const [restrict], char *const [restrict]); +[SPN] maybe_define function posix_spawn: int posix_spawn(pid_t *restrict, const char *restrict, const posix_spawn_file_actions_t *restrict, const posix_spawnattr_t *restrict, char *const [restrict], char *const [restrict]); +[SPN] maybe_define function posix_spawn_file_actions_addchdir: int posix_spawn_file_actions_addchdir(posix_spawn_file_actions_t *restrict, const char *restrict); [SPN] maybe_define function posix_spawn_file_actions_addclose: int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int); [SPN] maybe_define function posix_spawn_file_actions_adddup2: int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int); +[SPN] maybe_define function posix_spawn_file_actions_addfchdir: int posix_spawn_file_actions_addfchdir(posix_spawn_file_actions_t *, int); [SPN] maybe_define function posix_spawn_file_actions_addopen: int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *restrict, int, const char *restrict, int, mode_t); [SPN] maybe_define function posix_spawn_file_actions_destroy: int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *); [SPN] maybe_define function posix_spawn_file_actions_init: int posix_spawn_file_actions_init(posix_spawn_file_actions_t *); @@ -31,6 +34,6 @@ [SPN|PS] maybe_define function posix_spawnattr_setschedpolicy: int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int); [SPN] maybe_define function posix_spawnattr_setsigdefault: int posix_spawnattr_setsigdefault(posix_spawnattr_t *restrict, const sigset_t *restrict); [SPN] maybe_define function posix_spawnattr_setsigmask: int posix_spawnattr_setsigmask(posix_spawnattr_t *restrict, const sigset_t *restrict); -[SPN] maybe_define function posix_spawnp: int posix_spawnp(pid_t *restrict, const char *restrict, const posix_spawn_file_actions_t *, const posix_spawnattr_t *restrict, char *const [restrict], char *const [restrict]); +[SPN] maybe_define function posix_spawnp: int posix_spawnp(pid_t *restrict, const char *restrict, const posix_spawn_file_actions_t *restrict, const posix_spawnattr_t *restrict, char *const [restrict], char *const [restrict]); [SPN] optional include sched: sched.h; [SPN] optional include signal: signal.h; --- posix-2018/stddef.api 2025-08-26 15:59:29.025376283 +0200 +++ posix-2024/stddef.api 2025-08-26 14:58:27.964990090 +0200 @@ -1,6 +1,7 @@ #include [CX] define NULL; define offsetof: offsetof(type, member-designator); +typedef max_align_t; typedef ptrdiff_t; typedef wchar_t; typedef size_t; --- posix-2018/stdint.api 2025-08-26 15:59:30.849390239 +0200 +++ posix-2024/stdint.api 2025-08-26 14:58:27.964990090 +0200 @@ -42,7 +42,7 @@ define INT_LEAST8_MIN; define INT_LEAST16_MIN; define INT_LEAST32_MIN; -define INT_LEAST64_MIN; +[CX] define INT_LEAST64_MIN; define INT_LEAST8_MAX; define INT_LEAST16_MAX; define INT_LEAST32_MAX; @@ -54,7 +54,7 @@ define INT_FAST8_MIN; define INT_FAST16_MIN; define INT_FAST32_MIN; -define INT_FAST64_MIN; +[CX] define INT_FAST64_MIN; define INT_FAST8_MAX; define INT_FAST16_MAX; define INT_FAST32_MAX; @@ -63,13 +63,13 @@ define UINT_FAST16_MAX; define UINT_FAST32_MAX; define UINT_FAST64_MAX; -define INTPTR_MIN; +[CX] define INTPTR_MIN; define INTPTR_MAX; define UINTPTR_MAX; -define INTMAX_MIN; +[CX] define INTMAX_MIN; define INTMAX_MAX; define UINTMAX_MAX; -define PTRDIFF_MIN; +[CX] define PTRDIFF_MIN; define PTRDIFF_MAX; define SIG_ATOMIC_MIN; define SIG_ATOMIC_MAX; --- posix-2018/stdio.api 2025-08-26 15:59:29.665381180 +0200 +++ posix-2024/stdio.api 2025-08-26 14:58:27.964990090 +0200 @@ -19,7 +19,6 @@ [OB XSI] define TMP_MAX; define EOF; define NULL; -[OB XSI] define P_tmpdir; define stderr; define stdin; define stdout; @@ -58,7 +57,6 @@ [CX] maybe_define function getchar_unlocked: int getchar_unlocked(void); [CX] maybe_define function getdelim: ssize_t getdelim(char **restrict, size_t *restrict, int, FILE *restrict); [CX] maybe_define function getline: ssize_t getline(char **restrict, size_t *restrict, FILE *restrict); -[OB] maybe_define function gets: char *gets(char *); [CX] maybe_define function open_memstream: FILE *open_memstream(char **, size_t *); [CX] maybe_define function pclose: int pclose(FILE *); maybe_define function perror: void perror(const char *); @@ -79,7 +77,6 @@ maybe_define function snprintf: int snprintf(char *restrict, size_t, const char *restrict, ...); maybe_define function sprintf: int sprintf(char *restrict, const char *restrict, ...); maybe_define function sscanf: int sscanf(const char *restrict, const char *restrict, ...); -[OB XSI] maybe_define function tempnam: char *tempnam(const char *, const char *); maybe_define function tmpfile: FILE *tmpfile(void); [OB] maybe_define function tmpnam: char *tmpnam(char *); maybe_define function ungetc: int ungetc(int, FILE *); --- posix-2018/stdlib.api 2025-08-26 15:59:30.229385496 +0200 +++ posix-2024/stdlib.api 2025-08-26 14:58:27.964990090 +0200 @@ -1,5 +1,5 @@ #include -define EXIT_FAILURE; +[CX] define EXIT_FAILURE; define EXIT_SUCCESS; define RAND_MAX; define MB_CUR_MAX; @@ -9,6 +9,7 @@ typedef lldiv_t; typedef size_t; typedef wchar_t; +[CX] symbolic_constant WCOREDUMP; [CX] symbolic_constant WEXITSTATUS; [CX] symbolic_constant WIFEXITED; [CX] symbolic_constant WIFSIGNALED; @@ -17,10 +18,20 @@ [CX] symbolic_constant WSTOPSIG; [CX] symbolic_constant WTERMSIG; [CX] symbolic_constant WUNTRACED; -maybe_define function _Exit: void _Exit(int); +[CX] symbolic_constant O_APPEND; +[CX] symbolic_constant O_CLOEXEC; +[CX] symbolic_constant O_CLOFORK; +[SIO] symbolic_constant O_DSYNC; +[XSI] symbolic_constant O_NOCTTY; +[XSI] symbolic_constant O_RDWR; +[SIO] symbolic_constant O_RSYNC; +[CX] symbolic_constant O_SYNC; +maybe_define function _Exit: _Noreturn void _Exit(int); [XSI] maybe_define function a64l: long a64l(const char *); -maybe_define function abort: void abort(void); +maybe_define function abort: _Noreturn void abort(void); maybe_define function abs: int abs(int); +maybe_define function aligned_alloc: void *aligned_alloc(size_t, size_t); +maybe_define function at_quick_exit: int at_quick_exit(void (*)(void)); maybe_define function atexit: int atexit(void (*)(void)); maybe_define function atof: double atof(const char *); maybe_define function atoi: int atoi(const char *); @@ -31,10 +42,10 @@ maybe_define function div: div_t div(int, int); [XSI] maybe_define function drand48: double drand48(void); [XSI] maybe_define function erand48: double erand48(unsigned short [3]); -maybe_define function exit: void exit(int); +maybe_define function exit: _Noreturn void exit(int); maybe_define function free: void free(void *); maybe_define function getenv: char *getenv(const char *); -[CX] maybe_define function getsubopt: int getsubopt(char **, char *const *, char **); +[CX] maybe_define function getsubopt: int getsubopt(char **restrict, char *const *restrict, char **restrict); [XSI] maybe_define function grantpt: int grantpt(int); [XSI] maybe_define function initstate: char *initstate(unsigned, char *, size_t); [XSI] maybe_define function jrand48: long jrand48(unsigned short [3]); @@ -50,22 +61,27 @@ maybe_define function mbstowcs: size_t mbstowcs(wchar_t *restrict, const char *restrict, size_t); maybe_define function mbtowc: int mbtowc(wchar_t *restrict, const char *restrict, size_t); [CX] maybe_define function mkdtemp: char *mkdtemp(char *); +[CX] maybe_define function mkostemp: int mkostemp(char *, int); [CX] maybe_define function mkstemp: int mkstemp(char *); [XSI] maybe_define function mrand48: long mrand48(void); [XSI] maybe_define function nrand48: long nrand48(unsigned short [3]); [ADV] maybe_define function posix_memalign: int posix_memalign(void **, size_t, size_t); [XSI] maybe_define function posix_openpt: int posix_openpt(int); [XSI] maybe_define function ptsname: char *ptsname(int); +[XSI] maybe_define function ptsname_r: int ptsname_r(int, char *, size_t); [XSI] maybe_define function putenv: int putenv(char *); maybe_define function qsort: void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); +maybe_define function quick_exit: _Noreturn void quick_exit(int); +[CX] maybe_define function qsort_r: void qsort_r(void *, size_t, size_t, int (*)(const void *, const void *, void *), void *); maybe_define function rand: int rand(void); -[OB CX] maybe_define function rand_r: int rand_r(unsigned *); [XSI] maybe_define function random: long random(void); maybe_define function realloc: void *realloc(void *, size_t); -[XSI] maybe_define function realpath: char *realpath(const char *restrict, char *restrict); +[CX] maybe_define function reallocarray: void *reallocarray(void *, size_t, size_t); +[CX] maybe_define function realpath: char *realpath(const char *restrict, char *restrict); +[CX] maybe_define function secure_getenv: char *secure_getenv(const char *); [XSI] maybe_define function seed48: unsigned short *seed48(unsigned short [3]); [CX] maybe_define function setenv: int setenv(const char *, const char *, int); -[XSI] maybe_define function setkey: void setkey(const char *); +[OB XSI] maybe_define function setkey: void setkey(const char *); [XSI] maybe_define function setstate: char *setstate(char *); maybe_define function srand: void srand(unsigned); [XSI] maybe_define function srand48: void srand48(long); @@ -82,7 +98,8 @@ [CX] maybe_define function unsetenv: int unsetenv(const char *); maybe_define function wcstombs: size_t wcstombs(char *restrict, const wchar_t *restrict, size_t); maybe_define function wctomb: int wctomb(char *, wchar_t); -[CX] optional include stddef: stddef.h; +[CX] optional include fcntl: fcntl.h; [CX] optional include limits: limits.h; [CX] optional include math: math.h; +[CX] optional include stddef: stddef.h; [CX] optional include sys: sys/wait.h; --- posix-2018/string.api 2025-08-26 15:59:26.633357981 +0200 +++ posix-2024/string.api 2025-08-26 14:58:27.968990120 +0200 @@ -6,6 +6,7 @@ maybe_define function memchr: void *memchr(const void *, int, size_t); maybe_define function memcmp: int memcmp(const void *, const void *, size_t); maybe_define function memcpy: void *memcpy(void *restrict, const void *restrict, size_t); +[CX] maybe_define function memmem: void *memmem(const void *, size_t, const void *, size_t); maybe_define function memmove: void *memmove(void *, const void *, size_t); maybe_define function memset: void *memset(void *, int, size_t); [CX] maybe_define function stpcpy: char *stpcpy(char *restrict, const char *restrict); @@ -21,6 +22,8 @@ maybe_define function strerror: char *strerror(int); [CX] maybe_define function strerror_l: char *strerror_l(int, locale_t); [CX] maybe_define function strerror_r: int strerror_r(int, char *, size_t); +[CX] maybe_define function strlcat: size_t strlcat(char *restrict, const char *restrict, size_t); +[CX] maybe_define function strlcpy: size_t strlcpy(char *restrict, const char *restrict, size_t); maybe_define function strlen: size_t strlen(const char *); maybe_define function strncat: char *strncat(char *restrict, const char *restrict, size_t); maybe_define function strncmp: int strncmp(const char *, const char *, size_t); --- posix-2018/strings.api 2025-08-26 15:59:28.901375335 +0200 +++ posix-2024/strings.api 2025-08-26 14:58:27.968990120 +0200 @@ -1,5 +1,7 @@ #include [XSI] maybe_define function ffs: int ffs(int); +[XSI] maybe_define function ffsl: int ffsl(long); +[XSI] maybe_define function ffsll: int ffsll(long long); maybe_define function strcasecmp: int strcasecmp(const char *, const char *); maybe_define function strcasecmp_l: int strcasecmp_l(const char *, const char *, locale_t); maybe_define function strncasecmp: int strncasecmp(const char *, const char *, size_t); --- posix-2018/stropts.api 2025-08-26 15:59:29.929383200 +0200 +++ posix-2024/stropts.api 2025-08-26 15:59:24.693343138 +0200 @@ -1,118 +0,0 @@ -[OB XSR] #include -[OB XSR] struct bandinfo; -[OB XSR] parent struct bandinfo struct_member bi_flag: int bi_flag; -[OB XSR] parent struct bandinfo struct_member bi_pri: unsigned char bi_pri; -[OB XSR] struct strpeek; -[OB XSR] parent struct strpeek struct_member ctlbuf: struct strbuf ctlbuf; -[OB XSR] parent struct strpeek struct_member databuf: struct strbuf databuf; -[OB XSR] parent struct strpeek struct_member flags: t_uscalar_t flags; -[OB XSR] struct strbuf; -[OB XSR] parent struct strbuf struct_member buf: char *buf; -[OB XSR] parent struct strbuf struct_member len: int len; -[OB XSR] parent struct strbuf struct_member maxlen: int maxlen; -[OB XSR] struct strfdinsert; -[OB XSR] parent struct strfdinsert struct_member ctlbuf: struct strbuf ctlbuf; -[OB XSR] parent struct strfdinsert struct_member databuf: struct strbuf databuf; -[OB XSR] parent struct strfdinsert struct_member fildes: int fildes; -[OB XSR] parent struct strfdinsert struct_member flags: t_uscalar_t flags; -[OB XSR] parent struct strfdinsert struct_member offset: int offset; -[OB XSR] struct strioctl; -[OB XSR] parent struct strioctl struct_member ic_cmd: int ic_cmd; -[OB XSR] parent struct strioctl struct_member ic_dp: char *ic_dp; -[OB XSR] parent struct strioctl struct_member ic_len: int ic_len; -[OB XSR] parent struct strioctl struct_member ic_timout: int ic_timout; -[OB XSR] struct strrecvfd; -[OB XSR] parent struct strrecvfd struct_member fd: int fd; -[OB XSR] parent struct strrecvfd struct_member gid: gid_t gid; -[OB XSR] parent struct strrecvfd struct_member uid: uid_t uid; -[OB XSR] typedef uid_t; -[OB XSR] typedef gid_t; -[OB XSR] typedef t_scalar_t; -[OB XSR] typedef t_uscalar_t; -[OB XSR] typedef respectively; -[OB XSR] typedef as; -[OB XSR] typedef signed; -[OB XSR] typedef unsigned; -[OB XSR] typedef opaque; -[OB XSR] typedef equal; -[OB XSR] typedef length; -[OB XSR] typedef 32; -[OB XSR] typedef bits; -[OB XSR] struct str_list; -[OB XSR] parent struct str_list struct_member sl_modlist: struct str_mlist *sl_modlist; -[OB XSR] parent struct str_list struct_member sl_nmods: int sl_nmods; -[OB XSR] struct str_mlist; -[OB XSR] parent struct str_mlist struct_member l_name: char l_name[FMNAMESZ+1]; -[OB XSR] symbolic_constant I_ATMARK; -[OB XSR] symbolic_constant I_CANPUT; -[OB XSR] symbolic_constant I_CKBAND; -[OB XSR] symbolic_constant I_FDINSERT; -[OB XSR] symbolic_constant I_FIND; -[OB XSR] symbolic_constant I_FLUSH; -[OB XSR] symbolic_constant I_FLUSHBAND; -[OB XSR] symbolic_constant I_GETBAND; -[OB XSR] symbolic_constant I_GETCLTIME; -[OB XSR] symbolic_constant I_GETSIG; -[OB XSR] symbolic_constant I_GRDOPT; -[OB XSR] symbolic_constant I_GWROPT; -[OB XSR] symbolic_constant I_LINK; -[OB XSR] symbolic_constant I_LIST; -[OB XSR] symbolic_constant I_LOOK; -[OB XSR] symbolic_constant I_NREAD; -[OB XSR] symbolic_constant I_PEEK; -[OB XSR] symbolic_constant I_PLINK; -[OB XSR] symbolic_constant I_POP; -[OB XSR] symbolic_constant I_PUNLINK; -[OB XSR] symbolic_constant I_PUSH; -[OB XSR] symbolic_constant I_RECVFD; -[OB XSR] symbolic_constant I_SENDFD; -[OB XSR] symbolic_constant I_SETCLTIME; -[OB XSR] symbolic_constant I_SETSIG; -[OB XSR] symbolic_constant I_SRDOPT; -[OB XSR] symbolic_constant I_STR; -[OB XSR] symbolic_constant I_SWROPT; -[OB XSR] symbolic_constant I_UNLINK; -[OB XSR] symbolic_constant FMNAMESZ; -[OB XSR] symbolic_constant FLUSHR; -[OB XSR] symbolic_constant FLUSHRW; -[OB XSR] symbolic_constant FLUSHW; -[OB XSR] symbolic_constant S_BANDURG; -[OB XSR] symbolic_constant S_ERROR; -[OB XSR] symbolic_constant S_HANGUP; -[OB XSR] symbolic_constant S_HIPRI; -[OB XSR] symbolic_constant S_INPUT; -[OB XSR] symbolic_constant S_MSG; -[OB XSR] symbolic_constant S_OUTPUT; -[OB XSR] symbolic_constant S_RDBAND; -[OB XSR] symbolic_constant S_RDNORM; -[OB XSR] symbolic_constant S_WRBAND; -[OB XSR] symbolic_constant S_WRNORM; -[OB XSR] symbolic_constant RS_HIPRI; -[OB XSR] symbolic_constant RMSGD; -[OB XSR] symbolic_constant RMSGN; -[OB XSR] symbolic_constant RNORM; -[OB XSR] symbolic_constant RPROTDAT; -[OB XSR] symbolic_constant RPROTDIS; -[OB XSR] symbolic_constant RPROTNORM; -[OB XSR] symbolic_constant SNDZERO; -[OB XSR] symbolic_constant ANYMARK; -[OB XSR] symbolic_constant LASTMARK; -[OB XSR] symbolic_constant MUXID_ALL; -[OB XSR] symbolic_constant MORECTL; -[OB XSR] symbolic_constant MOREDATA; -[OB XSR] symbolic_constant MSG_ANY; -[OB XSR] symbolic_constant MSG_BAND; -[OB XSR] symbolic_constant MSG_HIPRI; -[OB XSR] optional typedef message; -[OB XSR] optional typedef using; -[OB XSR] optional typedef names; -[OB XSR] optional typedef that; -[OB XSR] optional typedef start; -[OB XSR] optional typedef fattach: int fattach(int, const char *); -[OB XSR] optional typedef fdetach: int fdetach(const char *); -[OB XSR] optional typedef getmsg: int getmsg(int, struct strbuf *restrict, struct strbuf *restrict, int *restrict); -[OB XSR] optional typedef getpmsg: int getpmsg(int, struct strbuf *restrict, struct strbuf *restrict, int *restrict, int *restrict); -[OB XSR] optional typedef ioctl: int ioctl(int, int, ...); -[OB XSR] optional typedef isastream: int isastream(int); -[OB XSR] optional typedef putmsg: int putmsg(int, const struct strbuf *, const struct strbuf *, int); -[OB XSR] optional typedef putpmsg: int putpmsg(int, const struct strbuf *, const struct strbuf *, int, int); --- posix-2018/syslog.api 2025-08-26 15:59:27.965368172 +0200 +++ posix-2024/syslog.api 2025-08-26 14:58:27.968990120 +0200 @@ -22,6 +22,7 @@ [XSI] symbolic_constant LOG_LOCAL6; [XSI] symbolic_constant LOG_LOCAL7; [XSI] define LOG_MASK: LOG_MASK(pri); +[XSI] define LOG_UPTO: LOG_UPTO(pri); [XSI] symbolic_constant LOG_EMERG; [XSI] symbolic_constant LOG_ALERT; [XSI] symbolic_constant LOG_CRIT; --- posix-2018/sys_mman.api 2025-08-26 15:59:27.085361440 +0200 +++ posix-2024/sys_mman.api 2025-08-26 14:58:27.968990120 +0200 @@ -3,6 +3,8 @@ symbolic_constant PROT_NONE; symbolic_constant PROT_READ; symbolic_constant PROT_WRITE; +symbolic_constant MAP_ANON; +symbolic_constant MAP_ANONYMOUS; symbolic_constant MAP_FIXED; symbolic_constant MAP_PRIVATE; symbolic_constant MAP_SHARED; @@ -25,6 +27,14 @@ typedef size_t; [TYM] struct posix_typed_mem_info; [TYM] parent struct posix_typed_mem_info struct_member posix_tmi_length: size_t posix_tmi_length; +[SHM|TYM] symbolic_constant O_RDONLY; +[SHM|TYM] symbolic_constant O_RDWR; +[TYM] symbolic_constant O_WRONLY; +[TYM] symbolic_constant O_CLOEXEC; +[TYM] symbolic_constant O_CLOFORK; +[SHM] symbolic_constant O_CREAT; +[SHM] symbolic_constant O_EXCL; +[SHM] symbolic_constant O_TRUNC; [MLR] maybe_define function mlock: int mlock(const void *, size_t); [ML] maybe_define function mlockall: int mlockall(int); maybe_define function mmap: void *mmap(void *, size_t, int, int, int, off_t); @@ -39,3 +49,4 @@ [TYM] maybe_define function posix_typed_mem_open: int posix_typed_mem_open(const char *, int, int); [SHM] maybe_define function shm_open: int shm_open(const char *, int, mode_t); [SHM] maybe_define function shm_unlink: int shm_unlink(const char *); +optional include fcntl: fcntl.h; --- posix-2018/sys_resource.api 2025-08-26 15:59:30.021383904 +0200 +++ posix-2024/sys_resource.api 2025-08-26 14:58:27.968990120 +0200 @@ -1,31 +1,31 @@ -[XSI] #include +#include [XSI] symbolic_constant PRIO_PROCESS; [XSI] symbolic_constant PRIO_PGRP; [XSI] symbolic_constant PRIO_USER; -[XSI] typedef rlim_t; -[XSI] symbolic_constant RLIM_INFINITY; -[XSI] symbolic_constant RLIM_SAVED_MAX; -[XSI] symbolic_constant RLIM_SAVED_CUR; +typedef rlim_t; +symbolic_constant RLIM_INFINITY; +symbolic_constant RLIM_SAVED_MAX; +symbolic_constant RLIM_SAVED_CUR; [XSI] symbolic_constant RUSAGE_SELF; [XSI] symbolic_constant RUSAGE_CHILDREN; -[XSI] struct rlimit; -[XSI] parent struct rlimit struct_member rlim_cur: rlim_t rlim_cur; -[XSI] parent struct rlimit struct_member rlim_max: rlim_t rlim_max; +struct rlimit; +parent struct rlimit struct_member rlim_cur: rlim_t rlim_cur; +parent struct rlimit struct_member rlim_max: rlim_t rlim_max; [XSI] struct rusage; [XSI] parent struct rusage struct_member ru_utime: struct timeval ru_utime; [XSI] parent struct rusage struct_member ru_stime: struct timeval ru_stime; [XSI] struct timeval; -[XSI] symbolic_constant RLIMIT_CORE; +symbolic_constant RLIMIT_CORE; [XSI] symbolic_constant RLIMIT_CPU; -[XSI] symbolic_constant RLIMIT_DATA; -[XSI] symbolic_constant RLIMIT_FSIZE; -[XSI] symbolic_constant RLIMIT_NOFILE; -[XSI] symbolic_constant RLIMIT_STACK; -[XSI] symbolic_constant RLIMIT_AS; +symbolic_constant RLIMIT_DATA; +symbolic_constant RLIMIT_FSIZE; +symbolic_constant RLIMIT_NOFILE; +symbolic_constant RLIMIT_STACK; +symbolic_constant RLIMIT_AS; [XSI] maybe_define function getpriority: int getpriority(int, id_t); -[XSI] maybe_define function getrlimit: int getrlimit(int, struct rlimit *); +maybe_define function getrlimit: int getrlimit(int, struct rlimit *); [XSI] maybe_define function getrusage: int getrusage(int, struct rusage *); [XSI] maybe_define function setpriority: int setpriority(int, id_t, int); -[XSI] maybe_define function setrlimit: int setrlimit(int, const struct rlimit *); +maybe_define function setrlimit: int setrlimit(int, const struct rlimit *); [XSI] typedef id_t; -[XSI] optional include sys: sys/time.h; +optional include sys: sys/time.h; --- posix-2018/sys_select.api 2025-08-26 15:59:28.485372151 +0200 +++ posix-2024/sys_select.api 2025-08-26 14:58:27.968990120 +0200 @@ -9,7 +9,7 @@ typedef fd_set; symbolic_constant FD_SETSIZE; maybe_define maybe_function FD_CLR: void FD_CLR(int, fd_set *); -maybe_define maybe_function FD_ISSET: int FD_ISSET(int, fd_set *); +maybe_define maybe_function FD_ISSET: int FD_ISSET(int, const fd_set *); maybe_define maybe_function FD_SET: void FD_SET(int, fd_set *); maybe_define maybe_function FD_ZERO: void FD_ZERO(fd_set *); maybe_define function pselect: int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict, const struct timespec *restrict, const sigset_t *restrict); --- posix-2018/sys_shm.api 2025-08-26 15:59:29.749381823 +0200 +++ posix-2024/sys_shm.api 2025-08-26 14:58:27.968990120 +0200 @@ -2,6 +2,8 @@ [XSI] symbolic_constant SHM_RDONLY; [XSI] symbolic_constant SHM_RND; [XSI] symbolic_constant SHMLBA; +[XSI] symbolic_constant SHM_FAILED; +[XSI] typedef intptr_t; [XSI] typedef shmatt_t; [XSI] struct shmid_ds; [XSI] parent struct shmid_ds struct_member shm_perm: struct ipc_perm shm_perm; --- posix-2018/sys_socket.api 2025-08-26 15:59:30.181385129 +0200 +++ posix-2024/sys_socket.api 2025-08-26 14:58:27.968990120 +0200 @@ -23,6 +23,8 @@ define CMSG_DATA: CMSG_DATA(cmsg); define CMSG_NXTHDR: CMSG_NXTHDR(mhdr,cmsg); define CMSG_FIRSTHDR: CMSG_FIRSTHDR(mhdr); +define CMSG_SPACE: CMSG_SPACE(length); +define CMSG_LEN: CMSG_LEN(length); struct linger; parent struct linger struct_member l_onoff: int l_onoff; parent struct linger struct_member l_linger: int l_linger; @@ -30,15 +32,20 @@ [RS] symbolic_constant SOCK_RAW; symbolic_constant SOCK_SEQPACKET; symbolic_constant SOCK_STREAM; +symbolic_constant SOCK_NONBLOCK; +symbolic_constant SOCK_CLOEXEC; +symbolic_constant SOCK_CLOFORK; symbolic_constant SOL_SOCKET; symbolic_constant SO_ACCEPTCONN; symbolic_constant SO_BROADCAST; symbolic_constant SO_DEBUG; +symbolic_constant SO_DOMAIN; symbolic_constant SO_DONTROUTE; symbolic_constant SO_ERROR; symbolic_constant SO_KEEPALIVE; symbolic_constant SO_LINGER; symbolic_constant SO_OOBINLINE; +symbolic_constant SO_PROTOCOL; symbolic_constant SO_RCVBUF; symbolic_constant SO_RCVLOWAT; symbolic_constant SO_RCVTIMEO; @@ -48,6 +55,8 @@ symbolic_constant SO_SNDTIMEO; symbolic_constant SO_TYPE; symbolic_constant SOMAXCONN; +symbolic_constant MSG_CMSG_CLOEXEC; +symbolic_constant MSG_CMSG_CLOFORK; symbolic_constant MSG_CTRUNC; symbolic_constant MSG_DONTROUTE; symbolic_constant MSG_EOR; @@ -66,6 +75,7 @@ typedef size_t; typedef ssize_t; maybe_define function accept: int accept(int, struct sockaddr *restrict, socklen_t *restrict); +maybe_define function accept4: int accept4(int, struct sockaddr *restrict, socklen_t *restrict, int); maybe_define function bind: int bind(int, const struct sockaddr *, socklen_t); maybe_define function connect: int connect(int, const struct sockaddr *, socklen_t); maybe_define function getpeername: int getpeername(int, struct sockaddr *restrict, socklen_t *restrict); --- posix-2018/sys_stat.api 2025-08-26 15:59:28.965375824 +0200 +++ posix-2024/sys_stat.api 2025-08-26 14:58:27.968990120 +0200 @@ -28,6 +28,7 @@ define st_ctime; define st_mtime; [XSI] define S_IFMT; +[XSI] define S_IFBLK; [XSI] define S_IFCHR; [XSI] define S_IFIFO; [XSI] define S_IFREG; --- posix-2018/sys_time.api 2025-08-26 15:59:29.169377385 +0200 +++ posix-2024/sys_time.api 2025-08-26 14:58:27.968990120 +0200 @@ -1,24 +1,13 @@ [XSI] #include +[XSI] typedef fd_set; [XSI] struct timeval; -[XSI] parent struct timeval struct_member tv_sec: time_t tv_sec; -[XSI] parent struct timeval struct_member tv_usec: suseconds_t tv_usec; -[XSI|OB] struct itimerval; -[XSI|OB] parent struct itimerval struct_member it_interval: struct timeval it_interval; -[XSI|OB] parent struct itimerval struct_member it_value: struct timeval it_value; [XSI] typedef time_t; [XSI] typedef suseconds_t; -[XSI] typedef fd_set; -[XSI|OB] symbolic_constant ITIMER_REAL; -[XSI|OB] symbolic_constant ITIMER_VIRTUAL; -[XSI|OB] symbolic_constant ITIMER_PROF; [XSI] define FD_CLR; [XSI] define FD_ISSET; [XSI] define FD_SET; [XSI] define FD_ZERO; [XSI] define FD_SETSIZE; -[XSI|OB] maybe_define function getitimer: int getitimer(int, struct itimerval *); -[XSI|OB] maybe_define function gettimeofday: int gettimeofday(struct timeval *restrict, void *restrict); -[XSI|OB] maybe_define function setitimer: int setitimer(int, const struct itimerval *restrict, struct itimerval *restrict); [XSI] maybe_define function select: int select(int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict); [XSI] maybe_define function utimes: int utimes(const char *, const struct timeval [2]); [XSI] optional include sys: sys/select.h; --- posix-2018/sys_types.api 2025-08-26 15:59:30.349386413 +0200 +++ posix-2024/sys_types.api 2025-08-26 14:58:27.968990120 +0200 @@ -27,13 +27,10 @@ typedef pthread_rwlockattr_t; typedef pthread_spinlock_t; typedef pthread_t; +typedef reclen_t; typedef size_t; typedef ssize_t; typedef suseconds_t; typedef time_t; typedef timer_t; -[OB TRC] typedef trace_attr_t; -[OB TRC] typedef trace_event_id_t; -[OB TEF] typedef trace_event_set_t; -[OB TRC] typedef trace_id_t; typedef uid_t; --- posix-2018/sys_un.api 2025-08-26 15:59:27.481364469 +0200 +++ posix-2024/sys_un.api 2025-08-26 14:58:27.968990120 +0200 @@ -1,5 +1,5 @@ #include struct sockaddr_un; parent struct sockaddr_un struct_member sun_family: sa_family_t sun_family; -parent struct sockaddr_un struct_member sun_path: char sun_path[]; +parent struct sockaddr_un struct_member sun_path: char sun_path[size]; typedef sa_family_t; --- posix-2018/sys_wait.api 2025-08-26 15:59:30.137384792 +0200 +++ posix-2024/sys_wait.api 2025-08-26 14:58:27.972990151 +0200 @@ -2,6 +2,7 @@ [XSI] symbolic_constant WCONTINUED; symbolic_constant WNOHANG; symbolic_constant WUNTRACED; +define WCOREDUMP; define WEXITSTATUS; [XSI] define WIFCONTINUED; define WIFEXITED; --- posix-2018/termios.api 2025-08-26 15:59:29.361378854 +0200 +++ posix-2024/termios.api 2025-08-26 14:58:27.972990151 +0200 @@ -40,20 +40,26 @@ [XSI] symbolic_constant OFDEL; [XSI] symbolic_constant OFILL; [XSI] symbolic_constant NLDLY; +[XSI] symbolic_constant NL0; [XSI] symbolic_constant NL1; [XSI] symbolic_constant CRDLY; +[XSI] symbolic_constant CR0; [XSI] symbolic_constant CR1; [XSI] symbolic_constant CR2; [XSI] symbolic_constant CR3; [XSI] symbolic_constant TABDLY; +[XSI] symbolic_constant TAB0; [XSI] symbolic_constant TAB1; [XSI] symbolic_constant TAB2; [XSI] symbolic_constant TAB3; [XSI] symbolic_constant BSDLY; +[XSI] symbolic_constant BS0; [XSI] symbolic_constant BS1; [XSI] symbolic_constant VTDLY; +[XSI] symbolic_constant VT0; [XSI] symbolic_constant VT1; [XSI] symbolic_constant FFDLY; +[XSI] symbolic_constant FF0; [XSI] symbolic_constant FF1; symbolic_constant B0; symbolic_constant B50; @@ -72,6 +78,7 @@ symbolic_constant B19200; symbolic_constant B38400; symbolic_constant CSIZE; +symbolic_constant CS5; symbolic_constant CS6; symbolic_constant CS7; symbolic_constant CS8; @@ -90,6 +97,9 @@ symbolic_constant ISIG; symbolic_constant NOFLSH; symbolic_constant TOSTOP; +struct winsize; +parent struct winsize struct_member ws_row: unsigned short ws_row; +parent struct winsize struct_member ws_col: unsigned short ws_col; symbolic_constant TCSANOW; symbolic_constant TCSADRAIN; symbolic_constant TCSAFLUSH; @@ -110,5 +120,7 @@ maybe_define function tcflush: int tcflush(int, int); maybe_define function tcgetattr: int tcgetattr(int, struct termios *); maybe_define function tcgetsid: pid_t tcgetsid(int); +maybe_define function tcgetwinsize: int tcgetwinsize(int, struct winsize *); maybe_define function tcsendbreak: int tcsendbreak(int, int); maybe_define function tcsetattr: int tcsetattr(int, int, const struct termios *); +maybe_define function tcsetwinsize: int tcsetwinsize(int, const struct winsize *); --- posix-2018/time.api 2025-08-26 15:59:30.201385282 +0200 +++ posix-2024/time.api 2025-08-26 14:58:27.972990151 +0200 @@ -17,22 +17,24 @@ parent struct tm struct_member tm_wday: int tm_wday; parent struct tm struct_member tm_yday: int tm_yday; parent struct tm struct_member tm_isdst: int tm_isdst; -[CX] struct timespec; -[CX] parent struct timespec struct_member tv_sec: time_t tv_sec; -[CX] parent struct timespec struct_member tv_nsec: long tv_nsec; +parent struct tm struct_member tm_gmtoff: long tm_gmtoff; +parent struct tm struct_member tm_zone: const char *tm_zone; +struct timespec; +parent struct timespec struct_member tv_sec: time_t tv_sec; +parent struct timespec struct_member tv_nsec: long tv_nsec; [CX] struct itimerspec; [CX] parent struct itimerspec struct_member it_interval: struct timespec it_interval; [CX] parent struct itimerspec struct_member it_value: struct timespec it_value; define NULL; [XSI] define CLOCKS_PER_SEC; -[MON] symbolic_constant CLOCK_MONOTONIC; +define TIME_UTC; +[CX] symbolic_constant CLOCK_MONOTONIC; [CPT] symbolic_constant CLOCK_PROCESS_CPUTIME_ID; [CX] symbolic_constant CLOCK_REALTIME; [TCT] symbolic_constant CLOCK_THREAD_CPUTIME_ID; [CX] symbolic_constant TIMER_ABSTIME; [XSI] expression getdate_err: int getdate_err; [OB] maybe_define function asctime: char *asctime(const struct tm *); -[OB CX] maybe_define function asctime_r: char *asctime_r(const struct tm *restrict, char *restrict); maybe_define function clock: clock_t clock(void); [CPT] maybe_define function clock_getcpuclockid: int clock_getcpuclockid(pid_t, clockid_t *); [CX] maybe_define function clock_getres: int clock_getres(clockid_t, struct timespec *); @@ -40,7 +42,6 @@ [CX] maybe_define function clock_nanosleep: int clock_nanosleep(clockid_t, int, const struct timespec *, struct timespec *); [CX] maybe_define function clock_settime: int clock_settime(clockid_t, const struct timespec *); [OB] maybe_define function ctime: char *ctime(const time_t *); -[OB CX] maybe_define function ctime_r: char *ctime_r(const time_t *, char *); maybe_define function difftime: double difftime(time_t, time_t); [XSI] maybe_define function getdate: struct tm *getdate(const char *); maybe_define function gmtime: struct tm *gmtime(const time_t *); @@ -58,6 +59,7 @@ [CX] maybe_define function timer_getoverrun: int timer_getoverrun(timer_t); [CX] maybe_define function timer_gettime: int timer_gettime(timer_t, struct itimerspec *); [CX] maybe_define function timer_settime: int timer_settime(timer_t, int, const struct itimerspec *restrict, struct itimerspec *restrict); +maybe_define function timespec_get: int timespec_get(struct timespec *, int); [CX] maybe_define function tzset: void tzset(void); [XSI] external daylight: int daylight; [XSI] external timezone: long timezone; --- posix-2018/trace.api 2025-08-26 15:59:30.213385373 +0200 +++ posix-2024/trace.api 2025-08-26 15:59:24.693343138 +0200 @@ -1,99 +0,0 @@ -[OB TRC] #include -[OB TRC] struct posix_trace_event_info; -[OB TRC] parent struct posix_trace_event_info struct_member posix_event_id: trace_event_id_t posix_event_id; -[OB TRC] parent struct posix_trace_event_info struct_member posix_pid: pid_t posix_pid; -[OB TRC] parent struct posix_trace_event_info struct_member posix_prog_address: void *posix_prog_address; -[OB TRC] parent struct posix_trace_event_info struct_member posix_thread_id: pthread_t posix_thread_id; -[OB TRC] parent struct posix_trace_event_info struct_member posix_timestamp: struct timespec posix_timestamp; -[OB TRC] parent struct posix_trace_event_info struct_member posix_truncation_status: int posix_truncation_status; -[OB TRC] struct posix_trace_status_info; -[OB TRC] parent struct posix_trace_status_info struct_member posix_stream_full_status: int posix_stream_full_status; -[OB TRC] parent struct posix_trace_status_info struct_member posix_stream_overrun_status: int posix_stream_overrun_status; -[OB TRC] parent struct posix_trace_status_info struct_member posix_stream_status: int posix_stream_status; -[OB TRC|OB TRL] parent struct posix_trace_status_info struct_member posix_log_full_status: int posix_log_full_status; -[OB TRC|OB TRL] parent struct posix_trace_status_info struct_member posix_log_overrun_status: int posix_log_overrun_status; -[OB TRC|OB TRL] parent struct posix_trace_status_info struct_member posix_stream_flush_error: int posix_stream_flush_error; -[OB TRC|OB TRL] parent struct posix_trace_status_info struct_member posix_stream_flush_status: int posix_stream_flush_status; -[OB TRC] symbolic_constant POSIX_TRACE_ALL_EVENTS; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_APPEND; -[OB TRC|OB TRI] symbolic_constant POSIX_TRACE_CLOSE_FOR_CHILD; -[OB TRC|OB TEF] symbolic_constant POSIX_TRACE_FILTER; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_FLUSH; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_FLUSH_START; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_FLUSH_STOP; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_FLUSHING; -[OB TRC] symbolic_constant POSIX_TRACE_FULL; -[OB TRC] symbolic_constant POSIX_TRACE_LOOP; -[OB TRC] symbolic_constant POSIX_TRACE_NO_OVERRUN; -[OB TRC|OB TRL] symbolic_constant POSIX_TRACE_NOT_FLUSHING; -[OB TRC] symbolic_constant POSIX_TRACE_NOT_FULL; -[OB TRC|OB TRI] symbolic_constant POSIX_TRACE_INHERITED; -[OB TRC] symbolic_constant POSIX_TRACE_NOT_TRUNCATED; -[OB TRC] symbolic_constant POSIX_TRACE_OVERFLOW; -[OB TRC] symbolic_constant POSIX_TRACE_OVERRUN; -[OB TRC] symbolic_constant POSIX_TRACE_RESUME; -[OB TRC] symbolic_constant POSIX_TRACE_RUNNING; -[OB TRC] symbolic_constant POSIX_TRACE_START; -[OB TRC] symbolic_constant POSIX_TRACE_STOP; -[OB TRC] symbolic_constant POSIX_TRACE_SUSPENDED; -[OB TRC] symbolic_constant POSIX_TRACE_SYSTEM_EVENTS; -[OB TRC] symbolic_constant POSIX_TRACE_TRUNCATED_READ; -[OB TRC] symbolic_constant POSIX_TRACE_TRUNCATED_RECORD; -[OB TRC] symbolic_constant POSIX_TRACE_UNNAMED_USER_EVENT; -[OB TRC] symbolic_constant POSIX_TRACE_UNTIL_FULL; -[OB TRC] symbolic_constant POSIX_TRACE_WOPID_EVENTS; -[OB TRC] typedef size_t; -[OB TRC] typedef trace_attr_t; -[OB TRC] typedef trace_event_id_t; -[OB TRC|OB TEF] typedef trace_event_set_t; -[OB TRC] typedef trace_id_t; -[OB TRC] maybe_define function posix_trace_attr_destroy: int posix_trace_attr_destroy(trace_attr_t *); -[OB TRC] maybe_define function posix_trace_attr_getclockres: int posix_trace_attr_getclockres(const trace_attr_t *, struct timespec *); -[OB TRC] maybe_define function posix_trace_attr_getcreatetime: int posix_trace_attr_getcreatetime(const trace_attr_t *, struct timespec *); -[OB TRC] maybe_define function posix_trace_attr_getgenversion: int posix_trace_attr_getgenversion(const trace_attr_t *, char *); -[OB TRC|TRI] maybe_define function posix_trace_attr_getinherited: int posix_trace_attr_getinherited(const trace_attr_t *restrict, int *restrict); -[OB TRC|TRL] maybe_define function posix_trace_attr_getlogfullpolicy: int posix_trace_attr_getlogfullpolicy(const trace_attr_t *restrict, int *restrict); -[OB TRC|TRL] maybe_define function posix_trace_attr_getlogsize: int posix_trace_attr_getlogsize(const trace_attr_t *restrict, size_t *restrict); -[OB TRC] maybe_define function posix_trace_attr_getmaxdatasize: int posix_trace_attr_getmaxdatasize(const trace_attr_t *restrict, size_t *restrict); -[OB TRC] maybe_define function posix_trace_attr_getmaxsystemeventsize: int posix_trace_attr_getmaxsystemeventsize(const trace_attr_t *restrict, size_t *restrict); -[OB TRC] maybe_define function posix_trace_attr_getmaxusereventsize: int posix_trace_attr_getmaxusereventsize(const trace_attr_t *restrict, size_t, size_t *restrict); -[OB TRC] maybe_define function posix_trace_attr_getname: int posix_trace_attr_getname(const trace_attr_t *, char *); -[OB TRC] maybe_define function posix_trace_attr_getstreamfullpolicy: int posix_trace_attr_getstreamfullpolicy(const trace_attr_t *restrict, int *restrict); -[OB TRC] maybe_define function posix_trace_attr_getstreamsize: int posix_trace_attr_getstreamsize(const trace_attr_t *restrict, size_t *restrict); -[OB TRC] maybe_define function posix_trace_attr_init: int posix_trace_attr_init(trace_attr_t *); -[OB TRC|TRI] maybe_define function posix_trace_attr_setinherited: int posix_trace_attr_setinherited(trace_attr_t *, int); -[OB TRC|TRL] maybe_define function posix_trace_attr_setlogfullpolicy: int posix_trace_attr_setlogfullpolicy(trace_attr_t *, int); -[OB TRC|TRL] maybe_define function posix_trace_attr_setlogsize: int posix_trace_attr_setlogsize(trace_attr_t *, size_t); -[OB TRC] maybe_define function posix_trace_attr_setmaxdatasize: int posix_trace_attr_setmaxdatasize(trace_attr_t *, size_t); -[OB TRC] maybe_define function posix_trace_attr_setname: int posix_trace_attr_setname(trace_attr_t *, const char *); -[OB TRC] maybe_define function posix_trace_attr_setstreamfullpolicy: int posix_trace_attr_setstreamfullpolicy(trace_attr_t *, int); -[OB TRC] maybe_define function posix_trace_attr_setstreamsize: int posix_trace_attr_setstreamsize(trace_attr_t *, size_t); -[OB TRC] maybe_define function posix_trace_clear: int posix_trace_clear(trace_id_t); -[OB TRC|TRL] maybe_define function posix_trace_close: int posix_trace_close(trace_id_t); -[OB TRC] maybe_define function posix_trace_create: int posix_trace_create(pid_t, const trace_attr_t *restrict, trace_id_t *restrict); -[OB TRC|TRL] maybe_define function posix_trace_create_withlog: int posix_trace_create_withlog(pid_t, const trace_attr_t *restrict, int, trace_id_t *restrict); -[OB TRC] maybe_define function posix_trace_event: void posix_trace_event(trace_event_id_t, const void *restrict, size_t); -[OB TRC] maybe_define function posix_trace_eventid_equal: int posix_trace_eventid_equal(trace_id_t, trace_event_id_t, trace_event_id_t); -[OB TRC] maybe_define function posix_trace_eventid_get_name: int posix_trace_eventid_get_name(trace_id_t, trace_event_id_t, char *); -[OB TRC] maybe_define function posix_trace_eventid_open: int posix_trace_eventid_open(const char *restrict, trace_event_id_t *restrict); -[OB TRC|TEF] maybe_define function posix_trace_eventset_add: int posix_trace_eventset_add(trace_event_id_t, trace_event_set_t *); -[OB TRC|TEF] maybe_define function posix_trace_eventset_del: int posix_trace_eventset_del(trace_event_id_t, trace_event_set_t *); -[OB TRC|TEF] maybe_define function posix_trace_eventset_empty: int posix_trace_eventset_empty(trace_event_set_t *); -[OB TRC|TEF] maybe_define function posix_trace_eventset_fill: int posix_trace_eventset_fill(trace_event_set_t *, int); -[OB TRC|TEF] maybe_define function posix_trace_eventset_ismember: int posix_trace_eventset_ismember(trace_event_id_t, const trace_event_set_t *restrict, int *restrict); -[OB TRC] maybe_define function posix_trace_eventtypelist_getnext_id: int posix_trace_eventtypelist_getnext_id(trace_id_t, trace_event_id_t *restrict, int *restrict); -[OB TRC] maybe_define function posix_trace_eventtypelist_rewind: int posix_trace_eventtypelist_rewind(trace_id_t); -[OB TRC|TRL] maybe_define function posix_trace_flush: int posix_trace_flush(trace_id_t); -[OB TRC] maybe_define function posix_trace_get_attr: int posix_trace_get_attr(trace_id_t, trace_attr_t *); -[OB TRC|TEF] maybe_define function posix_trace_get_filter: int posix_trace_get_filter(trace_id_t, trace_event_set_t *); -[OB TRC] maybe_define function posix_trace_get_status: int posix_trace_get_status(trace_id_t, struct posix_trace_status_info *); -[OB TRC] maybe_define function posix_trace_getnext_event: int posix_trace_getnext_event(trace_id_t, struct posix_trace_event_info *restrict, void *restrict, size_t, size_t *restrict, int *restrict); -[OB TRC|TRL] maybe_define function posix_trace_open: int posix_trace_open(int, trace_id_t *); -[OB TRC|TRL] maybe_define function posix_trace_rewind: int posix_trace_rewind(trace_id_t); -[OB TRC|TEF] maybe_define function posix_trace_set_filter: int posix_trace_set_filter(trace_id_t, const trace_event_set_t *, int); -[OB TRC] maybe_define function posix_trace_shutdown: int posix_trace_shutdown(trace_id_t); -[OB TRC] maybe_define function posix_trace_start: int posix_trace_start(trace_id_t); -[OB TRC] maybe_define function posix_trace_stop: int posix_trace_stop(trace_id_t); -[OB TRC] maybe_define function posix_trace_timedgetnext_event: int posix_trace_timedgetnext_event(trace_id_t, struct posix_trace_event_info *restrict, void *restrict, size_t, size_t *restrict, int *restrict, const struct timespec *restrict); -[OB TRC|TEF] maybe_define function posix_trace_trid_eventid_open: int posix_trace_trid_eventid_open(trace_id_t, const char *restrict, trace_event_id_t *restrict); -[OB TRC] maybe_define function posix_trace_trygetnext_event: int posix_trace_trygetnext_event(trace_id_t, struct posix_trace_event_info *restrict, void *restrict, size_t, size_t *restrict, int *restrict); --- posix-2018/ulimit.api 2025-08-26 15:59:28.765374294 +0200 +++ posix-2024/ulimit.api 2025-08-26 15:59:24.693343138 +0200 @@ -1,7 +0,0 @@ -[OB XSI] #include -[OB XSI] symbolic_constant by; -[OB XSI] symbolic_constant ulimit; -[OB XSI] symbolic_constant function; -[OB XSI] symbolic_constant UL_GETFSIZE; -[OB XSI] symbolic_constant UL_SETFSIZE; -[OB XSI] maybe_define function ulimit: long ulimit(int, ...); --- posix-2018/unistd.api 2025-08-26 15:59:31.145392505 +0200 +++ posix-2024/unistd.api 2025-08-26 14:58:27.972990151 +0200 @@ -8,6 +8,7 @@ define _POSIX_CHOWN_RESTRICTED; define _POSIX_CLOCK_SELECTION; [CPT] define _POSIX_CPUTIME; +[DC] define _POSIX_DEVICE_CONTROL; [FSC] define _POSIX_FSYNC; [IP6] define _POSIX_IPV6; define _POSIX_JOB_CONTROL; @@ -16,7 +17,7 @@ [MLR] define _POSIX_MEMLOCK_RANGE; define _POSIX_MEMORY_PROTECTION; [MSG] define _POSIX_MESSAGE_PASSING; -[MON] define _POSIX_MONOTONIC_CLOCK; +define _POSIX_MONOTONIC_CLOCK; define _POSIX_NO_TRUNC; [PIO] define _POSIX_PRIORITIZED_IO; [PS] define _POSIX_PRIORITY_SCHEDULING; @@ -46,31 +47,20 @@ define _POSIX_THREADS; define _POSIX_TIMEOUTS; define _POSIX_TIMERS; -[OB TRC] define _POSIX_TRACE; -[OB TEF] define _POSIX_TRACE_EVENT_FILTER; -[OB TRI] define _POSIX_TRACE_INHERIT; -[OB TRL] define _POSIX_TRACE_LOG; [TYM] define _POSIX_TYPED_MEMORY_OBJECTS; -[OB] define _POSIX_V6_ILP32_OFF32; -[OB] define _POSIX_V6_ILP32_OFFBIG; -[OB] define _POSIX_V6_LP64_OFF64; -[OB] define _POSIX_V6_LPBIG_OFFBIG; -optional define _POSIX_V7_ILP32_OFF32; -optional define _POSIX_V7_ILP32_OFFBIG; -optional define _POSIX_V7_LP64_OFF64; -optional define _POSIX_V7_LPBIG_OFFBIG; +[OB] define _POSIX_V7_ILP32_OFF32; +[OB] define _POSIX_V7_ILP32_OFFBIG; +[OB] define _POSIX_V7_LP64_OFF64; +[OB] define _POSIX_V7_LPBIG_OFFBIG; +optional define _POSIX_V8_ILP32_OFF32; +optional define _POSIX_V8_ILP32_OFFBIG; +optional define _POSIX_V8_LP64_OFF64; +optional define _POSIX_V8_LPBIG_OFFBIG; optional define _POSIX2_C_BIND; [CD] define _POSIX2_C_DEV; optional define _POSIX2_CHAR_TERM; -[FD] define _POSIX2_FORT_DEV; [FR] define _POSIX2_FORT_RUN; optional define _POSIX2_LOCALEDEF; -[OB BE] define _POSIX2_PBS; -[OB BE] define _POSIX2_PBS_ACCOUNTING; -[OB BE] define _POSIX2_PBS_CHECKPOINT; -[OB BE] define _POSIX2_PBS_LOCATE; -[OB BE] define _POSIX2_PBS_MESSAGE; -[OB BE] define _POSIX2_PBS_TRACK; [SD] define _POSIX2_SW_DEV; [UP] define _POSIX2_UPE; [XSI] define _XOPEN_CRYPT; @@ -78,53 +68,59 @@ [XSI] define _XOPEN_REALTIME; [XSI] define _XOPEN_REALTIME_THREADS; [XSI] define _XOPEN_SHM; -[OB XSR] define _XOPEN_STREAMS; [XSI] define _XOPEN_UNIX; [UU] define _XOPEN_UUCP; optional define _POSIX_ASYNC_IO; +optional define _POSIX_FALLOC; optional define _POSIX_PRIO_IO; optional define _POSIX_SYNC_IO; optional symbolic_constant _POSIX_TIMESTAMP_RESOLUTION; optional symbolic_constant _POSIX2_SYMLINKS; define NULL; +symbolic_constant O_CLOEXEC; +symbolic_constant O_CLOFORK; define F_OK; define R_OK; define W_OK; define X_OK; symbolic_constant _CS_PATH; -symbolic_constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS; -symbolic_constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS; -symbolic_constant _CS_POSIX_V7_ILP32_OFF32_LIBS; -symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS; -symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS; -symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_LIBS; -symbolic_constant _CS_POSIX_V7_LP64_OFF64_CFLAGS; -symbolic_constant _CS_POSIX_V7_LP64_OFF64_LDFLAGS; -symbolic_constant _CS_POSIX_V7_LP64_OFF64_LIBS; -symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS; -symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS; -symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS; -symbolic_constant _CS_POSIX_V7_THREADS_CFLAGS; -symbolic_constant _CS_POSIX_V7_THREADS_LDFLAGS; -symbolic_constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS; -symbolic_constant _CS_V7_ENV; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFF32_CFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFF32_LDFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFF32_LIBS; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_ILP32_OFFBIG_LIBS; -[OB] symbolic_constant _CS_POSIX_V6_LP64_OFF64_CFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_LP64_OFF64_LDFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_LP64_OFF64_LIBS; -[OB] symbolic_constant _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; -[OB] symbolic_constant _CS_POSIX_V6_LPBIG_OFFBIG_LIBS; -[OB] symbolic_constant _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS; -[OB] symbolic_constant _CS_V6_ENV; +symbolic_constant _CS_POSIX_V8_ILP32_OFF32_CFLAGS; +symbolic_constant _CS_POSIX_V8_ILP32_OFF32_LDFLAGS; +symbolic_constant _CS_POSIX_V8_ILP32_OFF32_LIBS; +symbolic_constant _CS_POSIX_V8_ILP32_OFFBIG_CFLAGS; +symbolic_constant _CS_POSIX_V8_ILP32_OFFBIG_LDFLAGS; +symbolic_constant _CS_POSIX_V8_ILP32_OFFBIG_LIBS; +symbolic_constant _CS_POSIX_V8_LP64_OFF64_CFLAGS; +symbolic_constant _CS_POSIX_V8_LP64_OFF64_LDFLAGS; +symbolic_constant _CS_POSIX_V8_LP64_OFF64_LIBS; +symbolic_constant _CS_POSIX_V8_LPBIG_OFFBIG_CFLAGS; +symbolic_constant _CS_POSIX_V8_LPBIG_OFFBIG_LDFLAGS; +symbolic_constant _CS_POSIX_V8_LPBIG_OFFBIG_LIBS; +symbolic_constant _CS_POSIX_V8_THREADS_CFLAGS; +symbolic_constant _CS_POSIX_V8_THREADS_LDFLAGS; +symbolic_constant _CS_POSIX_V8_WIDTH_RESTRICTED_ENVS; +symbolic_constant _CS_V8_ENV; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFF32_LIBS; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_ILP32_OFFBIG_LIBS; +[OB] symbolic_constant _CS_POSIX_V7_LP64_OFF64_CFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_LP64_OFF64_LDFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_LP64_OFF64_LIBS; +[OB] symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS; +[OB] symbolic_constant _CS_POSIX_V7_THREADS_CFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_THREADS_LDFLAGS; +[OB] symbolic_constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS; +[OB] symbolic_constant _CS_V7_ENV; define SEEK_CUR; define SEEK_END; define SEEK_SET; +define SEEK_HOLE; +define SEEK_DATA; [XSI] symbolic_constant F_LOCK; [XSI] symbolic_constant F_TEST; [XSI] symbolic_constant F_TLOCK; @@ -133,6 +129,7 @@ symbolic_constant _PC_ALLOC_SIZE_MIN; symbolic_constant _PC_ASYNC_IO; symbolic_constant _PC_CHOWN_RESTRICTED; +symbolic_constant _PC_FALLOC; symbolic_constant _PC_FILESIZEBITS; symbolic_constant _PC_LINK_MAX; symbolic_constant _PC_MAX_CANON; @@ -148,20 +145,14 @@ symbolic_constant _PC_REC_XFER_ALIGN; symbolic_constant _PC_SYMLINK_MAX; symbolic_constant _PC_SYNC_IO; +symbolic_constant _PC_TEXTDOMAIN_MAX; symbolic_constant _PC_TIMESTAMP_RESOLUTION; symbolic_constant _PC_VDISABLE; symbolic_constant _SC_2_C_BIND; symbolic_constant _SC_2_C_DEV; symbolic_constant _SC_2_CHAR_TERM; -symbolic_constant _SC_2_FORT_DEV; symbolic_constant _SC_2_FORT_RUN; symbolic_constant _SC_2_LOCALEDEF; -symbolic_constant _SC_2_PBS; -symbolic_constant _SC_2_PBS_ACCOUNTING; -symbolic_constant _SC_2_PBS_CHECKPOINT; -symbolic_constant _SC_2_PBS_LOCATE; -symbolic_constant _SC_2_PBS_MESSAGE; -symbolic_constant _SC_2_PBS_TRACK; symbolic_constant _SC_2_SW_DEV; symbolic_constant _SC_2_UPE; symbolic_constant _SC_2_VERSION; @@ -183,6 +174,7 @@ symbolic_constant _SC_COLL_WEIGHTS_MAX; symbolic_constant _SC_CPUTIME; symbolic_constant _SC_DELAYTIMER_MAX; +symbolic_constant _SC_DEVICE_CONTROL; symbolic_constant _SC_EXPR_NEST_MAX; symbolic_constant _SC_FSYNC; symbolic_constant _SC_GETGR_R_SIZE_MAX; @@ -202,6 +194,9 @@ symbolic_constant _SC_MQ_OPEN_MAX; symbolic_constant _SC_MQ_PRIO_MAX; symbolic_constant _SC_NGROUPS_MAX; +symbolic_constant _SC_NPROCESSORS_CONF; +symbolic_constant _SC_NPROCESSORS_ONLN; +symbolic_constant _SC_NSIG; symbolic_constant _SC_OPEN_MAX; symbolic_constant _SC_PAGE_SIZE; symbolic_constant _SC_PAGESIZE; @@ -246,32 +241,23 @@ symbolic_constant _SC_TIMEOUTS; symbolic_constant _SC_TIMER_MAX; symbolic_constant _SC_TIMERS; -symbolic_constant _SC_TRACE; -symbolic_constant _SC_TRACE_EVENT_FILTER; -symbolic_constant _SC_TRACE_EVENT_NAME_MAX; -symbolic_constant _SC_TRACE_INHERIT; -symbolic_constant _SC_TRACE_LOG; -symbolic_constant _SC_TRACE_NAME_MAX; -symbolic_constant _SC_TRACE_SYS_MAX; -symbolic_constant _SC_TRACE_USER_EVENT_MAX; symbolic_constant _SC_TTY_NAME_MAX; symbolic_constant _SC_TYPED_MEMORY_OBJECTS; symbolic_constant _SC_TZNAME_MAX; -symbolic_constant _SC_V7_ILP32_OFF32; -symbolic_constant _SC_V7_ILP32_OFFBIG; -symbolic_constant _SC_V7_LP64_OFF64; -symbolic_constant _SC_V7_LPBIG_OFFBIG; -[OB] symbolic_constant _SC_V6_ILP32_OFF32; -[OB] symbolic_constant _SC_V6_ILP32_OFFBIG; -[OB] symbolic_constant _SC_V6_LP64_OFF64; -[OB] symbolic_constant _SC_V6_LPBIG_OFFBIG; +symbolic_constant _SC_V8_ILP32_OFF32; +symbolic_constant _SC_V8_ILP32_OFFBIG; +symbolic_constant _SC_V8_LP64_OFF64; +symbolic_constant _SC_V8_LPBIG_OFFBIG; +[OB] symbolic_constant _SC_V7_ILP32_OFF32; +[OB] symbolic_constant _SC_V7_ILP32_OFFBIG; +[OB] symbolic_constant _SC_V7_LP64_OFF64; +[OB] symbolic_constant _SC_V7_LPBIG_OFFBIG; symbolic_constant _SC_VERSION; symbolic_constant _SC_XOPEN_CRYPT; symbolic_constant _SC_XOPEN_ENH_I18N; symbolic_constant _SC_XOPEN_REALTIME; symbolic_constant _SC_XOPEN_REALTIME_THREADS; symbolic_constant _SC_XOPEN_SHM; -symbolic_constant _SC_XOPEN_STREAMS; symbolic_constant _SC_XOPEN_UNIX; symbolic_constant _SC_XOPEN_UUCP; symbolic_constant _SC_XOPEN_VERSION; @@ -279,6 +265,7 @@ symbolic_constant STDIN_FILENO; symbolic_constant STDOUT_FILENO; symbolic_constant _POSIX_VDISABLE; +symbolic_constant POSIX_CLOSE_RESTART; typedef size_t; typedef ssize_t; typedef uid_t; @@ -295,8 +282,9 @@ [XSI] maybe_define function crypt: char *crypt(const char *, const char *); maybe_define function dup: int dup(int); maybe_define function dup2: int dup2(int, int); -maybe_define function _exit: void _exit(int); -[XSI] maybe_define function encrypt: void encrypt(char [64], int); +maybe_define function dup3: int dup3(int, int, int); +maybe_define function _exit: _Noreturn void _exit(int); +[OB XSI] maybe_define function encrypt: void encrypt(char [64], int); maybe_define function execl: int execl(const char *, const char *, ...); maybe_define function execle: int execle(const char *, const char *, ...); maybe_define function execlp: int execlp(const char *, const char *, ...); @@ -309,12 +297,14 @@ maybe_define function fchownat: int fchownat(int, const char *, uid_t, gid_t, int); [SIO] maybe_define function fdatasync: int fdatasync(int); maybe_define function fexecve: int fexecve(int, char *const [], char *const []); +maybe_define function _Fork: pid_t _Fork(void); maybe_define function fork: pid_t fork(void); maybe_define function fpathconf: long fpathconf(int, int); [FSC] maybe_define function fsync: int fsync(int); maybe_define function ftruncate: int ftruncate(int, off_t); maybe_define function getcwd: char *getcwd(char *, size_t); maybe_define function getegid: gid_t getegid(void); +maybe_define function getentropy: int getentropy(void *, size_t); maybe_define function geteuid: uid_t geteuid(void); maybe_define function getgid: gid_t getgid(void); maybe_define function getgroups: int getgroups(int, gid_t []); @@ -327,6 +317,8 @@ maybe_define function getpgrp: pid_t getpgrp(void); maybe_define function getpid: pid_t getpid(void); maybe_define function getppid: pid_t getppid(void); +[XSI] maybe_define function getresgid: int getresgid(gid_t *restrict, gid_t *restrict, gid_t *restrict); +[XSI] maybe_define function getresuid: int getresuid(uid_t *restrict, uid_t *restrict, uid_t *restrict); maybe_define function getsid: pid_t getsid(pid_t); maybe_define function getuid: uid_t getuid(void); maybe_define function isatty: int isatty(int); @@ -339,6 +331,8 @@ maybe_define function pathconf: long pathconf(const char *, int); maybe_define function pause: int pause(void); maybe_define function pipe: int pipe(int [2]); +maybe_define function pipe2: int pipe2(int [2], int); +maybe_define function posix_close: int posix_close(int, int); maybe_define function pread: ssize_t pread(int, void *, size_t, off_t); maybe_define function pwrite: ssize_t pwrite(int, const void *, size_t, off_t); maybe_define function read: ssize_t read(int, void *, size_t); @@ -349,8 +343,9 @@ maybe_define function seteuid: int seteuid(uid_t); maybe_define function setgid: int setgid(gid_t); maybe_define function setpgid: int setpgid(pid_t, pid_t); -[OB XSI] maybe_define function setpgrp: pid_t setpgrp(void); [XSI] maybe_define function setregid: int setregid(gid_t, gid_t); +[XSI] maybe_define function setresgid: int setresgid(gid_t, gid_t, gid_t); +[XSI] maybe_define function setresuid: int setresuid(uid_t, uid_t, uid_t); [XSI] maybe_define function setreuid: int setreuid(uid_t, uid_t); maybe_define function setsid: pid_t setsid(void); maybe_define function setuid: int setuid(uid_t); @@ -372,6 +367,7 @@ external opterr: int opterr; external optind: int optind; external optopt: int optopt; +optional include fcntl: fcntl.h; optional include stddef: stddef.h; optional include stdint: stdint.h; optional include stdio: stdio.h; --- posix-2018/utime.api 2025-08-26 15:59:29.105376896 +0200 +++ posix-2024/utime.api 2025-08-26 15:59:24.693343138 +0200 @@ -1,6 +0,0 @@ -[OB] #include -[OB] struct utimbuf; -[OB] parent struct utimbuf struct_member actime: time_t actime; -[OB] parent struct utimbuf struct_member modtime: time_t modtime; -[OB] typedef time_t; -[OB] maybe_define function utime: int utime(const char *, const struct utimbuf *); --- posix-2018/wchar.api 2025-08-26 15:59:30.153384914 +0200 +++ posix-2024/wchar.api 2025-08-26 14:58:27.972990151 +0200 @@ -5,7 +5,6 @@ typedef size_t; [CX] typedef va_list; typedef wchar_t; -[OB XSI] typedef wctype_t; typedef wint_t; incomplete struct tm; define WCHAR_MAX; @@ -29,18 +28,6 @@ maybe_define function fwscanf: int fwscanf(FILE *restrict, const wchar_t *restrict, ...); maybe_define function getwc: wint_t getwc(FILE *); maybe_define function getwchar: wint_t getwchar(void); -[OB XSI] maybe_define function iswalnum: int iswalnum(wint_t); -[OB XSI] maybe_define function iswalpha: int iswalpha(wint_t); -[OB XSI] maybe_define function iswcntrl: int iswcntrl(wint_t); -[OB XSI] maybe_define function iswctype: int iswctype(wint_t, wctype_t); -[OB XSI] maybe_define function iswdigit: int iswdigit(wint_t); -[OB XSI] maybe_define function iswgraph: int iswgraph(wint_t); -[OB XSI] maybe_define function iswlower: int iswlower(wint_t); -[OB XSI] maybe_define function iswprint: int iswprint(wint_t); -[OB XSI] maybe_define function iswpunct: int iswpunct(wint_t); -[OB XSI] maybe_define function iswspace: int iswspace(wint_t); -[OB XSI] maybe_define function iswupper: int iswupper(wint_t); -[OB XSI] maybe_define function iswxdigit: int iswxdigit(wint_t); maybe_define function mbrlen: size_t mbrlen(const char *restrict, size_t, mbstate_t *restrict); maybe_define function mbrtowc: size_t mbrtowc(wchar_t *restrict, const char *restrict, size_t, mbstate_t *restrict); maybe_define function mbsinit: int mbsinit(const mbstate_t *); @@ -51,8 +38,6 @@ maybe_define function putwchar: wint_t putwchar(wchar_t); maybe_define function swprintf: int swprintf(wchar_t *restrict, size_t, const wchar_t *restrict, ...); maybe_define function swscanf: int swscanf(const wchar_t *restrict, const wchar_t *restrict, ...); -[OB XSI] maybe_define function towlower: wint_t towlower(wint_t); -[OB XSI] maybe_define function towupper: wint_t towupper(wint_t); maybe_define function ungetwc: wint_t ungetwc(wint_t, FILE *); maybe_define function vfwprintf: int vfwprintf(FILE *restrict, const wchar_t *restrict, va_list); maybe_define function vfwscanf: int vfwscanf(FILE *restrict, const wchar_t *restrict, va_list); @@ -74,6 +59,8 @@ maybe_define function wcscspn: size_t wcscspn(const wchar_t *, const wchar_t *); [CX] maybe_define function wcsdup: wchar_t *wcsdup(const wchar_t *); maybe_define function wcsftime: size_t wcsftime(wchar_t *restrict, size_t, const wchar_t *restrict, const struct tm *restrict); +[CX] maybe_define function wcslcat: size_t wcslcat(wchar_t *restrict, const wchar_t *restrict, size_t); +[CX] maybe_define function wcslcpy: size_t wcslcpy(wchar_t *restrict, const wchar_t *restrict, size_t); maybe_define function wcslen: size_t wcslen(const wchar_t *); [CX] maybe_define function wcsncasecmp: int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); [CX] maybe_define function wcsncasecmp_l: int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); @@ -99,7 +86,6 @@ maybe_define function wcsxfrm: size_t wcsxfrm(wchar_t *restrict, const wchar_t *restrict, size_t); [CX] maybe_define function wcsxfrm_l: size_t wcsxfrm_l(wchar_t *restrict, const wchar_t *restrict, size_t, locale_t); maybe_define function wctob: int wctob(wint_t); -[OB XSI] maybe_define function wctype: wctype_t wctype(const char *); [XSI] maybe_define function wcwidth: int wcwidth(wchar_t); maybe_define function wmemchr: wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); maybe_define function wmemcmp: int wmemcmp(const wchar_t *, const wchar_t *, size_t);