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

📄 aclocal.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
 ****************************************************************************/#define ACPI_OP_CLASS_MASK          0x1F#define ACPI_OP_ARGS_MASK           0x20#define ACPI_OP_TYPE_MASK           0xC0#define ACPI_OP_TYPE_OPCODE         0x00#define ACPI_OP_TYPE_ASCII          0x40#define ACPI_OP_TYPE_PREFIX         0x80#define ACPI_OP_TYPE_UNKNOWN        0xC0#define ACPI_GET_OP_CLASS(a)        ((a)->flags & ACPI_OP_CLASS_MASK)#define ACPI_GET_OP_ARGS(a)         ((a)->flags & ACPI_OP_ARGS_MASK)#define ACPI_GET_OP_TYPE(a)         ((a)->flags & ACPI_OP_TYPE_MASK)/* * AML opcode, name, and argument layout */typedef struct acpi_opcode_info{	u8                      flags;          /* Opcode type, Has_args flag */	u32                     parse_args;     /* Grammar/Parse time arguments */	u32                     runtime_args;   /* Interpret time arguments */	DEBUG_ONLY_MEMBERS (NATIVE_CHAR *name)  /* op name (debug only) */} ACPI_OPCODE_INFO;typedef union acpi_parse_val{	u32                     integer;        /* integer constant */	u32                     size;           /* bytelist or field size */	NATIVE_CHAR             *string;        /* NULL terminated string */	u8                      *buffer;        /* buffer or string */	NATIVE_CHAR             *name;          /* NULL terminated string */	struct acpi_parse_obj   *arg;           /* arguments and contained ops */} ACPI_PARSE_VALUE;#define ACPI_PARSE_COMMON \	u8                      data_type;      /* To differentiate various internal objs */\	u8                      flags;          /* Type of Op */\	u16                     opcode;         /* AML opcode */\	u32                     aml_offset;     /* offset of declaration in AML */\	struct acpi_parse_obj   *parent;        /* parent op */\	struct acpi_parse_obj   *next;          /* next op */\	DEBUG_ONLY_MEMBERS (\	NATIVE_CHAR             op_name[16])    /* op name (debug only) */\			  /* NON-DEBUG members below: */\	ACPI_NAMESPACE_NODE     *node;          /* for use by interpreter */\	ACPI_PARSE_VALUE        value;          /* Value or args associated with the opcode */\/* * generic operation (eg. If, While, Store) */typedef struct acpi_parse_obj{	ACPI_PARSE_COMMON} ACPI_PARSE_OBJECT;/* * Extended Op for named ops (Scope, Method, etc.), deferred ops (Methods and Op_regions), * and bytelists. */typedef struct acpi_parse2_obj{	ACPI_PARSE_COMMON	u8                      *data;          /* AML body or bytelist data */	u32                     length;         /* AML length */	u32                     name;           /* 4-byte name or zero if no name */} ACPI_PARSE2_OBJECT;/* * Parse state - one state per parser invocation and each control * method. */typedef struct acpi_parse_state{	u8                      *aml_start;     /* first AML byte */	u8                      *aml;           /* next AML byte */	u8                      *aml_end;       /* (last + 1) AML byte */	u8                      *pkg_start;     /* current package begin */	u8                      *pkg_end;       /* current package end */	ACPI_PARSE_OBJECT       *start_op;      /* root of parse tree */	struct acpi_node        *start_node;	ACPI_GENERIC_STATE      *scope;         /* current scope */	struct acpi_parse_state *next;} ACPI_PARSE_STATE;/***************************************************************************** * * Tree walking typedefs and structs * ****************************************************************************//* * Walk state - current state of a parse tree walk.  Used for both a leisurely stroll through * the tree (for whatever reason), and for control method execution. */#define NEXT_OP_DOWNWARD    1#define NEXT_OP_UPWARD      2#define WALK_NON_METHOD     0#define WALK_METHOD         1#define WALK_METHOD_RESTART 2typedef struct acpi_walk_state{	u8                      data_type;                          /* To differentiate various internal objs */\	ACPI_OWNER_ID           owner_id;                           /* Owner of objects created during the walk */	u8                      last_predicate;                     /* Result of last predicate */	u8                      next_op_info;                       /* Info about Next_op */	u8                      num_operands;                       /* Stack pointer for Operands[] array */	u8                      current_result;                     /* */	struct acpi_walk_state  *next;                              /* Next Walk_state in list */	ACPI_PARSE_OBJECT       *origin;                            /* Start of walk [Obsolete] *//* TBD: Obsolete with removal of WALK procedure ? */	ACPI_PARSE_OBJECT       *prev_op;                           /* Last op that was processed */	ACPI_PARSE_OBJECT       *next_op;                           /* next op to be processed */	ACPI_GENERIC_STATE      *results;                           /* Stack of accumulated results */	ACPI_GENERIC_STATE      *control_state;                     /* List of control states (nested IFs) */	ACPI_GENERIC_STATE      *scope_info;                        /* Stack of nested scopes */	ACPI_PARSE_STATE        *parser_state;                      /* Current state of parser */	u8                      *aml_last_while;	ACPI_PARSE_DOWNWARDS    descending_callback;	ACPI_PARSE_UPWARDS      ascending_callback;	union acpi_operand_obj  *return_desc;                       /* Return object, if any */	union acpi_operand_obj  *method_desc;                       /* Method descriptor if running a method */	struct acpi_node        *method_node;                       /* Method Node if running a method */	ACPI_PARSE_OBJECT       *method_call_op;                    /* Method_call Op if running a method */	struct acpi_node        *method_call_node;                  /* Called method Node*/	union acpi_operand_obj  *operands[OBJ_NUM_OPERANDS];        /* Operands passed to the interpreter */	struct acpi_node        arguments[MTH_NUM_ARGS];            /* Control method arguments */	struct acpi_node        local_variables[MTH_NUM_LOCALS];    /* Control method locals */	u32                     parse_flags;	u8                      walk_type;	u8                      return_used;	u32                     prev_arg_types;	/* Debug support */	u32                     method_breakpoint;} ACPI_WALK_STATE;/* * Walk list - head of a tree of walk states.  Multiple walk states are created when there * are nested control methods executing. */typedef struct acpi_walk_list{	ACPI_WALK_STATE         *walk_state;} ACPI_WALK_LIST;/* Info used by Acpi_ps_init_objects */typedef struct acpi_init_walk_info{	u16                     method_count;	u16                     op_region_count;	u16                     field_count;	u16                     op_region_init;	u16                     field_init;	u16                     object_count;	ACPI_TABLE_DESC         *table_desc;} ACPI_INIT_WALK_INFO;/* Info used by TBD */typedef struct acpi_device_walk_info{	u32                     flags;	u16                     device_count;	u16                     num_STA;	u16                     num_INI;	ACPI_TABLE_DESC         *table_desc;} ACPI_DEVICE_WALK_INFO;/* TBD: [Restructure] Merge with struct above */typedef struct acpi_walk_info{	u32                     debug_level;	u32                     owner_id;} ACPI_WALK_INFO;typedef struct acpi_get_devices_info{	WALK_CALLBACK           user_function;	void                    *context;	NATIVE_CHAR             *hid;} ACPI_GET_DEVICES_INFO;/***************************************************************************** * * Hardware and PNP * ****************************************************************************//* PCI */#define PCI_ROOT_HID_STRING         "PNP0A03"#define PCI_ROOT_HID_VALUE          0x030AD041       /* EISAID("PNP0A03") *//* Sleep states */#define SLWA_DEBUG_LEVEL            4#define GTS_CALL                    0#define GTS_WAKE                    1/* Cx States */#define MAX_CX_STATE_LATENCY        0xFFFFFFFF#define MAX_CX_STATES               4/* * The #define's and enum below establish an abstract way of identifying what * register block and register is to be accessed.  Do not change any of the * values as they are used in switch statements and offset calculations. */#define REGISTER_BLOCK_MASK         0xFF00  /* Register Block Id    */#define BIT_IN_REGISTER_MASK        0x00FF  /* Bit Id in the Register Block Id    */#define BYTE_IN_REGISTER_MASK       0x00FF  /* Register Offset in the Register Block    */#define REGISTER_BLOCK_ID(reg_id)   (reg_id & REGISTER_BLOCK_MASK)#define REGISTER_BIT_ID(reg_id)     (reg_id & BIT_IN_REGISTER_MASK)#define REGISTER_OFFSET(reg_id)     (reg_id & BYTE_IN_REGISTER_MASK)/* * Access Rule *  To access a Register Bit: *  -> Use Bit Name (= Register Block Id | Bit Id) defined in the enum. * *  To access a Register: *  -> Use Register Id (= Register Block Id | Register Offset) *//* * Register Block Id */#define PM1_STS                     0x0100#define PM1_EN                      0x0200#define PM1_CONTROL                 0x0300#define PM2_CONTROL                 0x0400#define PM_TIMER                    0x0500#define PROCESSOR_BLOCK             0x0600#define GPE0_STS_BLOCK              0x0700#define GPE0_EN_BLOCK               0x0800#define GPE1_STS_BLOCK              0x0900#define GPE1_EN_BLOCK               0x0A00#define SMI_CMD_BLOCK               0x0B00/* * Address space bitmasks for mmio or io spaces */#define SMI_CMD_ADDRESS_SPACE       0x01#define PM1_BLK_ADDRESS_SPACE       0x02#define PM2_CNT_BLK_ADDRESS_SPACE   0x04#define PM_TMR_BLK_ADDRESS_SPACE    0x08#define GPE0_BLK_ADDRESS_SPACE      0x10#define GPE1_BLK_ADDRESS_SPACE      0x20/* * Control bit definitions */#define TMR_STS     (PM1_STS | 0x01)#define BM_STS      (PM1_STS | 0x02)#define GBL_STS     (PM1_STS | 0x03)#define PWRBTN_STS  (PM1_STS | 0x04)#define SLPBTN_STS  (PM1_STS | 0x05)#define RTC_STS     (PM1_STS | 0x06)#define WAK_STS     (PM1_STS | 0x07)#define TMR_EN      (PM1_EN | 0x01)			   /* no BM_EN */#define GBL_EN      (PM1_EN | 0x03)#define PWRBTN_EN   (PM1_EN | 0x04)#define SLPBTN_EN   (PM1_EN | 0x05)#define RTC_EN      (PM1_EN | 0x06)#define WAK_EN      (PM1_EN | 0x07)#define SCI_EN      (PM1_CONTROL | 0x01)#define BM_RLD      (PM1_CONTROL | 0x02)#define GBL_RLS     (PM1_CONTROL | 0x03)#define SLP_TYPE_A  (PM1_CONTROL | 0x04)#define SLP_TYPE_B  (PM1_CONTROL | 0x05)#define SLP_EN      (PM1_CONTROL | 0x06)#define ARB_DIS     (PM2_CONTROL | 0x01)#define TMR_VAL     (PM_TIMER | 0x01)#define GPE0_STS    (GPE0_STS_BLOCK | 0x01)#define GPE0_EN     (GPE0_EN_BLOCK  | 0x01)#define GPE1_STS    (GPE1_STS_BLOCK | 0x01)#define GPE1_EN     (GPE1_EN_BLOCK  | 0x01)#define TMR_STS_MASK        0x0001#define BM_STS_MASK         0x0010#define GBL_STS_MASK        0x0020#define PWRBTN_STS_MASK     0x0100#define SLPBTN_STS_MASK     0x0200#define RTC_STS_MASK        0x0400#define WAK_STS_MASK        0x8000#define ALL_FIXED_STS_BITS  (TMR_STS_MASK   | BM_STS_MASK  | GBL_STS_MASK \					   | PWRBTN_STS_MASK | SLPBTN_STS_MASK \					   | RTC_STS_MASK | WAK_STS_MASK)#define TMR_EN_MASK         0x0001#define GBL_EN_MASK         0x0020#define PWRBTN_EN_MASK      0x0100#define SLPBTN_EN_MASK      0x0200#define RTC_EN_MASK         0x0400#define SCI_EN_MASK         0x0001#define BM_RLD_MASK         0x0002#define GBL_RLS_MASK        0x0004#define SLP_TYPE_X_MASK     0x1C00#define SLP_EN_MASK         0x2000#define ARB_DIS_MASK        0x0001#define TMR_VAL_MASK        0xFFFFFFFF#define GPE0_STS_MASK#define GPE0_EN_MASK#define GPE1_STS_MASK#define GPE1_EN_MASK#define ACPI_READ           1#define ACPI_WRITE          2/* Plug and play *//* Pnp and ACPI data */#define VERSION_NO                      0x01#define LOGICAL_DEVICE_ID               0x02#define COMPATIBLE_DEVICE_ID            0x03#define IRQ_FORMAT                      0x04#define DMA_FORMAT                      0x05#define START_DEPENDENT_TAG             0x06#define END_DEPENDENT_TAG               0x07#define IO_PORT_DESCRIPTOR              0x08#define FIXED_LOCATION_IO_DESCRIPTOR    0x09#define RESERVED_TYPE0                  0x0A#define RESERVED_TYPE1                  0x0B#define RESERVED_TYPE2                  0x0C#define RESERVED_TYPE3                  0x0D#define SMALL_VENDOR_DEFINED            0x0E#define END_TAG                         0x0F/* Pnp and ACPI data */#define MEMORY_RANGE_24                 0x81#define ISA_MEMORY_RANGE                0x81#define LARGE_VENDOR_DEFINED            0x84#define EISA_MEMORY_RANGE               0x85#define MEMORY_RANGE_32                 0x85#define FIXED_EISA_MEMORY_RANGE         0x86#define FIXED_MEMORY_RANGE_32           0x86/* ACPI only data */#define DWORD_ADDRESS_SPACE             0x87#define WORD_ADDRESS_SPACE              0x88#define EXTENDED_IRQ                    0x89/* MUST HAVES */#define DEVICE_ID_LENGTH                0x09typedef struct{		NATIVE_CHAR         buffer[DEVICE_ID_LENGTH];} DEVICE_ID;/***************************************************************************** * * Debug * ****************************************************************************//* Entry for a memory allocation (debug only) */#ifdef ACPI_DEBUG#define MEM_MALLOC          0#define MEM_CALLOC          1#define MAX_MODULE_NAME     16typedef struct allocation_info{	struct allocation_info  *previous;	struct allocation_info  *next;	void                    *address;	u32                     size;	u32                     component;	u32                     line;	NATIVE_CHAR             module[MAX_MODULE_NAME];	u8                      alloc_type;} ALLOCATION_INFO;#endif#endif /* __ACLOCAL_H__ */

⌨️ 快捷键说明

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