Ejemplo n.º 1
0
void print_rsdt(acpi_rsdt_t *rsdt)
{
    u32_t i;
    dbgprintf("ACPI RSD Table\n");
    for (i = 0; i < ((rsdt->header.len-sizeof(acpi_thead_t))/
                sizeof(rsdt->ptrs[0])); i++)
    {
        acpi_thead_t* t = (acpi_thead_t*)acpi_remap_table(rsdt->ptrs[i]);
        char *p = (char*)&t->sig;
        dbgprintf("sig %d: %c%c%c%c  base %x\n", i,
        p[0],p[1],p[2],p[3], t);
    };
};
Ejemplo n.º 2
0
addr_t __fastcall rsdt_find(acpi_rsdt_t *rsdt, u32_t sig)
{
    addr_t head = 0;
    u32_t i;

    for (i = 0; i < ((rsdt->header.len-sizeof(acpi_thead_t))/
                sizeof(rsdt->ptrs[0])); i++)
    {
        acpi_thead_t* t= (acpi_thead_t*)acpi_remap_table(rsdt->ptrs[i]);

        if (t->sig == sig)
        {
           head = rsdt->ptrs[i];
           break;
        };
    }
    return head;
};