[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Compile-time ACM null-ops disables build of acm files.



ChangeSet 1.1727, 2005/06/22 15:18:12+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx

        Compile-time ACM null-ops disables build of acm files.
        Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>



 b/xen/Makefile                      |    2 
 b/xen/Rules.mk                      |    2 
 b/xen/arch/x86/setup.c              |    8 
 b/xen/common/policy_ops.c           |   64 +++--
 b/xen/include/acm/acm_hooks.h       |  436 ++++++++++++++++++------------------
 xen/include/public/acm_dom0_setup.h |   34 --
 6 files changed, 274 insertions(+), 272 deletions(-)


diff -Nru a/xen/Makefile b/xen/Makefile
--- a/xen/Makefile      2005-06-22 11:03:11 -04:00
+++ b/xen/Makefile      2005-06-22 11:03:11 -04:00
@@ -59,7 +59,9 @@
        $(MAKE) include/asm-$(TARGET_ARCH)/asm-offsets.h
        $(MAKE) -C common
        $(MAKE) -C drivers
+ifdef ACM_USE_SECURITY_POLICY
        $(MAKE) -C acm
+endif
        $(MAKE) -C arch/$(TARGET_ARCH)
 
 # drivers/char/console.o may contain static banner/compile info. Blow it away.
diff -Nru a/xen/Rules.mk b/xen/Rules.mk
--- a/xen/Rules.mk      2005-06-22 11:03:11 -04:00
+++ b/xen/Rules.mk      2005-06-22 11:03:11 -04:00
@@ -35,7 +35,9 @@
 ALL_OBJS := $(BASEDIR)/common/common.o
 ALL_OBJS += $(BASEDIR)/drivers/char/driver.o
 ALL_OBJS += $(BASEDIR)/drivers/acpi/driver.o
+ifdef ACM_USE_SECURITY_POLICY
 ALL_OBJS += $(BASEDIR)/acm/acm.o
+endif
 ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
 
 
diff -Nru a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      2005-06-22 11:03:11 -04:00
+++ b/xen/arch/x86/setup.c      2005-06-22 11:03:11 -04:00
@@ -20,7 +20,7 @@
 #include <asm/desc.h>
 #include <asm/shadow.h>
 #include <asm/e820.h>
-#include <public/acm_dom0_setup.h>
+#include <acm/acm_hooks.h>
 
 extern void dmi_scan_machine(void);
 extern void generic_apic_probe(void);
@@ -188,7 +188,7 @@
 
     arch_init_memory();
 
-    scheduler_init();  
+    scheduler_init();
 
     identify_cpu(&boot_cpu_data);
     if ( cpu_has_fxsr )
@@ -383,8 +383,8 @@
 
     init_xenheap_pages(xenheap_phys_start, xenheap_phys_end);
     printk("Xen heap: %luMB (%lukB)\n",
-          (xenheap_phys_end-xenheap_phys_start) >> 20,
-          (xenheap_phys_end-xenheap_phys_start) >> 10);
+           (xenheap_phys_end-xenheap_phys_start) >> 20,
+           (xenheap_phys_end-xenheap_phys_start) >> 10);
 
     early_boot = 0;
 
diff -Nru a/xen/common/policy_ops.c b/xen/common/policy_ops.c
--- a/xen/common/policy_ops.c   2005-06-22 11:03:11 -04:00
+++ b/xen/common/policy_ops.c   2005-06-22 11:03:11 -04:00
@@ -1,5 +1,5 @@
 /******************************************************************************
- *policy_ops.c
+ * policy_ops.c
  * 
  * Copyright (C) 2005 IBM Corporation
  *
@@ -14,6 +14,7 @@
  * Process policy command requests from guest OS.
  *
  */
+
 #include <xen/config.h>
 #include <xen/types.h>
 #include <xen/lib.h>
@@ -27,29 +28,39 @@
 #include <public/sched_ctl.h>
 #include <acm/acm_hooks.h>
 
