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

📄 aclocal.h

📁 内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系统,编译内核
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * * Name: aclocal.h - Internal data types used across the ACPI subsystem *       $Revision: 138 $ * *****************************************************************************//* *  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 __ACLOCAL_H__#define __ACLOCAL_H__#define WAIT_FOREVER                    ((u32) -1)typedef void*                           acpi_mutex;typedef u32                             ACPI_MUTEX_HANDLE;#define ACPI_MEMORY_MODE                0x01#define ACPI_LOGICAL_ADDRESSING         0x00#define ACPI_PHYSICAL_ADDRESSING        0x01/* Object descriptor types */#define ACPI_CACHED_OBJECT              0x11    /* ORed in when object is cached */#define ACPI_DESC_TYPE_STATE            0x20#define ACPI_DESC_TYPE_STATE_UPDATE     0x21#define ACPI_DESC_TYPE_STATE_PACKAGE    0x22#define ACPI_DESC_TYPE_STATE_CONTROL    0x23#define ACPI_DESC_TYPE_STATE_RPSCOPE    0x24#define ACPI_DESC_TYPE_STATE_PSCOPE     0x25#define ACPI_DESC_TYPE_STATE_WSCOPE     0x26#define ACPI_DESC_TYPE_STATE_RESULT     0x27#define ACPI_DESC_TYPE_STATE_NOTIFY     0x28#define ACPI_DESC_TYPE_WALK             0x44#define ACPI_DESC_TYPE_PARSER           0x66#define ACPI_DESC_TYPE_INTERNAL         0x88#define ACPI_DESC_TYPE_NAMED            0xAA/***************************************************************************** * * Mutex typedefs and structs * ****************************************************************************//* * Predefined handles for the mutex objects used within the subsystem * All mutex objects are automatically created by Acpi_ut_mutex_initialize. * * The acquire/release ordering protocol is implied via this list.  Mutexes * with a lower value must be acquired before mutexes with a higher value. * * NOTE: any changes here must be reflected in the Acpi_gbl_Mutex_names table also! */#define ACPI_MTX_EXECUTE                0#define ACPI_MTX_INTERPRETER            1#define ACPI_MTX_PARSER                 2#define ACPI_MTX_DISPATCHER             3#define ACPI_MTX_TABLES                 4#define ACPI_MTX_OP_REGIONS             5#define ACPI_MTX_NAMESPACE              6#define ACPI_MTX_EVENTS                 7#define ACPI_MTX_HARDWARE               8#define ACPI_MTX_CACHES                 9#define ACPI_MTX_MEMORY                 10#define ACPI_MTX_DEBUG_CMD_COMPLETE     11#define ACPI_MTX_DEBUG_CMD_READY        12#define MAX_MTX                         12#define NUM_MTX                         MAX_MTX+1#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)#ifdef DEFINE_ACPI_GLOBALS/* Names for the mutexes used in the subsystem */static NATIVE_CHAR          *acpi_gbl_mutex_names[] ={	"ACPI_MTX_Execute",	"ACPI_MTX_Interpreter",	"ACPI_MTX_Parser",	"ACPI_MTX_Dispatcher",	"ACPI_MTX_Tables",	"ACPI_MTX_Op_regions",	"ACPI_MTX_Namespace",	"ACPI_MTX_Events",	"ACPI_MTX_Hardware",	"ACPI_MTX_Caches",	"ACPI_MTX_Memory",	"ACPI_MTX_Debug_cmd_complete",	"ACPI_MTX_Debug_cmd_ready",};#endif#endif/* Table for the global mutexes */typedef struct acpi_mutex_info{	acpi_mutex                  mutex;	u32                         use_count;	u32                         owner_id;} acpi_mutex_info;/* This owner ID means that the mutex is not in use (unlocked) */#define ACPI_MUTEX_NOT_ACQUIRED         (u32) (-1)/* Lock flag parameter for various interfaces */#define ACPI_MTX_DO_NOT_LOCK            0#define ACPI_MTX_LOCK                   1typedef u16                             acpi_owner_id;#define OWNER_TYPE_TABLE                0x0#define OWNER_TYPE_METHOD               0x1#define FIRST_METHOD_ID                 0x0000#define FIRST_TABLE_ID                  0x8000/* TBD: [Restructure] get rid of the need for this! */#define TABLE_ID_DSDT                   (acpi_owner_id) 0x8000/* Field access granularities */#define ACPI_FIELD_BYTE_GRANULARITY     1#define ACPI_FIELD_WORD_GRANULARITY     2#define ACPI_FIELD_DWORD_GRANULARITY    4#define ACPI_FIELD_QWORD_GRANULARITY    8/***************************************************************************** * * Namespace typedefs and structs * ****************************************************************************//* Operational modes of the AML interpreter/scanner */typedef enum{	IMODE_LOAD_PASS1                = 0x01,	IMODE_LOAD_PASS2                = 0x02,	IMODE_EXECUTE                   = 0x0E} operating_mode;/* * The Node describes a named object that appears in the AML * An Acpi_node is used to store Nodes. * * Data_type is used to differentiate between internal descriptors, and MUST * be the first byte in this structure. */typedef struct acpi_node{	u8                      data_type;	u8                      type;           /* Type associated with this name */	u16                     owner_id;	u32                     name;           /* ACPI Name, always 4 chars per ACPI spec */	union acpi_operand_obj  *object;        /* Pointer to attached ACPI object (optional) */	struct acpi_node        *child;         /* first child */	struct acpi_node        *peer;          /* Next peer*/	u16                     reference_count; /* Current count of references and children */	u8                      flags;} acpi_namespace_node;#define ENTRY_NOT_FOUND             NULL/* Node flags */#define ANOBJ_AML_ATTACHMENT            0x01#define ANOBJ_END_OF_PEER_LIST          0x02#define ANOBJ_DATA_WIDTH_32             0x04     /* Parent table is 64-bits */#define ANOBJ_METHOD_ARG                0x08#define ANOBJ_METHOD_LOCAL              0x10#define ANOBJ_METHOD_NO_RETVAL          0x20#define ANOBJ_METHOD_SOME_NO_RETVAL     0x40#define ANOBJ_IS_BIT_OFFSET             0x80/* * ACPI Table Descriptor.  One per ACPI table */typedef struct acpi_table_desc{	struct acpi_table_desc  *prev;	struct acpi_table_desc  *next;	struct acpi_table_desc  *installed_desc;	acpi_table_header       *pointer;	void                    *base_pointer;	u8                      *aml_start;	u64                     physical_address;	u32                     aml_length;	u32                     length;	u32                     count;	acpi_owner_id           table_id;	u8                      type;	u8                      allocation;	u8                      loaded_into_namespace;} acpi_table_desc;typedef struct{	NATIVE_CHAR             *search_for;	acpi_handle             *list;	u32                     *count;} find_context;typedef struct{	acpi_namespace_node     *node;} ns_search_data;/* * Predefined Namespace items */typedef struct{	NATIVE_CHAR             *name;	acpi_object_type8       type;	NATIVE_CHAR             *val;} predefined_names;/* Object types used during package copies */#define ACPI_COPY_TYPE_SIMPLE           0#define ACPI_COPY_TYPE_PACKAGE          1/* Info structure used to convert external<->internal namestrings */typedef struct acpi_namestring_info{	NATIVE_CHAR             *external_name;	NATIVE_CHAR             *next_external_char;	NATIVE_CHAR             *internal_name;	u32                     length;	u32                     num_segments;	u32                     num_carats;	u8                      fully_qualified;} acpi_namestring_info;/* Field creation info */typedef struct{	acpi_namespace_node     *region_node;	acpi_namespace_node     *field_node;	acpi_namespace_node     *register_node;	acpi_namespace_node     *data_register_node;	u32                     bank_value;	u32                     field_bit_position;	u32                     field_bit_length;	u8                      field_flags;	u8                      field_type;} ACPI_CREATE_FIELD_INFO;/* * Field flags: Bits 00 - 03 : Access_type (Any_acc, Byte_acc, etc.) *                   04      : Lock_rule (1 == Lock) *                   05 - 06 : Update_rule */#define FIELD_ACCESS_TYPE_MASK      0x0F#define FIELD_LOCK_RULE_MASK        0x10#define FIELD_UPDATE_RULE_MASK      0x60/***************************************************************************** * * Event typedefs and structs * ****************************************************************************//* Status bits. */#define ACPI_STATUS_PMTIMER             0x0001#define ACPI_STATUS_BUSMASTER           0x0010#define ACPI_STATUS_GLOBAL              0x0020#define ACPI_STATUS_POWER_BUTTON        0x0100#define ACPI_STATUS_SLEEP_BUTTON        0x0200#define ACPI_STATUS_RTC_ALARM           0x0400/* Enable bits. */#define ACPI_ENABLE_PMTIMER             0x0001#define ACPI_ENABLE_GLOBAL              0x0020#define ACPI_ENABLE_POWER_BUTTON        0x0100#define ACPI_ENABLE_SLEEP_BUTTON        0x0200#define ACPI_ENABLE_RTC_ALARM           0x0400/* * Entry in the Address_space (AKA Operation Region) table */typedef struct{	acpi_adr_space_handler  handler;	void                    *context;} acpi_adr_space_info;/* Values and addresses of the GPE registers (both banks) */typedef struct{	u16                     status_addr;    /* Address of status reg */	u16                     enable_addr;    /* Address of enable reg */	u8                      status;         /* Current value of status reg */	u8                      enable;         /* Current value of enable reg */	u8                      wake_enable;    /* Mask of bits to keep enabled when sleeping */	u8                      gpe_base;       /* Base GPE number */} acpi_gpe_registers;#define ACPI_GPE_LEVEL_TRIGGERED        1#define ACPI_GPE_EDGE_TRIGGERED         2/* Information about each particular GPE level */typedef struct{	u8                      type;           /* Level or Edge */	acpi_handle             method_handle;  /* Method handle for direct (fast) execution */	acpi_gpe_handler        handler;        /* Address of handler, if any */	void                    *context;       /* Context to be passed to handler */} acpi_gpe_level_info;/* Information about each particular fixed event */typedef struct{	acpi_event_handler      handler;        /* Address of handler. */	void                    *context;       /* Context to be passed to handler */} acpi_fixed_event_info;/* Information used during field processing */typedef struct{	u8                      skip_field;	u8                      field_flag;	u32                     pkg_length;} acpi_field_info;/***************************************************************************** * * Generic "state" object for stacks * ****************************************************************************/#define CONTROL_NORMAL                  0xC0#define CONTROL_CONDITIONAL_EXECUTING   0xC1#define CONTROL_PREDICATE_EXECUTING     0xC2#define CONTROL_PREDICATE_FALSE         0xC3#define CONTROL_PREDICATE_TRUE          0xC4/* Forward declarations */struct acpi_walk_state;struct acpi_walk_list;struct acpi_parse_obj;struct acpi_obj_mutex;#define ACPI_STATE_COMMON                  /* Two 32-bit fields and a pointer */\	u8                      data_type;          /* To differentiate various internal objs */\	u8                      flags; \	u16                     value; \	u16                     state; \	u16                     acpi_eval; \	void                    *next; \typedef struct acpi_common_state{	ACPI_STATE_COMMON} acpi_common_state;/* * Update state - used to traverse complex objects such as packages */typedef struct acpi_update_state{	ACPI_STATE_COMMON	union acpi_operand_obj  *object;} acpi_update_state;/* * Pkg state - used to traverse nested package structures */typedef struct acpi_pkg_state{	ACPI_STATE_COMMON	union acpi_operand_obj  *source_object;	union acpi_operand_obj  *dest_object;	struct acpi_walk_state  *walk_state;	void                    *this_target_obj;	u32                     num_packages;	u16                     index;} acpi_pkg_state;/* * Control state - one per if/else and while constructs. * Allows nesting of these constructs */typedef struct acpi_control_state{	ACPI_STATE_COMMON	struct acpi_parse_obj   *predicate_op;	u8                      *aml_predicate_start; /* Start of if/while predicate */} acpi_control_state;/* * Scope state - current scope during namespace lookups */typedef struct acpi_scope_state{	ACPI_STATE_COMMON	acpi_namespace_node     *node;} acpi_scope_state;

⌨️ 快捷键说明

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