Changeset 232e3ec7 in mainline for arch/ia32/src/acpi/madt.c


Ignore:
Timestamp:
2005-07-19T15:10:27Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0970f43
Parents:
a26ddd1
Message:

Implement ACPI MADT operations for interface used by kmp.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/src/acpi/madt.c

    ra26ddd1 r232e3ec7  
    2828
    2929#include <arch/types.h>
     30#include <typedefs.h>
    3031#include <arch/acpi/acpi.h>
    3132#include <arch/acpi/madt.h>
    3233#include <arch/smp/apic.h>
     34#include <arch/smp/smp.h>
    3335#include <mm/page.h>
    3436#include <panic.h>
     37#include <debug.h>
     38#include <config.h>
    3539
    3640struct acpi_madt *acpi_madt = NULL;
     
    6569        "PLATFORM_INTR_SRC"
    6670};
     71
     72/*
     73 * ACPI MADT Implementation of SMP configuration interface.
     74 */
     75static count_t madt_cpu_count(void);
     76static bool madt_cpu_enabled(index_t i);
     77static bool madt_cpu_bootstrap(index_t i);
     78static __u8 madt_cpu_apic_id(index_t i);
     79
     80struct smp_config_operations madt_config_operations = {
     81        .cpu_count = madt_cpu_count,
     82        .cpu_enabled = madt_cpu_enabled,
     83        .cpu_bootstrap = madt_cpu_bootstrap,
     84        .cpu_apic_id = madt_cpu_apic_id
     85};
     86
     87static count_t madt_cpu_count(void)
     88{
     89        return madt_l_apic_entry_cnt;
     90}
     91
     92static bool madt_cpu_enabled(index_t i)
     93{
     94        ASSERT(i < madt_l_apic_entry_cnt);
     95        return madt_l_apic_entries[i].flags & 0x1;
     96}
     97
     98static bool madt_cpu_bootstrap(index_t i)
     99{
     100        ASSERT(i < madt_l_apic_entry_cnt);
     101        return madt_l_apic_entries[i].apic_id == l_apic_id();
     102}
     103
     104static __u8 madt_cpu_apic_id(index_t i)
     105{
     106        ASSERT(i < madt_l_apic_entry_cnt);
     107        return madt_l_apic_entries[i].apic_id;
     108}
    67109
    68110void acpi_madt_parse(void)
     
    106148        }
    107149
     150        if (madt_l_apic_entry_cnt)
     151                config.cpu_count = madt_l_apic_entry_cnt;
    108152}
    109153 
Note: See TracChangeset for help on using the changeset viewer.