acpi.hh revision 6216
15627Sgblack@eecs.umich.edu/*
25627Sgblack@eecs.umich.edu * Copyright (c) 2008 The Hewlett-Packard Development Company
35627Sgblack@eecs.umich.edu * All rights reserved.
45627Sgblack@eecs.umich.edu *
55627Sgblack@eecs.umich.edu * Redistribution and use of this software in source and binary forms,
65627Sgblack@eecs.umich.edu * with or without modification, are permitted provided that the
75627Sgblack@eecs.umich.edu * following conditions are met:
85627Sgblack@eecs.umich.edu *
95627Sgblack@eecs.umich.edu * The software must be used only for Non-Commercial Use which means any
105627Sgblack@eecs.umich.edu * use which is NOT directed to receiving any direct monetary
115627Sgblack@eecs.umich.edu * compensation for, or commercial advantage from such use.  Illustrative
125627Sgblack@eecs.umich.edu * examples of non-commercial use are academic research, personal study,
135627Sgblack@eecs.umich.edu * teaching, education and corporate research & development.
145627Sgblack@eecs.umich.edu * Illustrative examples of commercial use are distributing products for
155627Sgblack@eecs.umich.edu * commercial advantage and providing services using the software for
165627Sgblack@eecs.umich.edu * commercial advantage.
175627Sgblack@eecs.umich.edu *
185627Sgblack@eecs.umich.edu * If you wish to use this software or functionality therein that may be
195627Sgblack@eecs.umich.edu * covered by patents for commercial use, please contact:
205627Sgblack@eecs.umich.edu *     Director of Intellectual Property Licensing
215627Sgblack@eecs.umich.edu *     Office of Strategy and Technology
225627Sgblack@eecs.umich.edu *     Hewlett-Packard Company
235627Sgblack@eecs.umich.edu *     1501 Page Mill Road
245627Sgblack@eecs.umich.edu *     Palo Alto, California  94304
255627Sgblack@eecs.umich.edu *
265627Sgblack@eecs.umich.edu * Redistributions of source code must retain the above copyright notice,
275627Sgblack@eecs.umich.edu * this list of conditions and the following disclaimer.  Redistributions
285627Sgblack@eecs.umich.edu * in binary form must reproduce the above copyright notice, this list of
295627Sgblack@eecs.umich.edu * conditions and the following disclaimer in the documentation and/or
305627Sgblack@eecs.umich.edu * other materials provided with the distribution.  Neither the name of
315627Sgblack@eecs.umich.edu * the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
325627Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from
335627Sgblack@eecs.umich.edu * this software without specific prior written permission.  No right of
345627Sgblack@eecs.umich.edu * sublicense is granted herewith.  Derivatives of the software and
355627Sgblack@eecs.umich.edu * output created using the software may be prepared, but only for
365627Sgblack@eecs.umich.edu * Non-Commercial Uses.  Derivatives of the software may be shared with
375627Sgblack@eecs.umich.edu * others provided: (i) the others agree to abide by the list of
385627Sgblack@eecs.umich.edu * conditions herein which includes the Non-Commercial Use restrictions;
395627Sgblack@eecs.umich.edu * and (ii) such Derivatives of the software include the above copyright
405627Sgblack@eecs.umich.edu * notice to acknowledge the contribution from this software where
415627Sgblack@eecs.umich.edu * applicable, this list of conditions and the disclaimer below.
425627Sgblack@eecs.umich.edu *
435627Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
445627Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
455627Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
465627Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
475627Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
485627Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
495627Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
505627Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
515627Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
525627Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
535627Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
545627Sgblack@eecs.umich.edu *
555627Sgblack@eecs.umich.edu * Authors: Gabe Black
565627Sgblack@eecs.umich.edu */
575627Sgblack@eecs.umich.edu
585627Sgblack@eecs.umich.edu#ifndef __ARCH_X86_BIOS_ACPI_HH__
595627Sgblack@eecs.umich.edu#define __ARCH_X86_BIOS_ACPI_HH__
605627Sgblack@eecs.umich.edu
616216Snate@binkert.org#include <string>
626216Snate@binkert.org#include <vector>
636216Snate@binkert.org
646214Snate@binkert.org#include "base/types.hh"
655627Sgblack@eecs.umich.edu#include "sim/sim_object.hh"
665627Sgblack@eecs.umich.edu
675627Sgblack@eecs.umich.educlass Port;
685627Sgblack@eecs.umich.edu
695627Sgblack@eecs.umich.educlass X86ACPIRSDPParams;
705627Sgblack@eecs.umich.edu
715627Sgblack@eecs.umich.educlass X86ACPISysDescTableParams;
725627Sgblack@eecs.umich.educlass X86ACPIRSDTParams;
735627Sgblack@eecs.umich.educlass X86ACPIXSDTParams;
745627Sgblack@eecs.umich.edu
755627Sgblack@eecs.umich.edunamespace X86ISA
765627Sgblack@eecs.umich.edu{
775627Sgblack@eecs.umich.edu
785627Sgblack@eecs.umich.edunamespace ACPI
795627Sgblack@eecs.umich.edu{
805627Sgblack@eecs.umich.edu
815627Sgblack@eecs.umich.educlass RSDT;
825627Sgblack@eecs.umich.educlass XSDT;
835627Sgblack@eecs.umich.educlass SysDescTable;
845627Sgblack@eecs.umich.edu
855627Sgblack@eecs.umich.educlass RSDP : public SimObject
865627Sgblack@eecs.umich.edu{
875627Sgblack@eecs.umich.edu  protected:
885627Sgblack@eecs.umich.edu    typedef X86ACPIRSDPParams Params;
895627Sgblack@eecs.umich.edu
905627Sgblack@eecs.umich.edu    static const char signature[];
915627Sgblack@eecs.umich.edu
925627Sgblack@eecs.umich.edu    std::string oemID;
935627Sgblack@eecs.umich.edu    uint8_t revision;
945627Sgblack@eecs.umich.edu
955627Sgblack@eecs.umich.edu    RSDT * rsdt;
965627Sgblack@eecs.umich.edu    XSDT * xsdt;
975627Sgblack@eecs.umich.edu
985627Sgblack@eecs.umich.edu  public:
995627Sgblack@eecs.umich.edu    RSDP(Params *p);
1005627Sgblack@eecs.umich.edu};
1015627Sgblack@eecs.umich.edu
1025627Sgblack@eecs.umich.educlass SysDescTable : public SimObject
1035627Sgblack@eecs.umich.edu{
1045627Sgblack@eecs.umich.edu  protected:
1055627Sgblack@eecs.umich.edu    typedef X86ACPISysDescTableParams Params;
1065627Sgblack@eecs.umich.edu
1075627Sgblack@eecs.umich.edu    const char * signature;
1085627Sgblack@eecs.umich.edu    uint8_t revision;
1095627Sgblack@eecs.umich.edu
1105627Sgblack@eecs.umich.edu    std::string oemID;
1115627Sgblack@eecs.umich.edu    std::string oemTableID;
1125627Sgblack@eecs.umich.edu    uint32_t oemRevision;
1135627Sgblack@eecs.umich.edu
1145627Sgblack@eecs.umich.edu    std::string creatorID;
1155627Sgblack@eecs.umich.edu    uint32_t creatorRevision;
1165627Sgblack@eecs.umich.edu
1175627Sgblack@eecs.umich.edu  public:
1185627Sgblack@eecs.umich.edu    SysDescTable(Params *p, const char * _signature, uint8_t _revision);
1195627Sgblack@eecs.umich.edu};
1205627Sgblack@eecs.umich.edu
1215627Sgblack@eecs.umich.educlass RSDT : public SysDescTable
1225627Sgblack@eecs.umich.edu{
1235627Sgblack@eecs.umich.edu  protected:
1245627Sgblack@eecs.umich.edu    typedef X86ACPIRSDTParams Params;
1255627Sgblack@eecs.umich.edu
1265627Sgblack@eecs.umich.edu    std::vector<SysDescTable *> entries;
1275627Sgblack@eecs.umich.edu
1285627Sgblack@eecs.umich.edu  public:
1295627Sgblack@eecs.umich.edu    RSDT(Params *p);
1305627Sgblack@eecs.umich.edu};
1315627Sgblack@eecs.umich.edu
1325627Sgblack@eecs.umich.educlass XSDT : public SysDescTable
1335627Sgblack@eecs.umich.edu{
1345627Sgblack@eecs.umich.edu  protected:
1355627Sgblack@eecs.umich.edu    typedef X86ACPIXSDTParams Params;
1365627Sgblack@eecs.umich.edu
1375627Sgblack@eecs.umich.edu    std::vector<SysDescTable *> entries;
1385627Sgblack@eecs.umich.edu
1395627Sgblack@eecs.umich.edu  public:
1405627Sgblack@eecs.umich.edu    XSDT(Params *p);
1415627Sgblack@eecs.umich.edu};
1425627Sgblack@eecs.umich.edu
1435627Sgblack@eecs.umich.edu} // namespace ACPI
1445627Sgblack@eecs.umich.edu
1455627Sgblack@eecs.umich.edu} // namespace X86ISA
1465627Sgblack@eecs.umich.edu
1475627Sgblack@eecs.umich.edu#endif // __ARCH_X86_BIOS_E820_HH__
148