Auto merge of #2902 - beetrees:apple-attrlist, r=JohnTitor

apple: Add the attrlist set of functions

Add the attrlist set of functions for apple platforms.
This commit is contained in:
bors 2022-09-09 12:46:50 +00:00
commit fb16d18481
3 changed files with 379 additions and 1 deletions

View file

@ -387,7 +387,7 @@ fn test_apple(target: &str) {
// FIXME: this type has the wrong ABI
"max_align_t" if i686 => true,
// Can't return an array from a C function.
"uuid_t" => true,
"uuid_t" | "vol_capabilities_set_t" => true,
_ => false,
});
cfg.generate("../src/lib.rs", "main.rs");

View file

@ -71,6 +71,88 @@ ATF_COM
ATF_PERM
ATF_PUBL
ATF_USETRAILERS
ATTR_BIT_MAP_COUNT
ATTR_CMNEXT_CLONEID
ATTR_CMNEXT_EXT_FLAGS
ATTR_CMNEXT_LINKID
ATTR_CMNEXT_NOFIRMLINKPATH
ATTR_CMNEXT_PRIVATESIZE
ATTR_CMNEXT_REALDEVID
ATTR_CMNEXT_REALFSID
ATTR_CMNEXT_RECURSIVE_GENCOUNT
ATTR_CMNEXT_RELPATH
ATTR_CMN_ACCESSMASK
ATTR_CMN_ACCTIME
ATTR_CMN_ADDEDTIME
ATTR_CMN_BKUPTIME
ATTR_CMN_CHGTIME
ATTR_CMN_CRTIME
ATTR_CMN_DATA_PROTECT_FLAGS
ATTR_CMN_DEVID
ATTR_CMN_DOCUMENT_ID
ATTR_CMN_EXTENDED_SECURITY
ATTR_CMN_FILEID
ATTR_CMN_FLAGS
ATTR_CMN_FNDRINFO
ATTR_CMN_FSID
ATTR_CMN_FULLPATH
ATTR_CMN_GEN_COUNT
ATTR_CMN_GRPID
ATTR_CMN_GRPUUID
ATTR_CMN_MODTIME
ATTR_CMN_NAME
ATTR_CMN_OBJID
ATTR_CMN_OBJPERMANENTID
ATTR_CMN_OBJTAG
ATTR_CMN_OBJTYPE
ATTR_CMN_OWNERID
ATTR_CMN_PARENTID
ATTR_CMN_PAROBJID
ATTR_CMN_RETURNED_ATTRS
ATTR_CMN_SCRIPT
ATTR_CMN_USERACCESS
ATTR_CMN_UUID
ATTR_DIR_ALLOCSIZE
ATTR_DIR_DATALENGTH
ATTR_DIR_ENTRYCOUNT
ATTR_DIR_IOBLOCKSIZE
ATTR_DIR_LINKCOUNT
ATTR_DIR_MOUNTSTATUS
ATTR_FILE_ALLOCSIZE
ATTR_FILE_DATAALLOCSIZE
ATTR_FILE_DATALENGTH
ATTR_FILE_DEVTYPE
ATTR_FILE_FORKCOUNT
ATTR_FILE_FORKLIST
ATTR_FILE_IOBLOCKSIZE
ATTR_FILE_LINKCOUNT
ATTR_FILE_RSRCALLOCSIZE
ATTR_FILE_RSRCLENGTH
ATTR_FILE_TOTALSIZE
ATTR_VOL_ALLOCATIONCLUMP
ATTR_VOL_ATTRIBUTES
ATTR_VOL_CAPABILITIES
ATTR_VOL_DIRCOUNT
ATTR_VOL_ENCODINGSUSED
ATTR_VOL_FILECOUNT
ATTR_VOL_FSTYPE
ATTR_VOL_INFO
ATTR_VOL_IOBLOCKSIZE
ATTR_VOL_MAXOBJCOUNT
ATTR_VOL_MINALLOCATION
ATTR_VOL_MOUNTEDDEVICE
ATTR_VOL_MOUNTFLAGS
ATTR_VOL_MOUNTPOINT
ATTR_VOL_NAME
ATTR_VOL_OBJCOUNT
ATTR_VOL_QUOTA_SIZE
ATTR_VOL_RESERVED_SIZE
ATTR_VOL_SIGNATURE
ATTR_VOL_SIZE
ATTR_VOL_SPACEAVAIL
ATTR_VOL_SPACEFREE
ATTR_VOL_SPACEUSED
ATTR_VOL_UUID
AT_EACCESS
AT_FDCWD
AT_REMOVEDIR
@ -212,6 +294,7 @@ DAY_5
DAY_6
DAY_7
DEAD_PROCESS
DIR_MNTSTATUS_MNTPOINT
DLT_ARCNET
DLT_ATM_RFC1483
DLT_AX25
@ -323,6 +406,12 @@ FIONREAD
FIOSETOWN
FLUSHO
FOPEN_MAX
FSOPT_ATTR_CMN_EXTENDED
FSOPT_NOFOLLOW
FSOPT_NOFOLLOW_ANY
FSOPT_PACK_INVAL_ATTRS
FSOPT_REPORT_FULLSIZE
FSOPT_RETURN_REALDEV
F_ALLOCATEALL
F_ALLOCATECONTIG
F_BARRIERFSYNC
@ -1493,6 +1582,54 @@ VM_PROT_NONE
VM_PROT_READ
VM_PROT_WRITE
VM_SWAPUSAGE
VOL_CAPABILITIES_FORMAT
VOL_CAPABILITIES_INTERFACES
VOL_CAP_FMT_2TB_FILESIZE
VOL_CAP_FMT_64BIT_OBJECT_IDS
VOL_CAP_FMT_CASE_PRESERVING
VOL_CAP_FMT_CASE_SENSITIVE
VOL_CAP_FMT_DECMPFS_COMPRESSION
VOL_CAP_FMT_DIR_HARDLINKS
VOL_CAP_FMT_DOCUMENT_ID
VOL_CAP_FMT_FAST_STATFS
VOL_CAP_FMT_HARDLINKS
VOL_CAP_FMT_HIDDEN_FILES
VOL_CAP_FMT_JOURNAL
VOL_CAP_FMT_JOURNAL_ACTIVE
VOL_CAP_FMT_NO_IMMUTABLE_FILES
VOL_CAP_FMT_NO_PERMISSIONS
VOL_CAP_FMT_NO_ROOT_TIMES
VOL_CAP_FMT_NO_VOLUME_SIZES
VOL_CAP_FMT_OPENDENYMODES
VOL_CAP_FMT_PATH_FROM_ID
VOL_CAP_FMT_PERSISTENTOBJECTIDS
VOL_CAP_FMT_SEALED
VOL_CAP_FMT_SHARED_SPACE
VOL_CAP_FMT_SPARSE_FILES
VOL_CAP_FMT_SYMBOLICLINKS
VOL_CAP_FMT_VOL_GROUPS
VOL_CAP_FMT_WRITE_GENERATION_COUNT
VOL_CAP_FMT_ZERO_RUNS
VOL_CAP_INT_ADVLOCK
VOL_CAP_INT_ALLOCATE
VOL_CAP_INT_ATTRLIST
VOL_CAP_INT_CLONE
VOL_CAP_INT_COPYFILE
VOL_CAP_INT_EXCHANGEDATA
VOL_CAP_INT_EXTENDED_ATTR
VOL_CAP_INT_EXTENDED_SECURITY
VOL_CAP_INT_FLOCK
VOL_CAP_INT_MANLOCK
VOL_CAP_INT_NAMEDSTREAMS
VOL_CAP_INT_NFSEXPORT
VOL_CAP_INT_READDIRATTR
VOL_CAP_INT_RENAME_EXCL
VOL_CAP_INT_RENAME_OPENFAIL
VOL_CAP_INT_RENAME_SWAP
VOL_CAP_INT_SEARCHFS
VOL_CAP_INT_SNAPSHOT
VOL_CAP_INT_USERACCESS
VOL_CAP_INT_VOL_RENAME
VREPRINT
VSTATUS
VT0
@ -1673,6 +1810,10 @@ arc4random_buf
arc4random_uniform
arphdr
atof
attrgroup_t
attribute_set_t
attrlist
attrreference_t
backtrace
backtrace_from_fp
backtrace_image_offsets
@ -1710,6 +1851,7 @@ fchdir
fchflags
fclonefileat
fdopendir
fgetattrlist
fgetxattr
flistxattr
fmemopen
@ -1718,12 +1860,16 @@ forkpty
freeifaddrs
freelocale
fremovexattr
fsetattrlist
fsetxattr
fsid_t
fstatfs
fstore_t
ftok
futimes
getattrlist
getattrlistat
getattrlistbulk
getdomainname
getdtablesize
getfsstat
@ -1966,6 +2112,8 @@ semop
semun
sendfile
sendmsg
setattrlist
setattrlistat
setdomainname
setgrent
setgroups
@ -2044,6 +2192,9 @@ vm_inherit_t
vm_map_t
vm_prot_t
vm_size_t
vol_attributes_attr_t
vol_capabilities_attr_t
vol_capabilities_set_t
wait4
waitid
xsw_usage

