tools: foreign: ensure 64 bit values are properly aligned for arm

When building the foreign headers on x86_32 we use '#pragma pack(4)' and
therefore need to explicitly align types which should be aligned to 8-byte
boundaries.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Ian Campbell authored and Ian Jackson committed 2013-02-26 12:20:56 +00:00
1 parent 2f8c55ccef
commit 84fa23bc6c
1 file changed
+10 -4
+10 -4
View File
@@ -20,15 +20,18 @@ footer = {};
inttypes["arm32"] = {
"unsigned long" : "uint32_t",
"long" : "uint32_t",
"xen_pfn_t" : "uint64_t",
"xen_ulong_t" : "uint64_t",
"xen_pfn_t" : "__align8__ uint64_t",
"xen_ulong_t" : "__align8__ uint64_t",
"uint64_t" : "__align8__ uint64_t",
};
header["arm32"] = """
#define __arm___ARM32 1
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
# define __DECL_REG(n64, n32) union { uint64_t n64; uint32_t n32; }
# define __align8__ __attribute__((aligned (8)))
#else
# define __DECL_REG(n64, n32) uint64_t n64
# define __align8__ FIXME
#endif
""";
footer["arm32"] = """
@@ -38,15 +41,18 @@ footer["arm32"] = """
inttypes["arm64"] = {
"unsigned long" : "__danger_unsigned_long_on_arm64",
"long" : "__danger_long_on_arm64",
"xen_pfn_t" : "uint64_t",
"xen_ulong_t" : "uint64_t",
"xen_pfn_t" : "__align8__ uint64_t",
"xen_ulong_t" : "__align8__ uint64_t",
"uint64_t" : "__align8__ uint64_t",
};
header["arm64"] = """
#define __aarch64___ARM64 1
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
# define __DECL_REG(n64, n32) union { uint64_t n64; uint32_t n32; }
# define __align8__ __attribute__((aligned (8)))
#else
# define __DECL_REG(n64, n32) uint64_t n64
# define __align8__ FIXME
#endif
""";
footer["arm64"] = """
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.