⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 actypes.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * * Name: actypes.h - Common data types for the entire ACPI subsystem *       $Revision: 159 $ * *****************************************************************************//* *  Copyright (C) 2000 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 void                            *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#define ACPI_UINT64_MAX                 (UINT64) 0xFFFFFFFFFFFFFFFF#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 */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#define ACPI_MAX_BCD_VALUE              9999999999999999#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_PCI_INIT                0x20#define ACPI_NO_OBJECT_INIT             0x40/* * Sleep state constants */#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_S4_bIOS              (u8) 5#define ACPI_STATE_S5                   (u8) 6#define ACPI_S_STATES_MAX               ACPI_STATE_S5/* *  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_TYPE_ANY                   0  /* 0x00  */#define ACPI_TYPE_NUMBER                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  */#define ACPI_TYPE_DDB_HANDLE            15 /* 0x0F  */#define ACPI_TYPE_DEBUG_OBJECT          16 /* 0x10  */#define ACPI_TYPE_MAX                   16/* * This section contains object types that do not relate to the ACPI Object_type operator. * They are used for various internal purposes only.  If new predefined ACPI_TYPEs are * added (via the ACPI specification), these internal types must move upwards. * Also, values exceeding the largest official ACPI Object_type must not overlap with * defined AML opcodes. */#define INTERNAL_TYPE_BEGIN             17#define INTERNAL_TYPE_DEF_FIELD         17 /* 0x11  */#define INTERNAL_TYPE_BANK_FIELD        18 /* 0x12  */#define INTERNAL_TYPE_INDEX_FIELD       19 /* 0x13  */#define INTERNAL_TYPE_REFERENCE         20 /* 0x14  Arg#, Local#, Name, Debug; used only in descriptors */#define INTERNAL_TYPE_ALIAS             21 /* 0x15  */#define INTERNAL_TYPE_NOTIFY            22 /* 0x16  */#define INTERNAL_TYPE_ADDRESS_HANDLER   23 /* 0x17  */#define INTERNAL_TYPE_RESOURCE          24 /* 0x18  */#define INTERNAL_TYPE_NODE_MAX          24/* These are pseudo-types because there are never any namespace nodes with these types */#define INTERNAL_TYPE_DEF_FIELD_DEFN    25 /* 0x19  Name, Byte_const, multiple Field_element */#define INTERNAL_TYPE_BANK_FIELD_DEFN   26 /* 0x1A  2 Name,DWord_const,Byte_const,multi Field_element */#define INTERNAL_TYPE_INDEX_FIELD_DEFN  27 /* 0x1B  2 Name, Byte_const, multiple Field_element */#define INTERNAL_TYPE_IF                28 /* 0x1C  Op_code, multiple Code */#define INTERNAL_TYPE_ELSE              29 /* 0x1D  multiple Code */#define INTERNAL_TYPE_WHILE             30 /* 0x1E  Op_code, multiple Code */#define INTERNAL_TYPE_SCOPE             31 /* 0x1F  Name, multiple Node */#define INTERNAL_TYPE_DEF_ANY           32 /* 0x20  type is Any, suppress search of enclosing scopes */#define INTERNAL_TYPE_EXTRA             33 /* 0x21  */#define INTERNAL_TYPE_MAX               33#define INTERNAL_TYPE_INVALID           34#define ACPI_TYPE_NOT_FOUND             0xFF/* * Acpi_event Types: * ------------ * Fixed & general purpose... */typedef u32                             ACPI_EVENT_TYPE;#define ACPI_EVENT_FIXED                (ACPI_EVENT_TYPE) 0#define ACPI_EVENT_GPE                  (ACPI_EVENT_TYPE) 1/* * Fixed events */#define ACPI_EVENT_PMTIMER              (ACPI_EVENT_TYPE) 0	/*	 * There's no bus master event so index 1 is used for IRQ's that are not	 * handled by the SCI handler	 */#define ACPI_EVENT_NOT_USED             (ACPI_EVENT_TYPE) 1#define ACPI_EVENT_GLOBAL               (ACPI_EVENT_TYPE) 2#define ACPI_EVENT_POWER_BUTTON         (ACPI_EVENT_TYPE) 3#define ACPI_EVENT_SLEEP_BUTTON         (ACPI_EVENT_TYPE) 4#define ACPI_EVENT_RTC                  (ACPI_EVENT_TYPE) 5#define ACPI_EVENT_GENERAL              (ACPI_EVENT_TYPE) 6#define ACPI_EVENT_MAX                  6#define NUM_FIXED_EVENTS                (ACPI_EVENT_TYPE) 7#define ACPI_GPE_INVALID                0xFF#define ACPI_GPE_MAX                    0xFF#define NUM_GPE                         256#define ACPI_EVENT_LEVEL_TRIGGERED      (ACPI_EVENT_TYPE) 1#define ACPI_EVENT_EDGE_TRIGGERED       (ACPI_EVENT_TYPE) 2/* * Acpi_event Status: * ------------- * The encoding of ACPI_EVENT_STATUS is illustrated below. * Note that a set bit (1) indicates the property is TRUE * (e.g. if bit 0 is set then the event is enabled). * +---------------+-+-+ * |   Bits 31:2   |1|0| * +---------------+-+-+ *          |       | | *          |       | +- Enabled? *          |       +--- Set? *          +----------- <Reserved> */typedef u32                             ACPI_EVENT_STATUS;#define ACPI_EVENT_FLAG_DISABLED        (ACPI_EVENT_STATUS) 0x00#define ACPI_EVENT_FLAG_ENABLED         (ACPI_EVENT_STATUS) 0x01#define ACPI_EVENT_FLAG_SET             (ACPI_EVENT_STATUS) 0x02/* Notify types */#define ACPI_SYSTEM_NOTIFY              0#define ACPI_DEVICE_NOTIFY              1#define ACPI_MAX_NOTIFY_HANDLER_TYPE    1#define MAX_SYS_NOTIFY                  0x7f/* Address Space (Operation Region) Types */typedef u8                              ACPI_ADDRESS_SPACE_TYPE;#define ADDRESS_SPACE_SYSTEM_MEMORY     (ACPI_ADDRESS_SPACE_TYPE) 0#define ADDRESS_SPACE_SYSTEM_IO         (ACPI_ADDRESS_SPACE_TYPE) 1#define ADDRESS_SPACE_PCI_CONFIG        (ACPI_ADDRESS_SPACE_TYPE) 2#define ADDRESS_SPACE_EC                (ACPI_ADDRESS_SPACE_TYPE) 3#define ADDRESS_SPACE_SMBUS             (ACPI_ADDRESS_SPACE_TYPE) 4#define ADDRESS_SPACE_CMOS              (ACPI_ADDRESS_SPACE_TYPE) 5#define ADDRESS_SPACE_PCI_BAR_TARGET    (ACPI_ADDRESS_SPACE_TYPE) 6/* * External ACPI object definition */typedef union acpi_obj{	ACPI_OBJECT_TYPE            type;   /* See definition of Acpi_ns_type for values */	struct	{		ACPI_OBJECT_TYPE            type;		ACPI_INTEGER                value;      /* The actual number */	} number;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         length;     /* # of bytes in string, excluding trailing null */		NATIVE_CHAR                 *pointer;   /* points to the string value */	} string;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         length;     /* # of bytes in buffer */		u8                          *pointer;   /* points to the buffer */	} buffer;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         fill1;		ACPI_HANDLE                 handle;     /* object reference */	} reference;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         count;      /* # of elements in package */		union acpi_obj              *elements;  /* Pointer to an array of ACPI_OBJECTs */	} package;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         proc_id;		u32                         pblk_address;		u32                         pblk_length;	} processor;	struct	{		ACPI_OBJECT_TYPE            type;		u32                         system_level;		u32                         resource_order;	} power_resource;} ACPI_OBJECT, *PACPI_OBJECT;/* * List of objects, used as a parameter list for control method evaluation */typedef struct acpi_obj_list{	u32                         count;	ACPI_OBJECT                 *pointer;} ACPI_OBJECT_LIST, *PACPI_OBJECT_LIST;/* * Miscellaneous common Data Structures used by the interfaces */typedef struct{	u32                         length;         /* Length in bytes of the buffer */	void                        *pointer;       /* pointer to buffer */} ACPI_BUFFER;/* * Name_type for Acpi_get_name */#define ACPI_FULL_PATHNAME              0#define ACPI_SINGLE_NAME                1#define ACPI_NAME_TYPE_MAX              1

⌨️ 快捷键说明

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