12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package darwin
- import "core:sys/posix"
- copyfile_state_t :: distinct rawptr
- copyfile_flags :: bit_set[enum {
- ACL,
- STAT,
- XATTR,
- DATA,
- RECURSIVE = 15,
- CHECK,
- EXCL,
- NOFOLLOW_SRC,
- NOFOLLOW_DST,
- MOVE,
- UNLINK,
- PACK,
- UNPACK,
- CLONE,
- CLONE_FORCE,
- RUN_IN_PLACE,
- DATA_SPARSE,
- PRESERVE_DST_TRACKED,
- VERBOSE = 30,
- }; u32]
- COPYFILE_SECURITY :: copyfile_flags{.STAT, .ACL}
- COPYFILE_METADATA :: COPYFILE_SECURITY + copyfile_flags{.XATTR}
- COPYFILE_ALL :: COPYFILE_METADATA + copyfile_flags{.DATA}
- COPYFILE_NOFOLLOW :: copyfile_flags{.NOFOLLOW_SRC, .NOFOLLOW_DST}
- copyfile_state_flag :: enum u32 {
- SRC_FD = 1,
- SRC_FILENAME,
- DST_FD,
- DST_FILENAME,
- QUARANTINE,
- STATUS_CB,
- STATUS_CTX,
- COPIED,
- XATTRNAME,
- WAS_CLONED,
- SRC_BSIZE,
- DST_BSIZE,
- BSIZE,
- FORBID_CROSS_MOUNT,
- NOCPROTECT,
- PRESERVE_SUID,
- RECURSIVE_SRC_FTSENT,
- FORBID_DST_EXISTING_SYMLINKS,
- }
- foreign system {
- copyfile :: proc(from, to: cstring, state: copyfile_state_t, flags: copyfile_flags) -> i32 ---
- fcopyfile :: proc(from, to: posix.FD, state: copyfile_state_t, flags: copyfile_flags) -> i32 ---
- copyfile_state_alloc :: proc() -> copyfile_state_t ---
- copyfile_state_free :: proc(state: copyfile_state_t) -> posix.result ---
- copyfile_state_get :: proc(state: copyfile_state_t, flag: copyfile_state_flag, dst: rawptr) -> posix.result ---
- copyfile_state_set :: proc(state: copyfile_state_t, flag: copyfile_state_flag, src: rawptr) -> posix.result ---
- }
|