actypes.h
来自「一个类似windows」· C头文件 代码 · 共 1,078 行 · 第 1/3 页
H
1,078 行
/******************************************************************************
*
* Name: actypes.h - Common data types for the entire ACPI subsystem
* $Revision: 1.5 $
*
*****************************************************************************/
/*
* Copyright (C) 2000, 2001 R. Byron Moore
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ACTYPES_H__
#define __ACTYPES_H__
/*! [Begin] no source code translation (keep the typedefs) */
/*
* Data types - Fixed across all compilation models
*
* BOOLEAN Logical Boolean.
* 1 byte value containing a 0 for FALSE or a 1 for TRUE.
* Other values are undefined.
*
* INT8 8-bit (1 byte) signed value
* UINT8 8-bit (1 byte) unsigned value
* INT16 16-bit (2 byte) signed value
* UINT16 16-bit (2 byte) unsigned value
* INT32 32-bit (4 byte) signed value
* UINT32 32-bit (4 byte) unsigned value
* INT64 64-bit (8 byte) signed value
* UINT64 64-bit (8 byte) unsigned value
* NATIVE_INT 32-bit on IA-32, 64-bit on IA-64 signed value
* NATIVE_UINT 32-bit on IA-32, 64-bit on IA-64 unsigned value
* UCHAR Character. 1 byte unsigned value.
*/
#ifdef _IA64
/*
* 64-bit type definitions
*/
typedef unsigned char UINT8;
typedef unsigned char BOOLEAN;
typedef unsigned char UCHAR;
typedef unsigned short UINT16;
typedef int INT32;
typedef unsigned int UINT32;
typedef COMPILER_DEPENDENT_UINT64 UINT64;
typedef UINT64 NATIVE_UINT;
typedef INT64 NATIVE_INT;
typedef NATIVE_UINT ACPI_TBLPTR;
typedef UINT64 ACPI_IO_ADDRESS;
typedef UINT64 ACPI_PHYSICAL_ADDRESS;
#define ALIGNED_ADDRESS_BOUNDARY 0x00000008
/* (No hardware alignment support in IA64) */
#elif _IA16
/*
* 16-bit type definitions
*/
typedef unsigned char UINT8;
typedef unsigned char BOOLEAN;
typedef unsigned char UCHAR;
typedef unsigned int UINT16;
typedef long INT32;
typedef int INT16;
typedef unsigned long UINT32;
typedef struct
{
UINT32 Lo;
UINT32 Hi;
} UINT64;
typedef UINT16 NATIVE_UINT;
typedef INT16 NATIVE_INT;
typedef UINT32 ACPI_TBLPTR;
typedef UINT32 ACPI_IO_ADDRESS;
typedef char *ACPI_PHYSICAL_ADDRESS;
#define ALIGNED_ADDRESS_BOUNDARY 0x00000002
#define _HW_ALIGNMENT_SUPPORT
/*
* (16-bit only) internal integers must be 32-bits, so
* 64-bit integers cannot be supported
*/
#define ACPI_NO_INTEGER64_SUPPORT
#else
/*
* 32-bit type definitions (default)
*/
//typedef unsigned char UINT8;
//typedef unsigned char BOOLEAN;
//typedef unsigned char UCHAR;
//typedef unsigned short UINT16;
//typedef int INT32;
//typedef unsigned int UINT32;
//typedef COMPILER_DEPENDENT_UINT64 UINT64;
typedef UINT32 NATIVE_UINT;
typedef INT32 NATIVE_INT;
typedef NATIVE_UINT ACPI_TBLPTR;
typedef UINT32 ACPI_IO_ADDRESS;
typedef UINT64 ACPI_PHYSICAL_ADDRESS;
#define ALIGNED_ADDRESS_BOUNDARY 0x00000004
#define _HW_ALIGNMENT_SUPPORT
#endif
/*
* Miscellaneous common types
*/
typedef UINT32 UINT32_BIT;
typedef NATIVE_UINT ACPI_PTRDIFF;
typedef char NATIVE_CHAR;
/*
* Data type ranges
*/
#define ACPI_UINT8_MAX (UINT8) 0xFF
#define ACPI_UINT16_MAX (UINT16) 0xFFFF
#define ACPI_UINT32_MAX (UINT32) 0xFFFFFFFF
#ifdef __GNUC__
#define ACPI_UINT64_MAX (UINT64) 0xFFFFFFFFFFFFFFFFULL
#else
#define ACPI_UINT64_MAX (UINT64) 0xFFFFFFFFFFFFFFFF
#endif
#ifdef DEFINE_ALTERNATE_TYPES
/*
* Types used only in translated source
*/
typedef INT32 s32;
typedef UINT8 u8;
typedef UINT16 u16;
typedef UINT32 u32;
typedef UINT64 u64;
#endif
/*! [End] no source code translation !*/
/*
* Useful defines
*/
#ifdef FALSE
#undef FALSE
#endif
#define FALSE (1 == 0)
#ifdef TRUE
#undef TRUE
#endif
#define TRUE (1 == 1)
#ifndef NULL
#define NULL (void *) 0
#endif
/*
* Local datatypes
*/
#ifdef _MSC_VER
typedef ULONGLONG u64;
typedef ULONG u32;
typedef USHORT u16;
typedef UCHAR u8;
typedef LONGLONG s64;
typedef LONG s32;
typedef SHORT s16;
typedef CHAR s8;
#endif
typedef u32 ACPI_STATUS; /* All ACPI Exceptions */
typedef u32 ACPI_NAME; /* 4-s8 ACPI name */
typedef char* ACPI_STRING; /* Null terminated ASCII string */
typedef void* ACPI_HANDLE; /* Actually a ptr to an Node */
/*
* Acpi integer width. In ACPI version 1, integers are
* 32 bits. In ACPI version 2, integers are 64 bits.
* Note that this pertains to the ACPI integer type only, not
* other integers used in the implementation of the ACPI CA
* subsystem.
*/
#ifdef ACPI_NO_INTEGER64_SUPPORT
/* 32-bit integers only, no 64-bit support */
typedef u32 ACPI_INTEGER;
#define ACPI_INTEGER_MAX ACPI_UINT32_MAX
#define ACPI_INTEGER_BIT_SIZE 32
#define ACPI_MAX_BCD_VALUE 99999999
#define ACPI_MAX_BCD_DIGITS 8
#else
/* 64-bit integers */
typedef UINT64 ACPI_INTEGER;
#define ACPI_INTEGER_MAX ACPI_UINT64_MAX
#define ACPI_INTEGER_BIT_SIZE 64
#ifdef __GNUC__
#define ACPI_MAX_BCD_VALUE 9999999999999999ULL
#else
#define ACPI_MAX_BCD_VALUE 9999999999999999
#endif
#define ACPI_MAX_BCD_DIGITS 16
#endif
/*
* Constants with special meanings
*/
#define ACPI_ROOT_OBJECT (ACPI_HANDLE)(-1)
#define ACPI_FULL_INITIALIZATION 0x00
#define ACPI_NO_ADDRESS_SPACE_INIT 0x01
#define ACPI_NO_HARDWARE_INIT 0x02
#define ACPI_NO_EVENT_INIT 0x04
#define ACPI_NO_ACPI_ENABLE 0x08
#define ACPI_NO_DEVICE_INIT 0x10
#define ACPI_NO_OBJECT_INIT 0x20
/*
* System states
*/
#define ACPI_STATE_S0 (u8) 0
#define ACPI_STATE_S1 (u8) 1
#define ACPI_STATE_S2 (u8) 2
#define ACPI_STATE_S3 (u8) 3
#define ACPI_STATE_S4 (u8) 4
#define ACPI_STATE_S5 (u8) 5
/* let's pretend S4_bIOS didn't exist for now. ASG */
#define ACPI_STATE_S4_bIOS (u8) 6
#define ACPI_S_STATES_MAX ACPI_STATE_S5
#define ACPI_S_STATE_COUNT 6
/*
* Device power states
*/
#define ACPI_STATE_D0 (u8) 0
#define ACPI_STATE_D1 (u8) 1
#define ACPI_STATE_D2 (u8) 2
#define ACPI_STATE_D3 (u8) 3
#define ACPI_D_STATES_MAX ACPI_STATE_D3
#define ACPI_D_STATE_COUNT 4
#define ACPI_STATE_UNKNOWN (u8) 0xFF
/*
* Table types. These values are passed to the table related APIs
*/
typedef u32 ACPI_TABLE_TYPE;
#define ACPI_TABLE_RSDP (ACPI_TABLE_TYPE) 0
#define ACPI_TABLE_DSDT (ACPI_TABLE_TYPE) 1
#define ACPI_TABLE_FADT (ACPI_TABLE_TYPE) 2
#define ACPI_TABLE_FACS (ACPI_TABLE_TYPE) 3
#define ACPI_TABLE_PSDT (ACPI_TABLE_TYPE) 4
#define ACPI_TABLE_SSDT (ACPI_TABLE_TYPE) 5
#define ACPI_TABLE_XSDT (ACPI_TABLE_TYPE) 6
#define ACPI_TABLE_MAX 6
#define NUM_ACPI_TABLES (ACPI_TABLE_MAX+1)
/*
* Types associated with names. The first group of
* values correspond to the definition of the ACPI
* Object_type operator (See the ACPI Spec). Therefore,
* only add to the first group if the spec changes!
*
* Types must be kept in sync with the Acpi_ns_properties
* and Acpi_ns_type_names arrays
*/
typedef u32 ACPI_OBJECT_TYPE;
typedef u8 OBJECT_TYPE_INTERNAL;
#define ACPI_BTYPE_ANY 0x00000000
#define ACPI_BTYPE_INTEGER 0x00000001
#define ACPI_BTYPE_STRING 0x00000002
#define ACPI_BTYPE_BUFFER 0x00000004
#define ACPI_BTYPE_PACKAGE 0x00000008
#define ACPI_BTYPE_FIELD_UNIT 0x00000010
#define ACPI_BTYPE_DEVICE 0x00000020
#define ACPI_BTYPE_EVENT 0x00000040
#define ACPI_BTYPE_METHOD 0x00000080
#define ACPI_BTYPE_MUTEX 0x00000100
#define ACPI_BTYPE_REGION 0x00000200
#define ACPI_BTYPE_POWER 0x00000400
#define ACPI_BTYPE_PROCESSOR 0x00000800
#define ACPI_BTYPE_THERMAL 0x00001000
#define ACPI_BTYPE_BUFFER_FIELD 0x00002000
#define ACPI_BTYPE_DDB_HANDLE 0x00004000
#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000
#define ACPI_BTYPE_REFERENCE 0x00010000
#define ACPI_BTYPE_RESOURCE 0x00020000
#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)
#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)
#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)
#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)
#define ACPI_BTYPE_OBJECTS_AND_REFS 0x00017FFF /* ARG or LOCAL */
#define ACPI_BTYPE_ALL_OBJECTS 0x00007FFF
#define ACPI_TYPE_ANY 0 /* 0x00 */
#define ACPI_TYPE_INTEGER 1 /* 0x01 Byte/Word/Dword/Zero/One/Ones */
#define ACPI_TYPE_STRING 2 /* 0x02 */
#define ACPI_TYPE_BUFFER 3 /* 0x03 */
#define ACPI_TYPE_PACKAGE 4 /* 0x04 Byte_const, multiple Data_term/Constant/Super_name */
#define ACPI_TYPE_FIELD_UNIT 5 /* 0x05 */
#define ACPI_TYPE_DEVICE 6 /* 0x06 Name, multiple Node */
#define ACPI_TYPE_EVENT 7 /* 0x07 */
#define ACPI_TYPE_METHOD 8 /* 0x08 Name, Byte_const, multiple Code */
#define ACPI_TYPE_MUTEX 9 /* 0x09 */
#define ACPI_TYPE_REGION 10 /* 0x0A */
#define ACPI_TYPE_POWER 11 /* 0x0B Name,Byte_const,Word_const,multi Node */
#define ACPI_TYPE_PROCESSOR 12 /* 0x0C Name,Byte_const,DWord_const,Byte_const,multi Nm_o */
#define ACPI_TYPE_THERMAL 13 /* 0x0D Name, multiple Node */
#define ACPI_TYPE_BUFFER_FIELD 14 /* 0x0E */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?