1*8a4d24a3SOlivier Certner /*- 2*8a4d24a3SOlivier Certner * SPDX-License-Identifier: BSD-2-Clause 3*8a4d24a3SOlivier Certner * 4*8a4d24a3SOlivier Certner * Copyright (c) 2024 The FreeBSD Foundation 5*8a4d24a3SOlivier Certner * 6*8a4d24a3SOlivier Certner * This software was developed by Olivier Certner <olce.freebsd@certner.fr> at 7*8a4d24a3SOlivier Certner * Kumacom SARL under sponsorship from the FreeBSD Foundation. 8*8a4d24a3SOlivier Certner */ 9*8a4d24a3SOlivier Certner 10*8a4d24a3SOlivier Certner /* 11*8a4d24a3SOlivier Certner * Prototypes for functions used to implement system calls that must manipulate 12*8a4d24a3SOlivier Certner * MAC labels. 13*8a4d24a3SOlivier Certner */ 14*8a4d24a3SOlivier Certner 15*8a4d24a3SOlivier Certner #ifndef _SECURITY_MAC_MAC_SYSCALLS_H_ 16*8a4d24a3SOlivier Certner #define _SECURITY_MAC_MAC_SYSCALLS_H_ 17*8a4d24a3SOlivier Certner 18*8a4d24a3SOlivier Certner #ifndef _KERNEL 19*8a4d24a3SOlivier Certner #error "no user-serviceable parts inside" 20*8a4d24a3SOlivier Certner #endif 21*8a4d24a3SOlivier Certner 22*8a4d24a3SOlivier Certner int mac_label_copyin(const struct mac *const u_mac, struct mac *const mac, 23*8a4d24a3SOlivier Certner char **const u_string); 24*8a4d24a3SOlivier Certner void free_copied_label(const struct mac *const mac); 25*8a4d24a3SOlivier Certner 26*8a4d24a3SOlivier Certner int mac_set_proc_prepare(struct thread *const td, 27*8a4d24a3SOlivier Certner const struct mac *const mac, void **const mac_set_proc_data); 28*8a4d24a3SOlivier Certner int mac_set_proc_core(struct thread *const td, struct ucred *const newcred, 29*8a4d24a3SOlivier Certner void *const mac_set_proc_data); 30*8a4d24a3SOlivier Certner void mac_set_proc_finish(struct thread *const td, bool proc_label_set, 31*8a4d24a3SOlivier Certner void *const mac_set_proc_data); 32*8a4d24a3SOlivier Certner 33*8a4d24a3SOlivier Certner #endif /* !_SECURITY_MAC_MAC_SYSCALLS_H_ */ 34