]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - security/selinux/exports.c
PCI Hotplug: pciehp: remove needless members from struct controller
[linux-2.6-omap-h63xx.git] / security / selinux / exports.c
index ae4c73eb30857d769f64ae731b7345d2c374bc0d..87d2bb3ea35574596536a9b67305f8f625042dea 100644 (file)
 #include <linux/selinux.h>
 #include <linux/fs.h>
 #include <linux/ipc.h>
+#include <asm/atomic.h>
 
 #include "security.h"
 #include "objsec.h"
 
-void selinux_task_ctxid(struct task_struct *tsk, u32 *ctxid)
-{
-       struct task_security_struct *tsec = tsk->security;
-       if (selinux_enabled)
-               *ctxid = tsec->sid;
-       else
-               *ctxid = 0;
-}
+/* SECMARK reference count */
+extern atomic_t selinux_secmark_refcount;
 
-int selinux_ctxid_to_string(u32 ctxid, char **ctx, u32 *ctxlen)
+int selinux_sid_to_string(u32 sid, char **ctx, u32 *ctxlen)
 {
        if (selinux_enabled)
-               return security_sid_to_context(ctxid, ctx, ctxlen);
+               return security_sid_to_context(sid, ctx, ctxlen);
        else {
                *ctx = NULL;
                *ctxlen = 0;
@@ -72,3 +67,37 @@ void selinux_get_task_sid(struct task_struct *tsk, u32 *sid)
        *sid = 0;
 }
 
+int selinux_string_to_sid(char *str, u32 *sid)
+{
+       if (selinux_enabled)
+               return security_context_to_sid(str, strlen(str), sid);
+       else {
+               *sid = 0;
+               return 0;
+       }
+}
+EXPORT_SYMBOL_GPL(selinux_string_to_sid);
+
+int selinux_secmark_relabel_packet_permission(u32 sid)
+{
+       if (selinux_enabled) {
+               struct task_security_struct *tsec = current->security;
+
+               return avc_has_perm(tsec->sid, sid, SECCLASS_PACKET,
+                                   PACKET__RELABELTO, NULL);
+       }
+       return 0;
+}
+EXPORT_SYMBOL_GPL(selinux_secmark_relabel_packet_permission);
+
+void selinux_secmark_refcount_inc(void)
+{
+       atomic_inc(&selinux_secmark_refcount);
+}
+EXPORT_SYMBOL_GPL(selinux_secmark_refcount_inc);
+
+void selinux_secmark_refcount_dec(void)
+{
+       atomic_dec(&selinux_secmark_refcount);
+}
+EXPORT_SYMBOL_GPL(selinux_secmark_refcount_dec);