]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - security/selinux/ss/mls.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6-omap-h63xx.git] / security / selinux / ss / mls.h
index df6032c6d4926680bb6bb4c449794ee4eb25080e..0fdf6257ef6429928eed044d33d9b025ecda7b49 100644 (file)
@@ -13,7 +13,7 @@
 /*
  * Updated: Hewlett-Packard <paul.moore@hp.com>
  *
- *      Added support to import/export the MLS label
+ *     Added support to import/export the MLS label from NetLabel
  *
  * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
  */
 #include "context.h"
 #include "policydb.h"
 
-/*
- * Copies the MLS range from `src' into `dst'.
- */
-static inline int mls_copy_context(struct context *dst,
-                                  struct context *src)
-{
-       int l, rc = 0;
-
-       /* Copy the MLS range from the source context */
-       for (l = 0; l < 2; l++) {
-               dst->range.level[l].sens = src->range.level[l].sens;
-               rc = ebitmap_cpy(&dst->range.level[l].cat,
-                                &src->range.level[l].cat);
-               if (rc)
-                       break;
-       }
-
-       return rc;
-}
-
 int mls_compute_context_len(struct context *context);
 void mls_sid_to_context(struct context *context, char **scontext);
 int mls_context_isvalid(struct policydb *p, struct context *c);
+int mls_range_isvalid(struct policydb *p, struct mls_range *r);
+int mls_level_isvalid(struct policydb *p, struct mls_level *l);
 
 int mls_context_to_sid(char oldc,
-                      char **scontext,
+                      char **scontext,
                       struct context *context,
                       struct sidtab *s,
                       u32 def_sid);
@@ -67,21 +49,39 @@ int mls_compute_sid(struct context *scontext,
                    struct context *newcontext);
 
 int mls_setup_user_range(struct context *fromcon, struct user_datum *user,
-                         struct context *usercon);
-
-void mls_export_lvl(const struct context *context, u32 *low, u32 *high);
-void mls_import_lvl(struct context *context, u32 low, u32 high);
+                        struct context *usercon);
 
-int mls_export_cat(const struct context *context,
-                  unsigned char **low,
-                  size_t *low_len,
-                  unsigned char **high,
-                  size_t *high_len);
-int mls_import_cat(struct context *context,
-                  const unsigned char *low,
-                  size_t low_len,
-                  const unsigned char *high,
-                  size_t high_len);
+#ifdef CONFIG_NETLABEL
+void mls_export_netlbl_lvl(struct context *context,
+                          struct netlbl_lsm_secattr *secattr);
+void mls_import_netlbl_lvl(struct context *context,
+                          struct netlbl_lsm_secattr *secattr);
+int mls_export_netlbl_cat(struct context *context,
+                         struct netlbl_lsm_secattr *secattr);
+int mls_import_netlbl_cat(struct context *context,
+                         struct netlbl_lsm_secattr *secattr);
+#else
+static inline void mls_export_netlbl_lvl(struct context *context,
+                                        struct netlbl_lsm_secattr *secattr)
+{
+       return;
+}
+static inline void mls_import_netlbl_lvl(struct context *context,
+                                        struct netlbl_lsm_secattr *secattr)
+{
+       return;
+}
+static inline int mls_export_netlbl_cat(struct context *context,
+                                       struct netlbl_lsm_secattr *secattr)
+{
+       return -ENOMEM;
+}
+static inline int mls_import_netlbl_cat(struct context *context,
+                                       struct netlbl_lsm_secattr *secattr)
+{
+       return -ENOMEM;
+}
+#endif
 
 #endif /* _SS_MLS_H */