--- /n/sources/plan9/sys/include/bin.h Sat Jan 10 10:00:05 2015 +++ /sys/include/bin.h Sun Jun 28 00:00:00 2026 @@ -5,6 +5,6 @@ typedef struct Bin Bin; #pragma incomplete Bin -void *binalloc(Bin **, ulong size, int zero); -void *bingrow(Bin **, void *op, ulong osize, ulong size, int zero); +void *binalloc(Bin **, uintptr size, int zero); +void *bingrow(Bin **, void *op, uintptr osize, uintptr size, int zero); void binfree(Bin **); --- /n/sources/plan9/sys/src/libbin/bin.c Sat Jan 10 10:00:05 2015 +++ /sys/src/libbin/bin.c Sun Jun 28 00:00:00 2026 @@ -4,8 +4,11 @@ enum { - StructAlign = sizeof(union {vlong vl; double d; ulong p; void *v; - struct{vlong v;}vs; struct{double d;}ds; struct{ulong p;}ss; struct{void *v;}xs;}) + StructAlign = sizeof(union { + vlong vl; double d; ulong p; void *v; + struct{vlong v;}vs; struct{double d;}ds; + struct{ulong p;}ss; struct{void *v;}xs; + }) }; enum @@ -16,7 +19,7 @@ enum struct Bin { Bin *next; - ulong total; /* total bytes allocated in can->next */ + uintptr total; /* total bytes allocated in can->next */ uintptr pos; uintptr end; uintptr v; /* last value allocated */ @@ -27,11 +30,11 @@ struct Bin * allocator which allows an entire set to be freed at one time */ static Bin* -mkbin(Bin *bin, ulong size) +mkbin(Bin *bin, uintptr size) { Bin *b; - size = ((size << 1) + (BinSize - 1)) & ~(BinSize - 1); + size = ((size << 1) + (BinSize - 1)) & ~((uintptr)BinSize - 1); b = malloc(sizeof(Bin) + size - BinSize); if(b == nil) return nil; @@ -45,7 +48,7 @@ mkbin(Bin *bin, ulong size) } void* -binalloc(Bin **bin, ulong size, int zero) +binalloc(Bin **bin, uintptr size, int zero) { Bin *b; uintptr p; @@ -60,7 +63,7 @@ binalloc(Bin **bin, ulong size, int zero) *bin = b; } p = b->pos; - p = (p + (StructAlign - 1)) & ~(StructAlign - 1); + p = (p + (StructAlign - 1)) & ~((uintptr)StructAlign - 1); if(p + size > b->end){ b = mkbin(b, size); if(b == nil) @@ -76,7 +79,7 @@ binalloc(Bin **bin, ulong size, int zero) } void* -bingrow(Bin **bin, void *op, ulong osize, ulong size, int zero) +bingrow(Bin **bin, void *op, uintptr osize, uintptr size, int zero) { Bin *b; void *np;