packages: c-icap/c-icap-align-64bit.patch (NEW) - 64 bit alignment patch ta...
hawk
hawk at pld-linux.org
Fri Mar 18 15:20:45 CET 2011
Author: hawk Date: Fri Mar 18 14:20:45 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- 64 bit alignment patch taken from Debian
---- Files affected:
packages/c-icap:
c-icap-align-64bit.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/c-icap/c-icap-align-64bit.patch
diff -u /dev/null packages/c-icap/c-icap-align-64bit.patch:1.1
--- /dev/null Fri Mar 18 15:20:45 2011
+++ packages/c-icap/c-icap-align-64bit.patch Fri Mar 18 15:20:40 2011
@@ -0,0 +1,50 @@
+Align 64 Bit Patch
+--- a/stats.c
++++ b/stats.c
+@@ -29,10 +29,11 @@
+ struct stat_area *STATS = NULL;
+
+ #define STEP 128
++#define ALIGN64(val) ((val+7)&~7)
+
+ int ci_stat_memblock_size(void)
+ {
+- return sizeof(struct stat_memblock)+STAT_INT64.entries_num*sizeof(uint64_t)+STAT_KBS.entries_num*sizeof(kbs_t);
++ return ALIGN64(sizeof(struct stat_memblock))+STAT_INT64.entries_num*sizeof(uint64_t)+STAT_KBS.entries_num*sizeof(kbs_t);
+ }
+
+ int stat_entry_by_name(struct stat_entry_list *list, const char *label);
+@@ -202,8 +203,8 @@
+ ci_thread_mutex_init(&(area->mtx));
+ area->mem_block = mem_block;
+ area->release_mem = release_mem;
+- area->mem_block->counters64 = mem_block + sizeof(struct stat_memblock);
+- area->mem_block->counterskbs = mem_block + sizeof(struct stat_memblock) + STAT_INT64.entries_num*sizeof(uint64_t);
++ area->mem_block->counters64 = mem_block + ALIGN64(sizeof(struct stat_memblock));
++ area->mem_block->counterskbs = mem_block + ALIGN64(sizeof(struct stat_memblock)) + STAT_INT64.entries_num*sizeof(uint64_t);
+ area->mem_block->counters64_size = STAT_INT64.entries_num;
+ area->mem_block->counterskbs_size = STAT_KBS.entries_num;
+ ci_stat_area_reset(area);
+@@ -267,17 +268,17 @@
+ assert(mem_block->sig == MEMBLOCK_SIG);
+ mem_block->counters64_size = STAT_INT64.entries_num;
+ mem_block->counterskbs_size = STAT_KBS.entries_num;
+- mem_block->counters64 = (void *)mem_block + sizeof(struct stat_memblock);
+- mem_block->counterskbs = (void *)mem_block + sizeof(struct stat_memblock)
+- + mem_block->counters64_size*sizeof(uint64_t);
++ mem_block->counters64 = (void *)mem_block + ALIGN64(sizeof(struct stat_memblock));
++ mem_block->counterskbs = (void *)mem_block + ALIGN64(sizeof(struct stat_memblock))
++ + mem_block->counters64_size*sizeof(uint64_t);
+ }
+
+ /*Reconstruct a memblock which is located to a continues memory block*/
+ void stat_memblock_reconstruct(struct stat_memblock *mem_block)
+ {
+ assert(mem_block->sig == MEMBLOCK_SIG);
+- mem_block->counters64 = (void *)mem_block + sizeof(struct stat_memblock);
+- mem_block->counterskbs = (void *)mem_block + sizeof(struct stat_memblock)
++ mem_block->counters64 = (void *)mem_block + ALIGN64(sizeof(struct stat_memblock));
++ mem_block->counterskbs = (void *)mem_block + ALIGN64(sizeof(struct stat_memblock))
+ + mem_block->counters64_size*sizeof(uint64_t);
+ }
+
================================================================
More information about the pld-cvs-commit
mailing list