+#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
+
+long do_policy_op(policy_op_t *u_policy_op)
+{
+    return -ENOSYS;
+}
+
+#else
+
 /* function prototypes defined in acm/acm_policy.c */
 int acm_set_policy(void *buf, u16 buf_size, u16 policy);
 int acm_get_policy(void *buf, u16 buf_size);
 int acm_dump_statistics(void *buf, u16 buf_size);
 
 typedef enum policyoperation {
-       POLICY,     /* access to policy interface (early drop) */
-       GETPOLICY,  /* dump policy cache */
-       SETPOLICY,  /* set policy cache (controls security) */
-       DUMPSTATS   /* dump policy statistics */
+    POLICY,     /* access to policy interface (early drop) */
+    GETPOLICY,  /* dump policy cache */
+    SETPOLICY,  /* set policy cache (controls security) */
+    DUMPSTATS   /* dump policy statistics */
 } policyoperation_t;
 
 int
 acm_authorize_policyops(struct domain *d, policyoperation_t pops)
 {
-       /* currently, all policy management functions are restricted to 
privileged domains,
-        * soon we will introduce finer-grained privileges for policy 
operations 
-        */
-       if (!IS_PRIV(d)) {
-               printk("%s: Policy management authorization denied ERROR!\n", 
__func__);
-               return ACM_ACCESS_DENIED;
-       }
-       return ACM_ACCESS_PERMITTED;
+    /* all policy management functions are restricted to privileged domains,
+     * soon we will introduce finer-grained privileges for policy operations 
+     */
+    if (!IS_PRIV(d)) {
+        printk("%s: Policy management authorization denied ERROR!\n",
+               __func__);
+        return ACM_ACCESS_DENIED;
+    }
+    return ACM_ACCESS_PERMITTED;
 }
 
 long do_policy_op(policy_op_t *u_policy_op)
@@ -60,7 +71,7 @@
     /* check here policy decision for policy commands */
     /* for now allow DOM0 only, later indepedently    */
     if (acm_authorize_policyops(current->domain, POLICY))
-           return -EACCES;
+        return -EACCES;
 
     if ( copy_from_user(op, u_policy_op, sizeof(*op)) )
         return -EFAULT;
