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