summaryrefslogtreecommitdiff
path: root/src/avc_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/avc_internal.h')
-rw-r--r--src/avc_internal.h182
1 files changed, 0 insertions, 182 deletions
diff --git a/src/avc_internal.h b/src/avc_internal.h
deleted file mode 100644
index 53610e8..0000000
--- a/src/avc_internal.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * This file describes the internal interface used by the AVC
- * for calling the user-supplied memory allocation, supplemental
- * auditing, and locking routine, as well as incrementing the
- * statistics fields.
- *
- * Author : Eamon Walsh <ewalsh@epoch.ncsc.mil>
- */
-#ifndef _SELINUX_AVC_INTERNAL_H_
-#define _SELINUX_AVC_INTERNAL_H_
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <selinux/avc.h>
-#include "callbacks.h"
-#include "dso.h"
-
-/* callback pointers */
-extern void *(*avc_func_malloc) (size_t) hidden;
-extern void (*avc_func_free) (void *)hidden;
-
-extern void (*avc_func_log) (const char *, ...)hidden;
-extern void (*avc_func_audit) (void *, security_class_t, char *, size_t)hidden;
-
-extern int avc_using_threads hidden;
-extern int avc_app_main_loop hidden;
-extern void *(*avc_func_create_thread) (void (*)(void))hidden;
-extern void (*avc_func_stop_thread) (void *)hidden;
-
-extern void *(*avc_func_alloc_lock) (void)hidden;
-extern void (*avc_func_get_lock) (void *)hidden;
-extern void (*avc_func_release_lock) (void *)hidden;
-extern void (*avc_func_free_lock) (void *)hidden;
-
-static inline void set_callbacks(const struct avc_memory_callback *mem_cb,
- const struct avc_log_callback *log_cb,
- const struct avc_thread_callback *thread_cb,
- const struct avc_lock_callback *lock_cb)
-{
- if (mem_cb) {
- avc_func_malloc = mem_cb->func_malloc;
- avc_func_free = mem_cb->func_free;
- }
- if (log_cb) {
- avc_func_log = log_cb->func_log;
- avc_func_audit = log_cb->func_audit;
- }
- if (thread_cb) {
- avc_using_threads = 1;
- avc_func_create_thread = thread_cb->func_create_thread;
- avc_func_stop_thread = thread_cb->func_stop_thread;
- }
- if (lock_cb) {
- avc_func_alloc_lock = lock_cb->func_alloc_lock;
- avc_func_get_lock = lock_cb->func_get_lock;
- avc_func_release_lock = lock_cb->func_release_lock;
- avc_func_free_lock = lock_cb->func_free_lock;
- }
-}
-
-/* message prefix and enforcing mode*/
-#define AVC_PREFIX_SIZE 16
-extern char avc_prefix[AVC_PREFIX_SIZE] hidden;
-extern int avc_running hidden;
-extern int avc_enforcing hidden;
-extern int avc_setenforce hidden;
-
-/* user-supplied callback interface for avc */
-static inline void *avc_malloc(size_t size)
-{
- return avc_func_malloc ? avc_func_malloc(size) : malloc(size);
-}
-
-static inline void avc_free(void *ptr)
-{
- if (avc_func_free)
- avc_func_free(ptr);
- else
- free(ptr);
-}
-
-/* this is a macro in order to use the variadic capability. */
-#define avc_log(type, format...) \
- if (avc_func_log) \
- avc_func_log(format); \
- else \
- selinux_log(type, format);
-
-static inline void avc_suppl_audit(void *ptr, security_class_t class,
- char *buf, size_t len)
-{
- if (avc_func_audit)
- avc_func_audit(ptr, class, buf, len);
- else
- selinux_audit(ptr, class, buf, len);
-}
-
-static inline void *avc_create_thread(void (*run) (void))
-{
- return avc_func_create_thread ? avc_func_create_thread(run) : NULL;
-}
-
-static inline void avc_stop_thread(void *thread)
-{
- if (avc_func_stop_thread)
- avc_func_stop_thread(thread);
-}
-
-static inline void *avc_alloc_lock(void)
-{
- return avc_func_alloc_lock ? avc_func_alloc_lock() : NULL;
-}
-
-static inline void avc_get_lock(void *lock)
-{
- if (avc_func_get_lock)
- avc_func_get_lock(lock);
-}
-
-static inline void avc_release_lock(void *lock)
-{
- if (avc_func_release_lock)
- avc_func_release_lock(lock);
-}
-
-static inline void avc_free_lock(void *lock)
-{
- if (avc_func_free_lock)
- avc_func_free_lock(lock);
-}
-
-/* statistics helper routines */
-#ifdef AVC_CACHE_STATS
-
-#define avc_cache_stats_incr(field) \
- cache_stats.field ++;
-#define avc_cache_stats_add(field, num) \
- cache_stats.field += num;
-
-#else
-
-#define avc_cache_stats_incr(field)
-#define avc_cache_stats_add(field, num)
-
-#endif
-
-/* logging helper routines */
-#define AVC_AUDIT_BUFSIZE 1024
-
-/* again, we need the variadic capability here */
-#define log_append(buf,format...) \
- snprintf(buf+strlen(buf), AVC_AUDIT_BUFSIZE-strlen(buf), format)
-
-/* internal callbacks */
-int avc_ss_grant(security_id_t ssid, security_id_t tsid,
- security_class_t tclass, access_vector_t perms,
- uint32_t seqno) hidden;
-int avc_ss_try_revoke(security_id_t ssid, security_id_t tsid,
- security_class_t tclass,
- access_vector_t perms, uint32_t seqno,
- access_vector_t * out_retained) hidden;
-int avc_ss_revoke(security_id_t ssid, security_id_t tsid,
- security_class_t tclass, access_vector_t perms,
- uint32_t seqno) hidden;
-int avc_ss_reset(uint32_t seqno) hidden;
-int avc_ss_set_auditallow(security_id_t ssid, security_id_t tsid,
- security_class_t tclass, access_vector_t perms,
- uint32_t seqno, uint32_t enable) hidden;
-int avc_ss_set_auditdeny(security_id_t ssid, security_id_t tsid,
- security_class_t tclass, access_vector_t perms,
- uint32_t seqno, uint32_t enable) hidden;
-
-/* netlink kernel message code */
-extern int avc_netlink_trouble hidden;
-
-hidden_proto(avc_av_stats)
- hidden_proto(avc_cleanup)
- hidden_proto(avc_reset)
- hidden_proto(avc_audit)
- hidden_proto(avc_has_perm_noaudit)
-#endif /* _SELINUX_AVC_INTERNAL_H_ */