os-k/include/io/acpi.h

81 lines
2.8 KiB
C
Raw Normal View History

2020-02-02 13:33:57 +01:00
//----------------------------------------------------------------------------//
// GNU GPL OS/K //
// //
// Desc: ACPI, Hardware detection related //
// //
// //
// Copyright © 2018-2019 The OS/K Team //
// //
// This file is part of OS/K. //
// //
// OS/K is free software: you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation, either version 3 of the License, or //
// any later version. //
// //
// OS/K 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 OS/K. If not, see <https://www.gnu.org/licenses/>. //
//----------------------------------------------------------------------------//
#ifndef _KERNEL_H
#include <kernel.h>
#endif
#ifndef _IO_ACPI_H
#define _IO_ACPI_H
//----------------------------------------------------------------------------//
2020-02-03 11:58:34 +01:00
//
2020-02-03 15:34:20 +01:00
// ACPI 1.0 descriptor
2020-02-03 11:58:34 +01:00
//
2020-02-03 15:34:20 +01:00
struct RSDPLegacy {
2020-02-03 11:58:34 +01:00
char signature[8];
uchar checksum;
char OEMID[6];
uchar revision;
uint rsdtAddress;
2020-02-03 15:34:20 +01:00
} __attribute__ ((packed));
//
// ACPI 2.0 descriptor
//
struct RSDPDescriptor {
// RSDT ACPI 1.0 and above
struct RSDPLegacy legacy;
// RSDT ACPI 2.0
2020-02-03 11:58:34 +01:00
uint length;
ulong xsdtAddress;
uchar extendedChecksum;
uchar reserved[3];
} __attribute__ ((packed));
2020-02-03 15:34:20 +01:00
//
// ACPI System Description Table
//
struct SDTHeader {
char signature[4];
uint length;
uchar revision;
uchar checksum;
char OEMID[6];
char OEMTableID[8];
uint OEMRevision;
uint creatorID;
uint creatorRevision;
};
2020-02-03 11:58:34 +01:00
//----------------------------------------------------------------------------//
2020-02-03 17:43:05 +01:00
void IoInitAcpi(void);
2020-02-02 13:33:57 +01:00
//----------------------------------------------------------------------------//
#endif