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

📄 actypes.h

📁 内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系统,编译内核
💻 H
📖 第 1 页 / 共 3 页
字号:
/****************************************************************************** * * Name: actypes.h - Common data types for the entire ACPI subsystem *       $Revision: 193 $ * *****************************************************************************//* *  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 */#define ACPI_USE_NATIVE_DIVIDE                          /* Native 64-bit integer support */#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#define ACPI_USE_NATIVE_DIVIDE                          /* No 64-bit integers, ok to use native divide *//* * (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-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)(-1)/* * 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_ACPI_ENABLE             0x08#define ACPI_NO_DEVICE_INIT             0x10#define ACPI_NO_OBJECT_INIT             0x20/* * 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/* * 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;typedef u8                              acpi_object_type8;#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  */#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_REGION_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 */

⌨️ 快捷键说明

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