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,161998/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, 
	Magichole	= 0xDeadBabe, 
1998/0522    
	Magichole	= 0x484F4C45,			/* HOLE */ 
1997/1101    
}; 
 
typedef struct Hole Hole; 
1998/0522/sys/src/9/port/xalloc.c:198,2041998/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); 
		print("xfree: no free holes, leaked %d bytes\n", size); 
1998/0825    
		print("xfree: no free holes, leaked %lud bytes\n", size); 
1997/1101    
		return; 
	} 
 
1998/0522/sys/src/9/port/xalloc.c:225,2311998/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) { 
		print("%.8lux %.8lux %d\n", h->addr, h->top, h->size); 
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,1501999/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,1611999/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,862000/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,2242000/0928/sys/src/9/port/xalloc.c:219,225
1997/1101    
 
	if(xlists.flist == nil) { 
		iunlock(&xlists); 
1998/0825    
		print("xfree: no free holes, leaked %lud bytes\n", size); 
2000/0928    
		iprint("xfree: no free holes, leaked %lud bytes\n", size); 
1997/1101    
		return; 
	} 
 
2000/0928/sys/src/9/port/xalloc.c:81,872000/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    
iprint("xinit returning\n"); 
1997/1101    
} 
 
void* 
2000/0928/sys/src/9/port/xalloc.c:219,2252000/1008/sys/src/9/port/xalloc.c:218,224
1997/1101    
 
	if(xlists.flist == nil) { 
		iunlock(&xlists); 
2000/0928    
		iprint("xfree: no free holes, leaked %lud bytes\n", size); 
2000/1008    
		print("xfree: no free holes, leaked %lud bytes\n", size); 
1997/1101    
		return; 
	} 
 
2000/1008/sys/src/9/port/xalloc.c:90,962002/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) 
		panic("xspanalloc: %d %d %lux\n", size, align, span); 
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,1652002/0114/sys/src/9/port/xalloc.c:159,165
1997/1101    
	x = (Xhdr*)((ulong)p - datoff); 
	if(x->magix != Magichole) { 
		xsummary(); 
		panic("xfree(0x%lux) 0x%lux!=0x%lux", p, Magichole, x->magix); 
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,932002/0816/sys/src/9/port/xalloc.c:87,92 (short | long)
1997/1101    
xspanalloc(ulong size, int align, ulong span) 
{ 
	ulong a, v, t; 
                 
	a = (ulong)xalloc(size+align+span); 
	if(a == 0) 
2002/0114    
		panic("xspanalloc: %lud %d %lux\n", size, align, span); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)