for (i = 0; i < memmap.nr_map; i++) { md = &memmap.map[i]; 
for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { md = p; 
void efi_memmap_walk(efi_freemem_callback_t callback, void *arg){	int prev_valid = 0;	struct range {		unsigned long start;		unsigned long end;	} prev, curr;	efi_memory_desc_t *md;	unsigned long start, end;	int i;	for (i = 0; i < memmap.nr_map; i++) {		md = &memmap.map[i];		if ((md->num_pages == 0) || (!is_available_memory(md)))			continue;		curr.start = md->phys_addr;		curr.end = curr.start + (md->num_pages << EFI_PAGE_SHIFT);		if (!prev_valid) {			prev = curr;			prev_valid = 1;		} else {			if (curr.start < prev.start)				printk(KERN_INFO PFX "Unordered memory map\n");			if (prev.end == curr.start)				prev.end = curr.end;			else {				start =				    (unsigned long) (PAGE_ALIGN(prev.start));				end = (unsigned long) (prev.end & PAGE_MASK);				if ((end > start)				    && (*callback) (start, end, arg) < 0)					return;				prev = curr;			}		}	}	if (prev_valid) {		start = (unsigned long) PAGE_ALIGN(prev.start);		end = (unsigned long) (prev.end & PAGE_MASK);		if (end > start)			(*callback) (start, end, arg);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7ae65fd334232468a9d6b523a4fc141cd6ec5ea4/efi.c/buggy/arch/i386/kernel/efi.c