data+=2; 
data += 2; 
static int __init dmi_table(u32 base, int len, int num, void (*decode)(struct dmi_header *)){	u8 *buf;	struct dmi_header *dm;	u8 *data;	int i=0;			buf = bt_ioremap(base, len);	if(buf==NULL)		return -1;	data = buf;	/* 	 *	Stop when we see all the items the table claimed to have 	 *	OR we run off the end of the table (also happens) 	 */ 	while(i<num && data-buf+sizeof(struct dmi_header)<=len)	{		dm=(struct dmi_header *)data;		/*		 *  We want to know the total length (formated area and strings)		 *  before decoding to make sure we won't run off the table in		 *  dmi_decode or dmi_string		 */		data+=dm->length;		while(data-buf<len-1 && (data[0] || data[1]))			data++;		if(data-buf<len-1)			decode(dm);		data+=2;		i++;	}	bt_iounmap(buf, len);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1249c5138f573890eae0c01f13d627094edcd55c/dmi_scan.c/clean/arch/i386/kernel/dmi_scan.c