xref: /freebsd/sys/security/mac/mac_syscalls.h (revision 8a4d24a39098ed8170a37ca2aa83bf1da1976de1)
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