
/******************************************************************************
 *
 * Module Name: amlresrc.h - AML resource descriptors
 *
 *****************************************************************************/

/*
 * Copyright (C) 2000 - 2005, 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_ACCESSSIZE                  "_ASZ"
#define ASL_RESNAME_TYPESPECIFICATTRIBUTES      "_ATT"
#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                  0x01

struct asl_resource_node {
	u32 buffer_length;
	void *buffer;
	struct asl_resource_node *next;
};

/*
 * Resource descriptors defined in the ACPI specification.
 *
 * Packing/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 */

#define ASL_LARGE_HEADER_COMMON \
	u8                                  descriptor_type;\
	u16                                 length;

struct asl_large_header {
ASL_LARGE_HEADER_COMMON};

struct asl_memory_24_desc {
	ASL_LARGE_HEADER_COMMON u8 information;
	u16 address_min;
	u16 address_max;
	u16 alignment;
	u16 range_length;
};

struct asl_large_vendor_desc {
	ASL_LARGE_HEADER_COMMON u8 vendor_defined[1];
};

struct asl_memory_32_desc {
	ASL_LARGE_HEADER_COMMON u8 information;
	u32 address_min;
	u32 address_max;
	u32 alignment;
	u32 range_length;
};

struct asl_fixed_memory_32_desc {
	ASL_LARGE_HEADER_COMMON u8 information;
	u32 base_address;
	u32 range_length;
};

struct asl_extended_address_desc {
	ASL_LARGE_HEADER_COMMON u8 resource_type;
	u8 flags;
	u8 specific_flags;
	u8 revision_iD;
	u8 reserved;
	u64 granularity;
	u64 address_min;
	u64 address_max;
	u64 translation_offset;
	u64 address_length;
	u64 type_specific_attributes;
	u8 optional_fields[2];	/* Used for length calculation only */
};

#define ASL_EXTENDED_ADDRESS_DESC_REVISION          1	/* ACPI 3.0 */

struct asl_qword_address_desc {
	ASL_LARGE_HEADER_COMMON 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 {
	ASL_LARGE_HEADER_COMMON 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 {
	ASL_LARGE_HEADER_COMMON 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 {
	ASL_LARGE_HEADER_COMMON u8 flags;
	u8 table_length;
	u32 interrupt_number[1];
	/* res_source_index, res_source optional fields follow */
};

struct asl_generic_register_desc {
	ASL_LARGE_HEADER_COMMON u8 address_space_id;
	u8 bit_width;
	u8 bit_offset;
	u8 access_size;		/* ACPI 3.0, was Reserved */
	u64 address;
};

/* restore default alignment */

#pragma pack()

/* Union of all resource descriptors, so we can allocate the worst case */

union asl_resource_desc {
	struct asl_irq_format_desc irq;
	struct asl_dma_format_desc dma;
	struct asl_io_port_desc iop;
	struct asl_fixed_io_port_desc fio;
	struct asl_start_dependent_desc std;
	struct asl_end_dependent_desc end;
	struct asl_small_vendor_desc smv;
	struct asl_end_tag_desc et;

	struct asl_large_header lhd;
	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_address_desc eas;
	struct asl_extended_xrupt_desc exx;
	struct asl_generic_register_desc grg;
	u32 u32_item;
	u16 u16_item;
	u8 U8item;
};

#endif
