1 // Copyright (c) 2023 Apple Inc. All rights reserved. 2 // 3 // @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 4 // 5 // This file contains Original Code and/or Modifications of Original Code 6 // as defined in and that are subject to the Apple Public Source License 7 // Version 2.0 (the 'License'). You may not use this file except in 8 // compliance with the License. The rights granted to you under the License 9 // may not be used to create, or enable the creation or redistribution of, 10 // unlawful or unlicensed copies of an Apple operating system, or to 11 // circumvent, violate, or enable the circumvention or violation of, any 12 // terms of an Apple operating system software license agreement. 13 // 14 // Please obtain a copy of the License at 15 // http://www.opensource.apple.com/apsl/ and read it before using this file. 16 // 17 // The Original Code and all software distributed under the License are 18 // distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 19 // EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 20 // INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 21 // FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 22 // Please see the License for the specific language governing rights and 23 // limitations under the License. 24 // 25 // @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 26 27 #pragma once 28 29 #include <os/base.h> 30 #include <stdbool.h> 31 #include <stdint.h> 32 #include <kern/cpc.h> 33 34 __enum_closed_decl(cpc_event_policy_t, unsigned int, { 35 CPC_EVPOL_DENY_ALL = 0, 36 CPC_EVPOL_ALLOW_ALL, 37 CPC_EVPOL_RESTRICT_TO_KNOWN, 38 #if CPC_INSECURE 39 CPC_EVPOL_DEFAULT = CPC_EVPOL_ALLOW_ALL, 40 #else // CPC_INSECURE 41 CPC_EVPOL_DEFAULT = CPC_EVPOL_RESTRICT_TO_KNOWN, 42 #endif // !CPC_INSECURE 43 }); 44 45 cpc_event_policy_t cpc_get_event_policy(void); 46 47 /// Change how event restrictions are applied. 48 /// 49 /// - Parameters: 50 /// - new_policy: The event policy to start applying indefinitely. 51 void cpc_set_event_policy(cpc_event_policy_t new_policy); 52