[ACM] Replace enumerations with macros with qualified names.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 9 Jun 2006 15:49:49 +0000 (16:49 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 9 Jun 2006 15:49:49 +0000 (16:49 +0100)
Old unqualified enumeration names polluted the global namespace.
Signed-off-by: Keir Fraser <keir@xensource.com>
tools/python/xen/lowlevel/acm/acm.c
xen/acm/acm_core.c
xen/acm/acm_policy.c
xen/acm/acm_simple_type_enforcement_hooks.c
xen/common/acm_ops.c
xen/include/acm/acm_core.h
xen/include/public/acm.h
xen/include/public/acm_ops.h

index 7d5df4f3d55b38323fc9d5d0a6afccf82aad87be..ec39b60bb41a073bcf2c9e460e867d62b2ef6bbf 100644 (file)
@@ -54,7 +54,7 @@ void * __getssid(int domid, uint32_t *buflen)
     getssid.interface_version = ACM_INTERFACE_VERSION;
     set_xen_guest_handle(getssid.ssidbuf, buf);
     getssid.ssidbuf_size = SSID_BUFFER_SIZE;
-    getssid.get_ssid_by = DOMAINID;
+    getssid.get_ssid_by = ACM_GETBY_domainid;
     getssid.id.domainid = domid;
 
     if (xc_acm_op(xc_handle, ACMOP_getssid, &getssid, sizeof(getssid)) < 0) {
@@ -163,19 +163,19 @@ static PyObject *getdecision(PyObject * self, PyObject * args)
         return NULL;
 
     getdecision.interface_version = ACM_INTERFACE_VERSION;
-    getdecision.hook = SHARING;
+    getdecision.hook = ACMHOOK_sharing;
     if (!strcmp(arg1_name, "domid")) {
-        getdecision.get_decision_by1 = DOMAINID;
+        getdecision.get_decision_by1 = ACM_GETBY_domainid;
         getdecision.id1.domainid = atoi(arg1);
     } else {
-        getdecision.get_decision_by1 = SSIDREF;
+        getdecision.get_decision_by1 = ACM_GETBY_ssidref;
         getdecision.id1.ssidref = atol(arg1);
     }
     if (!strcmp(arg2_name, "domid")) {
-        getdecision.get_decision_by2 = DOMAINID;
+        getdecision.get_decision_by2 = ACM_GETBY_domainid;
         getdecision.id2.domainid = atoi(arg2);
     } else {
-        getdecision.get_decision_by2 = SSIDREF;
+        getdecision.get_decision_by2 = ACM_GETBY_ssidref;
         getdecision.id2.ssidref = atol(arg2);
     }
 
index 28afa50afc25a66035fdb660dec73c47550b070e..035c54229c74041717a6d6705bdff11311f7b2ff 100644 (file)
@@ -316,7 +316,7 @@ acm_init_domain_ssid(domid_t id, ssidref_t ssidref)
         return ACM_INIT_SSID_ERROR;
     }
 
-    ssid->datatype       = DOMAIN;
+    ssid->datatype       = ACM_DATATYPE_domain;
     ssid->subject        = subj;
     ssid->domainid      = subj->domain_id;
     ssid->primary_ssid   = NULL;
index aa640d6c81bcb931e43f416022d543c1ded4773e..eb5f340231ae2d210604482fbf5378b050e9d4d6 100644 (file)
@@ -287,14 +287,13 @@ acm_get_ssid(ssidref_t ssidref, XEN_GUEST_HANDLE(void) buf, u16 buf_size)
 }
 
 int
