for (i=_mem->cnt-1; i >= 0; i--) { unsigned long lmbbase = _mem->region[i].base; unsigned long lmbsize = _mem->region[i].size; 
for (i=lmb.memory.cnt-1; i >= 0; i--) { unsigned long lmbbase = lmb.memory.region[i].base; unsigned long lmbsize = lmb.memory.region[i].size; 
lmb_alloc_base(unsigned long size, unsigned long align, unsigned long max_addr){	long i, j;	unsigned long base = 0;	struct lmb *_lmb = &lmb;	struct lmb_region *_mem = &(_lmb->memory);	struct lmb_region *_rsv = &(_lmb->reserved);	for (i=_mem->cnt-1; i >= 0; i--) {		unsigned long lmbbase = _mem->region[i].base;		unsigned long lmbsize = _mem->region[i].size;		if ( max_addr == LMB_ALLOC_ANYWHERE )			base = _ALIGN_DOWN(lmbbase+lmbsize-size, align);		else if ( lmbbase < max_addr )			base = _ALIGN_DOWN(min(lmbbase+lmbsize,max_addr)-size, align);		else			continue;		while ( (lmbbase <= base) &&			((j = lmb_overlaps_region(_rsv,base,size)) >= 0) ) {			base = _ALIGN_DOWN(_rsv->region[j].base-size, align);		}		if ( (base != 0) && (lmbbase <= base) )			break;	}	if ( i < 0 )		return 0;	lmb_add_region(_rsv, base, size);	return base;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a4a0f97020444f83bf22bb9c8c20d8af2b4e6317/lmb.c/clean/arch/ppc64/kernel/lmb.c