actypes.h

来自「是关于linux2.5.1的完全源码」· C头文件 代码 · 共 1,175 行 · 第 1/3 页

H
1,175
字号
/****************************************************************************** * * Name: actypes.h - Common data types for the entire ACPI subsystem *       $Revision: 227 $ * *****************************************************************************//* *  Copyright (C) 2000 - 2002, 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 */#ifdef _IA64/* * 64-bit type definitions */typedef unsigned char                   UINT8;typedef unsigned char                   BOOLEAN;typedef unsigned short                  UINT16;typedef int                             INT32;typedef unsigned int                    UINT32;typedef COMPILER_DEPENDENT_INT64        INT64;typedef COMPILER_DEPENDENT_UINT64       UINT64;typedef UINT64                          NATIVE_UINT;typedef UINT64                          NATIVE_INT;typedef UINT64                          ACPI_TBLPTR;typedef UINT64                          ACPI_IO_ADDRESS;typedef UINT64                          ACPI_PHYSICAL_ADDRESS;typedef UINT64                          ACPI_SIZE;#define ALIGNED_ADDRESS_BOUNDARY        0x00000008      /* No hardware alignment support in IA64 */#define ACPI_USE_NATIVE_DIVIDE                          /* Native 64-bit integer support */#define ACPI_MAX_PTR                    0xFFFFFFFFFFFFFFFF#elif _IA16/* * 16-bit type definitions */typedef unsigned char                   UINT8;typedef unsigned char                   BOOLEAN;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;typedef UINT32                          ACPI_SIZE;#define ALIGNED_ADDRESS_BOUNDARY        0x00000002#define _HW_ALIGNMENT_SUPPORT#define ACPI_USE_NATIVE_DIVIDE                          /* No 64-bit integers, ok to use native divide */#define ACPI_MAX_PTR                    0xFFFF/* * (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 short                  UINT16;typedef int                             INT32;typedef unsigned int                    UINT32;typedef COMPILER_DEPENDENT_INT64        INT64;typedef COMPILER_DEPENDENT_UINT64       UINT64;typedef UINT32                          NATIVE_UINT;typedef INT32                           NATIVE_INT;typedef UINT64                          ACPI_TBLPTR;typedef UINT32                          ACPI_IO_ADDRESS;typedef UINT64                          ACPI_PHYSICAL_ADDRESS;typedef UINT32                          ACPI_SIZE;#define ALIGNED_ADDRESS_BOUNDARY        0x00000004#define _HW_ALIGNMENT_SUPPORT#define ACPI_MAX_PTR                    0xFFFFFFFF#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#define ACPI_UINT64_MAX                 (UINT64) 0xFFFFFFFFFFFFFFFF#define ACPI_ASCII_MAX                  0x7F#ifdef DEFINE_ALTERNATE_TYPES/* * Types used only in translated source, defined here to enable * cross-platform compilation only. */typedef INT32                           s32;typedef UINT8                           u8;typedef UINT16                          u16;typedef UINT32                          u32;typedef UINT64                          u64;#endif/*! [End] no source code translation !*//* * Pointer overlays to avoid lots of typecasting for * code that accepts both physical and logical pointers. */typedef union acpi_pointers{	ACPI_PHYSICAL_ADDRESS       physical;	void                        *logical;	ACPI_TBLPTR                 value;} ACPI_POINTERS;typedef struct acpi_pointer{	u32                         pointer_type;	ACPI_POINTERS               pointer;} ACPI_POINTER;/* Pointer_types for above */#define ACPI_LOGICAL_POINTER            0x01#define ACPI_PHYSICAL_POINTER           0x02/* * 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 */typedef u32                             acpi_status;    /* All ACPI Exceptions */typedef u32                             acpi_name;      /* 4-byte ACPI name */typedef char*                           acpi_string;    /* Null terminated ASCII string */typedef void*                           acpi_handle;    /* Actually a ptr to an Node */typedef struct{	u32                         lo;	u32                         hi;} uint64_struct;typedef union{	u64                         full;	uint64_struct               part;} uint64_overlay;/* * 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#define ACPI_MAX_DECIMAL_DIGITS         10#define ACPI_USE_NATIVE_DIVIDE          /* Use compiler native 32-bit divide */#else/* 64-bit integers */typedef u64                             acpi_integer;#define ACPI_INTEGER_MAX                ACPI_UINT64_MAX#define ACPI_INTEGER_BIT_SIZE           64#define ACPI_MAX_BCD_VALUE              9999999999999999#define ACPI_MAX_BCD_DIGITS             16#define ACPI_MAX_DECIMAL_DIGITS         19#ifdef _IA64#define ACPI_USE_NATIVE_DIVIDE          /* Use compiler native 64-bit divide */#endif#endif/* * Constants with special meanings */#define ACPI_ROOT_OBJECT                (acpi_handle) ACPI_PTR_ADD (char, NULL, ACPI_UINT32_MAX)/* * Initialization sequence */#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_HANDLER_INIT            0x08#define ACPI_NO_ACPI_ENABLE             0x10#define ACPI_NO_DEVICE_INIT             0x20#define ACPI_NO_OBJECT_INIT             0x40/* * Initialization state */#define ACPI_INITIALIZED_OK             0x01/* * Power state values */#define ACPI_STATE_UNKNOWN              (u8) 0xFF#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#define ACPI_S_STATES_MAX               ACPI_STATE_S5#define ACPI_S_STATE_COUNT              6#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_C0                   (u8) 0#define ACPI_STATE_C1                   (u8) 1#define ACPI_STATE_C2                   (u8) 2#define ACPI_STATE_C3                   (u8) 3#define ACPI_C_STATES_MAX               ACPI_STATE_C3#define ACPI_C_STATE_COUNT              4/* * Sleep type invalid value */#define ACPI_SLEEP_TYPE_MAX             0x7#define ACPI_SLEEP_TYPE_INVALID         0xFF/* * Standard notify values */#define ACPI_NOTIFY_BUS_CHECK           (u8) 0#define ACPI_NOTIFY_DEVICE_CHECK        (u8) 1#define ACPI_NOTIFY_DEVICE_WAKE         (u8) 2#define ACPI_NOTIFY_EJECT_REQUEST       (u8) 3#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT  (u8) 4#define ACPI_NOTIFY_FREQUENCY_MISMATCH  (u8) 5#define ACPI_NOTIFY_BUS_MODE_MISMATCH   (u8) 6#define ACPI_NOTIFY_POWER_FAULT         (u8) 7/* *  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;#define ACPI_TYPE_ANY                   0x00#define ACPI_TYPE_INTEGER               0x01  /* Byte/Word/Dword/Zero/One/Ones */#define ACPI_TYPE_STRING                0x02#define ACPI_TYPE_BUFFER                0x03#define ACPI_TYPE_PACKAGE               0x04  /* Byte_const, multiple Data_term/Constant/Super_name */#define ACPI_TYPE_FIELD_UNIT            0x05#define ACPI_TYPE_DEVICE                0x06  /* Name, multiple Node */#define ACPI_TYPE_EVENT                 0x07#define ACPI_TYPE_METHOD                0x08  /* Name, Byte_const, multiple Code */#define ACPI_TYPE_MUTEX                 0x09#define ACPI_TYPE_REGION                0x0A#define ACPI_TYPE_POWER                 0x0B  /* Name,Byte_const,Word_const,multi Node */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?