@@ -73,9 +84,12 @@
     case POLICY_SETPOLICY:
     {
         if (acm_authorize_policyops(current->domain, SETPOLICY))
-               return -EACCES;
-       printkd("%s: setting policy.\n", __func__);
-       ret = acm_set_policy(op->u.setpolicy.pushcache, 
op->u.setpolicy.pushcache_size, op->u.setpolicy.policy_type);
+            return -EACCES;
+        printkd("%s: setting policy.\n", __func__);
+        ret = acm_set_policy(
+            op->u.setpolicy.pushcache, 
+            op->u.setpolicy.pushcache_size, 
+            op->u.setpolicy.policy_type);
         if (ret == ACM_OK)
             ret = 0;
         else
@@ -86,9 +100,11 @@
     case POLICY_GETPOLICY:
     {
         if (acm_authorize_policyops(current->domain, GETPOLICY))
-               return -EACCES;
+            return -EACCES;
         printkd("%s: getting policy.\n", __func__);
-       ret = acm_get_policy(op->u.getpolicy.pullcache, 
op->u.getpolicy.pullcache_size);
+        ret = acm_get_policy(
+            op->u.getpolicy.pullcache, 
+            op->u.getpolicy.pullcache_size);
         if (ret == ACM_OK)
             ret = 0;
         else
@@ -99,9 +115,11 @@
     case POLICY_DUMPSTATS:
     {
         if (acm_authorize_policyops(current->domain, DUMPSTATS))
-               return -EACCES;
-       printkd("%s: dumping statistics.\n", __func__);
-       ret = acm_dump_statistics(op->u.dumpstats.pullcache, 
op->u.dumpstats.pullcache_size);
+            return -EACCES;
+        printkd("%s: dumping statistics.\n", __func__);
+        ret = acm_dump_statistics(
+            op->u.dumpstats.pullcache, 
+            op->u.dumpstats.pullcache_size);
         if (ret == ACM_OK)
             ret = 0;
         else
@@ -115,3 +133,5 @@
     }
     return ret;
 }
+
+#endif
diff -Nru a/xen/include/acm/acm_hooks.h b/xen/include/acm/acm_hooks.h
--- a/xen/include/acm/acm_hooks.h       2005-06-22 11:03:11 -04:00
+++ b/xen/include/acm/acm_hooks.h       2005-06-22 11:03:11 -04:00
@@ -30,21 +30,42 @@
 #include <public/event_channel.h>
 #include <asm/current.h>
 
+#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
+
+static inline int acm_pre_dom0_op(dom0_op_t *op, void **ssid) 
+{ return 0; }
+static inline void acm_post_dom0_op(dom0_op_t *op, void *ssid) 
+{ return; }
+static inline void acm_fail_dom0_op(dom0_op_t *op, void *ssid) 
+{ return; }
+static inline int acm_pre_event_channel(evtchn_op_t *op) 
+{ return 0; }
+static inline int acm_pre_grant_map_ref(domid_t id) 
+{ return 0; }
+static inline int acm_pre_grant_setup(domid_t id) 
+{ return 0; }
+static inline int acm_init(void)
+{ return 0; }
+static inline void acm_post_domain0_create(domid_t domid) 
+{ return; }
+
+#else
+
 /* if ACM_TRACE_MODE defined, all hooks should
  * print a short trace message */
 /* #define ACM_TRACE_MODE */
 
 #ifdef ACM_TRACE_MODE
-#  define traceprintk(fmt, args...) printk(fmt,## args)
+# define traceprintk(fmt, args...) printk(fmt,## args)
 #else
-#  define traceprintk(fmt, args...)
+# define traceprintk(fmt, args...)
 #endif
 
 /* global variables */
 extern struct acm_operations *acm_primary_ops;
 extern struct acm_operations *acm_secondary_ops;
 
-/**********************************************************************************************
+/*********************************************************************
  * HOOK structure and meaning (justifies a few words about our model):
  * 
  * General idea: every policy-controlled system operation is reflected in a 
@@ -60,7 +81,8 @@
  *      ======================
  *      PRE-Hooks
  *             a) general authorization to guard a controlled system operation
- *             b) prepare security state change (means: fail hook must be able 
to "undo" this)
+ *             b) prepare security state change
+ *                 (means: fail hook must be able to "undo" this)
  *
  *     POST-Hooks
  *             a) commit prepared state change
@@ -100,238 +122,228 @@
  *                                             \
  *                                            sys-ops error
  *
- 
*************************************************************************************************/
+ ********************************************************************/
 
 struct acm_operations {
-       /* policy management functions (must always be defined!) */
-       int  (*init_domain_ssid)                (void **ssid, ssidref_t 
ssidref);
-       void (*free_domain_ssid)                (void *ssid);
-       int  (*dump_binary_policy)              (u8 *buffer, u16 buf_size);
-       int  (*set_binary_policy)               (u8 *buffer, u16 buf_size);     
-       int  (*dump_statistics)                 (u8 *buffer, u16 buf_size);
-       /* domain management control hooks (can be NULL) */
-       int  (*pre_domain_create)               (void *subject_ssid, ssidref_t 
ssidref);
-       void (*post_domain_create)              (domid_t domid, ssidref_t 
ssidref);
-       void (*fail_domain_create)              (void *subject_ssid, ssidref_t 
ssidref);
-       void (*post_domain_destroy)             (void *object_ssid, domid_t id);
-       /* event channel control hooks  (can be NULL) */
-       int  (*pre_eventchannel_unbound)        (domid_t id);
-       void (*fail_eventchannel_unbound)       (domid_t id);
-       int  (*pre_eventchannel_interdomain)    (domid_t id1, domid_t id2);
-       int  (*fail_eventchannel_interdomain)   (domid_t id1, domid_t id2);
-       /* grant table control hooks (can be NULL)  */
-       int  (*pre_grant_map_ref)               (domid_t id);
-       void (*fail_grant_map_ref)              (domid_t id);
-       int  (*pre_grant_setup)                 (domid_t id);
-       void (*fail_grant_setup)                (domid_t id);
+    /* policy management functions (must always be defined!) */
+    int  (*init_domain_ssid)           (void **ssid, ssidref_t ssidref);
+    void (*free_domain_ssid)           (void *ssid);
+    int  (*dump_binary_policy)         (u8 *buffer, u16 buf_size);
+    int  (*set_binary_policy)          (u8 *buffer, u16 buf_size);
+    int  (*dump_statistics)            (u8 *buffer, u16 buf_size);
+    /* domain management control hooks (can be NULL) */
+    int  (*pre_domain_create)          (void *subject_ssid, ssidref_t ssidref);
+    void (*post_domain_create)         (domid_t domid, ssidref_t ssidref);
+    void (*fail_domain_create)         (void *subject_ssid, ssidref_t ssidref);
+    void (*post_domain_destroy)        (void *object_ssid, domid_t id);
+    /* event channel control hooks  (can be NULL) */
+    int  (*pre_eventchannel_unbound)      (domid_t id);
+    void (*fail_eventchannel_unbound)     (domid_t id);
+    int  (*pre_eventchannel_interdomain)  (domid_t id1, domid_t id2);
+    int  (*fail_eventchannel_interdomain) (domid_t id1, domid_t id2);
+    /* grant table control hooks (can be NULL)  */
+    int  (*pre_grant_map_ref)          (domid_t id);
+    void (*fail_grant_map_ref)         (domid_t id);
+    int  (*pre_grant_setup)            (domid_t id);
+    void (*fail_grant_setup)           (domid_t id);
 };
 
-static inline int acm_pre_domain_create (void *subject_ssid, ssidref_t ssidref)
+static inline int acm_pre_domain_create(void *subject_ssid, ssidref_t ssidref)
 {
-       if ((acm_primary_ops->pre_domain_create != NULL) && 
-                acm_primary_ops->pre_domain_create (subject_ssid, ssidref))
-               return ACM_ACCESS_DENIED;
-       else if ((acm_secondary_ops->pre_domain_create != NULL) && 
-                acm_secondary_ops->pre_domain_create (subject_ssid, ssidref)) {
-               /* roll-back primary */
-               if (acm_primary_ops->fail_domain_create != NULL)
-                       acm_primary_ops->fail_domain_create (subject_ssid, 
ssidref);
-               return ACM_ACCESS_DENIED;
-       } else
-               return ACM_ACCESS_PERMITTED;
-}
-
-static inline void acm_post_domain_create (domid_t domid, ssidref_t ssidref)
-{
-       if (acm_primary_ops->post_domain_create != NULL)
-               acm_primary_ops->post_domain_create (domid, ssidref);
-       if (acm_secondary_ops->post_domain_create != NULL)
-               acm_secondary_ops->post_domain_create (domid, ssidref);
-}
-
-static inline void acm_fail_domain_create (void *subject_ssid, ssidref_t 
ssidref)
-{
-       if (acm_primary_ops->fail_domain_create != NULL)
-               acm_primary_ops->fail_domain_create (subject_ssid, ssidref);
-       if (acm_secondary_ops->fail_domain_create != NULL)
-               acm_secondary_ops->fail_domain_create (subject_ssid, ssidref);
-}
-
-static inline void acm_post_domain_destroy (void *object_ssid, domid_t id)
-{
-       if (acm_primary_ops->post_domain_destroy != NULL)
-               acm_primary_ops->post_domain_destroy (object_ssid, id);
-       if (acm_secondary_ops->post_domain_destroy != NULL)
-               acm_secondary_ops->post_domain_destroy (object_ssid, id);
-       return;
-}
-
-/*   event channel ops */
-
-static inline int acm_pre_eventchannel_unbound (domid_t id)
-{
-       if ((acm_primary_ops->pre_eventchannel_unbound != NULL) && 
-           acm_primary_ops->pre_eventchannel_unbound (id))
-               return ACM_ACCESS_DENIED;
-       else if ((acm_secondary_ops->pre_eventchannel_unbound != NULL) && 
-                acm_secondary_ops->pre_eventchannel_unbound (id)) {
-               /* roll-back primary */
-               if (acm_primary_ops->fail_eventchannel_unbound != NULL)
-                       acm_primary_ops->fail_eventchannel_unbound (id);
-               return ACM_ACCESS_DENIED;
-       } else
-               return ACM_ACCESS_PERMITTED;
-}
-
-static inline int acm_pre_eventchannel_interdomain (domid_t id1, domid_t id2)
-{      
-       if ((acm_primary_ops->pre_eventchannel_interdomain != NULL) &&
-           acm_primary_ops->pre_eventchannel_interdomain (id1, id2))
-               return ACM_ACCESS_DENIED;
-       else if ((acm_secondary_ops->pre_eventchannel_interdomain != NULL) &&
-                acm_secondary_ops->pre_eventchannel_interdomain (id1, id2)) {
-               /* roll-back primary */
-               if (acm_primary_ops->fail_eventchannel_interdomain != NULL)
-                       acm_primary_ops->fail_eventchannel_interdomain (id1, 
id2);
-               return ACM_ACCESS_DENIED;
-       } else
-               return ACM_ACCESS_PERMITTED;
-}
-
-/************ Xen inline hooks ***************/
-
-/* small macro to make the hooks more readable 
- * (eliminates hooks if NULL policy is active)
- */
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-static inline int acm_pre_dom0_op(dom0_op_t *op, void **ssid) 
-{ return 0; }
-#else
+    if ((acm_primary_ops->pre_domain_create != NULL) && 
+        acm_primary_ops->pre_domain_create(subject_ssid, ssidref))
+        return ACM_ACCESS_DENIED;
+    else if ((acm_secondary_ops->pre_domain_create != NULL) && 
+             acm_secondary_ops->pre_domain_create(subject_ssid, ssidref)) {
+        /* roll-back primary */
+        if (acm_primary_ops->fail_domain_create != NULL)
+            acm_primary_ops->fail_domain_create(subject_ssid, ssidref);
+        return ACM_ACCESS_DENIED;
+    } else
+        return ACM_ACCESS_PERMITTED;
+}
+
+static inline void acm_post_domain_create(domid_t domid, ssidref_t ssidref)
+{
+    if (acm_primary_ops->post_domain_create != NULL)
+        acm_primary_ops->post_domain_create(domid, ssidref);
+    if (acm_secondary_ops->post_domain_create != NULL)
+        acm_secondary_ops->post_domain_create(domid, ssidref);
+}
+
+static inline void acm_fail_domain_create(
+    void *subject_ssid, ssidref_t ssidref)
+{
+    if (acm_primary_ops->fail_domain_create != NULL)
+        acm_primary_ops->fail_domain_create(subject_ssid, ssidref);
+    if (acm_secondary_ops->fail_domain_create != NULL)
+        acm_secondary_ops->fail_domain_create(subject_ssid, ssidref);
+}
+
+static inline void acm_post_domain_destroy(void *object_ssid, domid_t id)
+{
+    if (acm_primary_ops->post_domain_destroy != NULL)
+        acm_primary_ops->post_domain_destroy(object_ssid, id);
+    if (acm_secondary_ops->post_domain_destroy != NULL)
+        acm_secondary_ops->post_domain_destroy(object_ssid, id);
+    return;
+}
+
+static inline int acm_pre_eventchannel_unbound(domid_t id)
+{
+    if ((acm_primary_ops->pre_eventchannel_unbound != NULL) && 
+        acm_primary_ops->pre_eventchannel_unbound(id))
+        return ACM_ACCESS_DENIED;
+    else if ((acm_secondary_ops->pre_eventchannel_unbound != NULL) && 
+             acm_secondary_ops->pre_eventchannel_unbound(id)) {
+        /* roll-back primary */
+        if (acm_primary_ops->fail_eventchannel_unbound != NULL)
+            acm_primary_ops->fail_eventchannel_unbound(id);
+        return ACM_ACCESS_DENIED;
+    } else
+        return ACM_ACCESS_PERMITTED;
+}
+
+static inline int acm_pre_eventchannel_interdomain(domid_t id1, domid_t id2)
+{
+    if ((acm_primary_ops->pre_eventchannel_interdomain != NULL) &&
+        acm_primary_ops->pre_eventchannel_interdomain(id1, id2))
+        return ACM_ACCESS_DENIED;
+    else if ((acm_secondary_ops->pre_eventchannel_interdomain != NULL) &&
+             acm_secondary_ops->pre_eventchannel_interdomain(id1, id2)) {
+        /* roll-back primary */
+        if (acm_primary_ops->fail_eventchannel_interdomain != NULL)
+            acm_primary_ops->fail_eventchannel_interdomain(id1, id2);
+        return ACM_ACCESS_DENIED;
+    } else
+        return ACM_ACCESS_PERMITTED;
+}
+
 static inline int acm_pre_dom0_op(dom0_op_t *op, void **ssid) 
 {
-       int ret = -EACCES;
-       struct domain *d;
+    int ret = -EACCES;
+    struct domain *d;
 
-       switch(op->cmd) {
-       case DOM0_CREATEDOMAIN:
-               ret = acm_pre_domain_create(current->domain->ssid, 
op->u.createdomain.ssidref);
-               break;
-       case DOM0_DESTROYDOMAIN:
-               d = find_domain_by_id(op->u.destroydomain.domain);
-               if (d != NULL) {
-                       *ssid = d->ssid; /* save for post destroy when d is 
gone */
-                       /* no policy-specific hook */
-                       put_domain(d);
-                       ret = 0;
-               }
-               break;
-       default:
-               ret = 0; /* ok */
-       }
-       return ret;
+    switch(op->cmd) {
+    case DOM0_CREATEDOMAIN:
+        ret = acm_pre_domain_create(
+            current->domain->ssid, op->u.createdomain.ssidref);
+        break;
+    case DOM0_DESTROYDOMAIN:
+        d = find_domain_by_id(op->u.destroydomain.domain);
+        if (d != NULL) {
+            *ssid = d->ssid; /* save for post destroy when d is gone */
+            /* no policy-specific hook */
+            put_domain(d);
+            ret = 0;
+        }
+        break;
+    default:
+        ret = 0; /* ok */
+    }
+    return ret;
 }
