amlresrc.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 330 行

H
330
字号
/****************************************************************************** * * Module Name: amlresrc.h - AML resource descriptors * *****************************************************************************//* * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions, and the following disclaimer, *    without modification. * 2. Redistributions in binary form must reproduce at minimum a disclaimer *    substantially similar to the "NO WARRANTY" disclaimer below *    ("Disclaimer") and any redistribution must be conditioned upon *    including a substantially similar Disclaimer requirement for further *    binary redistribution. * 3. Neither the names of the above-listed copyright holders nor the names *    of any contributors may be used to endorse or promote products derived *    from this software without specific prior written permission. * * Alternatively, this software may be distributed under the terms of the * GNU General Public License ("GPL") version 2 as published by the Free * Software Foundation. * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */#ifndef __AMLRESRC_H#define __AMLRESRC_H#define ASL_RESNAME_ADDRESS                     "_ADR"#define ASL_RESNAME_ALIGNMENT                   "_ALN"#define ASL_RESNAME_ADDRESSSPACE                "_ASI"#define ASL_RESNAME_BASEADDRESS                 "_BAS"#define ASL_RESNAME_BUSMASTER                   "_BM_"  /* Master(1), Slave(0) */#define ASL_RESNAME_DECODE                      "_DEC"#define ASL_RESNAME_DMA                         "_DMA"#define ASL_RESNAME_DMATYPE                     "_TYP"  /* Compatible(0), A(1), B(2), F(3) */#define ASL_RESNAME_GRANULARITY                 "_GRA"#define ASL_RESNAME_INTERRUPT                   "_INT"#define ASL_RESNAME_INTERRUPTLEVEL              "_LL_"  /* active_lo(1), active_hi(0) */#define ASL_RESNAME_INTERRUPTSHARE              "_SHR"  /* Shareable(1), no_share(0) */#define ASL_RESNAME_INTERRUPTTYPE               "_HE_"  /* Edge(1), Level(0) */#define ASL_RESNAME_LENGTH                      "_LEN"#define ASL_RESNAME_MEMATTRIBUTES               "_MTP"  /* Memory(0), Reserved(1), ACPI(2), NVS(3) */#define ASL_RESNAME_MEMTYPE                     "_MEM"  /* non_cache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */#define ASL_RESNAME_MAXADDR                     "_MAX"#define ASL_RESNAME_MINADDR                     "_MIN"#define ASL_RESNAME_MAXTYPE                     "_MAF"#define ASL_RESNAME_MINTYPE                     "_MIF"#define ASL_RESNAME_REGISTERBITOFFSET           "_RBO"#define ASL_RESNAME_REGISTERBITWIDTH            "_RBW"#define ASL_RESNAME_RANGETYPE                   "_RNG"#define ASL_RESNAME_READWRITETYPE               "_RW_"  /* read_only(0), Writeable (1) */#define ASL_RESNAME_TRANSLATION                 "_TRA"#define ASL_RESNAME_TRANSTYPE                   "_TRS"  /* Sparse(1), Dense(0) */#define ASL_RESNAME_TYPE                        "_TTP"  /* Translation(1), Static (0) */#define ASL_RESNAME_XFERTYPE                    "_SIz"  /* 8(0), 8_and16(1), 16(2) *//* Default sizes for "small" resource descriptors */#define ASL_RDESC_IRQ_SIZE                      0x02#define ASL_RDESC_DMA_SIZE                      0x02#define ASL_RDESC_ST_DEPEND_SIZE                0x00#define ASL_RDESC_END_DEPEND_SIZE               0x00#define ASL_RDESC_IO_SIZE                       0x07#define ASL_RDESC_FIXED_IO_SIZE                 0x03#define ASL_RDESC_END_TAG_SIZE                  0x01struct asl_resource_node{	u32                                 buffer_length;	void                                *buffer;	struct asl_resource_node            *next;};/* * Resource descriptors defined in the ACPI specification. * * Alignment must be BYTE because these descriptors * are used to overlay the AML byte stream. */#pragma pack(1)struct asl_irq_format_desc{	u8                                  descriptor_type;	u16                                 irq_mask;	u8                                  flags;};struct asl_irq_noflags_desc{	u8                                  descriptor_type;	u16                                 irq_mask;};struct asl_dma_format_desc{	u8                                  descriptor_type;	u8                                  dma_channel_mask;	u8                                  flags;};struct asl_start_dependent_desc{	u8                                  descriptor_type;	u8                                  flags;};struct asl_start_dependent_noprio_desc{	u8                                  descriptor_type;};struct asl_end_dependent_desc{	u8                                  descriptor_type;};struct asl_io_port_desc{	u8                                  descriptor_type;	u8                                  information;	u16                                 address_min;	u16                                 address_max;	u8                                  alignment;	u8                                  length;};struct asl_fixed_io_port_desc{	u8                                  descriptor_type;	u16                                 base_address;	u8                                  length;};struct asl_small_vendor_desc{	u8                                  descriptor_type;	u8                                  vendor_defined[7];};struct asl_end_tag_desc{	u8                                  descriptor_type;	u8                                  checksum;};/* LARGE descriptors */struct asl_memory_24_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  information;	u16                                 address_min;	u16                                 address_max;	u16                                 alignment;	u16                                 range_length;};struct asl_large_vendor_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  vendor_defined[1];};struct asl_memory_32_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  information;	u32                                 address_min;	u32                                 address_max;	u32                                 alignment;	u32                                 range_length;};struct asl_fixed_memory_32_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  information;	u32                                 base_address;	u32                                 range_length;};struct asl_qword_address_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  resource_type;	u8                                  flags;	u8                                  specific_flags;	u64                                 granularity;	u64                                 address_min;	u64                                 address_max;	u64                                 translation_offset;	u64                                 address_length;	u8                                  optional_fields[2];};struct asl_dword_address_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  resource_type;	u8                                  flags;	u8                                  specific_flags;	u32                                 granularity;	u32                                 address_min;	u32                                 address_max;	u32                                 translation_offset;	u32                                 address_length;	u8                                  optional_fields[2];};struct asl_word_address_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  resource_type;	u8                                  flags;	u8                                  specific_flags;	u16                                 granularity;	u16                                 address_min;	u16                                 address_max;	u16                                 translation_offset;	u16                                 address_length;	u8                                  optional_fields[2];};struct asl_extended_xrupt_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  flags;	u8                                  table_length;	u32                                 interrupt_number[1];	/* res_source_index, res_source optional fields follow */};struct asl_general_register_desc{	u8                                  descriptor_type;	u16                                 length;	u8                                  address_space_id;	u8                                  bit_width;	u8                                  bit_offset;	u8                                  reserved;	u64                                 address;};/* restore default alignment */#pragma pack()/* Union of all resource descriptors, sow we can allocate the worst case */union asl_resource_desc{	struct asl_irq_format_desc          irq;	struct asl_dma_format_desc          dma;	struct asl_start_dependent_desc     std;	struct asl_end_dependent_desc       end;	struct asl_io_port_desc             iop;	struct asl_fixed_io_port_desc       fio;	struct asl_small_vendor_desc        smv;	struct asl_end_tag_desc             et;	struct asl_memory_24_desc           M24;	struct asl_large_vendor_desc        lgv;	struct asl_memory_32_desc           M32;	struct asl_fixed_memory_32_desc     F32;	struct asl_qword_address_desc       qas;	struct asl_dword_address_desc       das;	struct asl_word_address_desc        was;	struct asl_extended_xrupt_desc      exx;	struct asl_general_register_desc    grg;	u32                                 u32_item;	u16                                 u16_item;	u8                                  U8item;};#endif

⌨️ 快捷键说明

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