Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

copyfile apple api update #3346

Merged
merged 1 commit into from Sep 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 18 additions & 0 deletions libc-test/semver/apple.txt
Expand Up @@ -245,6 +245,19 @@ COPYFILE_SECURITY
COPYFILE_SKIP
COPYFILE_START
COPYFILE_STAT
COPYFILE_STATE_BSIZE
COPYFILE_STATE_COPIED
COPYFILE_STATE_DST_BSIZE
COPYFILE_STATE_DST_FD
COPYFILE_STATE_DST_FILENAME
COPYFILE_STATE_QUARANTINE
COPYFILE_STATE_SRC_BSIZE
COPYFILE_STATE_SRC_FD
COPYFILE_STATE_SRC_FILENAME
COPYFILE_STATE_STATUS_CB
COPYFILE_STATE_STATUS_CTX
COPYFILE_STATE_XATTRNAME
COPYFILE_STATE_WAS_CLONED
COPYFILE_VERBOSE
COPYFILE_UNLINK
COPYFILE_XATTR
Expand Down Expand Up @@ -1844,7 +1857,12 @@ cmsghdr
confstr
connectx
copyfile
copyfile_callback_t
copyfile_flags_t
copyfile_state_alloc
copyfile_state_free
copyfile_state_get
copyfile_state_set
cpu_subtype_t
cpu_type_t
ctime
Expand Down
27 changes: 27 additions & 0 deletions src/unix/bsd/apple/mod.rs
Expand Up @@ -145,6 +145,16 @@ pub type CCRNGStatus = ::CCCryptorStatus;

pub type copyfile_state_t = *mut ::c_void;
pub type copyfile_flags_t = u32;
pub type copyfile_callback_t = ::Option<
extern "C" fn(
::c_int,
::c_int,
copyfile_state_t,
*const ::c_char,
*const ::c_char,
*mut ::c_void,
) -> ::c_int,
>;

pub type attrgroup_t = u32;
pub type vol_capabilities_set_t = [u32; 4];
Expand Down Expand Up @@ -4911,6 +4921,19 @@ pub const COPYFILE_PROGRESS: ::c_int = 4;
pub const COPYFILE_CONTINUE: ::c_int = 0;
pub const COPYFILE_SKIP: ::c_int = 1;
pub const COPYFILE_QUIT: ::c_int = 2;
pub const COPYFILE_STATE_SRC_FD: ::c_int = 1;
pub const COPYFILE_STATE_SRC_FILENAME: ::c_int = 2;
pub const COPYFILE_STATE_DST_FD: ::c_int = 3;
pub const COPYFILE_STATE_DST_FILENAME: ::c_int = 4;
pub const COPYFILE_STATE_QUARANTINE: ::c_int = 5;
pub const COPYFILE_STATE_STATUS_CB: ::c_int = 6;
pub const COPYFILE_STATE_STATUS_CTX: ::c_int = 7;
pub const COPYFILE_STATE_COPIED: ::c_int = 8;
pub const COPYFILE_STATE_XATTRNAME: ::c_int = 9;
pub const COPYFILE_STATE_WAS_CLONED: ::c_int = 10;
pub const COPYFILE_STATE_SRC_BSIZE: ::c_int = 11;
pub const COPYFILE_STATE_DST_BSIZE: ::c_int = 12;
pub const COPYFILE_STATE_BSIZE: ::c_int = 13;

// <sys/attr.h>
pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5;
Expand Down Expand Up @@ -5819,6 +5842,10 @@ extern "C" {
state: copyfile_state_t,
flags: copyfile_flags_t,
) -> ::c_int;
pub fn copyfile_state_free(s: copyfile_state_t) -> ::c_int;
pub fn copyfile_state_alloc() -> copyfile_state_t;
pub fn copyfile_state_get(s: copyfile_state_t, flags: u32, dst: *mut ::c_void) -> ::c_int;
pub fn copyfile_state_set(s: copyfile_state_t, flags: u32, src: *const ::c_void) -> ::c_int;

// Added in macOS 10.13
// ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1
Expand Down