assert_fail=func
func.assert_fail.args=4
func.assert_fail.arg.0=const char *,assertion
func.assert_fail.arg.1=const char *,file
func.assert_fail.arg.2=unsigned int,line
func.assert_fail.arg.3=const char *,function
func.assert_fail.noreturn=true
func.assert_fail.ret=void

tputs=func
func.tputs.args=3
func.tputs.arg.0=const char *,str
func.tputs.arg.1=int,affcnt
func.tputs.arg.2=void *,putc
func.tputs.ret=int

_exit=func
func._exit.args=1
func._exit.arg.0=int,status
func._exit.noreturn=true
func._exit.ret=void

_Exit=func
func._Exit.args=1
func._Exit.arg.0=int,status
func._Exit.noreturn=true
func._Exit.ret=void

libc_init=func
func.libc_init.args=3
func.libc_init.arg.0=int,argc
func.libc_init.arg.1=char **,argv
func.libc_init.arg.2=char **,envp
func.libc_init.noreturn=true
func.libc_init.ret=void

libc_init_array=func
func.libc_init_array.args=0
func.libc_init_array.ret=void

libc_start_main=func
func.libc_start_main.args=7
func.libc_start_main.arg.0=func,main
func.libc_start_main.arg.1=int,argc
func.libc_start_main.arg.2=char **,ubp_av
func.libc_start_main.arg.3=func,init
func.libc_start_main.arg.4=func,fini
func.libc_start_main.arg.5=func,rtld_fini
func.libc_start_main.arg.6=void *,stack_end
func.libc_start_main.noreturn=true
func.libc_start_main.ret=int

uClibc_main=func
func.uClibc_main.args=7
func.uClibc_main.arg.0=func,main
func.uClibc_main.arg.1=int,argc
func.uClibc_main.arg.2=char **,argv
func.uClibc_main.arg.3=func,app_init
func.uClibc_main.arg.4=func,app_fini
func.uClibc_main.arg.5=func,rtld_fini
func.uClibc_main.arg.6=void *,stack_end
func.uClibc_main.noreturn=true
func.uClibc_main.ret=int

abort=func
func.abort.args=0
func.abort.noreturn=true
func.abort.ret=void

xalloc_die=func
func.xalloc_die.args=0
func.xalloc_die.noreturn=true
func.xalloc_die.ret=void

atexit=func
func.atexit.args=1
func.atexit.arg.0=func,function
func.atexit.ret=int

exit=func
func.exit.args=1
func.exit.arg.0=int,status
func.exit.noreturn=true
func.exit.ret=void

access=func
func.access.args=2
func.access.arg.0=const char *,path
func.access.arg.1=int,mode
func.access.ret=int

prctl=func
func.prctl.args=5
func.prctl.arg.0=int,option
func.prctl.arg.1=unsigned long,v2
func.prctl.arg.2=unsigned long,v3
func.prctl.arg.3=unsigned long,v4
func.prctl.arg.4=unsigned long,v5
func.prctl.ret=int

sigaction=func
func.sigaction.args=3
func.sigaction.arg.0=int,signum
func.sigaction.arg.1=const struct sigaction *,act
func.sigaction.arg.2=struct sigaction *,oldact
func.sigaction.ret=int

select=func
func.select.args=5
func.select.arg.0=int,nfds
func.select.arg.1=fd_set *,readfds
func.select.arg.2=fd_set *,writefds
func.select.arg.3=fd_set *,exceptfds
func.select.arg.4=struct timeval *,timeout
func.select.ret=int

nanosleep=func
func.nanosleep.args=2
func.nanosleep.arg.0=const struct timespec *,req
func.nanosleep.arg.1=struct timespec *,rem
func.nanosleep.ret=int

getsockname=func
func.getsockname.args=3
func.getsockname.arg.0=int,sockfd
func.getsockname.arg.1=struct sockaddr *,addr
func.getsockname.arg.2=socklen_t *,addrlen
func.getsockname.ret=int

getsockopt=func
func.getsockopt.args=5
func.getsockopt.arg.0=int,sockfd
func.getsockopt.arg.1=int,level
func.getsockopt.arg.2=int,optname
func.getsockopt.arg.3=void *,optval
func.getsockopt.arg.4=socklen_t *,optlen
func.getsockopt.ret=int

setsockopt=func
func.setsockopt.args=5
func.setsockopt.arg.0=int,sockfd
func.setsockopt.arg.1=int,level
func.setsockopt.arg.2=int,optname
func.setsockopt.arg.3=void *,optval
func.setsockopt.arg.4=socklen_t,optlen
func.setsockopt.ret=int

