rem: rom = (uint8 *) si->rom_mirror;
add: rom = (uint8 *) si->rom.mirror;
context: status_t parse_pins (){	uint8 pins_len = 0;	uint8 *rom;	uint8 *pins;	uint8 chksum = 0;	int i;	status_t result = B_ERROR;	/* preset PINS read status to failed */	si->ps.pins_status = B_ERROR;	/* check the validity of PINS */	LOG(2,("INFO: Reading PINS info\n"));	rom = (uint8 *) si->rom_mirror;	/* check BIOS signature */	if (rom[0]!=0x55 || rom[1]!=0xaa)	{		LOG(8,("INFO: BIOS signiture not found\n"));		return B_ERROR;	}	LOG(2,("INFO: BIOS signiture $AA55 found OK\n"));	/* check for a valid PINS struct adress */	pins = rom + (rom[0x7FFC]|(rom[0x7FFD]<<8));	if ((pins - rom) > 0x7F80)	{		LOG(8,("INFO: invalid PINS adress\n"));		return B_ERROR;	}	/* checkout new PINS struct version if there */	if ((pins[0] == 0x2E) && (pins[1] == 0x41))	{		pins_len = pins[2];		if (pins_len < 3 || pins_len > 128)		{			LOG(8,("INFO: invalid PINS size\n"));			return B_ERROR;		}				/* calculate PINS checksum */		for (i = 0; i < pins_len; i++)		{			chksum += pins[i];		}		if (chksum)		{			LOG(8,("INFO: PINS checksum error\n"));			return B_ERROR;		}		LOG(2,("INFO: new PINS, version %u.%u, length %u\n", pins[5], pins[4], pins[2]));		/* fill out the si->ps struct if possible */		switch (pins[5])		{			case 5:				result = pins5_read(pins, pins_len);				break;			default:				LOG(8,("INFO: unknown PINS version\n"));				return B_ERROR;				break;		}	}	/* no valid PINS signature found */	else	{		LOG(8,("INFO: no PINS signature found\n"));		return B_ERROR;	}	/* check PINS read result */	if (result == B_ERROR)	{		LOG(8,("INFO: PINS read/decode error\n"));		return B_ERROR;	}	/* PINS scan succeeded */	si->ps.pins_status = B_OK;	LOG(2,("INFO: PINS scan completed succesfully\n"));	return B_OK;}