Moves 9ns endian helpers
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 9 Sep 2014 20:23:27 +0000 (13:23 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 10 Sep 2014 03:15:27 +0000 (20:15 -0700)
Keep them in a single spot.

kern/arch/x86/apic.h
kern/drivers/dev/acpi.c
kern/include/endian.h

index c13d0de..b275c38 100644 (file)
@@ -15,6 +15,7 @@
 #include <arch/x86.h>
 #include <ros/trapframe.h>
 #include <atomic.h>
+#include <endian.h>
 
 // Local APIC
 /* PBASE is the physical address.  It is mapped in at the VADDR LAPIC_BASE.
@@ -310,10 +311,6 @@ enum {
 extern struct apic xlapic[Napic];
 extern struct apic xioapic[Napic];
 
-#define l16get(p)      (((p)[1]<<8)|(p)[0])
-#define        l32get(p)       (((uint32_t)l16get(p+2)<<16)|l16get(p))
-#define        l64get(p)       (((uint64_t)l32get(p+4)<<32)|l32get(p))
-
 #include <arch/ioapic.h>
 
 char *apicdump(char *, char *);
index 28d94a5..69876ec 100644 (file)
@@ -34,8 +34,6 @@
  * for the user-level interpreter.
  */
 
-#define l16get(p)      (((p)[1]<<8)|(p)[0])
-#define l32get(p)      (((uint32_t)l16get(p+2)<<16)|l16get(p))
 static struct Atable *acpifadt(uint8_t *, int);
 static struct Atable *acpitable(uint8_t *, int);
 static struct Atable *acpimadt(uint8_t *, int);
index 42c6027..38d081d 100644 (file)
@@ -4,11 +4,16 @@
  *
  * Macros to convert to and from endian-data */
 
+#ifndef ROS_KERN_ENDIAN_H
+#define ROS_KERN_ENDIAN_H
+
 #include <ros/common.h>
 #include <arch/endian.h>
 
-#ifndef ROS_KERN_ENDIAN_H
-#define ROS_KERN_ENDIAN_H
+/* Endian-generic versions.  Let the compiler figure it out, plan 9-style */
+#define l16get(p)      (((p)[1]<<8)|(p)[0])
+#define l32get(p)      (((uint32_t)l16get(p+2)<<16)|l16get(p))
+#define l64get(p)      (((uint64_t)l32get(p+4)<<32)|l32get(p))
 
 #ifdef LITTLE_ENDIAN
 #define cpu_to_le16(x) ((uint16_t)(x))