-#endif
 
-
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-static inline void acm_post_dom0_op(dom0_op_t *op, void *ssid) 
-{ return; }
-#else
 static inline void acm_post_dom0_op(dom0_op_t *op, void *ssid) 
 {
-       switch(op->cmd) {
-       case DOM0_CREATEDOMAIN:
-               /* initialialize shared sHype security labels for new domain */
-               acm_init_domain_ssid(op->u.createdomain.domain, 
op->u.createdomain.ssidref);
-               acm_post_domain_create(op->u.createdomain.domain, 
op->u.createdomain.ssidref);
-               break;
-       case DOM0_DESTROYDOMAIN:
-               acm_post_domain_destroy(ssid, op->u.destroydomain.domain);
-               /* free security ssid for the destroyed domain (also if running 
null policy */
-               acm_free_domain_ssid((struct acm_ssid_domain *)ssid);
-               break;
-       }
+    switch(op->cmd) {
+    case DOM0_CREATEDOMAIN:
+        /* initialialize shared sHype security labels for new domain */
+        acm_init_domain_ssid(
+            op->u.createdomain.domain, op->u.createdomain.ssidref);
+        acm_post_domain_create(
+            op->u.createdomain.domain, op->u.createdomain.ssidref);
+        break;
+    case DOM0_DESTROYDOMAIN:
+        acm_post_domain_destroy(ssid, op->u.destroydomain.domain);
+        /* free security ssid for the destroyed domain (also if null policy */
+        acm_free_domain_ssid((struct acm_ssid_domain *)ssid);
+        break;
+    }
 }
