use core::hash::Hash;
use core::mem::ManuallyDrop;
pub use std::os::raw::c_int;
#[cfg(feature = "macos_13_0_0")]
pub use libc::{cpu_subtype_t, cpu_type_t};
pub use libc::{dev_t, gid_t, mode_t, pid_t, stat, statfs, timespec, timeval, uid_t};
#[cfg(feature = "macos_14_0_0")]
use mach2::mach_types::uuid_t;
#[cfg(feature = "objc2")]
use objc2::{Encoding, RefEncode};
#[cfg(feature = "macos_10_15_4")]
use super::es_proc_check_type_t;
use super::{
ShouldNotBeNull, attrlist, audit_token_t, es_action_type_t, es_auth_result_t, es_cdhash_t, es_event_id_t,
es_event_type_t, es_result_type_t, es_string_token_t, es_token_t, user_addr_t, user_size_t,
};
#[cfg(feature = "macos_10_15_1")]
use super::{acl_t, es_set_or_clear_t};
#[cfg(feature = "macos_13_0_0")]
use super::{es_address_type_t, es_authentication_type_t};
#[cfg(feature = "macos_14_0_0")]
use super::{
es_authorization_rule_class_t, es_od_account_type_t, es_od_member_type_t, es_od_record_type_t,
es_sudo_plugin_type_t, es_xpc_domain_type_t,
};
#[cfg(feature = "macos_15_0_0")]
use super::{es_gatekeeper_user_override_file_type_t, es_sha256_t, es_signed_file_info_t};
#[cfg(feature = "macos_15_4_0")]
use super::{es_tcc_authorization_reason_t, es_tcc_authorization_right_t, es_tcc_event_type_t, es_tcc_identity_type_t};
#[repr(C)]
pub struct es_file_t {
pub path: es_string_token_t,
pub path_truncated: bool,
pub stat: stat,
}
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_thread_t {
pub thread_id: u64,
}
#[repr(C)]
pub struct es_process_t {
pub audit_token: audit_token_t,
pub ppid: pid_t,
pub original_ppid: pid_t,
pub group_id: pid_t,
pub session_id: pid_t,
pub codesigning_flags: u32,
pub is_platform_binary: bool,
pub is_es_client: bool,
pub cdhash: es_cdhash_t,
pub signing_id: es_string_token_t,
pub team_id: es_string_token_t,
pub executable: ShouldNotBeNull<es_file_t>,
#[cfg(feature = "macos_10_15_1")]
pub tty: *mut es_file_t,
#[cfg(feature = "macos_10_15_4")]
pub start_time: timeval,
#[cfg(feature = "macos_11_0_0")]
pub responsible_audit_token: audit_token_t,
#[cfg(feature = "macos_11_0_0")]
pub parent_audit_token: audit_token_t,
}
should_not_be_null_fields!(es_process_t; executable -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
null_fields!(es_process_t; tty -> es_file_t);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_thread_state_t {
pub flavor: c_int,
pub state: es_token_t,
}
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
#[derive(Copy, Clone)]
pub struct es_fd_t {
pub fd: i32,
pub fdtype: u32,
pub anon_0: es_fd_t_anon_0,
}
#[cfg(feature = "macos_11_0_0")]
impl es_fd_t {
pub const PROX_FDTYPE_PIPE: u32 = 6;
pub unsafe fn pipe(&self) -> Option<es_fd_t_anon_0_pipe> {
if self.fdtype == Self::PROX_FDTYPE_PIPE {
Some(unsafe { self.anon_0.pipe })
} else {
None
}
}
}
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
#[derive(Copy, Clone)]
pub union es_fd_t_anon_0 {
pub pipe: es_fd_t_anon_0_pipe,
}
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_fd_t_anon_0_pipe {
pub pipe_id: u64,
}
#[cfg(feature = "macos_13_0_0")]
ffi_wrap_enum!(
es_btm_item_type_t(u32);
== #[cfg(feature = "macos_13_0_0")] 13_0_0 "13.0.0";
ES_BTM_ITEM_TYPE_USER_ITEM = 0,
ES_BTM_ITEM_TYPE_APP = 1,
ES_BTM_ITEM_TYPE_LOGIN_ITEM = 2,
ES_BTM_ITEM_TYPE_AGENT = 3,
--
ES_BTM_ITEM_TYPE_DAEMON = 4,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_btm_launch_item_t {
pub item_type: es_btm_item_type_t,
pub legacy: bool,
pub managed: bool,
pub uid: uid_t,
pub item_url: es_string_token_t,
pub app_url: es_string_token_t,
}
#[cfg(feature = "macos_14_0_0")]
ffi_wrap_enum!(
es_profile_source_t(u32);
== #[cfg(feature = "macos_14_0_0")] 14_0_0 "14.0.0";
ES_PROFILE_SOURCE_MANAGED = 0,
--
ES_PROFILE_SOURCE_INSTALL = 1,
);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_profile_t {
pub identifier: es_string_token_t,
pub uuid: es_string_token_t,
pub install_source: es_profile_source_t,
pub organization: es_string_token_t,
pub display_name: es_string_token_t,
pub scope: es_string_token_t,
}
#[cfg_attr(feature = "macos_11_0_0", doc = "[`es_exec_fd()`] and [`es_exec_fd_count()`].")]
#[cfg_attr(not(feature = "macos_11_0_0"), doc = "`es_exec_fd()` and `es_exec_fd_count()`.")]
#[repr(C)]
pub struct es_event_exec_t {
pub target: ShouldNotBeNull<es_process_t>,
#[cfg(not(feature = "macos_13_3_0"))]
_reserved0: es_token_t,
#[cfg(feature = "macos_13_3_0")]
pub dyld_exec_path: es_string_token_t,
pub anon_0: es_event_exec_t_anon_0,
}
should_not_be_null_fields!(es_event_exec_t; target -> es_process_t);
#[repr(C)]
pub union es_event_exec_t_anon_0 {
_reserved: [u8; 64],
#[cfg(feature = "macos_10_15_1")]
pub anon_0: ManuallyDrop<es_event_exec_t_anon_0_anon_0>,
}
#[repr(C)]
pub struct es_event_exec_t_anon_0_anon_0 {
#[cfg(feature = "macos_10_15_1")]
pub script: *mut es_file_t,
#[cfg(feature = "macos_10_15_4")]
pub cwd: ShouldNotBeNull<es_file_t>,
#[cfg(feature = "macos_11_0_0")]
pub last_fd: c_int,
#[cfg(feature = "macos_13_0_0")]
pub image_cputype: cpu_type_t,
#[cfg(feature = "macos_13_0_0")]
pub image_cpusubtype: cpu_subtype_t,
}
#[cfg(feature = "macos_10_15_4")]
should_not_be_null_fields!(es_event_exec_t_anon_0_anon_0; cwd -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
null_fields!(es_event_exec_t_anon_0_anon_0; script -> es_file_t);
#[repr(C)]
pub struct es_event_open_t {
pub fflag: i32,
pub file: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_open_t; file -> es_file_t);
#[repr(C)]
pub struct es_event_kextload_t {
pub identifier: es_string_token_t,
_reserved: [u8; 64],
}
#[repr(C)]
pub struct es_event_kextunload_t {
pub identifier: es_string_token_t,
_reserved: [u8; 64],
}
#[repr(C)]
pub struct es_event_unlink_t {
pub target: ShouldNotBeNull<es_file_t>,
pub parent_dir: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_unlink_t; target -> es_file_t, parent_dir -> es_file_t);
#[repr(C)]
pub struct es_event_mmap_t {
pub protection: i32,
pub max_protection: i32,
pub flags: i32,
pub file_pos: u64,
pub source: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_mmap_t; source -> es_file_t);
#[repr(C)]
pub struct es_event_link_t {
pub source: ShouldNotBeNull<es_file_t>,
pub target_dir: ShouldNotBeNull<es_file_t>,
pub target_filename: es_string_token_t,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_link_t; source -> es_file_t, target_dir -> es_file_t);
#[cfg(feature = "macos_15_0_0")]
ffi_wrap_enum!(
es_mount_disposition_t(u32);
== #[cfg(feature = "macos_15_0_0")] 15_0_0 "15.0.0";
ES_MOUNT_DISPOSITION_EXTERNAL = 0,
ES_MOUNT_DISPOSITION_INTERNAL = 1,
ES_MOUNT_DISPOSITION_NETWORK = 2,
ES_MOUNT_DISPOSITION_VIRTUAL = 3,
ES_MOUNT_DISPOSITION_NULLFS = 4,
--
ES_MOUNT_DISPOSITION_UNKNOWN = 5,
);
#[repr(C)]
pub struct es_event_mount_t {
pub statfs: ShouldNotBeNull<statfs>,
#[cfg(feature = "macos_15_0_0")]
pub disposition: es_mount_disposition_t,
_reserved: [u8; 60],
}
should_not_be_null_fields!(es_event_mount_t; statfs -> statfs);
#[repr(C)]
pub struct es_event_unmount_t {
pub statfs: ShouldNotBeNull<statfs>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_unmount_t; statfs -> statfs);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_remount_t {
pub statfs: ShouldNotBeNull<statfs>,
#[cfg(feature = "macos_15_0_0")]
pub remount_flags: u64,
#[cfg(feature = "macos_15_0_0")]
pub disposition: es_mount_disposition_t,
_reserved: [u8; 52],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_remount_t; statfs -> statfs);
#[repr(C)]
pub struct es_event_fork_t {
pub child: ShouldNotBeNull<es_process_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_fork_t; child -> es_process_t);
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_mprotect_t {
pub protection: i32,
pub address: user_addr_t,
pub size: user_size_t,
_reserved: [u8; 64],
}
#[repr(C)]
pub struct es_event_signal_t {
pub sig: c_int,
pub target: ShouldNotBeNull<es_process_t>,
#[cfg(feature = "macos_15_4_0")]
pub instigator: *mut es_process_t,
_reserved: [u8; 56],
}
should_not_be_null_fields!(es_event_signal_t; target -> es_process_t);
#[cfg(feature = "macos_15_4_0")]
null_fields!(es_event_signal_t; instigator -> es_process_t);
ffi_wrap_enum!(
es_destination_type_t(u32);
== MACOS_10_15_0;
ES_DESTINATION_TYPE_EXISTING_FILE = 0,
--
ES_DESTINATION_TYPE_NEW_PATH = 1,
);
#[repr(C)]
pub struct es_event_rename_t {
pub source: ShouldNotBeNull<es_file_t>,
pub destination_type: es_destination_type_t,
pub destination: es_event_rename_t_anon_0,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_rename_t; source -> es_file_t);
#[repr(C)]
pub union es_event_rename_t_anon_0 {
pub existing_file: ShouldNotBeNull<es_file_t>,
pub new_path: ManuallyDrop<es_event_rename_t_anon_0_anon_0>,
}
#[repr(C)]
pub struct es_event_rename_t_anon_0_anon_0 {
pub dir: ShouldNotBeNull<es_file_t>,
pub filename: es_string_token_t,
}
should_not_be_null_fields!(es_event_rename_t_anon_0_anon_0; dir -> es_file_t);
#[repr(C)]
pub struct es_event_setextattr_t {
pub target: ShouldNotBeNull<es_file_t>,
pub extattr: es_string_token_t,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_setextattr_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_getextattr_t {
pub target: ShouldNotBeNull<es_file_t>,
pub extattr: es_string_token_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_getextattr_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_deleteextattr_t {
pub target: ShouldNotBeNull<es_file_t>,
pub extattr: es_string_token_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_deleteextattr_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_setmode_t {
pub mode: mode_t,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_setmode_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_setflags_t {
pub flags: u32,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_setflags_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_setowner_t {
pub uid: uid_t,
pub gid: gid_t,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_setowner_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_close_t {
pub modified: bool,
pub target: ShouldNotBeNull<es_file_t>,
pub anon0: es_event_close_t_anon_0,
}
should_not_be_null_fields!(es_event_close_t; target -> es_file_t);
#[repr(C)]
pub union es_event_close_t_anon_0 {
_reserved: [u8; 64],
#[cfg(feature = "macos_13_0_0")]
pub was_mapped_writable: bool,
}
#[repr(C)]
pub struct es_event_create_t {
pub destination_type: es_destination_type_t,
pub destination: es_event_create_t_anon_0,
_reserved2: [u8; 16],
pub anon_1: es_event_create_t_anon_1,
}
#[repr(C)]
pub union es_event_create_t_anon_0 {
pub existing_file: ShouldNotBeNull<es_file_t>,
pub new_path: ManuallyDrop<es_event_create_t_anon_0_anon_0>,
}
#[repr(C)]
pub struct es_event_create_t_anon_0_anon_0 {
pub dir: ShouldNotBeNull<es_file_t>,
pub filename: es_string_token_t,
pub mode: mode_t,
}
should_not_be_null_fields!(es_event_create_t_anon_0_anon_0; dir -> es_file_t);
#[repr(C)]
pub union es_event_create_t_anon_1 {
_reserved: [u8; 48],
#[cfg(feature = "macos_10_15_1")]
pub anon_0: ManuallyDrop<es_event_create_t_anon_1_anon_0>,
}
#[repr(C)]
#[cfg(feature = "macos_10_15_1")]
pub struct es_event_create_t_anon_1_anon_0 {
pub acl: acl_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_exit_t {
pub stat: c_int,
_reserved: [u8; 64],
}
#[repr(C)]
pub struct es_event_exchangedata_t {
pub file1: ShouldNotBeNull<es_file_t>,
pub file2: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_exchangedata_t; file1 -> es_file_t, file2 -> es_file_t);
#[repr(C)]
pub struct es_event_write_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_write_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_truncate_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_truncate_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_chdir_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_chdir_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_stat_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_stat_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_chroot_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_chroot_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_listextattr_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_listextattr_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_iokit_open_t {
pub user_client_type: u32,
pub user_client_class: es_string_token_t,
_reserved: [u8; 64],
}
ffi_wrap_enum!(
es_get_task_type_t(u32);
== MACOS_10_15_0;
ES_GET_TASK_TYPE_TASK_FOR_PID = 0,
ES_GET_TASK_TYPE_EXPOSE_TASK = 1,
--
ES_GET_TASK_TYPE_IDENTITY_TOKEN = 2,
);
#[repr(C)]
pub struct es_event_get_task_t {
pub target: ShouldNotBeNull<es_process_t>,
pub type_: es_get_task_type_t,
_reserved: [u8; 60],
}
should_not_be_null_fields!(es_event_get_task_t; target -> es_process_t);
#[cfg(feature = "macos_11_3_0")]
#[repr(C)]
pub struct es_event_get_task_read_t {
pub target: ShouldNotBeNull<es_process_t>,
pub type_: es_get_task_type_t,
_reserved: [u8; 60],
}
#[cfg(feature = "macos_11_3_0")]
should_not_be_null_fields!(es_event_get_task_read_t; target -> es_process_t);
#[cfg(feature = "macos_11_3_0")]
#[repr(C)]
pub struct es_event_get_task_inspect_t {
pub target: ShouldNotBeNull<es_process_t>,
pub type_: es_get_task_type_t,
_reserved: [u8; 60],
}
#[cfg(feature = "macos_11_3_0")]
should_not_be_null_fields!(es_event_get_task_inspect_t; target -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_event_get_task_name_t {
pub target: ShouldNotBeNull<es_process_t>,
pub type_: es_get_task_type_t,
_reserved: [u8; 60],
}
#[cfg(feature = "macos_11_0_0")]
should_not_be_null_fields!(es_event_get_task_name_t; target -> es_process_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_getattrlist_t {
pub attrlist: attrlist,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_getattrlist_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_setattrlist_t {
pub attrlist: attrlist,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_setattrlist_t; target -> es_file_t);
#[repr(C)]
pub struct es_event_file_provider_update_t {
pub source: ShouldNotBeNull<es_file_t>,
pub target_path: es_string_token_t,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_file_provider_update_t; source -> es_file_t);
#[repr(C)]
pub struct es_event_file_provider_materialize_t {
pub instigator: *mut es_process_t,
pub source: ShouldNotBeNull<es_file_t>,
pub target: ShouldNotBeNull<es_file_t>,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
_reserved: [u8; 32],
}
should_not_be_null_fields!(
es_event_file_provider_materialize_t;
source -> es_file_t,
target -> es_file_t
);
null_fields!(es_event_file_provider_materialize_t; instigator -> es_process_t);
#[repr(C)]
pub struct es_event_readlink_t {
pub source: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_readlink_t; source -> es_file_t);
#[repr(C)]
pub struct es_event_lookup_t {
pub source_dir: ShouldNotBeNull<es_file_t>,
pub relative_target: es_string_token_t,
_reserved: [u8; 64],
}
should_not_be_null_fields!(es_event_lookup_t; source_dir -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_access_t {
pub mode: i32,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_access_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_utimes_t {
pub target: ShouldNotBeNull<es_file_t>,
pub atime: timespec,
pub mtime: timespec,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_utimes_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_clone_t {
pub source: ShouldNotBeNull<es_file_t>,
pub target_dir: ShouldNotBeNull<es_file_t>,
pub target_name: es_string_token_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_clone_t; source -> es_file_t, target_dir -> es_file_t);
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
pub struct es_event_copyfile_t {
pub source: ShouldNotBeNull<es_file_t>,
pub target_file: *mut es_file_t,
pub target_dir: ShouldNotBeNull<es_file_t>,
pub target_name: es_string_token_t,
pub mode: mode_t,
pub flags: i32,
_reserved: [u8; 56],
}
#[cfg(feature = "macos_12_0_0")]
should_not_be_null_fields!(es_event_copyfile_t; source -> es_file_t, target_dir -> es_file_t);
#[cfg(feature = "macos_12_0_0")]
null_fields!(es_event_copyfile_t; target_file -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_fcntl_t {
pub target: ShouldNotBeNull<es_file_t>,
pub cmd: i32,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_fcntl_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_readdir_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_readdir_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_fsgetpath_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_fsgetpath_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
#[derive(Copy, Clone)]
pub struct es_event_settime_t {
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_dup_t {
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_dup_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_uipc_bind_t {
pub dir: ShouldNotBeNull<es_file_t>,
pub filename: es_string_token_t,
pub mode: mode_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_uipc_bind_t; dir -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_uipc_connect_t {
pub file: ShouldNotBeNull<es_file_t>,
pub domain: c_int,
pub type_: c_int,
pub protocol: c_int,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_uipc_connect_t; file -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub struct es_event_setacl_t {
pub target: ShouldNotBeNull<es_file_t>,
pub set_or_clear: es_set_or_clear_t,
pub acl: es_event_setacl_t_anon_0,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_1")]
should_not_be_null_fields!(es_event_setacl_t; target -> es_file_t);
#[cfg(feature = "macos_10_15_1")]
impl es_event_setacl_t {
pub unsafe fn acl(&self) -> Option<&acl_t> {
if self.set_or_clear == es_set_or_clear_t::ES_SET {
Some(unsafe { &self.acl.set })
} else {
None
}
}
}
#[cfg(feature = "macos_10_15_1")]
#[repr(C)]
pub union es_event_setacl_t_anon_0 {
pub set: acl_t,
}
#[cfg(feature = "macos_10_15_4")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_pty_grant_t {
pub dev: dev_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_4")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_pty_close_t {
pub dev: dev_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_4")]
#[repr(C)]
pub struct es_event_proc_check_t {
pub target: *mut es_process_t,
pub type_: es_proc_check_type_t,
pub flavor: c_int,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_10_15_4")]
null_fields!(es_event_proc_check_t; target -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_event_searchfs_t {
pub attrlist: attrlist,
pub target: ShouldNotBeNull<es_file_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_11_0_0")]
should_not_be_null_fields!(es_event_searchfs_t; target -> es_file_t);
ffi_wrap_enum!(
es_proc_suspend_resume_type_t(u32);
== MACOS_10_15_0;
ES_PROC_SUSPEND_RESUME_TYPE_SUSPEND = 0,
ES_PROC_SUSPEND_RESUME_TYPE_RESUME = 1,
--
ES_PROC_SUSPEND_RESUME_TYPE_SHUTDOWN_SOCKETS = 3,
);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_event_proc_suspend_resume_t {
pub target: *mut es_process_t,
pub type_: es_proc_suspend_resume_type_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_11_0_0")]
null_fields!(es_event_proc_suspend_resume_t; target -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_cs_invalidated_t {
_reserved: [u8; 64],
}
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_event_trace_t {
pub target: ShouldNotBeNull<es_process_t>,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_11_0_0")]
should_not_be_null_fields!(es_event_trace_t; target -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
#[repr(C)]
pub struct es_event_remote_thread_create_t {
pub target: ShouldNotBeNull<es_process_t>,
pub thread_state: *mut es_thread_state_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_11_0_0")]
should_not_be_null_fields!(es_event_remote_thread_create_t; target -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
null_fields!(es_event_remote_thread_create_t; thread_state -> es_thread_state_t);
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_setuid_t {
pub uid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_setgid_t {
pub gid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_seteuid_t {
pub euid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_setegid_t {
pub egid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_setreuid_t {
pub ruid: uid_t,
pub euid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_12_0_0")]
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct es_event_setregid_t {
pub rgid: uid_t,
pub egid: uid_t,
_reserved: [u8; 64],
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_authentication_od_t {
pub instigator: *mut es_process_t,
pub record_type: es_string_token_t,
pub record_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
null_fields!(es_event_authentication_od_t; instigator -> es_process_t);
#[cfg(feature = "macos_13_0_0")]
ffi_wrap_enum!(
es_touchid_mode_t(u32);
== #[cfg(feature = "macos_13_0_0")] 13_0_0 "13.0.0";
ES_TOUCHID_MODE_VERIFICATION = 0,
--
ES_TOUCHID_MODE_IDENTIFICATION = 1,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_authentication_touchid_t {
pub instigator: *mut es_process_t,
pub touchid_mode: es_touchid_mode_t,
pub has_uid: bool,
pub anon0: es_event_authentication_touchid_t_anon0,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
null_fields!(es_event_authentication_touchid_t; instigator -> es_process_t);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub union es_event_authentication_touchid_t_anon0 {
pub uid: uid_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_authentication_token_t {
pub instigator: *mut es_process_t,
pub pubkey_hash: es_string_token_t,
pub token_id: es_string_token_t,
pub kerberos_principal: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
null_fields!(es_event_authentication_token_t; instigator -> es_process_t);
#[cfg(feature = "macos_13_0_0")]
ffi_wrap_enum!(
es_auto_unlock_type_t(u32);
== #[cfg(feature = "macos_13_0_0")] 13_0_0 "13.0.0";
ES_AUTO_UNLOCK_MACHINE_UNLOCK = 1,
--
ES_AUTO_UNLOCK_AUTH_PROMPT = 2,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_authentication_auto_unlock_t {
pub username: es_string_token_t,
pub type_: es_auto_unlock_type_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_authentication_t {
pub success: bool,
pub type_: es_authentication_type_t,
pub data: es_event_authentication_t_anon0,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
#[derive(Copy, Clone)]
pub union es_event_authentication_t_anon0 {
pub od: ShouldNotBeNull<es_event_authentication_od_t>,
pub touchid: ShouldNotBeNull<es_event_authentication_touchid_t>,
pub token: ShouldNotBeNull<es_event_authentication_token_t>,
pub auto_unlock: ShouldNotBeNull<es_event_authentication_auto_unlock_t>,
}
#[cfg(feature = "macos_13_0_0")]
should_not_be_null_fields!(
es_event_authentication_t_anon0;
od -> es_event_authentication_od_t,
touchid -> es_event_authentication_touchid_t,
token -> es_event_authentication_token_t,
auto_unlock -> es_event_authentication_auto_unlock_t,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_xp_malware_detected_t {
pub signature_version: es_string_token_t,
pub malware_identifier: es_string_token_t,
pub incident_identifier: es_string_token_t,
pub detected_path: es_string_token_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_xp_malware_remediated_t {
pub signature_version: es_string_token_t,
pub malware_identifier: es_string_token_t,
pub incident_identifier: es_string_token_t,
pub action_type: es_string_token_t,
pub success: bool,
pub result_description: es_string_token_t,
pub remediated_path: es_string_token_t,
pub remediated_process_audit_token: *mut audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
null_fields!(es_event_xp_malware_remediated_t; remediated_process_audit_token -> audit_token_t);
#[cfg(feature = "macos_13_0_0")]
pub type es_graphical_session_id_t = u32;
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_lw_session_login_t {
pub username: es_string_token_t,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_lw_session_logout_t {
pub username: es_string_token_t,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_lw_session_lock_t {
pub username: es_string_token_t,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_lw_session_unlock_t {
pub username: es_string_token_t,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_screensharing_attach_t {
pub success: bool,
pub source_address_type: es_address_type_t,
pub source_address: es_string_token_t,
pub viewer_appleid: es_string_token_t,
pub authentication_type: es_string_token_t,
pub authentication_username: es_string_token_t,
pub session_username: es_string_token_t,
pub existing_session: bool,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_screensharing_detach_t {
pub source_address_type: es_address_type_t,
pub source_address: es_string_token_t,
pub viewer_appleid: es_string_token_t,
pub graphical_session_id: es_graphical_session_id_t,
}
#[cfg(feature = "macos_13_0_0")]
ffi_wrap_enum!(
es_openssh_login_result_type_t(u32);
== #[cfg(feature = "macos_13_0_0")] 13_0_0 "13.0.0";
ES_OPENSSH_LOGIN_EXCEED_MAXTRIES = 0,
ES_OPENSSH_LOGIN_ROOT_DENIED = 1,
ES_OPENSSH_AUTH_SUCCESS = 2,
ES_OPENSSH_AUTH_FAIL_NONE = 3,
ES_OPENSSH_AUTH_FAIL_PASSWD = 4,
ES_OPENSSH_AUTH_FAIL_KBDINT = 5,
ES_OPENSSH_AUTH_FAIL_PUBKEY = 6,
ES_OPENSSH_AUTH_FAIL_HOSTBASED = 7,
ES_OPENSSH_AUTH_FAIL_GSSAPI = 8,
--
ES_OPENSSH_INVALID_USER = 9,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_openssh_login_t {
pub success: bool,
pub result_type: es_openssh_login_result_type_t,
pub source_address_type: es_address_type_t,
pub source_address: es_string_token_t,
pub username: es_string_token_t,
pub has_uid: bool,
pub anon0: es_event_openssh_login_t_anon0,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub union es_event_openssh_login_t_anon0 {
pub uid: uid_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_openssh_logout_t {
pub source_address_type: es_address_type_t,
pub source_address: es_string_token_t,
pub username: es_string_token_t,
pub uid: uid_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_login_login_t {
pub success: bool,
pub failure_message: es_string_token_t,
pub username: es_string_token_t,
pub has_uid: bool,
pub anon0: es_event_login_login_t_anon0,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub union es_event_login_login_t_anon0 {
pub uid: uid_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_login_logout_t {
pub username: es_string_token_t,
pub uid: uid_t,
}
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_btm_launch_item_add_t {
pub instigator: *mut es_process_t,
pub app: *mut es_process_t,
pub item: ShouldNotBeNull<es_btm_launch_item_t>,
pub executable_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: *mut audit_token_t,
#[cfg(feature = "macos_15_0_0")]
pub app_token: *mut audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
should_not_be_null_fields!(es_event_btm_launch_item_add_t; item -> es_btm_launch_item_t);
#[cfg(feature = "macos_13_0_0")]
null_fields!(
es_event_btm_launch_item_add_t;
instigator -> es_process_t,
app -> es_process_t
);
#[cfg(feature = "macos_15_0_0")]
null_fields!(
es_event_btm_launch_item_add_t;
instigator_token -> audit_token_t,
app_token -> audit_token_t,
);
#[cfg(feature = "macos_13_0_0")]
#[repr(C)]
pub struct es_event_btm_launch_item_remove_t {
pub instigator: *mut es_process_t,
pub app: *mut es_process_t,
pub item: ShouldNotBeNull<es_btm_launch_item_t>,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: *mut audit_token_t,
#[cfg(feature = "macos_15_0_0")]
pub app_token: *mut audit_token_t,
}
#[cfg(feature = "macos_13_0_0")]
should_not_be_null_fields!(es_event_btm_launch_item_remove_t; item -> es_btm_launch_item_t);
#[cfg(feature = "macos_13_0_0")]
null_fields!(
es_event_btm_launch_item_remove_t;
instigator -> es_process_t,
app -> es_process_t,
);
#[cfg(feature = "macos_15_0_0")]
null_fields!(
es_event_btm_launch_item_remove_t;
instigator_token -> audit_token_t,
app_token -> audit_token_t,
);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_su_t {
pub success: bool,
pub failure_message: es_string_token_t,
pub from_uid: uid_t,
pub from_username: es_string_token_t,
pub has_to_uid: bool,
pub to_uid: es_event_su_t_anon0,
pub to_username: es_string_token_t,
pub shell: es_string_token_t,
pub argc: usize,
pub argv: *mut es_string_token_t,
pub env_count: usize,
pub env: *mut es_string_token_t,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub union es_event_su_t_anon0 {
pub uid: uid_t,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_sudo_reject_info_t {
pub plugin_name: es_string_token_t,
pub plugin_type: es_sudo_plugin_type_t,
pub failure_message: es_string_token_t,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_sudo_t {
pub success: bool,
pub reject_info: *mut es_sudo_reject_info_t,
pub has_from_uid: bool,
pub from_uid: es_event_sudo_t_anon0,
pub from_username: es_string_token_t,
pub has_to_uid: bool,
pub to_uid: es_event_sudo_t_anon0,
pub to_username: es_string_token_t,
pub command: es_string_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_sudo_t; reject_info -> es_sudo_reject_info_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub union es_event_sudo_t_anon0 {
pub uid: uid_t,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_profile_add_t {
pub instigator: *mut es_process_t,
pub is_update: bool,
pub profile: ShouldNotBeNull<es_profile_t>,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
should_not_be_null_fields!(es_event_profile_add_t; profile -> es_profile_t);
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_profile_add_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_profile_remove_t {
pub instigator: *mut es_process_t,
pub profile: ShouldNotBeNull<es_profile_t>,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
should_not_be_null_fields!(es_event_profile_remove_t; profile -> es_profile_t);
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_profile_remove_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_authorization_petition_t {
pub instigator: *mut es_process_t,
pub petitioner: *mut es_process_t,
pub flags: u32,
pub right_count: usize,
pub rights: *mut es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
#[cfg(feature = "macos_15_0_0")]
pub petitioner_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_authorization_petition_t; instigator -> es_process_t, petitioner -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_authorization_result_t {
pub right_name: es_string_token_t,
pub rule_class: es_authorization_rule_class_t,
pub granted: bool,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_authorization_judgement_t {
pub instigator: *mut es_process_t,
pub petitioner: *mut es_process_t,
pub return_code: i32,
pub result_count: usize,
pub results: *mut es_authorization_result_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
#[cfg(feature = "macos_15_0_0")]
pub petitioner_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_authorization_judgement_t; instigator -> es_process_t, petitioner -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_od_member_id_t {
pub member_type: es_od_member_type_t,
pub member_value: es_od_member_id_t_anon0,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub union es_od_member_id_t_anon0 {
pub uuid: uuid_t,
pub name: ManuallyDrop<es_string_token_t>,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_group_add_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub group_name: es_string_token_t,
pub member: ShouldNotBeNull<es_od_member_id_t>,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_group_add_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_group_remove_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub group_name: es_string_token_t,
pub member: ShouldNotBeNull<es_od_member_id_t>,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_group_remove_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_od_member_id_array_t {
pub member_type: es_od_member_type_t,
pub member_count: usize,
pub member_array: es_od_member_id_array_t_anon0,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub union es_od_member_id_array_t_anon0 {
pub uuids: ShouldNotBeNull<uuid_t>,
pub names: ShouldNotBeNull<es_string_token_t>,
}
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_group_set_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub group_name: es_string_token_t,
pub members: ShouldNotBeNull<es_od_member_id_array_t>,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_group_set_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_modify_password_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub account_type: es_od_account_type_t,
pub account_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_modify_password_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_disable_user_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub user_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_disable_user_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_enable_user_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub user_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_enable_user_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_attribute_value_add_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub record_type: es_od_record_type_t,
pub record_name: es_string_token_t,
pub attribute_name: es_string_token_t,
pub attribute_value: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_attribute_value_add_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_attribute_value_remove_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub record_type: es_od_record_type_t,
pub record_name: es_string_token_t,
pub attribute_name: es_string_token_t,
pub attribute_value: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_attribute_value_remove_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_attribute_set_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub record_type: es_od_record_type_t,
pub record_name: es_string_token_t,
pub attribute_name: es_string_token_t,
pub attribute_value_count: usize,
pub attribute_value_array: *mut es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_attribute_set_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_create_user_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub user_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_create_user_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_create_group_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub group_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_create_group_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_delete_user_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub user_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_delete_user_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_od_delete_group_t {
pub instigator: *mut es_process_t,
pub error_code: i32,
pub group_name: es_string_token_t,
pub node_name: es_string_token_t,
pub db_path: es_string_token_t,
#[cfg(feature = "macos_15_0_0")]
pub instigator_token: audit_token_t,
}
#[cfg(feature = "macos_14_0_0")]
null_fields!(es_event_od_delete_group_t; instigator -> es_process_t);
#[cfg(feature = "macos_14_0_0")]
#[repr(C)]
pub struct es_event_xpc_connect_t {
pub service_name: es_string_token_t,
pub service_domain_type: es_xpc_domain_type_t,
}
#[cfg(feature = "macos_15_0_0")]
#[repr(C)]
pub union es_event_gatekeeper_user_override_t_anon0 {
pub file_path: ManuallyDrop<es_string_token_t>,
pub file: ShouldNotBeNull<es_file_t>,
}
#[cfg(feature = "macos_15_0_0")]
should_not_be_null_fields!(es_event_gatekeeper_user_override_t_anon0; file -> es_file_t);
#[cfg(feature = "macos_15_0_0")]
#[repr(C)]
pub struct es_event_gatekeeper_user_override_t {
pub file_type: es_gatekeeper_user_override_file_type_t,
pub file: es_event_gatekeeper_user_override_t_anon0,
pub sha256: *mut es_sha256_t,
pub signing_info: *mut es_signed_file_info_t,
}
#[cfg(feature = "macos_15_0_0")]
null_fields!(
es_event_gatekeeper_user_override_t;
sha256 -> es_sha256_t,
signing_info -> es_signed_file_info_t
);
#[cfg(feature = "macos_15_4_0")]
#[repr(C)]
pub struct es_event_tcc_modify_t {
pub service: es_string_token_t,
pub identity: es_string_token_t,
pub identity_type: es_tcc_identity_type_t,
pub update_type: es_tcc_event_type_t,
pub instigator_token: audit_token_t,
pub instigator: *mut es_process_t,
pub responsible_token: *mut audit_token_t,
pub responsible: *mut es_process_t,
pub right: es_tcc_authorization_right_t,
pub reason: es_tcc_authorization_reason_t,
}
#[cfg(feature = "macos_15_4_0")]
null_fields!(
es_event_tcc_modify_t;
instigator -> es_process_t,
responsible_token -> audit_token_t,
responsible -> es_process_t,
);
#[repr(C)]
pub union es_events_t {
pub close: ManuallyDrop<es_event_close_t>,
pub create: ManuallyDrop<es_event_create_t>,
pub exchangedata: ManuallyDrop<es_event_exchangedata_t>,
pub exec: ManuallyDrop<es_event_exec_t>,
pub exit: ManuallyDrop<es_event_exit_t>,
pub file_provider_materialize: ManuallyDrop<es_event_file_provider_materialize_t>,
pub file_provider_update: ManuallyDrop<es_event_file_provider_update_t>,
pub fork: ManuallyDrop<es_event_fork_t>,
pub get_task: ManuallyDrop<es_event_get_task_t>,
pub iokit_open: ManuallyDrop<es_event_iokit_open_t>,
pub kextload: ManuallyDrop<es_event_kextload_t>,
pub kextunload: ManuallyDrop<es_event_kextunload_t>,
pub link: ManuallyDrop<es_event_link_t>,
pub lookup: ManuallyDrop<es_event_lookup_t>,
pub mmap: ManuallyDrop<es_event_mmap_t>,
pub mount: ManuallyDrop<es_event_mount_t>,
pub mprotect: ManuallyDrop<es_event_mprotect_t>,
pub open: ManuallyDrop<es_event_open_t>,
pub readlink: ManuallyDrop<es_event_readlink_t>,
pub rename: ManuallyDrop<es_event_rename_t>,
pub setattrlist: ManuallyDrop<es_event_setattrlist_t>,
pub setextattr: ManuallyDrop<es_event_setextattr_t>,
pub setflags: ManuallyDrop<es_event_setflags_t>,
pub setmode: ManuallyDrop<es_event_setmode_t>,
pub setowner: ManuallyDrop<es_event_setowner_t>,
pub signal: ManuallyDrop<es_event_signal_t>,
pub truncate: ManuallyDrop<es_event_truncate_t>,
pub unlink: ManuallyDrop<es_event_unlink_t>,
pub unmount: ManuallyDrop<es_event_unmount_t>,
pub write: ManuallyDrop<es_event_write_t>,
#[cfg(feature = "macos_10_15_1")]
pub access: ManuallyDrop<es_event_access_t>,
#[cfg(feature = "macos_10_15_1")]
pub chdir: ManuallyDrop<es_event_chdir_t>,
#[cfg(feature = "macos_10_15_1")]
pub chroot: ManuallyDrop<es_event_chroot_t>,
#[cfg(feature = "macos_10_15_1")]
pub clone: ManuallyDrop<es_event_clone_t>,
#[cfg(feature = "macos_10_15_1")]
pub deleteextattr: ManuallyDrop<es_event_deleteextattr_t>,
#[cfg(feature = "macos_10_15_1")]
pub dup: ManuallyDrop<es_event_dup_t>,
#[cfg(feature = "macos_10_15_1")]
pub fcntl: ManuallyDrop<es_event_fcntl_t>,
#[cfg(feature = "macos_10_15_1")]
pub fsgetpath: ManuallyDrop<es_event_fsgetpath_t>,
#[cfg(feature = "macos_10_15_1")]
pub getattrlist: ManuallyDrop<es_event_getattrlist_t>,
#[cfg(feature = "macos_10_15_1")]
pub getextattr: ManuallyDrop<es_event_getextattr_t>,
#[cfg(feature = "macos_10_15_1")]
pub listextattr: ManuallyDrop<es_event_listextattr_t>,
#[cfg(feature = "macos_10_15_1")]
pub readdir: ManuallyDrop<es_event_readdir_t>,
#[cfg(feature = "macos_10_15_1")]
pub remount: ManuallyDrop<es_event_remount_t>,
#[cfg(feature = "macos_10_15_1")]
pub setacl: ManuallyDrop<es_event_setacl_t>,
#[cfg(feature = "macos_10_15_1")]
pub settime: ManuallyDrop<es_event_settime_t>,
#[cfg(feature = "macos_10_15_1")]
pub stat: ManuallyDrop<es_event_stat_t>,
#[cfg(feature = "macos_10_15_1")]
pub uipc_bind: ManuallyDrop<es_event_uipc_bind_t>,
#[cfg(feature = "macos_10_15_1")]
pub uipc_connect: ManuallyDrop<es_event_uipc_connect_t>,
#[cfg(feature = "macos_10_15_1")]
pub utimes: ManuallyDrop<es_event_utimes_t>,
#[cfg(feature = "macos_10_15_4")]
pub proc_check: ManuallyDrop<es_event_proc_check_t>,
#[cfg(feature = "macos_10_15_4")]
pub pty_close: ManuallyDrop<es_event_pty_close_t>,
#[cfg(feature = "macos_10_15_4")]
pub pty_grant: ManuallyDrop<es_event_pty_grant_t>,
#[cfg(feature = "macos_11_0_0")]
pub cs_invalidated: ManuallyDrop<es_event_cs_invalidated_t>,
#[cfg(feature = "macos_11_0_0")]
pub get_task_name: ManuallyDrop<es_event_get_task_name_t>,
#[cfg(feature = "macos_11_0_0")]
pub proc_suspend_resume: ManuallyDrop<es_event_proc_suspend_resume_t>,
#[cfg(feature = "macos_11_0_0")]
pub remote_thread_create: ManuallyDrop<es_event_remote_thread_create_t>,
#[cfg(feature = "macos_11_0_0")]
pub searchfs: ManuallyDrop<es_event_searchfs_t>,
#[cfg(feature = "macos_11_0_0")]
pub trace: ManuallyDrop<es_event_trace_t>,
#[cfg(feature = "macos_11_3_0")]
pub get_task_read: ManuallyDrop<es_event_get_task_read_t>,
#[cfg(feature = "macos_11_3_0")]
pub get_task_inspect: ManuallyDrop<es_event_get_task_inspect_t>,
#[cfg(feature = "macos_12_0_0")]
pub copyfile: ManuallyDrop<es_event_copyfile_t>,
#[cfg(feature = "macos_12_0_0")]
pub setgid: ManuallyDrop<es_event_setgid_t>,
#[cfg(feature = "macos_12_0_0")]
pub setuid: ManuallyDrop<es_event_setuid_t>,
#[cfg(feature = "macos_12_0_0")]
pub setegid: ManuallyDrop<es_event_setegid_t>,
#[cfg(feature = "macos_12_0_0")]
pub seteuid: ManuallyDrop<es_event_seteuid_t>,
#[cfg(feature = "macos_12_0_0")]
pub setregid: ManuallyDrop<es_event_setregid_t>,
#[cfg(feature = "macos_12_0_0")]
pub setreuid: ManuallyDrop<es_event_setreuid_t>,
#[cfg(feature = "macos_13_0_0")]
pub authentication: ShouldNotBeNull<es_event_authentication_t>,
#[cfg(feature = "macos_13_0_0")]
pub xp_malware_detected: ShouldNotBeNull<es_event_xp_malware_detected_t>,
#[cfg(feature = "macos_13_0_0")]
pub xp_malware_remediated: ShouldNotBeNull<es_event_xp_malware_remediated_t>,
#[cfg(feature = "macos_13_0_0")]
pub lw_session_login: ShouldNotBeNull<es_event_lw_session_login_t>,
#[cfg(feature = "macos_13_0_0")]
pub lw_session_logout: ShouldNotBeNull<es_event_lw_session_logout_t>,
#[cfg(feature = "macos_13_0_0")]
pub lw_session_lock: ShouldNotBeNull<es_event_lw_session_lock_t>,
#[cfg(feature = "macos_13_0_0")]
pub lw_session_unlock: ShouldNotBeNull<es_event_lw_session_unlock_t>,
#[cfg(feature = "macos_13_0_0")]
pub screensharing_attach: ShouldNotBeNull<es_event_screensharing_attach_t>,
#[cfg(feature = "macos_13_0_0")]
pub screensharing_detach: ShouldNotBeNull<es_event_screensharing_detach_t>,
#[cfg(feature = "macos_13_0_0")]
pub openssh_login: ShouldNotBeNull<es_event_openssh_login_t>,
#[cfg(feature = "macos_13_0_0")]
pub openssh_logout: ShouldNotBeNull<es_event_openssh_logout_t>,
#[cfg(feature = "macos_13_0_0")]
pub login_login: ShouldNotBeNull<es_event_login_login_t>,
#[cfg(feature = "macos_13_0_0")]
pub login_logout: ShouldNotBeNull<es_event_login_logout_t>,
#[cfg(feature = "macos_13_0_0")]
pub btm_launch_item_add: ShouldNotBeNull<es_event_btm_launch_item_add_t>,
#[cfg(feature = "macos_13_0_0")]
pub btm_launch_item_remove: ShouldNotBeNull<es_event_btm_launch_item_remove_t>,
#[cfg(feature = "macos_14_0_0")]
pub profile_add: ShouldNotBeNull<es_event_profile_add_t>,
#[cfg(feature = "macos_14_0_0")]
pub profile_remove: ShouldNotBeNull<es_event_profile_remove_t>,
#[cfg(feature = "macos_14_0_0")]
pub su: ShouldNotBeNull<es_event_su_t>,
#[cfg(feature = "macos_14_0_0")]
pub authorization_petition: ShouldNotBeNull<es_event_authorization_petition_t>,
#[cfg(feature = "macos_14_0_0")]
pub authorization_judgement: ShouldNotBeNull<es_event_authorization_judgement_t>,
#[cfg(feature = "macos_14_0_0")]
pub sudo: ShouldNotBeNull<es_event_sudo_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_group_add: ShouldNotBeNull<es_event_od_group_add_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_group_remove: ShouldNotBeNull<es_event_od_group_remove_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_group_set: ShouldNotBeNull<es_event_od_group_set_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_modify_password: ShouldNotBeNull<es_event_od_modify_password_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_disable_user: ShouldNotBeNull<es_event_od_disable_user_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_enable_user: ShouldNotBeNull<es_event_od_enable_user_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_attribute_value_add: ShouldNotBeNull<es_event_od_attribute_value_add_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_attribute_value_remove: ShouldNotBeNull<es_event_od_attribute_value_remove_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_attribute_set: ShouldNotBeNull<es_event_od_attribute_set_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_create_user: ShouldNotBeNull<es_event_od_create_user_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_create_group: ShouldNotBeNull<es_event_od_create_group_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_delete_user: ShouldNotBeNull<es_event_od_delete_user_t>,
#[cfg(feature = "macos_14_0_0")]
pub od_delete_group: ShouldNotBeNull<es_event_od_delete_group_t>,
#[cfg(feature = "macos_14_0_0")]
pub xpc_connect: ShouldNotBeNull<es_event_xpc_connect_t>,
#[cfg(feature = "macos_15_0_0")]
pub gatekeeper_user_override: ShouldNotBeNull<es_event_gatekeeper_user_override_t>,
#[cfg(feature = "macos_15_4_0")]
pub tcc_modify: ShouldNotBeNull<es_event_tcc_modify_t>,
}
#[repr(C)]
#[must_use]
#[derive(Copy, Clone)]
pub struct es_result_t {
pub result_type: es_result_type_t,
pub result: es_result_t_anon_0,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union es_result_t_anon_0 {
pub auth: es_auth_result_t,
pub flags: u32,
_reserved: [u8; 32],
}
#[repr(C)]
pub struct es_message_t {
pub version: u32,
pub time: timespec,
pub mach_time: u64,
pub deadline: u64,
pub process: ShouldNotBeNull<es_process_t>,
pub seq_num: u64,
pub action_type: es_action_type_t,
pub action: es_message_t_anon_0,
pub event_type: es_event_type_t,
pub event: es_events_t,
#[cfg(feature = "macos_11_0_0")]
pub thread: *mut es_thread_t,
#[cfg(feature = "macos_11_0_0")]
pub global_seq_num: u64,
_opaque: [u64; 0],
}
should_not_be_null_fields!(es_message_t; process -> es_process_t);
#[cfg(feature = "macos_11_0_0")]
null_fields!(es_message_t; thread -> es_thread_t);
#[cfg(feature = "objc2")]
unsafe impl RefEncode for es_message_t {
const ENCODING_REF: Encoding = Encoding::Pointer(&Encoding::Unknown);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union es_message_t_anon_0 {
pub auth: es_event_id_t,
pub notify: es_result_t,
}
#[link(name = "EndpointSecurity", kind = "dylib")]
unsafe extern "C" {
#[cfg_attr(
feature = "macos_11_0_0",
doc = "**Deprecated in macOS 11+**: Please use [`es_retain_message()`] to retain an `es_message_t`."
)]
#[cfg_attr(
not(feature = "macos_11_0_0"),
doc = "**Deprecated in macOS 11+**: Please use `es_retain_message()` to retain an `es_message_t`."
)]
pub fn es_message_size(msg: &es_message_t) -> usize;
#[cfg_attr(
feature = "macos_11_0_0",
doc = "**Deprecated in macOS 11+**: Please use [`es_retain_message()`] to retain an `es_message_t`."
)]
#[cfg_attr(
not(feature = "macos_11_0_0"),
doc = "**Deprecated in macOS 11+**: Please use `es_retain_message()` to retain an `es_message_t`."
)]
pub fn es_copy_message(msg: &es_message_t) -> *mut es_message_t;
#[cfg_attr(
feature = "macos_11_0_0",
doc = "**Deprecated in macOS 11+**: Please use [`es_retain_message()`] to retain an `es_message_t`."
)]
#[cfg_attr(
not(feature = "macos_11_0_0"),
doc = "**Deprecated in macOS 11+**: Please use `es_retain_message()` to retain an `es_message_t`."
)]
pub fn es_free_message(msg: &es_message_t);
#[cfg(feature = "macos_11_0_0")]
pub fn es_retain_message(msg: &es_message_t);
#[cfg(feature = "macos_11_0_0")]
pub fn es_release_message(msg: &es_message_t);
pub fn es_exec_arg_count(event: &es_event_exec_t) -> u32;
pub fn es_exec_env_count(event: &es_event_exec_t) -> u32;
#[cfg(feature = "macos_11_0_0")]
pub fn es_exec_fd_count(event: &es_event_exec_t) -> u32;
pub fn es_exec_arg(event: &es_event_exec_t, index: u32) -> es_string_token_t;
pub fn es_exec_env(event: &es_event_exec_t, index: u32) -> es_string_token_t;
#[cfg(feature = "macos_11_0_0")]
pub fn es_exec_fd(event: &es_event_exec_t, index: u32) -> ShouldNotBeNull<es_fd_t>;
}