summaryrefslogtreecommitdiffstats
path: root/src/arch/ia64/include/bits
diff options
context:
space:
mode:
authorMichael Brown2005-03-08 19:53:11 +0100
committerMichael Brown2005-03-08 19:53:11 +0100
commit3d6123e69ab879c72ff489afc5bf93ef0b7a94ce (patch)
tree9f3277569153a550fa8d81ebd61bd88f266eb8da /src/arch/ia64/include/bits
downloadipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.gz
ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.xz
ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.zip
Initial revision
Diffstat (limited to 'src/arch/ia64/include/bits')
-rw-r--r--src/arch/ia64/include/bits/byteswap.h36
-rw-r--r--src/arch/ia64/include/bits/cpu.h6
-rw-r--r--src/arch/ia64/include/bits/elf.h11
-rw-r--r--src/arch/ia64/include/bits/endian.h6
-rw-r--r--src/arch/ia64/include/bits/string.h6
5 files changed, 65 insertions, 0 deletions
diff --git a/src/arch/ia64/include/bits/byteswap.h b/src/arch/ia64/include/bits/byteswap.h
new file mode 100644
index 000000000..a8a115850
--- /dev/null
+++ b/src/arch/ia64/include/bits/byteswap.h
@@ -0,0 +1,36 @@
+#ifndef ETHERBOOT_BITS_BYTESWAP_H
+#define ETHERBOOT_BITS_BYTESWAP_H
+
+static inline uint64_t __ia64_bswap_64(uint64_t x)
+{
+ uint64_t result;
+ __asm__ volatile(
+ "mux1 %0=%1,@rev" :
+ "=r" (result)
+ : "r" (x));
+ return result;
+}
+
+#define __bswap_constant_16(x) \
+ ((uint16_t)((((uint16_t)(x) & 0x00ff) << 8) | \
+ (((uint16_t)(x) & 0xff00) >> 8)))
+
+#define __bswap_constant_32(x) \
+ ((uint32_t)((((uint32_t)(x) & 0x000000ffU) << 24) | \
+ (((uint32_t)(x) & 0x0000ff00U) << 8) | \
+ (((uint32_t)(x) & 0x00ff0000U) >> 8) | \
+ (((uint32_t)(x) & 0xff000000U) >> 24)))
+
+#define __bswap_16(x) \
+ (__builtin_constant_p(x) ? \
+ __bswap_constant_16(x) : \
+ (__ia64_bswap_64(x) >> 48))
+
+
+#define __bswap_32(x) \
+ (__builtin_constant_p(x) ? \
+ __bswap_constant_32(x) : \
+ (__ia64_bswap_64(x) >> 32))
+
+
+#endif /* ETHERBOOT_BITS_BYTESWAP_H */
diff --git a/src/arch/ia64/include/bits/cpu.h b/src/arch/ia64/include/bits/cpu.h
new file mode 100644
index 000000000..d8fe1cbbe
--- /dev/null
+++ b/src/arch/ia64/include/bits/cpu.h
@@ -0,0 +1,6 @@
+#ifndef IA64_BITS_CPU_H
+#define IA64_BITS_CPU_H
+
+#define cpu_setup() do {} while(0)
+
+#endif /* IA64_BITS_CPU_H */
diff --git a/src/arch/ia64/include/bits/elf.h b/src/arch/ia64/include/bits/elf.h
new file mode 100644
index 000000000..c68f8456f
--- /dev/null
+++ b/src/arch/ia64/include/bits/elf.h
@@ -0,0 +1,11 @@
+#ifndef IA64_BITS_ELF_H
+#define IA64_BITS_ELF_H
+
+/* ELF Defines for the current architecture */
+#define EM_CURRENT EM_IA_64
+#define ELFDATA_CURRENT ELFDATA2LSB
+
+#define ELF_CHECK_ARCH(x) \
+ ((x).e_machine == EM_CURRENT)
+
+#endif /* IA64_BITS_ELF_H */
diff --git a/src/arch/ia64/include/bits/endian.h b/src/arch/ia64/include/bits/endian.h
new file mode 100644
index 000000000..413e702db
--- /dev/null
+++ b/src/arch/ia64/include/bits/endian.h
@@ -0,0 +1,6 @@
+#ifndef ETHERBOOT_BITS_ENDIAN_H
+#define ETHERBOOT_BITS_ENDIAN_H
+
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+#endif /* ETHERBOOT_BITS_ENDIAN_H */
diff --git a/src/arch/ia64/include/bits/string.h b/src/arch/ia64/include/bits/string.h
new file mode 100644
index 000000000..31e94b7d3
--- /dev/null
+++ b/src/arch/ia64/include/bits/string.h
@@ -0,0 +1,6 @@
+#ifndef ETHERBOOT_BITS_STRING_H
+#define ETHERBOOT_BITS_STRING_H
+
+/* define inline optimized string functions here */
+
+#endif /* ETHERBOOT_BITS_STRING_H */