-#endif
-
 
-#if (ACM_USE_SECURITY_POLICy == ACM_NULL_POLICY)
-static inline void acm_fail_dom0_op(dom0_op_t *op, void *ssid) 
-{ return; }
-#else
 static inline void acm_fail_dom0_op(dom0_op_t *op, void *ssid) 
 {
-       switch(op->cmd) {
-       case DOM0_CREATEDOMAIN:
-               acm_fail_domain_create(current->domain->ssid, 
op->u.createdomain.ssidref);
-               break;
-       }
+    switch(op->cmd) {
+    case DOM0_CREATEDOMAIN:
+        acm_fail_domain_create(
+            current->domain->ssid, op->u.createdomain.ssidref);
+        break;
+    }
 }
-#endif
 
-
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-static inline int acm_pre_event_channel(evtchn_op_t *op) 
-{ return 0; }
-#else
 static inline int acm_pre_event_channel(evtchn_op_t *op) 
 {
-       int ret = -EACCES;
+    int ret = -EACCES;
 
-       switch(op->cmd) {
-       case EVTCHNOP_alloc_unbound:
-               ret = acm_pre_eventchannel_unbound(op->u.alloc_unbound.dom);
-               break;
-       case EVTCHNOP_bind_interdomain:
-               ret = 
acm_pre_eventchannel_interdomain(op->u.bind_interdomain.dom1, 
op->u.bind_interdomain.dom2);
-               break;
-       default:
-               ret = 0; /* ok */
-       }
-       return ret;
+    switch(op->cmd) {
+    case EVTCHNOP_alloc_unbound:
+        ret = acm_pre_eventchannel_unbound(op->u.alloc_unbound.dom);
+        break;
+    case EVTCHNOP_bind_interdomain:
+        ret = acm_pre_eventchannel_interdomain(
+            op->u.bind_interdomain.dom1, op->u.bind_interdomain.dom2);
+        break;
+    default:
+        ret = 0; /* ok */
+    }
+    return ret;
+}
+
+static inline int acm_pre_grant_map_ref(domid_t id)
+{
+    if ( (acm_primary_ops->pre_grant_map_ref != NULL) &&
+         acm_primary_ops->pre_grant_map_ref(id) )
+    {
+        return ACM_ACCESS_DENIED;
+    }
+    else if ( (acm_secondary_ops->pre_grant_map_ref != NULL) &&
+              acm_secondary_ops->pre_grant_map_ref(id) )
+    {
+        /* roll-back primary */
+        if ( acm_primary_ops->fail_grant_map_ref != NULL )
+            acm_primary_ops->fail_grant_map_ref(id);
+        return ACM_ACCESS_DENIED;
+    }
+    else
+    {
+        return ACM_ACCESS_PERMITTED;
+    }
+}
+
+static inline int acm_pre_grant_setup(domid_t id)
+{
+    if ( (acm_primary_ops->pre_grant_setup != NULL) &&
+         acm_primary_ops->pre_grant_setup(id) )
+    {
+        return ACM_ACCESS_DENIED;
+    }
+    else if ( (acm_secondary_ops->pre_grant_setup != NULL) &&
+              acm_secondary_ops->pre_grant_setup(id) )
+    {
+        /* roll-back primary */
+        if (acm_primary_ops->fail_grant_setup != NULL)
+            acm_primary_ops->fail_grant_setup(id);
+        return ACM_ACCESS_DENIED;
+    }
+    else
+    {
+        return ACM_ACCESS_PERMITTED;
+    }
+}
+
+/* predefined ssidref for DOM0 used by xen when creating DOM0 */
+#define ACM_DOM0_SSIDREF        0
+
+static inline void acm_post_domain0_create(domid_t domid)
+{
+    /* initialialize shared sHype security labels for new domain */
+    acm_init_domain_ssid(domid, ACM_DOM0_SSIDREF);
+    acm_post_domain_create(domid, ACM_DOM0_SSIDREF);
 }
