WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Port ACM code to new Xen byteorder macros

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Port ACM code to new Xen byteorder macros.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 30 Jan 2007 06:00:16 -0800
Delivery-date: Tue, 30 Jan 2007 06:01:32 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1170089212 0
# Node ID 699656fb1d0ba5cb507e0128e2a23099c580c14c
# Parent  647c06ba0b49ea05672ec8a4baa152445050d316
Port ACM code to new Xen byteorder macros.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/acm/acm_chinesewall_hooks.c             |   44 +++++------
 xen/acm/acm_core.c                          |   36 ++-------
 xen/acm/acm_policy.c                        |  106 ++++++++++++++--------------
 xen/acm/acm_simple_type_enforcement_hooks.c |   34 ++++----
 xen/include/acm/acm_endian.h                |   52 ++-----------
 5 files changed, 111 insertions(+), 161 deletions(-)

diff -r 647c06ba0b49 -r 699656fb1d0b xen/acm/acm_chinesewall_hooks.c
--- a/xen/acm/acm_chinesewall_hooks.c   Mon Jan 29 16:04:43 2007 +0000
+++ b/xen/acm/acm_chinesewall_hooks.c   Mon Jan 29 16:46:52 2007 +0000
@@ -132,26 +132,26 @@ static int chwall_dump_policy(u8 * buf, 
     if (buf_size < sizeof(struct acm_chwall_policy_buffer))
         return -EINVAL;
 
-    chwall_buf->chwall_max_types = htonl(chwall_bin_pol.max_types);
-    chwall_buf->chwall_max_ssidrefs = htonl(chwall_bin_pol.max_ssidrefs);
-    chwall_buf->policy_code = htonl(ACM_CHINESE_WALL_POLICY);
+    chwall_buf->chwall_max_types = cpu_to_be32(chwall_bin_pol.max_types);
+    chwall_buf->chwall_max_ssidrefs = cpu_to_be32(chwall_bin_pol.max_ssidrefs);
+    chwall_buf->policy_code = cpu_to_be32(ACM_CHINESE_WALL_POLICY);
     chwall_buf->chwall_ssid_offset =
-        htonl(sizeof(struct acm_chwall_policy_buffer));
+        cpu_to_be32(sizeof(struct acm_chwall_policy_buffer));
     chwall_buf->chwall_max_conflictsets =
-        htonl(chwall_bin_pol.max_conflictsets);
+        cpu_to_be32(chwall_bin_pol.max_conflictsets);
     chwall_buf->chwall_conflict_sets_offset =
-        htonl(ntohl(chwall_buf->chwall_ssid_offset) +
+        cpu_to_be32(be32_to_cpu(chwall_buf->chwall_ssid_offset) +
               sizeof(domaintype_t) * chwall_bin_pol.max_ssidrefs *
               chwall_bin_pol.max_types);
     chwall_buf->chwall_running_types_offset =
-        htonl(ntohl(chwall_buf->chwall_conflict_sets_offset) +
+        cpu_to_be32(be32_to_cpu(chwall_buf->chwall_conflict_sets_offset) +
               sizeof(domaintype_t) * chwall_bin_pol.max_conflictsets *
               chwall_bin_pol.max_types);
     chwall_buf->chwall_conflict_aggregate_offset =
-        htonl(ntohl(chwall_buf->chwall_running_types_offset) +
+        cpu_to_be32(be32_to_cpu(chwall_buf->chwall_running_types_offset) +
               sizeof(domaintype_t) * chwall_bin_pol.max_types);
 
-    ret = ntohl(chwall_buf->chwall_conflict_aggregate_offset) +
+    ret = be32_to_cpu(chwall_buf->chwall_conflict_aggregate_offset) +
         sizeof(domaintype_t) * chwall_bin_pol.max_types;
 
     ret = (ret + 7) & ~7;
@@ -160,21 +160,21 @@ static int chwall_dump_policy(u8 * buf, 
         return -EINVAL;
 
     /* now copy buffers over */
-    arrcpy16((u16 *) (buf + ntohl(chwall_buf->chwall_ssid_offset)),
+    arrcpy16((u16 *) (buf + be32_to_cpu(chwall_buf->chwall_ssid_offset)),
              chwall_bin_pol.ssidrefs,
              chwall_bin_pol.max_ssidrefs * chwall_bin_pol.max_types);
 
     arrcpy16((u16 *) (buf +
-                      ntohl(chwall_buf->chwall_conflict_sets_offset)),
+                      be32_to_cpu(chwall_buf->chwall_conflict_sets_offset)),
              chwall_bin_pol.conflict_sets,
              chwall_bin_pol.max_conflictsets * chwall_bin_pol.max_types);
 
     arrcpy16((u16 *) (buf +
-                      ntohl(chwall_buf->chwall_running_types_offset)),
+                      be32_to_cpu(chwall_buf->chwall_running_types_offset)),
              chwall_bin_pol.running_types, chwall_bin_pol.max_types);
 
     arrcpy16((u16 *) (buf +
-                      ntohl(chwall_buf->chwall_conflict_aggregate_offset)),
+                      
be32_to_cpu(chwall_buf->chwall_conflict_aggregate_offset)),
              chwall_bin_pol.conflict_aggregate_set,
              chwall_bin_pol.max_types);
     return ret;
@@ -267,20 +267,20 @@ static int chwall_set_policy(u8 * buf, u
         return -EINVAL;
 
     /* rewrite the policy due to endianess */
-    chwall_buf->policy_code = ntohl(chwall_buf->policy_code);
-    chwall_buf->policy_version = ntohl(chwall_buf->policy_version);
-    chwall_buf->chwall_max_types = ntohl(chwall_buf->chwall_max_types);
+    chwall_buf->policy_code = be32_to_cpu(chwall_buf->policy_code);
+    chwall_buf->policy_version = be32_to_cpu(chwall_buf->policy_version);
+    chwall_buf->chwall_max_types = be32_to_cpu(chwall_buf->chwall_max_types);
     chwall_buf->chwall_max_ssidrefs =
-        ntohl(chwall_buf->chwall_max_ssidrefs);
+        be32_to_cpu(chwall_buf->chwall_max_ssidrefs);
     chwall_buf->chwall_max_conflictsets =
-        ntohl(chwall_buf->chwall_max_conflictsets);
-    chwall_buf->chwall_ssid_offset = ntohl(chwall_buf->chwall_ssid_offset);
+        be32_to_cpu(chwall_buf->chwall_max_conflictsets);
+    chwall_buf->chwall_ssid_offset = 
be32_to_cpu(chwall_buf->chwall_ssid_offset);
     chwall_buf->chwall_conflict_sets_offset =
-        ntohl(chwall_buf->chwall_conflict_sets_offset);
+        be32_to_cpu(chwall_buf->chwall_conflict_sets_offset);
     chwall_buf->chwall_running_types_offset =
-        ntohl(chwall_buf->chwall_running_types_offset);
+        be32_to_cpu(chwall_buf->chwall_running_types_offset);
     chwall_buf->chwall_conflict_aggregate_offset =
-        ntohl(chwall_buf->chwall_conflict_aggregate_offset);
+        be32_to_cpu(chwall_buf->chwall_conflict_aggregate_offset);
 
     /* policy type and version checks */
     if ((chwall_buf->policy_code != ACM_CHINESE_WALL_POLICY) ||
diff -r 647c06ba0b49 -r 699656fb1d0b xen/acm/acm_core.c
--- a/xen/acm/acm_core.c        Mon Jan 29 16:04:43 2007 +0000
+++ b/xen/acm/acm_core.c        Mon Jan 29 16:46:52 2007 +0000
@@ -62,36 +62,18 @@ struct acm_binary_policy acm_bin_pol;
 /* acm binary policy lock */
 DEFINE_RWLOCK(acm_bin_pol_rwlock);
 
-/* until we have endian support in Xen, we discover it at runtime */
-u8 little_endian = 1;
-void
-acm_set_endian(void)
-{
-    u32 test = 1;
-    if (*((u8 *)&test) == 1)
-    {
-        printkd("ACM module running in LITTLE ENDIAN.\n");
-        little_endian = 1;
-    }
-    else
-    {
-        printkd("ACM module running in BIG ENDIAN.\n");
-        little_endian = 0;
-    }
-}
-
-int
-acm_set_policy_reference(u8 * buf, u32 buf_size)
+int
+acm_set_policy_reference(u8 *buf, u32 buf_size)
 {
     struct acm_policy_reference_buffer *pr = (struct 
acm_policy_reference_buffer *)buf;
-    acm_bin_pol.policy_reference_name = (char *)xmalloc_array(u8, 
ntohl(pr->len));
+    acm_bin_pol.policy_reference_name = (char *)xmalloc_array(u8, 
be32_to_cpu(pr->len));
 
     if (!acm_bin_pol.policy_reference_name)
         return -ENOMEM;
 
     strlcpy(acm_bin_pol.policy_reference_name,
             (char *)(buf + sizeof(struct acm_policy_reference_buffer)),
-            ntohl(pr->len));
+            be32_to_cpu(pr->len));
     printk("%s: Activating policy %s\n", __func__,
            acm_bin_pol.policy_reference_name);
     return 0;
@@ -108,10 +90,10 @@ acm_dump_policy_reference(u8 *buf, u32 b
         return -EINVAL;
 
     memset(buf, 0, ret);
-    pr_buf->len = htonl(strlen(acm_bin_pol.policy_reference_name) + 1); /* 
including stringend '\0' */
+    pr_buf->len = cpu_to_be32(strlen(acm_bin_pol.policy_reference_name) + 1); 
/* including stringend '\0' */
     strlcpy((char *)(buf + sizeof(struct acm_policy_reference_buffer)),
             acm_bin_pol.policy_reference_name,
-            ntohl(pr_buf->len));
+            be32_to_cpu(pr_buf->len));
     return ret;
 }
 
@@ -202,7 +184,7 @@ acm_is_policy(char *buf, unsigned long l
         return 0;
 
     pol = (struct acm_policy_buffer *)buf;
-    return ntohl(pol->magic) == ACM_MAGIC;
+    return be32_to_cpu(pol->magic) == ACM_MAGIC;
 }
 
 
@@ -217,7 +199,7 @@ acm_setup(char *policy_start,
         return rc;
 
     pol = (struct acm_policy_buffer *)policy_start;
-    if (ntohl(pol->magic) != ACM_MAGIC)
+    if (be32_to_cpu(pol->magic) != ACM_MAGIC)
         return rc;
 
     rc = do_acm_set_policy((void *)policy_start, (u32)policy_len);
@@ -240,8 +222,6 @@ acm_init(char *policy_start,
          unsigned long policy_len)
 {
     int ret = ACM_OK;
-
-    acm_set_endian();
 
     /* first try to load the boot policy (uses its own locks) */
     acm_setup(policy_start, policy_len);
diff -r 647c06ba0b49 -r 699656fb1d0b xen/acm/acm_policy.c
--- a/xen/acm/acm_policy.c      Mon Jan 29 16:04:43 2007 +0000
+++ b/xen/acm/acm_policy.c      Mon Jan 29 16:46:52 2007 +0000
@@ -63,9 +63,9 @@ do_acm_set_policy(void *buf, u32 buf_siz
 {
     struct acm_policy_buffer *pol = (struct acm_policy_buffer *)buf;
     /* some sanity checking */
-    if ((ntohl(pol->magic) != ACM_MAGIC) ||
-        (buf_size != ntohl(pol->len)) ||
-        (ntohl(pol->policy_version) != ACM_POLICY_VERSION))
+    if ((be32_to_cpu(pol->magic) != ACM_MAGIC) ||
+        (buf_size != be32_to_cpu(pol->len)) ||
+        (be32_to_cpu(pol->policy_version) != ACM_POLICY_VERSION))
     {
         printk("%s: ERROR in Magic, Version, or buf size.\n", __func__);
         goto error_free;
@@ -73,8 +73,8 @@ do_acm_set_policy(void *buf, u32 buf_siz
 
     if (acm_active_security_policy == ACM_POLICY_UNDEFINED) {
         /* setup the policy with the boot policy */
-        if (acm_init_binary_policy((ntohl(pol->secondary_policy_code) << 4) |
-                                   ntohl(pol->primary_policy_code))) {
+        if (acm_init_binary_policy((be32_to_cpu(pol->secondary_policy_code) << 
4) |
+                                   be32_to_cpu(pol->primary_policy_code))) {
             goto error_free;
         }
         acm_active_security_policy =
@@ -82,8 +82,8 @@ do_acm_set_policy(void *buf, u32 buf_siz
     }
 
     /* once acm_active_security_policy is set, it cannot be changed */
-    if ((ntohl(pol->primary_policy_code) != acm_bin_pol.primary_policy_code) ||
-        (ntohl(pol->secondary_policy_code) != 
acm_bin_pol.secondary_policy_code))
+    if ((be32_to_cpu(pol->primary_policy_code) != 
acm_bin_pol.primary_policy_code) ||
+        (be32_to_cpu(pol->secondary_policy_code) != 
acm_bin_pol.secondary_policy_code))
     {
         printkd("%s: Wrong policy type in boot policy!\n", __func__);
         goto error_free;
@@ -93,21 +93,21 @@ do_acm_set_policy(void *buf, u32 buf_siz
     write_lock(&acm_bin_pol_rwlock);
 
     /* set label reference name */
-    if (acm_set_policy_reference(buf + ntohl(pol->policy_reference_offset),
-                                 ntohl(pol->primary_buffer_offset) -
-                                 ntohl(pol->policy_reference_offset)))
+    if (acm_set_policy_reference(buf + 
be32_to_cpu(pol->policy_reference_offset),
+                                 be32_to_cpu(pol->primary_buffer_offset) -
+                                 be32_to_cpu(pol->policy_reference_offset)))
         goto error_lock_free;
 
     /* set primary policy data */
-    if (acm_primary_ops->set_binary_policy(buf + 
ntohl(pol->primary_buffer_offset),
-                                           ntohl(pol->secondary_buffer_offset) 
-
-                                           ntohl(pol->primary_buffer_offset)))
+    if (acm_primary_ops->set_binary_policy(buf + 
be32_to_cpu(pol->primary_buffer_offset),
+                                           
be32_to_cpu(pol->secondary_buffer_offset) -
+                                           
be32_to_cpu(pol->primary_buffer_offset)))
         goto error_lock_free;
 
     /* set secondary policy data */
-    if (acm_secondary_ops->set_binary_policy(buf + 
ntohl(pol->secondary_buffer_offset),
-                                             ntohl(pol->len) - 
-                                             
ntohl(pol->secondary_buffer_offset)))
+    if (acm_secondary_ops->set_binary_policy(buf + 
be32_to_cpu(pol->secondary_buffer_offset),
+                                             be32_to_cpu(pol->len) - 
+                                             
be32_to_cpu(pol->secondary_buffer_offset)))
         goto error_lock_free;
 
     write_unlock(&acm_bin_pol_rwlock);
@@ -136,38 +136,38 @@ acm_get_policy(XEN_GUEST_HANDLE(void) bu
     read_lock(&acm_bin_pol_rwlock);
 
     bin_pol = (struct acm_policy_buffer *)policy_buffer;
-    bin_pol->magic = htonl(ACM_MAGIC);
-    bin_pol->primary_policy_code = htonl(acm_bin_pol.primary_policy_code);
-    bin_pol->secondary_policy_code = htonl(acm_bin_pol.secondary_policy_code);
-
-    bin_pol->len = htonl(sizeof(struct acm_policy_buffer));
-    bin_pol->policy_reference_offset = htonl(ntohl(bin_pol->len));
-    bin_pol->primary_buffer_offset = htonl(ntohl(bin_pol->len));
-    bin_pol->secondary_buffer_offset = htonl(ntohl(bin_pol->len));
+    bin_pol->magic = cpu_to_be32(ACM_MAGIC);
+    bin_pol->primary_policy_code = 
cpu_to_be32(acm_bin_pol.primary_policy_code);
+    bin_pol->secondary_policy_code = 
cpu_to_be32(acm_bin_pol.secondary_policy_code);
+
+    bin_pol->len = cpu_to_be32(sizeof(struct acm_policy_buffer));
+    bin_pol->policy_reference_offset = cpu_to_be32(be32_to_cpu(bin_pol->len));
+    bin_pol->primary_buffer_offset = cpu_to_be32(be32_to_cpu(bin_pol->len));
+    bin_pol->secondary_buffer_offset = cpu_to_be32(be32_to_cpu(bin_pol->len));
      
-    ret = acm_dump_policy_reference(policy_buffer + 
ntohl(bin_pol->policy_reference_offset),
-                                    buf_size - 
ntohl(bin_pol->policy_reference_offset));
-    if (ret < 0)
-        goto error_free_unlock;
-
-    bin_pol->len = htonl(ntohl(bin_pol->len) + ret);
-    bin_pol->primary_buffer_offset = htonl(ntohl(bin_pol->len));
-
-    ret = acm_primary_ops->dump_binary_policy (policy_buffer + 
ntohl(bin_pol->primary_buffer_offset),
-                                               buf_size - 
ntohl(bin_pol->primary_buffer_offset));
-    if (ret < 0)
-        goto error_free_unlock;
-
-    bin_pol->len = htonl(ntohl(bin_pol->len) + ret);
-    bin_pol->secondary_buffer_offset = htonl(ntohl(bin_pol->len));
-
-    ret = acm_secondary_ops->dump_binary_policy(policy_buffer + 
ntohl(bin_pol->secondary_buffer_offset),
-                                                buf_size - 
ntohl(bin_pol->secondary_buffer_offset));
-    if (ret < 0)
-        goto error_free_unlock;
-
-    bin_pol->len = htonl(ntohl(bin_pol->len) + ret);
-    if (copy_to_guest(buf, policy_buffer, ntohl(bin_pol->len)))
+    ret = acm_dump_policy_reference(policy_buffer + 
be32_to_cpu(bin_pol->policy_reference_offset),
+                                    buf_size - 
be32_to_cpu(bin_pol->policy_reference_offset));
+    if (ret < 0)
+        goto error_free_unlock;
+
+    bin_pol->len = cpu_to_be32(be32_to_cpu(bin_pol->len) + ret);
+    bin_pol->primary_buffer_offset = cpu_to_be32(be32_to_cpu(bin_pol->len));
+
+    ret = acm_primary_ops->dump_binary_policy (policy_buffer + 
be32_to_cpu(bin_pol->primary_buffer_offset),
+                                               buf_size - 
be32_to_cpu(bin_pol->primary_buffer_offset));
+    if (ret < 0)
+        goto error_free_unlock;
+
+    bin_pol->len = cpu_to_be32(be32_to_cpu(bin_pol->len) + ret);
+    bin_pol->secondary_buffer_offset = cpu_to_be32(be32_to_cpu(bin_pol->len));
+
+    ret = acm_secondary_ops->dump_binary_policy(policy_buffer + 
be32_to_cpu(bin_pol->secondary_buffer_offset),
+                                                buf_size - 
be32_to_cpu(bin_pol->secondary_buffer_offset));
+    if (ret < 0)
+        goto error_free_unlock;
+
+    bin_pol->len = cpu_to_be32(be32_to_cpu(bin_pol->len) + ret);
+    if (copy_to_guest(buf, policy_buffer, be32_to_cpu(bin_pol->len)))
         goto error_free_unlock;
 
     read_unlock(&acm_bin_pol_rwlock);
@@ -204,12 +204,12 @@ acm_dump_statistics(XEN_GUEST_HANDLE(voi
     if (len2 < 0)
         goto error_lock_free;
 
-    acm_stats.magic = htonl(ACM_MAGIC);
-    acm_stats.primary_policy_code = htonl(acm_bin_pol.primary_policy_code);
-    acm_stats.secondary_policy_code = htonl(acm_bin_pol.secondary_policy_code);
-    acm_stats.primary_stats_offset = htonl(sizeof(struct acm_stats_buffer));
-    acm_stats.secondary_stats_offset = htonl(sizeof(struct acm_stats_buffer) + 
len1);
-    acm_stats.len = htonl(sizeof(struct acm_stats_buffer) + len1 + len2);
+    acm_stats.magic = cpu_to_be32(ACM_MAGIC);
+    acm_stats.primary_policy_code = 
cpu_to_be32(acm_bin_pol.primary_policy_code);
+    acm_stats.secondary_policy_code = 
cpu_to_be32(acm_bin_pol.secondary_policy_code);
+    acm_stats.primary_stats_offset = cpu_to_be32(sizeof(struct 
acm_stats_buffer));
+    acm_stats.secondary_stats_offset = cpu_to_be32(sizeof(struct 
acm_stats_buffer) + len1);
+    acm_stats.len = cpu_to_be32(sizeof(struct acm_stats_buffer) + len1 + len2);
 
     memcpy(stats_buffer, &acm_stats, sizeof(struct acm_stats_buffer));
 
diff -r 647c06ba0b49 -r 699656fb1d0b xen/acm/acm_simple_type_enforcement_hooks.c
--- a/xen/acm/acm_simple_type_enforcement_hooks.c       Mon Jan 29 16:04:43 
2007 +0000
+++ b/xen/acm/acm_simple_type_enforcement_hooks.c       Mon Jan 29 16:46:52 
2007 +0000
@@ -143,11 +143,11 @@ ste_dump_policy(u8 *buf, u32 buf_size) {
     if (buf_size < sizeof(struct acm_ste_policy_buffer))
         return -EINVAL;
 
-    ste_buf->ste_max_types = htonl(ste_bin_pol.max_types);
-    ste_buf->ste_max_ssidrefs = htonl(ste_bin_pol.max_ssidrefs);
-    ste_buf->policy_code = htonl(ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY);
-    ste_buf->ste_ssid_offset = htonl(sizeof(struct acm_ste_policy_buffer));
-    ret = ntohl(ste_buf->ste_ssid_offset) +
+    ste_buf->ste_max_types = cpu_to_be32(ste_bin_pol.max_types);
+    ste_buf->ste_max_ssidrefs = cpu_to_be32(ste_bin_pol.max_ssidrefs);
+    ste_buf->policy_code = cpu_to_be32(ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY);
+    ste_buf->ste_ssid_offset = cpu_to_be32(sizeof(struct 
acm_ste_policy_buffer));
+    ret = be32_to_cpu(ste_buf->ste_ssid_offset) +
         sizeof(domaintype_t)*ste_bin_pol.max_ssidrefs*ste_bin_pol.max_types;
 
     ret = (ret + 7) & ~7;
@@ -156,7 +156,7 @@ ste_dump_policy(u8 *buf, u32 buf_size) {
         return -EINVAL;
 
     /* now copy buffer over */
-    arrcpy(buf + ntohl(ste_buf->ste_ssid_offset),
+    arrcpy(buf + be32_to_cpu(ste_buf->ste_ssid_offset),
            ste_bin_pol.ssidrefs,
            sizeof(domaintype_t),
            ste_bin_pol.max_ssidrefs*ste_bin_pol.max_types);
@@ -287,11 +287,11 @@ ste_set_policy(u8 *buf, u32 buf_size)
         return -EINVAL;
 
     /* Convert endianess of policy */
-    ste_buf->policy_code = ntohl(ste_buf->policy_code);
-    ste_buf->policy_version = ntohl(ste_buf->policy_version);
-    ste_buf->ste_max_types = ntohl(ste_buf->ste_max_types);
-    ste_buf->ste_max_ssidrefs = ntohl(ste_buf->ste_max_ssidrefs);
-    ste_buf->ste_ssid_offset = ntohl(ste_buf->ste_ssid_offset);
+    ste_buf->policy_code = be32_to_cpu(ste_buf->policy_code);
+    ste_buf->policy_version = be32_to_cpu(ste_buf->policy_version);
+    ste_buf->ste_max_types = be32_to_cpu(ste_buf->ste_max_types);
+    ste_buf->ste_max_ssidrefs = be32_to_cpu(ste_buf->ste_max_ssidrefs);
+    ste_buf->ste_ssid_offset = be32_to_cpu(ste_buf->ste_ssid_offset);
 
     /* policy type and version checks */
     if ((ste_buf->policy_code != ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY) ||
@@ -348,12 +348,12 @@ ste_dump_stats(u8 *buf, u16 buf_len)
     struct acm_ste_stats_buffer stats;
 
     /* now send the hook counts to user space */
-    stats.ec_eval_count = htonl(atomic_read(&ste_bin_pol.ec_eval_count));
-    stats.gt_eval_count = htonl(atomic_read(&ste_bin_pol.gt_eval_count));
-    stats.ec_denied_count = htonl(atomic_read(&ste_bin_pol.ec_denied_count));
-    stats.gt_denied_count = htonl(atomic_read(&ste_bin_pol.gt_denied_count));
-    stats.ec_cachehit_count = 
htonl(atomic_read(&ste_bin_pol.ec_cachehit_count));
-    stats.gt_cachehit_count = 
htonl(atomic_read(&ste_bin_pol.gt_cachehit_count));
+    stats.ec_eval_count = cpu_to_be32(atomic_read(&ste_bin_pol.ec_eval_count));
+    stats.gt_eval_count = cpu_to_be32(atomic_read(&ste_bin_pol.gt_eval_count));
+    stats.ec_denied_count = 
cpu_to_be32(atomic_read(&ste_bin_pol.ec_denied_count));
+    stats.gt_denied_count = 
cpu_to_be32(atomic_read(&ste_bin_pol.gt_denied_count));
+    stats.ec_cachehit_count = 
cpu_to_be32(atomic_read(&ste_bin_pol.ec_cachehit_count));
+    stats.gt_cachehit_count = 
cpu_to_be32(atomic_read(&ste_bin_pol.gt_cachehit_count));
 
     if (buf_len < sizeof(struct acm_ste_stats_buffer))
         return -ENOMEM;
diff -r 647c06ba0b49 -r 699656fb1d0b xen/include/acm/acm_endian.h
--- a/xen/include/acm/acm_endian.h      Mon Jan 29 16:04:43 2007 +0000
+++ b/xen/include/acm/acm_endian.h      Mon Jan 29 16:46:52 2007 +0000
@@ -22,57 +22,27 @@
 #ifndef _ACM_ENDIAN_H
 #define _ACM_ENDIAN_H
 
-/* don't use these functions in performance critical sections! */
-
-/* set during initialization by testing */
-extern u8 little_endian;
-
-static inline u32 ntohl(u32 x) 
-{
-    if (little_endian)
-        return 
-            ( (((x) >> 24) & 0xff      )| 
-              (((x) >>  8) & 0xff00    )| 
-              (((x) <<  8) & 0xff0000  )|
-              (((x) << 24) & 0xff000000) );
-    else
-        return x;
-}
-
-static inline u16 ntohs(u16 x) 
-{
-    if (little_endian)
-        return 
-            ( (((x) >> 8) & 0xff   )|
-              (((x) << 8) & 0xff00 ) );
-    else
-        return x;
-}
-
-#define htonl(x) ntohl(x)
-#define htons(x) ntohs(x)
+#include <asm/byteorder.h>
 
 static inline void arrcpy16(u16 *dest, const u16 *src, size_t n)
 {
-    unsigned int i = 0;
-    while (i < n) {
-        dest[i] = htons(src[i]);
-        i++;
-    }
+    unsigned int i;
+    for ( i = 0; i < n; i++ )
+        dest[i] = cpu_to_be16(src[i]);
 }
 
 static inline void arrcpy32(u32 *dest, const u32 *src, size_t n)
 {
-    unsigned int i = 0;
-    while (i < n) {
-        dest[i] = htonl(src[i]);
-        i++;
-    }
+    unsigned int i;
+    for ( i = 0; i < n; i++ )
+        dest[i] = cpu_to_be32(src[i]);
 }
 
-static inline void arrcpy(void *dest, const void *src, unsigned int elsize, 
size_t n)
+static inline void arrcpy(
+    void *dest, const void *src, unsigned int elsize, size_t n)
 {
-    switch (elsize) {
+    switch ( elsize )
+    {
     case sizeof(u16):
         arrcpy16((u16 *)dest, (u16 *)src, n);
         break;

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Port ACM code to new Xen byteorder macros., Xen patchbot-unstable <=