summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-07-06 19:07:01 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2009-07-06 19:07:01 +0200
commitd1abbeacfb5a099418f53b583625ac97b1c62059 (patch)
tree2b99e37982c1057037401e6293c9e697c2d424bf
parent2389c46fe314867f99bbdfa1f6c9ff92d433d754 (diff)
downloadbird-d1abbeacfb5a099418f53b583625ac97b1c62059.tar
bird-d1abbeacfb5a099418f53b583625ac97b1c62059.zip
Fixes memory alignment problems on Sparc64.
Not quite standard construction, i should add some autoconf macro. Not tested yet.
-rw-r--r--lib/mempool.c1
-rw-r--r--lib/resource.c1
-rw-r--r--lib/slab.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/lib/mempool.c b/lib/mempool.c
index bb6dcff..e6f277b 100644
--- a/lib/mempool.c
+++ b/lib/mempool.c
@@ -27,6 +27,7 @@
struct lp_chunk {
struct lp_chunk *next;
unsigned int size;
+ uintptr_t data_align[0];
byte data[0];
};
diff --git a/lib/resource.c b/lib/resource.c
index 289af93..8f91450 100644
--- a/lib/resource.c
+++ b/lib/resource.c
@@ -250,6 +250,7 @@ resource_init(void)
struct mblock {
resource r;
unsigned size;
+ uintptr_t data_align[0];
byte data[0];
};
diff --git a/lib/slab.c b/lib/slab.c
index 568f01a..17511d2 100644
--- a/lib/slab.c
+++ b/lib/slab.c
@@ -62,6 +62,7 @@ static struct resclass sl_class = {
struct sl_obj {
node n;
+ uintptr_t data_align[0];
byte data[0];
};