waitpid=func
func.waitpid.args=3
func.waitpid.arg.0=pid_t,pid
func.waitpid.arg.1=int *,wstatus
func.waitpid.arg.2=int,options
func.waitpid.ret=pid_t

wait=func
func.wait.args=1
func.wait.arg.0=int *,wstatus
func.wait.ret=pid_t

waitid=func
func.waitid.args=4
func.waitid.arg.0=idtype_t,idtype
func.waitid.arg.1=id_t,id
func.waitid.arg.2=siginfo_t *,infop
func.waitid.arg.3=int,options
func.waitid.ret=int

__bzero=func
func.__bzero.args=2
func.__bzero.arg.0=void *,s
func.__bzero.arg.1=size_t,n
func.__bzero.ret=void

__stack_chk_fail=func
func.__stack_chk_fail.args=0
func.__stack_chk_fail.noreturn=true
func.__stack_chk_fail.ret=void

acl_free=func
func.acl_free.args=1
func.acl_free.arg.0=void *,obj_p
func.acl_free.ret=int

recvfrom=func
func.recvfrom.args=4
func.recvfrom.arg.0=int,socket
func.recvfrom.arg.1=void *,buffer
func.recvfrom.arg.2=size_t,length
func.recvfrom.arg.3=int,flags
func.recvfrom.ret=ssize_t

NSString=struct
struct.NSString=p0,p1,str,len
struct.NSString.p0=void *,0,0
struct.NSString.p0.meta=4
struct.NSString.p1=size_t,0,0
struct.NSString.p1.meta=4
struct.NSString.len=int,0,0
struct.NSString.len.meta=4
struct.NSString.str=char *,0,0
struct.NSString.str.meta=4

objc_msgSend=func
func.objc_msgSend.args=3
func.objc_msgSend.arg.0=void *,self
func.objc_msgSend.arg.1=char *,op
func.objc_msgSend.arg.2=,...
func.objc_msgSend.ret=void *

objc_msgSendSuper2=func
func.objc_msgSendSuper2.args=3
func.objc_msgSendSuper2.arg.0=void *,super
func.objc_msgSendSuper2.arg.1=char *,op
func.objc_msgSendSuper2.arg.2=,...
func.objc_msgSendSuper2.ret=void *

objc_storeStrong=func
func.objc_storeStrong.args=2
func.objc_storeStrong.arg.0=void **,location
func.objc_storeStrong.arg.1=void *,obj
func.objc_storeStrong.ret=void

objc_release=func
func.objc_release.args=1
func.objc_release.arg.0=void *,instance
func.objc_release.ret=void

objc_retain=func
func.objc_retain.args=1
func.objc_retain.arg.0=void *,obj
func.objc_retain.ret=void *

objc_retainAutoreleasedReturnValue=func
func.objc_retainAutoreleasedReturnValue.args=1
func.objc_retainAutoreleasedReturnValue.arg.0=void *,obj
func.objc_retainAutoreleasedReturnValue.ret=void *

objc_enumerationMutation=func
func.objc_enumerationMutation.args=1
func.objc_enumerationMutation.arg.0=void *,instance
func.objc_enumerationMutation.ret=void

# assert.h: `assert` calls `__assert_rtn(__func__, __FILE__, __LINE__, #e)`, declared in
# _assert.h as `void __assert_rtn(const char *, const char *, int, const char *) __dead2`.
# (SDK usr/include; radare2's `assert_rtn` named the arguments in glibc's order.)

__assert_rtn=func
func.__assert_rtn.args=4
func.__assert_rtn.arg.0=const char *,function
func.__assert_rtn.arg.1=const char *,file
func.__assert_rtn.arg.2=int,line
func.__assert_rtn.arg.3=const char *,assertion
func.__assert_rtn.noreturn=true
func.__assert_rtn.ret=void

# _ctype.h (SDK usr/include): `int __maskrune(__darwin_ct_rune_t, unsigned long)` and
# `__darwin_ct_rune_t __tolower(__darwin_ct_rune_t)`, where __darwin_ct_rune_t is `int`
# (i386/_types.h, arm/_types.h); sys/errno.h: `extern int * __error(void)`, errno's address;
# _wchar.h: `int wcwidth(wchar_t)`.

__maskrune=func
func.__maskrune.args=2
func.__maskrune.arg.0=int,c
func.__maskrune.arg.1=unsigned long,f
func.__maskrune.ret=int

__tolower=func
func.__tolower.args=1
func.__tolower.arg.0=int,c
func.__tolower.ret=int

__error=func
func.__error.args=0
func.__error.ret=int *

wcwidth=func
func.wcwidth.args=1
func.wcwidth.arg.0=wchar_t,c
func.wcwidth.ret=int

