core_foundation_sys/
file_security.rs1use std::os::raw::c_void;
11
12#[cfg(feature = "mac_os_10_8_features")]
13use crate::base::CFOptionFlags;
14use crate::base::{Boolean, CFAllocatorRef, CFTypeID};
15use crate::uuid::CFUUIDRef;
16
17#[repr(C)]
18pub struct __CFFileSecurity(c_void);
19pub type CFFileSecurityRef = *mut __CFFileSecurity;
20
21#[cfg(feature = "mac_os_10_8_features")]
22pub type CFFileSecurityClearOptions = CFOptionFlags;
23#[cfg(feature = "mac_os_10_8_features")]
24pub const kCFFileSecurityClearOwner: CFFileSecurityClearOptions = 1 << 0;
25#[cfg(feature = "mac_os_10_8_features")]
26pub const kCFFileSecurityClearGroup: CFFileSecurityClearOptions = 1 << 1;
27#[cfg(feature = "mac_os_10_8_features")]
28pub const kCFFileSecurityClearMode: CFFileSecurityClearOptions = 1 << 2;
29#[cfg(feature = "mac_os_10_8_features")]
30pub const kCFFileSecurityClearOwnerUUID: CFFileSecurityClearOptions = 1 << 3;
31#[cfg(feature = "mac_os_10_8_features")]
32pub const kCFFileSecurityClearGroupUUID: CFFileSecurityClearOptions = 1 << 4;
33#[cfg(feature = "mac_os_10_8_features")]
34pub const kCFFileSecurityClearAccessControlList: CFFileSecurityClearOptions = 1 << 5;
35
36extern "C" {
37 pub fn CFFileSecurityGetTypeID() -> CFTypeID;
41 pub fn CFFileSecurityCreate(allocator: CFAllocatorRef) -> CFFileSecurityRef;
42 pub fn CFFileSecurityCreateCopy(
43 allocator: CFAllocatorRef,
44 fileSec: CFFileSecurityRef,
45 ) -> CFFileSecurityRef;
46 pub fn CFFileSecurityCopyOwnerUUID(
47 fileSec: CFFileSecurityRef,
48 ownerUUID: *mut CFUUIDRef,
49 ) -> Boolean;
50 pub fn CFFileSecuritySetOwnerUUID(fileSec: CFFileSecurityRef, ownerUUID: CFUUIDRef) -> Boolean;
51 pub fn CFFileSecurityCopyGroupUUID(
52 fileSec: CFFileSecurityRef,
53 groupUUID: *mut CFUUIDRef,
54 ) -> Boolean;
55 pub fn CFFileSecuritySetGroupUUID(fileSec: CFFileSecurityRef, groupUUID: CFUUIDRef) -> Boolean;
56 #[cfg(feature = "mac_os_10_8_features")]
66 #[cfg_attr(feature = "mac_os_10_7_support", linkage = "extern_weak")]
67 pub fn CFFileSecurityClearProperties(
68 fileSec: CFFileSecurityRef,
69 clearPropertyMask: CFFileSecurityClearOptions,
70 ) -> Boolean;
71}