-#endif
-
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-static inline int acm_pre_grant_map_ref(domid_t id) 
-{ return 0; }
-#else
-static inline int acm_pre_grant_map_ref (domid_t id)
-{
-       if ((acm_primary_ops->pre_grant_map_ref != NULL) &&
-           acm_primary_ops->pre_grant_map_ref (id))
-               return ACM_ACCESS_DENIED;
-       else if ((acm_secondary_ops->pre_grant_map_ref != NULL) &&
-                acm_secondary_ops->pre_grant_map_ref (id)) {
-               /* roll-back primary */
-               if (acm_primary_ops->fail_grant_map_ref != NULL)
-                       acm_primary_ops->fail_grant_map_ref (id);
-               return ACM_ACCESS_DENIED;
-       } else
-               return ACM_ACCESS_PERMITTED;
-}
-#endif
 
+extern int acm_init(void);
 
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-static inline int acm_pre_grant_setup(domid_t id) 
-{ return 0; }
-#else
-static inline int acm_pre_grant_setup (domid_t id)
-{
-       if ((acm_primary_ops->pre_grant_setup != NULL) &&
-           acm_primary_ops->pre_grant_setup (id))
-               return ACM_ACCESS_DENIED;
-       else if ((acm_secondary_ops->pre_grant_setup != NULL) &&
-                acm_secondary_ops->pre_grant_setup (id)) {
-               /* roll-back primary */
-               if (acm_primary_ops->fail_grant_setup != NULL)
-                       acm_primary_ops->fail_grant_setup (id);
-               return ACM_ACCESS_DENIED;
-       } else
-               return ACM_ACCESS_PERMITTED;
-}
 #endif
