| plan 9 kernel history: overview | file list | diff list |
2002/0114/port/xalloc.c (diff list | history)
| 1997/1101/sys/src/9/port/xalloc.c:10,16 – 1998/0522/sys/src/9/port/xalloc.c:10,16 (short | long) | ||
|
Debugging: change magic number for hole.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1997/1101 | { Chunk = 64*1024, Nhole = 128, | |
| 1998/0522 | Magichole = 0x484F4C45, /* HOLE */ | |
| 1997/1101 | }; typedef struct Hole Hole; | |
| 1998/0522/sys/src/9/port/xalloc.c:198,204 – 1998/0825/sys/src/9/port/xalloc.c:198,204 (short | long) | ||
|
Bug fix: print format.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1997/1101 | if(xlists.flist == nil) { iunlock(&xlists); | |
| 1998/0825 | print("xfree: no free holes, leaked %lud bytes\n", size); | |
| 1997/1101 | return; } | |
| 1998/0522/sys/src/9/port/xalloc.c:225,231 – 1998/0825/sys/src/9/port/xalloc.c:225,231 | ||
| 1997/1101 | print("%d holes free\n", i); i = 0; for(h = xlists.table; h; h = h->link) { | |
| 1998/0825 | print("%.8lux %.8lux %lud\n", h->addr, h->top, h->size); | |
| 1997/1101 | i += h->size; } print("%d bytes free\n", i); | |
| 1998/0825/sys/src/9/port/xalloc.c:145,150 – 1999/0710/sys/src/9/port/xalloc.c:145,156 (short | long) | ||
| 1997/1101 | return nil; } | |
| 1999/0710 | void* xalloc(ulong size) { return xallocz(size, 1); } | |
| 1997/1101 | void xfree(void *p) { | |
| 1998/0825/sys/src/9/port/xalloc.c:156,161 – 1999/0710/sys/src/9/port/xalloc.c:162,181 | ||
| 1997/1101 | panic("xfree(0x%lux) 0x%lux!=0x%lux", p, Magichole, x->magix); } xhole(PADDR(x), x->size); | |
| 1999/0710 | } int xmerge(void *vp, void *vq) { Xhdr *p, *q; p = vp; if((uchar*)vp+p->size == (uchar*)vq) { q = vq; p->size += q->size; return 1; } return 0; | |
| 1997/1101 | } void | |
| 1999/0710/sys/src/9/port/xalloc.c:81,86 – 2000/0928/sys/src/9/port/xalloc.c:81,87 (short | long) | ||
| 1997/1101 | conf.base1 = (ulong)KADDR(conf.base1); conf.npage0 = (ulong)KADDR(conf.npage0); conf.npage1 = (ulong)KADDR(conf.npage1); | |
| 2000/0928 | iprint("xinit returning\n"); | |
| 1997/1101 | } void* | |
| 1999/0710/sys/src/9/port/xalloc.c:218,224 – 2000/0928/sys/src/9/port/xalloc.c:219,225 | ||
| 1997/1101 | if(xlists.flist == nil) { iunlock(&xlists); | |
| 1998/0825 |
| |
| 2000/0928 | iprint("xfree: no free holes, leaked %lud bytes\n", size); | |
| 1997/1101 | return; } | |
| 2000/0928/sys/src/9/port/xalloc.c:81,87 – 2000/1008/sys/src/9/port/xalloc.c:81,86 (short | long) | ||
| 1997/1101 | conf.base1 = (ulong)KADDR(conf.base1); conf.npage0 = (ulong)KADDR(conf.npage0); conf.npage1 = (ulong)KADDR(conf.npage1); | |
| 2000/0928 |
| |
| 1997/1101 | } void* | |
| 2000/0928/sys/src/9/port/xalloc.c:219,225 – 2000/1008/sys/src/9/port/xalloc.c:218,224 | ||
| 1997/1101 | if(xlists.flist == nil) { iunlock(&xlists); | |
| 2000/0928 |
| |
| 2000/1008 | print("xfree: no free holes, leaked %lud bytes\n", size); | |
| 1997/1101 | return; } | |
| 2000/1008/sys/src/9/port/xalloc.c:90,96 – 2002/0114/sys/src/9/port/xalloc.c:90,96 (short | long) | ||
|
Bug fix: print format.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1997/1101 | a = (ulong)xalloc(size+align+span); if(a == 0) | |
| 2002/0114 | panic("xspanalloc: %lud %d %lux\n", size, align, span); | |
| 1997/1101 | if(span > 2) { v = (a + span) & ~(span-1); | |
| 2000/1008/sys/src/9/port/xalloc.c:159,165 – 2002/0114/sys/src/9/port/xalloc.c:159,165 | ||
| 1997/1101 | x = (Xhdr*)((ulong)p - datoff); if(x->magix != Magichole) { xsummary(); | |
| 2002/0114 | panic("xfree(0x%lux) 0x%lux!=0x%lux", p, (ulong)Magichole, x->magix); | |
| 1997/1101 | } xhole(PADDR(x), x->size); | |
| 1999/0710 | } | |
| 2002/0114/sys/src/9/port/xalloc.c:87,93 – 2002/0816/sys/src/9/port/xalloc.c:87,92 (short | long) | ||
| 1997/1101 | xspanalloc(ulong size, int align, ulong span) { ulong a, v, t; | |
| 2002/0114 | panic("xspanalloc: %lud %d %lux\n", size, align, span); | |