.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Author: Eamon Walsh (ewalsh@tycho.nsa.gov) 2007 .TH "selabel_open" "3" "18 Jun 2007" "" "SELinux API documentation" .SH "NAME" selabel_open, selabel_close \- userspace SELinux labeling interface . .SH "SYNOPSIS" .B #include <selinux/selinux.h> .br .B #include <selinux/label.h> .sp .BI "struct selabel_handle *selabel_open(int " backend , .in +\w'struct selabel_handle *selabel_open('u .BI "const struct selinux_opt *" options , .br .BI "unsigned " nopt ");" .in .sp .BI "void selabel_close(struct selabel_handle *" hnd ");" . .SH "DESCRIPTION" .BR selabel_open () is used to initialize a labeling handle to be used for lookup operations. The .I backend argument specifies which backend is to be opened; the list of current backends appears in .B BACKENDS below. The .I options argument should be NULL or a pointer to an array of .B selinux_opt structures of length .IR nopt : .RS .ta 4n 16n 24n .nf struct selinux_opt { int type; const char *value; }; .fi .ta .RE The available option types are described in .B GLOBAL OPTIONS below as well as in the documentation for each individual backend. The return value on success is a non-NULL value for use in subsequent label operations. .BR selabel_close () terminates use of a handle, freeing any internal resources associated with it. After this call has been made, the handle must not be used again. . .SH "GLOBAL OPTIONS" Global options which may be passed to .BR selabel_open () include the following: . .TP .B SELABEL_OPT_UNUSED The option with a type code of zero is a no-op. Thus an array of options may be initizalized to zero and any untouched elements will not cause an error. .TP .B SELABEL_OPT_VALIDATE A non-null value for this option enables context validation. By default, .BR security_check_context (3) is used; a custom validation function can be provided via .BR selinux_set_callback (3). Note that an invalid context may not be treated as an error unless it is actually encountered during a lookup operation. .TP .B SELABEL_OPT_DIGEST A non-null value for this option enables the generation of an SHA1 digest of the spec files loaded as described in .BR selabel_digest (3) . .SH "BACKENDS" .TP .B SELABEL_CTX_FILE File contexts backend, described in .BR selabel_file (5). .TP .B SELABEL_CTX_MEDIA Media contexts backend, described in .BR selabel_media (5). .TP .B SELABEL_CTX_X X Windows contexts backend, described in .BR selabel_x (5). .TP .B SELABEL_CTX_DB Database objects contexts backend, described in .BR selabel_db (5). . .SH "RETURN VALUE" A non-NULL handle value is returned on success. On error, NULL is returned and .I errno is set appropriately. . .SH "AUTHOR" Eamon Walsh <ewalsh@tycho.nsa.gov> . .SH "SEE ALSO" .ad l .nh .BR selabel_lookup (3), .BR selabel_stats (3), .BR selinux_set_callback (3), .BR selinux (8)