FreeBSD/sys/boot/i386/libi386/biosacpi.c
/*
 * Find the RSDP in low memory.  See section 5.2.2 of the ACPI spec.
 */
Find the RSDP in low memory.  See section 5.2.2 of the ACPI spec.
Find the RSDP in low memory . See section 5 . 2 . 2 of the ACPI spec .
static ACPI_TABLE_RSDP *
biosacpi_find_rsdp(void)
{
    ACPI_TABLE_RSDP	*rsdp;
    uint16_t		*addr;
    addr = (uint16_t *)PTOV(0x40E);
    if ((rsdp = biosacpi_search_rsdp((char *)(*addr << 4), 0x400)) != NULL)
	return (rsdp);
    if ((rsdp = biosacpi_search_rsdp((char *)0xe0000, 0x20000)) != NULL)
	return (rsdp);
    return (NULL);
}
static ACPI_TABLE_RSDP * biosacpi_find_rsdp ( void ) { ACPI_TABLE_RSDP * rsdp ; uint16_t * addr ; addr = ( uint16_t * ) PTOV ( 0x40E ) ; if ( ( rsdp = biosacpi_search_rsdp ( ( char * ) ( * addr << 4 ) , 0x400 ) ) != NULL ) return ( rsdp ) ; if ( ( rsdp = biosacpi_search_rsdp ( ( char * ) 0xe0000 , 0x20000 ) ) != NULL ) return ( rsdp ) ; return ( NULL ) ; }
Find the RSDP in low memory.
Find the RSDP in low memory .
/* EBDA is the 1 KB addressed by the 16 bit pointer at 0x40E. */ /* Check the upper memory BIOS space, 0xe0000 - 0xfffff. */