-
 
 #endif
diff -Nru a/xen/include/public/acm_dom0_setup.h 
b/xen/include/public/acm_dom0_setup.h
--- a/xen/include/public/acm_dom0_setup.h       2005-06-22 11:03:11 -04:00
+++ /dev/null   Wed Dec 31 16:00:00 196900
@@ -1,34 +0,0 @@
-/****************************************************************
- * acm_dom0_setup.h
- * 
- * Copyright (C) 2005 IBM Corporation
- *
- * Author:
- * Reiner Sailer <sailer@xxxxxxxxxxxxxx>
- *
- * Includes necessary definitions to bring-up dom0
- */
-#include <acm/acm_hooks.h>
-
-extern int acm_init(void);
-
-#if (ACM_USE_SECURITY_POLICY == ACM_NULL_POLICY)
-
-static inline void acm_post_domain0_create(domid_t domid) 
-{ 
-       return; 
-}
-
-#else
-
-/* predefined ssidref for DOM0 used by xen when creating DOM0 */
-#define ACM_DOM0_SSIDREF       0
-
-static inline void acm_post_domain0_create(domid_t domid)
-{
-       /* initialialize shared sHype security labels for new domain */
-       acm_init_domain_ssid(domid, ACM_DOM0_SSIDREF);
-       acm_post_domain_create(domid, ACM_DOM0_SSIDREF);
-}
-
-#endif

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.