/* acpi.c - Display acpi tables. */
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2008 Free Software Foundation, Inc.
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GRUB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
GRUB_MOD_LICENSE ("GPLv3+");
static void
{
grub_printf (" ");
}
static void
{
print_field (t->signature);
print_field (t->oemid);
print_field (t->oemtable);
print_field (t->creator_id);
}
static void
{
struct grub_acpi_madt_entry_header *d;
disp_acpi_table (&t->hdr);
PRIxGRUB_UINT32_T "\n",
t->lapic_addr, t->flags);
d = t->entries;
{
switch (d->type)
{
{
grub_printf ("Int Override bus=%x src=%x GSI=%08x Flags=%04x\n",
}
break;
{
"\n",
}
break;
{
grub_printf ("LSAPIC ProcId=%02x ID=%02x EID=%02x Flags=%x",
grub_printf (" Enabled\n");
else
grub_printf (" Disabled\n");
if (d->len > sizeof (struct grub_acpi_madt_entry_sapic))
dt->cpu_uid_str);
}
break;
{
static const char * const platint_type[] =
{"Nul", "PMI", "INIT", "CPEI"};
grub_printf ("Platform INT flags=%04x type=%02x (%s)"
" ID=%02x EID=%02x\n",
grub_printf (" IOSAPIC Vec=%02x GSI=%08x source flags=%08x\n",
}
break;
default:
grub_printf (" ??\n");
}
}
}
static void
{
disp_acpi_table (t);
{
{
grub_printf ("Unreachable table\n");
continue;
}
if (t == NULL)
continue;
sizeof (t->signature)) == 0)
disp_madt_table ((struct grub_acpi_madt *) t);
else
disp_acpi_table (t);
}
}
static void
{
disp_acpi_table (t);
{
if (t == NULL)
continue;
sizeof (t->signature)) == 0)
disp_madt_table ((struct grub_acpi_madt *) t);
else
disp_acpi_table (t);
}
}
static void
{
}
static void
{
}
};
static grub_err_t
{
{
if (!rsdp1)
grub_printf ("No RSDPv1\n");
else
{
grub_printf ("RSDPv1 signature:");
}
}
{
if (!rsdp2)
grub_printf ("No RSDPv2\n");
else
{
grub_printf ("Unreachable RSDPv2\n");
else
{
grub_printf ("RSDPv2 signature:");
grub_printf ("\n");
}
}
}
return GRUB_ERR_NONE;
}
{
}
{
}