View file

@ -138,6 +138,9 @@ pub type CCRNGStatus = ::CCCryptorStatus;
pub type copyfile_state_t = *mut ::c_void;
pub type copyfile_flags_t = u32;
pub type attrgroup_t = u32;
pub type vol_capabilities_set_t = [u32; 4];
deprecated_mach! {
pub type mach_timebase_info_data_t = mach_timebase_info;
}
@ -982,6 +985,39 @@ s! {
pub uuid: ::uuid_t,
pub offset: u32,
}
pub struct attrlist {
pub bitmapcount: ::c_ushort,
pub reserved: u16,
pub commonattr: attrgroup_t,
pub volattr: attrgroup_t,
pub dirattr: attrgroup_t,
pub fileattr: attrgroup_t,
pub forkattr: attrgroup_t,
}
pub struct attrreference_t {
pub attr_dataoffset: i32,
pub attr_length: u32,
}
pub struct vol_capabilities_attr_t {
pub capabilities: vol_capabilities_set_t,
pub valid: vol_capabilities_set_t,
}
pub struct attribute_set_t {
pub commonattr: attrgroup_t,
pub volattr: attrgroup_t,
pub dirattr: attrgroup_t,
pub fileattr: attrgroup_t,
pub forkattr: attrgroup_t,
}
pub struct vol_attributes_attr_t {
pub validattr: attribute_set_t,
pub nativeattr: attribute_set_t,
}
}
s_no_extra_traits! {
@ -4688,6 +4724,145 @@ pub const COPYFILE_CONTINUE: ::c_int = 0;
pub const COPYFILE_SKIP: ::c_int = 1;
pub const COPYFILE_QUIT: ::c_int = 2;
// <sys/attr.h>
pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5;
pub const FSOPT_NOFOLLOW: u32 = 0x1;
pub const FSOPT_NOFOLLOW_ANY: u32 = 0x800;
pub const FSOPT_REPORT_FULLSIZE: u32 = 0x4;
pub const FSOPT_PACK_INVAL_ATTRS: u32 = 0x8;
pub const FSOPT_ATTR_CMN_EXTENDED: u32 = 0x20;
pub const FSOPT_RETURN_REALDEV: u32 = 0x200;
pub const ATTR_CMN_NAME: attrgroup_t = 0x00000001;
pub const ATTR_CMN_DEVID: attrgroup_t = 0x00000002;
pub const ATTR_CMN_FSID: attrgroup_t = 0x00000004;
pub const ATTR_CMN_OBJTYPE: attrgroup_t = 0x00000008;
pub const ATTR_CMN_OBJTAG: attrgroup_t = 0x00000010;
pub const ATTR_CMN_OBJID: attrgroup_t = 0x00000020;
pub const ATTR_CMN_OBJPERMANENTID: attrgroup_t = 0x00000040;
pub const ATTR_CMN_PAROBJID: attrgroup_t = 0x00000080;
pub const ATTR_CMN_SCRIPT: attrgroup_t = 0x00000100;
pub const ATTR_CMN_CRTIME: attrgroup_t = 0x00000200;
pub const ATTR_CMN_MODTIME: attrgroup_t = 0x00000400;
pub const ATTR_CMN_CHGTIME: attrgroup_t = 0x00000800;
pub const ATTR_CMN_ACCTIME: attrgroup_t = 0x00001000;
pub const ATTR_CMN_BKUPTIME: attrgroup_t = 0x00002000;
pub const ATTR_CMN_FNDRINFO: attrgroup_t = 0x00004000;
pub const ATTR_CMN_OWNERID: attrgroup_t = 0x00008000;
pub const ATTR_CMN_GRPID: attrgroup_t = 0x00010000;
pub const ATTR_CMN_ACCESSMASK: attrgroup_t = 0x00020000;
pub const ATTR_CMN_FLAGS: attrgroup_t = 0x00040000;
pub const ATTR_CMN_GEN_COUNT: attrgroup_t = 0x00080000;
pub const ATTR_CMN_DOCUMENT_ID: attrgroup_t = 0x00100000;
pub const ATTR_CMN_USERACCESS: attrgroup_t = 0x00200000;
pub const ATTR_CMN_EXTENDED_SECURITY: attrgroup_t = 0x00400000;
pub const ATTR_CMN_UUID: attrgroup_t = 0x00800000;
pub const ATTR_CMN_GRPUUID: attrgroup_t = 0x01000000;
pub const ATTR_CMN_FILEID: attrgroup_t = 0x02000000;
pub const ATTR_CMN_PARENTID: attrgroup_t = 0x04000000;
pub const ATTR_CMN_FULLPATH: attrgroup_t = 0x08000000;
pub const ATTR_CMN_ADDEDTIME: attrgroup_t = 0x10000000;
pub const ATTR_CMN_DATA_PROTECT_FLAGS: attrgroup_t = 0x40000000;
pub const ATTR_CMN_RETURNED_ATTRS: attrgroup_t = 0x80000000;
pub const ATTR_VOL_FSTYPE: attrgroup_t = 0x00000001;
pub const ATTR_VOL_SIGNATURE: attrgroup_t = 0x00000002;
pub const ATTR_VOL_SIZE: attrgroup_t = 0x00000004;
pub const ATTR_VOL_SPACEFREE: attrgroup_t = 0x00000008;
pub const ATTR_VOL_SPACEAVAIL: attrgroup_t = 0x00000010;
pub const ATTR_VOL_MINALLOCATION: attrgroup_t = 0x00000020;
pub const ATTR_VOL_ALLOCATIONCLUMP: attrgroup_t = 0x00000040;
pub const ATTR_VOL_IOBLOCKSIZE: attrgroup_t = 0x00000080;
pub const ATTR_VOL_OBJCOUNT: attrgroup_t = 0x00000100;
pub const ATTR_VOL_FILECOUNT: attrgroup_t = 0x00000200;
pub const ATTR_VOL_DIRCOUNT: attrgroup_t = 0x00000400;
pub const ATTR_VOL_MAXOBJCOUNT: attrgroup_t = 0x00000800;
pub const ATTR_VOL_MOUNTPOINT: attrgroup_t = 0x00001000;
pub const ATTR_VOL_NAME: attrgroup_t = 0x00002000;
pub const ATTR_VOL_MOUNTFLAGS: attrgroup_t = 0x00004000;
pub const ATTR_VOL_MOUNTEDDEVICE: attrgroup_t = 0x00008000;
pub const ATTR_VOL_ENCODINGSUSED: attrgroup_t = 0x00010000;
pub const ATTR_VOL_CAPABILITIES: attrgroup_t = 0x00020000;
pub const ATTR_VOL_UUID: attrgroup_t = 0x00040000;
pub const ATTR_VOL_SPACEUSED: attrgroup_t = 0x00800000;
pub const ATTR_VOL_QUOTA_SIZE: attrgroup_t = 0x10000000;
pub const ATTR_VOL_RESERVED_SIZE: attrgroup_t = 0x20000000;
pub const ATTR_VOL_ATTRIBUTES: attrgroup_t = 0x40000000;
pub const ATTR_VOL_INFO: attrgroup_t = 0x80000000;
pub const ATTR_DIR_LINKCOUNT: attrgroup_t = 0x00000001;
pub const ATTR_DIR_ENTRYCOUNT: attrgroup_t = 0x00000002;
pub const ATTR_DIR_MOUNTSTATUS: attrgroup_t = 0x00000004;
pub const ATTR_DIR_ALLOCSIZE: attrgroup_t = 0x00000008;
pub const ATTR_DIR_IOBLOCKSIZE: attrgroup_t = 0x00000010;
pub const ATTR_DIR_DATALENGTH: attrgroup_t = 0x00000020;
pub const ATTR_FILE_LINKCOUNT: attrgroup_t = 0x00000001;
pub const ATTR_FILE_TOTALSIZE: attrgroup_t = 0x00000002;
pub const ATTR_FILE_ALLOCSIZE: attrgroup_t = 0x00000004;
pub const ATTR_FILE_IOBLOCKSIZE: attrgroup_t = 0x00000008;
pub const ATTR_FILE_DEVTYPE: attrgroup_t = 0x00000020;
pub const ATTR_FILE_FORKCOUNT: attrgroup_t = 0x00000080;
pub const ATTR_FILE_FORKLIST: attrgroup_t = 0x00000100;
pub const ATTR_FILE_DATALENGTH: attrgroup_t = 0x00000200;
pub const ATTR_FILE_DATAALLOCSIZE: attrgroup_t = 0x00000400;
pub const ATTR_FILE_RSRCLENGTH: attrgroup_t = 0x00001000;
pub const ATTR_FILE_RSRCALLOCSIZE: attrgroup_t = 0x00002000;
pub const ATTR_CMNEXT_RELPATH: attrgroup_t = 0x00000004;
pub const ATTR_CMNEXT_PRIVATESIZE: attrgroup_t = 0x00000008;
pub const ATTR_CMNEXT_LINKID: attrgroup_t = 0x00000010;
pub const ATTR_CMNEXT_NOFIRMLINKPATH: attrgroup_t = 0x00000020;
pub const ATTR_CMNEXT_REALDEVID: attrgroup_t = 0x00000040;
pub const ATTR_CMNEXT_REALFSID: attrgroup_t = 0x00000080;
pub const ATTR_CMNEXT_CLONEID: attrgroup_t = 0x00000100;
pub const ATTR_CMNEXT_EXT_FLAGS: attrgroup_t = 0x00000200;
pub const ATTR_CMNEXT_RECURSIVE_GENCOUNT: attrgroup_t = 0x00000400;
pub const DIR_MNTSTATUS_MNTPOINT: u32 = 0x1;
pub const VOL_CAPABILITIES_FORMAT: usize = 0;
pub const VOL_CAPABILITIES_INTERFACES: usize = 1;
pub const VOL_CAP_FMT_PERSISTENTOBJECTIDS: attrgroup_t = 0x00000001;
pub const VOL_CAP_FMT_SYMBOLICLINKS: attrgroup_t = 0x00000002;
pub const VOL_CAP_FMT_HARDLINKS: attrgroup_t = 0x00000004;
pub const VOL_CAP_FMT_JOURNAL: attrgroup_t = 0x00000008;
pub const VOL_CAP_FMT_JOURNAL_ACTIVE: attrgroup_t = 0x00000010;
pub const VOL_CAP_FMT_NO_ROOT_TIMES: attrgroup_t = 0x00000020;
pub const VOL_CAP_FMT_SPARSE_FILES: attrgroup_t = 0x00000040;
pub const VOL_CAP_FMT_ZERO_RUNS: attrgroup_t = 0x00000080;
pub const VOL_CAP_FMT_CASE_SENSITIVE: attrgroup_t = 0x00000100;
pub const VOL_CAP_FMT_CASE_PRESERVING: attrgroup_t = 0x00000200;
pub const VOL_CAP_FMT_FAST_STATFS: attrgroup_t = 0x00000400;
pub const VOL_CAP_FMT_2TB_FILESIZE: attrgroup_t = 0x00000800;
pub const VOL_CAP_FMT_OPENDENYMODES: attrgroup_t = 0x00001000;
pub const VOL_CAP_FMT_HIDDEN_FILES: attrgroup_t = 0x00002000;
pub const VOL_CAP_FMT_PATH_FROM_ID: attrgroup_t = 0x00004000;
pub const VOL_CAP_FMT_NO_VOLUME_SIZES: attrgroup_t = 0x00008000;
pub const VOL_CAP_FMT_DECMPFS_COMPRESSION: attrgroup_t = 0x00010000;
pub const VOL_CAP_FMT_64BIT_OBJECT_IDS: attrgroup_t = 0x00020000;
pub const VOL_CAP_FMT_DIR_HARDLINKS: attrgroup_t = 0x00040000;
pub const VOL_CAP_FMT_DOCUMENT_ID: attrgroup_t = 0x00080000;
pub const VOL_CAP_FMT_WRITE_GENERATION_COUNT: attrgroup_t = 0x00100000;
pub const VOL_CAP_FMT_NO_IMMUTABLE_FILES: attrgroup_t = 0x00200000;
pub const VOL_CAP_FMT_NO_PERMISSIONS: attrgroup_t = 0x00400000;
pub const VOL_CAP_FMT_SHARED_SPACE: attrgroup_t = 0x00800000;
pub const VOL_CAP_FMT_VOL_GROUPS: attrgroup_t = 0x01000000;
pub const VOL_CAP_FMT_SEALED: attrgroup_t = 0x02000000;
pub const VOL_CAP_INT_SEARCHFS: attrgroup_t = 0x00000001;
pub const VOL_CAP_INT_ATTRLIST: attrgroup_t = 0x00000002;
pub const VOL_CAP_INT_NFSEXPORT: attrgroup_t = 0x00000004;
pub const VOL_CAP_INT_READDIRATTR: attrgroup_t = 0x00000008;
pub const VOL_CAP_INT_EXCHANGEDATA: attrgroup_t = 0x00000010;
pub const VOL_CAP_INT_COPYFILE: attrgroup_t = 0x00000020;
pub const VOL_CAP_INT_ALLOCATE: attrgroup_t = 0x00000040;
pub const VOL_CAP_INT_VOL_RENAME: attrgroup_t = 0x00000080;
pub const VOL_CAP_INT_ADVLOCK: attrgroup_t = 0x00000100;
pub const VOL_CAP_INT_FLOCK: attrgroup_t = 0x00000200;
pub const VOL_CAP_INT_EXTENDED_SECURITY: attrgroup_t = 0x00000400;
pub const VOL_CAP_INT_USERACCESS: attrgroup_t = 0x00000800;
pub const VOL_CAP_INT_MANLOCK: attrgroup_t = 0x00001000;
pub const VOL_CAP_INT_NAMEDSTREAMS: attrgroup_t = 0x00002000;
pub const VOL_CAP_INT_EXTENDED_ATTR: attrgroup_t = 0x00004000;
pub const VOL_CAP_INT_CLONE: attrgroup_t = 0x00010000;
pub const VOL_CAP_INT_SNAPSHOT: attrgroup_t = 0x00020000;
pub const VOL_CAP_INT_RENAME_SWAP: attrgroup_t = 0x00040000;
pub const VOL_CAP_INT_RENAME_EXCL: attrgroup_t = 0x00080000;
pub const VOL_CAP_INT_RENAME_OPENFAIL: attrgroup_t = 0x00100000;
cfg_if! {
if #[cfg(libc_const_extern_fn)] {
const fn __DARWIN_ALIGN32(p: usize) -> usize {
@ -5562,6 +5737,58 @@ extern "C" {
) -> ::sysdir_search_path_enumeration_state;
pub static vm_page_size: vm_size_t;
pub fn getattrlist(
path: *const ::c_char,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u32,
) -> ::c_int;
pub fn fgetattrlist(
fd: ::c_int,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u32,
) -> ::c_int;
pub fn getattrlistat(
fd: ::c_int,
path: *const ::c_char,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: ::c_ulong,
) -> ::c_int;
pub fn setattrlist(
path: *const ::c_char,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u32,
) -> ::c_int;
pub fn fsetattrlist(
fd: ::c_int,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u32,
) -> ::c_int;
pub fn setattrlistat(
dir_fd: ::c_int,
path: *const ::c_char,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u32,
) -> ::c_int;
pub fn getattrlistbulk(
dirfd: ::c_int,
attrList: *mut ::c_void,
attrBuf: *mut ::c_void,
attrBufSize: ::size_t,
options: u64,
) -> ::c_int;
}
pub unsafe fn mach_task_self() -> ::mach_port_t {