clean up pool definitions, and handle 386 kernel pointers. still assuming 32-bits. Reference: /n/atom/patch/applied2013/poolunkempt Date: Tue Jun 18 04:33:32 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/lib/acid/pool Tue Jun 18 04:33:05 2013 +++ /sys/lib/acid/pool Tue Jun 18 04:33:05 2013 @@ -95,18 +95,22 @@ defn Magic(m) { - if m == FREE_MAGIC then - return "free"; + if m == ALLOC_MAGIC then + return "alloc"; if m == ARENA_MAGIC then return "arena"; - if m == UNKEMPT_MAGIC then - return "unkempt"; - if m == KEMPT_MAGIC then - return "kempt"; if m == ARENATAIL_MAGIC then return "arenatail"; if m == DEAD_MAGIC then return "dead"; + if m == FLOATING_MAGIC then + return "floating"; + if m == ALIGN_MAGIC then + return "align"; + if m == FREE_MAGIC then + return "free"; + if m == UNALLOC_MAGIC then + return "unalloc"; return "unknown magic"; } @@ -150,7 +154,7 @@ taddr = B2T(addr); complex Btail taddr; - if addr.magic == FREE_MAGIC || addr.magic == UNKEMPT_MAGIC then { + if addr.magic == FREE_MAGIC || addr.magic == UNALLOC_MAGIC then { if taddr.magic0 != TAIL_MAGIC0 || taddr.magic1 != TAIL_MAGIC1 then print(addr\X, " corrupt tail magic\n"); if taddr.size != addr.size then @@ -170,7 +174,7 @@ print(addr\X, " bad size in arena tail\n"); } - if addr.magic == KEMPT_MAGIC then { + if addr.magic == ALLOC_MAGIC then { a = addr; complex Alloc a; if a.size > 1024*1024*1024 then @@ -242,9 +246,9 @@ loop 1,in do {print(" ");} print(s, " size ", f.size\D, " left ", f.left\X, " right ", f.right\X, "\n"); - if f.left != 0 && f.left < 0x7FFFFFFF then + if f.left != 0 then gendumptree(f.left, in+1, "l"); - if f.right != 0 && f.right < 0x7FFFFFFF then + if f.right != 0 then gendumptree(f.right, in+1, "r"); } @@ -296,8 +300,8 @@ while *addr != FREE_MAGIC && *addr != ARENA_MAGIC - && *addr != UNKEMPT_MAGIC - && *addr != KEMPT_MAGIC + && *addr != UNALLOC_MAGIC + && *addr != ALLOC_MAGIC && *addr != ARENATAIL_MAGIC do addr = addr-4;