# additional includes to supply via `-I` arguments includes: [] # paths relative to includedir whose files we don't want to parse themselves, # but whose content we want to analyze if they're included from another header. base_skipped_directories: - bits # paths relative to includedir that we want to completely ignore, even for transitive includes base_ignored_directories: - finclude - gnu # same as the two above, but for files base_skipped_files: [] base_ignored_files: [] # record mapping from base (glibc) to mlibc map_record_to_struct: - "__SOCKADDR_ARG": "struct sockaddr *restrict" - "__CONST_SOCKADDR_ARG": "const struct sockaddr *" # struct equivalence mapping from base (glibc) to mlibc equivalent_structs: - "struct _IO_FILE": "struct __mlibc_file_base" - "__mbstate_t": "struct __mlibc_mbstate" - "cnd_t": "struct __mlibc_cond" - "mtx_t": "struct __mlibc_mutex" - "struct __locale_struct": "void" - "pthread_mutexattr_t": "struct __mlibc_mutexattr" - "pthread_mutex_t": "struct __mlibc_mutex" - "pthread_condattr_t": "struct __mlibc_condattr" - "pthread_barrierattr_t": "struct __mlibc_barrierattr" - "pthread_rwlockattr_t": "struct __mlibc_rwlockattr" - "pthread_rwlock_t": "struct __mlibc_fair_rwlock" - "union pthread_attr_t": "struct __mlibc_threadattr" - "pthread_barrier_t": "struct __mlibc_barrier" - "pthread_cond_t": "struct __mlibc_cond" - "__sigset_t": "sigset_t" - "struct ucontext_t": "struct __ucontext" - "struct __dirstream": "struct __mlibc_dir_struct" - "sem_t": "struct sem_" - "struct stat64": "struct stat" - "struct msqid64_ds": "struct msqid_ds" - "struct msqid_ds": "struct msqid64_ds" - "struct rlimit64": "struct rlimit" - "glob_t": "struct glob_t" - "stack_t": "struct __stack" - "__useconds_t": "useconds_t" # files to ignore, relative to includedir ignored_files: - math.h - tgmath.h - regexp.h - sys/asm.h - sys/elf.h - sys/vm86.h ignored_structs: # structs to ignore because we expose the kernel layout - fd_set - semid_ds # libc-level constructs that are allowed to differ, and probably do - ifaddrs - lastlog - regmatch_t - sem_t - sigevent - utmp - utmpx ignored_typedefs: # opaque structs where users can't rely on any particular layout - cnd_t - fpos_t - jmp_buf - mtx_t - pthread_attr_t - pthread_barrier_t - pthread_cond_t - pthread_condattr_t - pthread_mutex_t - pthread_mutexattr_t - pthread_rwlock_t - pthread_rwlockattr_t - sigjmp_buf - wordexp_t # glibc skill issue: regoff_t should be at least ptrdiff_t or ssize_t-sized, but glibc uses int - regmatch_t # macros we ignore for being libc-level constructs or being allowed to diverge ignored_macros: - AT_XPIPE - AT_OPENFILES - AT_FS_SERVER - AT_MBUS_SERVER - _Complex_I - FTW_F - FTW_D - FTW_DNR - FTW_DP - FTW_NS - FTW_SL - FTW_SLN - FTW_PHYS - FTW_MOUNT - FTW_DEPTH - FTW_CHDIR - FTW_CONTINUE - WRDE_APPEND - WRDE_DOOFFS - WRDE_NOCMD - WRDE_REUSE - WRDE_SHOWERR - WRDE_UNDEF - WRDE_SUCCESS - WRDE_BADCHAR - WRDE_BADVAL - WRDE_CMDSUB - WRDE_NOSPACE - WRDE_SYNTAX - PF_MAX - SOMAXCONN - IPPROTO_MAX - FOPEN_MAX - FILENAME_MAX - TMP_MAX - LINE_MAX - CHARCLASS_NAME_MAX - RE_DUP_MAX - SIGRTMIN - L_ctermid - L_tmpnam - _IOFBF - _IOLBF - _IONBF - _PATH_DEFPATH - _PATH_STDPATH - _PATH_VARDB - _POSIX_OPEN_MAX - PTHREAD_DESTRUCTOR_ITERATIONS - PTHREAD_STACK_MIN - MINSIGSTKSZ - SIGSTKSZ - _PC_FILESIZEBITS - _PC_SYMLINK_MAX - NL_ARGMAX - MB_LEN_MAX - ABDAY_1 - ABDAY_2 - ABDAY_3 - ABDAY_4 - ABDAY_5 - ABDAY_6 - ABDAY_7 - DAY_1 - DAY_2 - DAY_3 - DAY_4 - DAY_5 - DAY_6 - DAY_7 - ABMON_1 - ABMON_2 - ABMON_3 - ABMON_4 - ABMON_5 - ABMON_6 - ABMON_7 - ABMON_8 - ABMON_9 - ABMON_10 - ABMON_11 - ABMON_12 - MON_1 - MON_2 - MON_3 - MON_4 - MON_5 - MON_6 - MON_7 - MON_8 - MON_9 - MON_10 - MON_11 - MON_12 - AM_STR - PM_STR - D_T_FMT - D_FMT - T_FMT - T_FMT_AMPM - ERA - ERA_D_FMT - ALT_DIGITS - ERA_D_T_FMT - ERA_T_FMT - CODESET - CRNCYSTR - RADIXCHAR - DECIMAL_POINT - THOUSEP - THOUSANDS_SEP - YESEXPR - NOEXPR - LC_ALL - LC_COLLATE - LC_CTYPE - LC_MONETARY - LC_NUMERIC - LC_TIME - LC_MESSAGES - LC_MEASUREMENT - LC_GLOBAL_LOCALE - LC_CTYPE_MASK - LC_NUMERIC_MASK - LC_TIME_MASK - LC_COLLATE_MASK - LC_MONETARY_MASK - LC_MESSAGES_MASK - LC_MEASUREMENT_MASK - LC_ALL_MASK - AI_PASSIVE - AI_CANONNAME - AI_NUMERICHOST - AI_V4MAPPED - AI_ALL - AI_ADDRCONFIG - AI_NUMERICSERV - NI_NOFQDN - NI_NUMERICHOST - NI_NAMEREQD - NI_NUMERICSCOPE - NI_DGRAM - NI_NUMERICSERV - NI_MAXSERV - NI_IDN - NI_IDN_USE_STD3_ASCII_RULES - NI_MAXHOST - EAI_AGAIN - EAI_BADFLAGS - EAI_FAIL - EAI_FAMILY - EAI_MEMORY - EAI_NONAME - EAI_SERVICE - EAI_SOCKTYPE - EAI_SYSTEM - EAI_OVERFLOW - EAI_NODATA - EAI_ADDRFAMILY - GLOB_APPEND - GLOB_DOOFFS - GLOB_ERR - GLOB_MARK - GLOB_NOCHECK - GLOB_NOESCAPE - GLOB_NOSORT - GLOB_PERIOD - GLOB_TILDE - GLOB_TILDE_CHECK - GLOB_BRACE - GLOB_NOMAGIC - GLOB_ALTDIRFUNC - GLOB_ONLYDIR - GLOB_MAGCHAR - GLOB_ABORTED - GLOB_NOMATCH - GLOB_NOSPACE - GLOB_NOSYS - BUFSIZ - F_LOCK - F_TEST - F_TLOCK - F_ULOCK - O_LARGEFILE - FSETLOCKING_INTERNAL - FSETLOCKING_BYCALLER - FSETLOCKING_QUERY - NSS_BUFLEN_PASSWD # enum members whose value should not be dependended on ignored_enum_constants: - thrd_timedout - thrd_busy - thrd_error - thrd_nomem # structs that would get ignored by default (with leading double underscores) that we # don't actually want to get ignored forced_structs: - "__mlibc_thread_data" - "__mlibc_threadattr" - "__mlibc_mutex" - "__mlibc_mutexattr" - "__mlibc_cond" - "__mlibc_condattr" - "__ucontext" forced_typedefs: - "__ucontext"