-acm_get_decision(ssidref_t ssidref1, ssidref_t ssidref2,
-                 enum acm_hook_type hook)
+acm_get_decision(ssidref_t ssidref1, ssidref_t ssidref2, u32 hook)
 {
     int ret = ACM_ACCESS_DENIED;
     switch (hook) {
 
-    case SHARING:
-        /* SHARING Hook restricts access in STE policy only */
+    case ACMHOOK_sharing:
+        /* Sharing hook restricts access in STE policy only */
         ret = acm_sharing(ssidref1, ssidref2);
         break;
 
index a1d87119e5ada5ed97b043b02f38bb8df79dc3e5..f4f8bbc9b951f98220068e61acee7dbe91c2f8d9 100644 (file)
@@ -117,7 +117,7 @@ ste_init_domain_ssid(void **ste_ssid, ssidref_t ssidref)
     }
     /* clean ste cache */
     for (i=0; i<ACM_TE_CACHE_SIZE; i++)
-        ste_ssidp->ste_cache[i].valid = FREE;
+        ste_ssidp->ste_cache[i].valid = ACM_STE_free;
 
     (*ste_ssid) = ste_ssidp;
     printkd("%s: determined ste_ssidref to %x.\n", 
@@ -329,7 +329,7 @@ ste_set_policy(u8 *buf, u32 buf_size)
         ste_ssid = GET_SSIDP(ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY, 
                              (struct acm_ssid_domain *)(*pd)->ssid);
         for (i=0; i<ACM_TE_CACHE_SIZE; i++)
-            ste_ssid->ste_cache[i].valid = FREE;
+            ste_ssid->ste_cache[i].valid = ACM_STE_free;
     }
     read_unlock(&domlist_lock);
     return ACM_OK;
@@ -397,7 +397,7 @@ check_cache(struct domain *dom, domid_t rdom) {
                          (struct acm_ssid_domain *)(dom->ssid));
 
     for(i=0; i< ACM_TE_CACHE_SIZE; i++) {
-        if ((ste_ssid->ste_cache[i].valid == VALID) &&
+        if ((ste_ssid->ste_cache[i].valid == ACM_STE_valid) &&
             (ste_ssid->ste_cache[i].id == rdom)) {
             printkd("cache hit (entry %x, id= %x!\n", i, ste_ssid->ste_cache[i].id);
             return 1;
@@ -418,10 +418,10 @@ cache_result(struct domain *subj, struct domain *obj) {
     ste_ssid = GET_SSIDP(ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY, 
                          (struct acm_ssid_domain *)(subj)->ssid);
     for(i=0; i< ACM_TE_CACHE_SIZE; i++)
-        if (ste_ssid->ste_cache[i].valid == FREE)
+        if (ste_ssid->ste_cache[i].valid == ACM_STE_free)
             break;
     if (i< ACM_TE_CACHE_SIZE) {
-        ste_ssid->ste_cache[i].valid = VALID;
+        ste_ssid->ste_cache[i].valid = ACM_STE_valid;
         ste_ssid->ste_cache[i].id = obj->domain_id;
     } else
         printk ("Cache of dom %x is full!\n", subj->domain_id);
@@ -451,9 +451,9 @@ clean_id_from_cache(domid_t id)
             goto out;
         }
         for (i=0; i<ACM_TE_CACHE_SIZE; i++)
-            if ((ste_ssid->ste_cache[i].valid == VALID) &&
+            if ((ste_ssid->ste_cache[i].valid == ACM_STE_valid) &&
                 (ste_ssid->ste_cache[i].id == id))
-                ste_ssid->ste_cache[i].valid = FREE;
+                ste_ssid->ste_cache[i].valid = ACM_STE_free;
     }
  out:
     read_unlock(&domlist_lock);
index a23b68acf9ef85731a6193413bf3745865b939e8..7bab2b0703490ac84f9c0c9252a0e65a262625f6 100644 (file)
@@ -106,9 +106,9 @@ long do_acm_op(int cmd, XEN_GUEST_HANDLE(void) arg)
         if (getssid.interface_version != ACM_INTERFACE_VERSION)
             return -EACCES;
 
-        if (getssid.get_ssid_by == SSIDREF)
+        if (getssid.get_ssid_by == ACM_GETBY_ssidref)
             ssidref = getssid.id.ssidref;
-        else if (getssid.get_ssid_by == DOMAINID)
+        else if (getssid.get_ssid_by == ACM_GETBY_domainid)
         {
             struct domain *subj = find_domain_by_id(getssid.id.domainid);
             if (!subj)
@@ -143,9 +143,9 @@ long do_acm_op(int cmd, XEN_GUEST_HANDLE(void) arg)
         if (getdecision.interface_version != ACM_INTERFACE_VERSION)
             return -EACCES;
 
-        if (getdecision.get_decision_by1 == SSIDREF)
+        if (getdecision.get_decision_by1 == ACM_GETBY_ssidref)
             ssidref1 = getdecision.id1.ssidref;
-        else if (getdecision.get_decision_by1 == DOMAINID)
+        else if (getdecision.get_decision_by1 == ACM_GETBY_domainid)
         {
             struct domain *subj = find_domain_by_id(getdecision.id1.domainid);
             if (!subj)
@@ -167,9 +167,9 @@ long do_acm_op(int cmd, XEN_GUEST_HANDLE(void) arg)
             rc = -ESRCH;
             break;
         }
-        if (getdecision.get_decision_by2 == SSIDREF)
+        if (getdecision.get_decision_by2 == ACM_GETBY_ssidref)
             ssidref2 = getdecision.id2.ssidref;
-        else if (getdecision.get_decision_by2 == DOMAINID)
+        else if (getdecision.get_decision_by2 == ACM_GETBY_domainid)
         {
             struct domain *subj = find_domain_by_id(getdecision.id2.domainid);
             if (!subj)
index 262e4daae078616fcf37ed8a9afa5b2b80a3439d..f1553393e163be11846ae483abddb70d0222c9bf 100644 (file)
@@ -59,26 +59,27 @@ extern struct ste_binary_policy ste_bin_pol;
 extern rwlock_t acm_bin_pol_rwlock;
 
 /* subject and object type definitions */
-enum acm_datatype { DOMAIN };
+#define ACM_DATATYPE_domain 1
 
 /* defines number of access decisions to other domains can be cached
  * one entry per domain, TE does not distinguish evtchn or grant_table */
 #define ACM_TE_CACHE_SIZE 8
-enum acm_ste_flag { VALID, FREE };
+#define ACM_STE_valid 0
+#define ACM_STE_free  1
 
 /* cache line:
- * if cache_line.valid==VALID, then
+ * if cache_line.valid==ACM_STE_valid, then
  *    STE decision is cached as "permitted" 
  *                 on domain cache_line.id
  */
 struct acm_ste_cache_line {
-    enum acm_ste_flag valid;
+    int valid; /* ACM_STE_* */
     domid_t id;
 };
 
 /* general definition of a subject security id */
 struct acm_ssid_domain {
-    enum acm_datatype datatype; /* type of subject (e.g., partition) */
+    int datatype; /* type of subject (e.g., partition): ACM_DATATYPE_* */
     ssidref_t ssidref;   /* combined security reference */
     void *primary_ssid;   /* primary policy ssid part (e.g. chinese wall) */
     void *secondary_ssid;    /* secondary policy ssid part (e.g. type enforcement) */
@@ -124,7 +125,7 @@ int acm_set_policy(void *buf, u32 buf_size, int isuserbuffer);
 int acm_get_policy(void *buf, u32 buf_size);
 int acm_dump_statistics(void *buf, u16 buf_size);
 int acm_get_ssid(ssidref_t ssidref, u8 *buf, u16 buf_size);
-int acm_get_decision(ssidref_t ssidref1, ssidref_t ssidref2, enum acm_hook_type hook);
+int acm_get_decision(ssidref_t ssidref1, ssidref_t ssidref2, u32 hook);
 int acm_set_policy_reference(u8 * buf, u32 buf_size);
 int acm_dump_policy_reference(u8 *buf, u32 buf_size);
 #endif
index 9fa503a406eba929c4744061c318b476c385a275..b00b84147ad1f3a606862a52539ae3bd83f9218a 100644 (file)
@@ -69,7 +69,8 @@
 typedef uint32_t ssidref_t;
 
 /* hooks that are known to domains */
-enum acm_hook_type {NONE=0, SHARING};
+#define ACMHOOK_none    0
+#define ACMHOOK_sharing 1
 
 /* -------security policy relevant type definitions-------- */
 
index 2da743cc5cd226815d0af025e364e7fd54e9338f..7c7a2f99cf0ff5840f1c31dc7223e5642c036094 100644 (file)
@@ -57,11 +57,12 @@ struct acm_dumpstats {
 
 
 #define ACMOP_getssid           4
-enum get_type {UNSET=0, SSIDREF, DOMAINID};
+#define ACM_GETBY_ssidref  1
+#define ACM_GETBY_domainid 2
 struct acm_getssid {
     /* IN */
     uint32_t interface_version;
-    uint32_t get_ssid_by;
+    uint32_t get_ssid_by; /* ACM_GETBY_* */
     union {
         domaintype_t domainid;
         ssidref_t    ssidref;
@@ -74,8 +75,8 @@ struct acm_getssid {
 struct acm_getdecision {
     /* IN */
     uint32_t interface_version;
-    uint32_t get_decision_by1;
-    uint32_t get_decision_by2;
+    uint32_t get_decision_by1; /* ACM_GETBY_* */
+    uint32_t get_decision_by2; /* ACM_GETBY_* */
     union {
         domaintype_t domainid;
         ssidref_t    ssidref;