summaryrefslogtreecommitdiff
path: root/include/selinux/label.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/selinux/label.h')
-rw-r--r--include/selinux/label.h167
1 files changed, 0 insertions, 167 deletions
diff --git a/include/selinux/label.h b/include/selinux/label.h
deleted file mode 100644
index 07eff74..0000000
--- a/include/selinux/label.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Labeling interface for userspace object managers and others.
- *
- * Author : Eamon Walsh <ewalsh@tycho.nsa.gov>
- */
-#ifndef _SELABEL_H_
-#define _SELABEL_H_
-
-#include <stdbool.h>
-#include <sys/types.h>
-#include <selinux/selinux.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Opaque type used for all label handles.
- */
-
-struct selabel_handle;
-
-/*
- * Available backends.
- */
-
-/* file contexts */
-#define SELABEL_CTX_FILE 0
-/* media contexts */
-#define SELABEL_CTX_MEDIA 1
-/* x contexts */
-#define SELABEL_CTX_X 2
-/* db objects */
-#define SELABEL_CTX_DB 3
-/* Android property contexts */
-#define SELABEL_CTX_ANDROID_PROP 4
-/* Android service contexts */
-#define SELABEL_CTX_ANDROID_SERVICE 5
-
-/*
- * Available options
- */
-
-/* no-op option, useful for unused slots in an array of options */
-#define SELABEL_OPT_UNUSED 0
-/* validate contexts before returning them (boolean value) */
-#define SELABEL_OPT_VALIDATE 1
-/* don't use local customizations to backend data (boolean value) */
-#define SELABEL_OPT_BASEONLY 2
-/* specify an alternate path to use when loading backend data */
-#define SELABEL_OPT_PATH 3
-/* select a subset of the search space as an optimization (file backend) */
-#define SELABEL_OPT_SUBSET 4
-/* total number of options */
-#define SELABEL_NOPT 5
-
-/*
- * Label operations
- */
-
-/**
- * selabel_open - Create a labeling handle.
- * @backend: one of the constants specifying a supported labeling backend.
- * @opts: array of selabel_opt structures specifying label options or NULL.
- * @nopts: number of elements in opts array or zero for no options.
- *
- * Open a labeling backend for use. The available backend identifiers are
- * listed above. Options may be provided via the opts parameter; available
- * options are listed above. Not all options may be supported by every
- * backend. Return value is the created handle on success or NULL with
- * @errno set on failure.
- */
-struct selabel_handle *selabel_open(unsigned int backend,
- const struct selinux_opt *opts,
- unsigned nopts);
-
-/**
- * selabel_close - Close a labeling handle.
- * @handle: specifies handle to close
- *
- * Destroy the specified handle, closing files, freeing allocated memory,
- * etc. The handle may not be further used after it has been closed.
- */
-void selabel_close(struct selabel_handle *handle);
-
-/**
- * selabel_lookup - Perform labeling lookup operation.
- * @handle: specifies backend instance to query
- * @con: returns the appropriate context with which to label the object
- * @key: string input to lookup operation
- * @type: numeric input to the lookup operation
- *
- * Perform a labeling lookup operation. Return %0 on success, -%1 with
- * @errno set on failure. The key and type arguments are the inputs to the
- * lookup operation; appropriate values are dictated by the backend in use.
- * The result is returned in the memory pointed to by @con and must be freed
- * by the user with freecon().
- */
-int selabel_lookup(struct selabel_handle *handle, char **con,
- const char *key, int type);
-int selabel_lookup_raw(struct selabel_handle *handle, char **con,
- const char *key, int type);
-
-bool selabel_partial_match(struct selabel_handle *handle, const char *key);
-
-int selabel_lookup_best_match(struct selabel_handle *rec, char **con,
- const char *key, const char **aliases, int type);
-
-enum selabel_cmp_result {
- SELABEL_SUBSET,
- SELABEL_EQUAL,
- SELABEL_SUPERSET,
- SELABEL_INCOMPARABLE
-};
-
-/**
- * selabel_cmp - Compare two label configurations.
- * @h1: handle for the first label configuration
- * @h2: handle for the first label configuration
- *
- * Compare two label configurations.
- * Return %SELABEL_SUBSET if @h1 is a subset of @h2, %SELABEL_EQUAL
- * if @h1 is identical to @h2, %SELABEL_SUPERSET if @h1 is a superset
- * of @h2, and %SELABEL_INCOMPARABLE if @h1 and @h2 are incomparable.
- */
-enum selabel_cmp_result selabel_cmp(struct selabel_handle *h1,
- struct selabel_handle *h2);
-
-/**
- * selabel_stats - log labeling operation statistics.
- * @handle: specifies backend instance to query
- *
- * Log a message with information about the number of queries performed,
- * number of unused matching entries, or other operational statistics.
- * Message is backend-specific, some backends may not output a message.
- */
-void selabel_stats(struct selabel_handle *handle);
-
-/*
- * Type codes used by specific backends
- */
-
-/* X backend */
-#define SELABEL_X_PROP 1
-#define SELABEL_X_EXT 2
-#define SELABEL_X_CLIENT 3
-#define SELABEL_X_EVENT 4
-#define SELABEL_X_SELN 5
-#define SELABEL_X_POLYPROP 6
-#define SELABEL_X_POLYSELN 7
-
-/* DB backend */
-#define SELABEL_DB_DATABASE 1
-#define SELABEL_DB_SCHEMA 2
-#define SELABEL_DB_TABLE 3
-#define SELABEL_DB_COLUMN 4
-#define SELABEL_DB_SEQUENCE 5
-#define SELABEL_DB_VIEW 6
-#define SELABEL_DB_PROCEDURE 7
-#define SELABEL_DB_BLOB 8
-#define SELABEL_DB_TUPLE 9
-#define SELABEL_DB_LANGUAGE 10
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _SELABEL_H_ */