acpi.hh revision 5627
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 615627Sgblack@eecs.umich.edu#include "sim/host.hh" 625627Sgblack@eecs.umich.edu#include "sim/sim_object.hh" 635627Sgblack@eecs.umich.edu 645627Sgblack@eecs.umich.edu#include <vector> 655627Sgblack@eecs.umich.edu#include <string> 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