# fts_new.h, reached through fts.h (SDK usr/include; fts(3)). FTS and FTSENT are the
# header's typedef names, laid out nowhere here; `compar` is the header's function pointer,
# passed as `void *` as `tputs` does, since the table spells no function pointer.

fts_open=func
func.fts_open.args=3
func.fts_open.arg.0=char * const *,path_argv
func.fts_open.arg.1=int,options
func.fts_open.arg.2=void *,compar
func.fts_open.ret=FTS *

fts_read=func
func.fts_read.args=1
func.fts_read.arg.0=FTS *,ftsp
func.fts_read.ret=FTSENT *

fts_children=func
func.fts_children.args=2
func.fts_children.arg.0=FTS *,ftsp
func.fts_children.arg.1=int,options
func.fts_children.ret=FTSENT *

fts_set=func
func.fts_set.args=3
func.fts_set.arg.0=FTS *,ftsp
func.fts_set.arg.1=FTSENT *,f
func.fts_set.arg.2=int,options
func.fts_set.ret=int

fts_close=func
func.fts_close.args=1
func.fts_close.arg.0=FTS *,ftsp
func.fts_close.ret=int

# sys/acl.h (SDK usr/include; acl(3)): acl_t, acl_entry_t, acl_permset_t and acl_flagset_t
# are pointers to `struct _acl`, `_acl_entry`, `_acl_permset` and `_acl_flagset`; acl_type_t,
# acl_tag_t, acl_perm_t and acl_flag_t are enums, passed as 32-bit integers.

acl_get_entry=func
func.acl_get_entry.args=3
func.acl_get_entry.arg.0=struct _acl *,acl
func.acl_get_entry.arg.1=int,entry_id
func.acl_get_entry.arg.2=struct _acl_entry **,entry_p
func.acl_get_entry.ret=int

acl_get_link_np=func
func.acl_get_link_np.args=2
func.acl_get_link_np.arg.0=const char *,path_p
func.acl_get_link_np.arg.1=unsigned int,type
func.acl_get_link_np.ret=struct _acl *

acl_get_tag_type=func
func.acl_get_tag_type.args=2
func.acl_get_tag_type.arg.0=struct _acl_entry *,entry_d
func.acl_get_tag_type.arg.1=unsigned int *,tag_type_p
func.acl_get_tag_type.ret=int

acl_get_qualifier=func
func.acl_get_qualifier.args=1
func.acl_get_qualifier.arg.0=struct _acl_entry *,entry_d
func.acl_get_qualifier.ret=void *

acl_get_permset=func
func.acl_get_permset.args=2
func.acl_get_permset.arg.0=struct _acl_entry *,entry_d
func.acl_get_permset.arg.1=struct _acl_permset **,permset_p
func.acl_get_permset.ret=int

acl_get_perm_np=func
func.acl_get_perm_np.args=2
func.acl_get_perm_np.arg.0=struct _acl_permset *,permset_d
func.acl_get_perm_np.arg.1=unsigned int,perm
func.acl_get_perm_np.ret=int

acl_get_flagset_np=func
func.acl_get_flagset_np.args=2
func.acl_get_flagset_np.arg.0=void *,obj_p
func.acl_get_flagset_np.arg.1=struct _acl_flagset **,flagset_p
func.acl_get_flagset_np.ret=int

acl_get_flag_np=func
func.acl_get_flag_np.args=2
func.acl_get_flag_np.arg.0=struct _acl_flagset *,flagset_d
func.acl_get_flag_np.arg.1=unsigned int,flag
func.acl_get_flag_np.ret=int

# sys/xattr.h (SDK usr/include; getxattr(2)): `u_int32_t position` is unsigned int.

getxattr=func
func.getxattr.args=6
func.getxattr.arg.0=const char *,path
func.getxattr.arg.1=const char *,name
func.getxattr.arg.2=void *,value
func.getxattr.arg.3=size_t,size
func.getxattr.arg.4=unsigned int,position
func.getxattr.arg.5=int,options
func.getxattr.ret=ssize_t

# unistd.h (SDK usr/include; strtofflags(3)): `char *fflagstostr(unsigned long)`;
# uuid/uuid.h (uuid(3)): `void uuid_unparse_upper(const uuid_t uu, uuid_string_t out)`, a
# uuid_t being `unsigned char[16]` and a uuid_string_t `char[37]`.

fflagstostr=func
func.fflagstostr.args=1
func.fflagstostr.arg.0=unsigned long,flags
func.fflagstostr.ret=char *

uuid_unparse_upper=func
func.uuid_unparse_upper.args=2
func.uuid_unparse_upper.arg.0=const unsigned char *,uu
func.uuid_unparse_upper.arg.1=char *,out
func.uuid_unparse_upper.ret=void
