Blame view
drivers/acpi/acpica/acresrc.h
10.8 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 |
/****************************************************************************** * * Name: acresrc.h - Resource Manager function prototypes * *****************************************************************************/ /* |
75a44ce00 ACPICA: update In... |
8 |
* Copyright (C) 2000 - 2008, Intel Corp. |
1da177e4c Linux-2.6.12-rc2 |
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
* 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 __ACRESRC_H__ #define __ACRESRC_H__ |
50eca3eb8 [ACPI] ACPICA 200... |
46 47 48 49 50 |
/* Need the AML resource descriptor structs */ #include "amlresrc.h" /* |
0897831bb [ACPI] ACPICA 200... |
51 |
* If possible, pack the following structures to byte alignment, since we |
f6dd9221d ACPI: ACPICA 2006... |
52 53 54 55 56 |
* don't care about performance for debug output. Two cases where we cannot * pack the structures: * * 1) Hardware does not support misaligned memory transfers * 2) Compiler does not support pointers within packed structures |
0897831bb [ACPI] ACPICA 200... |
57 |
*/ |
f6dd9221d ACPI: ACPICA 2006... |
58 |
#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED)) |
0897831bb [ACPI] ACPICA 200... |
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
#pragma pack(1) #endif /* * Individual entry for the resource conversion tables */ typedef const struct acpi_rsconvert_info { u8 opcode; u8 resource_offset; u8 aml_offset; u8 value; } acpi_rsconvert_info; /* Resource conversion opcodes */ #define ACPI_RSC_INITGET 0 #define ACPI_RSC_INITSET 1 #define ACPI_RSC_FLAGINIT 2 #define ACPI_RSC_1BITFLAG 3 #define ACPI_RSC_2BITFLAG 4 #define ACPI_RSC_COUNT 5 #define ACPI_RSC_COUNT16 6 #define ACPI_RSC_LENGTH 7 #define ACPI_RSC_MOVE8 8 #define ACPI_RSC_MOVE16 9 #define ACPI_RSC_MOVE32 10 #define ACPI_RSC_MOVE64 11 #define ACPI_RSC_SET8 12 #define ACPI_RSC_DATA8 13 #define ACPI_RSC_ADDRESS 14 #define ACPI_RSC_SOURCE 15 #define ACPI_RSC_SOURCEX 16 #define ACPI_RSC_BITMASK 17 #define ACPI_RSC_BITMASK16 18 #define ACPI_RSC_EXIT_NE 19 #define ACPI_RSC_EXIT_LE 20 |
1d5b285da ACPICA: Fix for r... |
96 |
#define ACPI_RSC_EXIT_EQ 21 |
0897831bb [ACPI] ACPICA 200... |
97 98 99 100 101 102 103 104 105 106 |
/* Resource Conversion sub-opcodes */ #define ACPI_RSC_COMPARE_AML_LENGTH 0 #define ACPI_RSC_COMPARE_VALUE 1 #define ACPI_RSC_TABLE_SIZE(d) (sizeof (d) / sizeof (struct acpi_rsconvert_info)) #define ACPI_RS_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_resource,f) #define AML_OFFSET(f) (u8) ACPI_OFFSET (union aml_resource,f) |
0897831bb [ACPI] ACPICA 200... |
107 108 109 110 |
typedef const struct acpi_rsdump_info { u8 opcode; u8 offset; char *name; |
96db255c8 [ACPI] ACPICA 200... |
111 |
const char **pointer; |
50eca3eb8 [ACPI] ACPICA 200... |
112 |
|
0897831bb [ACPI] ACPICA 200... |
113 |
} acpi_rsdump_info; |
50eca3eb8 [ACPI] ACPICA 200... |
114 |
|
0897831bb [ACPI] ACPICA 200... |
115 |
/* Values for the Opcode field above */ |
50eca3eb8 [ACPI] ACPICA 200... |
116 |
|
0897831bb [ACPI] ACPICA 200... |
117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
#define ACPI_RSD_TITLE 0 #define ACPI_RSD_LITERAL 1 #define ACPI_RSD_STRING 2 #define ACPI_RSD_UINT8 3 #define ACPI_RSD_UINT16 4 #define ACPI_RSD_UINT32 5 #define ACPI_RSD_UINT64 6 #define ACPI_RSD_1BITFLAG 7 #define ACPI_RSD_2BITFLAG 8 #define ACPI_RSD_SHORTLIST 9 #define ACPI_RSD_LONGLIST 10 #define ACPI_RSD_DWORDLIST 11 #define ACPI_RSD_ADDRESS 12 #define ACPI_RSD_SOURCE 13 |
50eca3eb8 [ACPI] ACPICA 200... |
131 |
|
0897831bb [ACPI] ACPICA 200... |
132 |
/* restore default alignment */ |
50eca3eb8 [ACPI] ACPICA 200... |
133 |
|
0897831bb [ACPI] ACPICA 200... |
134 |
#pragma pack() |
50eca3eb8 [ACPI] ACPICA 200... |
135 |
|
0897831bb [ACPI] ACPICA 200... |
136 |
/* Resource tables indexed by internal resource type */ |
50eca3eb8 [ACPI] ACPICA 200... |
137 |
|
0897831bb [ACPI] ACPICA 200... |
138 139 140 141 |
extern const u8 acpi_gbl_aml_resource_sizes[]; extern struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[]; /* Resource tables indexed by raw AML resource descriptor type */ |
50eca3eb8 [ACPI] ACPICA 200... |
142 |
|
c51a4de85 [ACPI] ACPICA 200... |
143 |
extern const u8 acpi_gbl_resource_struct_sizes[]; |
96db255c8 [ACPI] ACPICA 200... |
144 |
extern struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[]; |
c51a4de85 [ACPI] ACPICA 200... |
145 146 147 148 149 |
struct acpi_vendor_walk_info { struct acpi_vendor_uuid *uuid; struct acpi_buffer *buffer; acpi_status status; }; |
0897831bb [ACPI] ACPICA 200... |
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
/* * rscreate */ acpi_status acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer, struct acpi_buffer *output_buffer); acpi_status acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, struct acpi_buffer *output_buffer); acpi_status acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object, struct acpi_buffer *output_buffer); |
50eca3eb8 [ACPI] ACPICA 200... |
165 |
|
1da177e4c Linux-2.6.12-rc2 |
166 |
/* |
0897831bb [ACPI] ACPICA 200... |
167 |
* rsutils |
1da177e4c Linux-2.6.12-rc2 |
168 |
*/ |
4119532c9 ACPI: ACPICA 2006... |
169 |
|
1da177e4c Linux-2.6.12-rc2 |
170 |
acpi_status |
4119532c9 ACPI: ACPICA 2006... |
171 172 |
acpi_rs_get_prt_method_data(struct acpi_namespace_node *node, struct acpi_buffer *ret_buffer); |
1da177e4c Linux-2.6.12-rc2 |
173 174 |
acpi_status |
4119532c9 ACPI: ACPICA 2006... |
175 176 |
acpi_rs_get_crs_method_data(struct acpi_namespace_node *node, struct acpi_buffer *ret_buffer); |
1da177e4c Linux-2.6.12-rc2 |
177 |
|
1da177e4c Linux-2.6.12-rc2 |
178 |
acpi_status |
4119532c9 ACPI: ACPICA 2006... |
179 180 |
acpi_rs_get_prs_method_data(struct acpi_namespace_node *node, struct acpi_buffer *ret_buffer); |
1da177e4c Linux-2.6.12-rc2 |
181 182 |
acpi_status |
4be44fcd3 [ACPI] Lindent al... |
183 184 |
acpi_rs_get_method_data(acpi_handle handle, char *path, struct acpi_buffer *ret_buffer); |
1da177e4c Linux-2.6.12-rc2 |
185 186 |
acpi_status |
4119532c9 ACPI: ACPICA 2006... |
187 188 |
acpi_rs_set_srs_method_data(struct acpi_namespace_node *node, struct acpi_buffer *ret_buffer); |
1da177e4c Linux-2.6.12-rc2 |
189 |
|
44f6c0124 ACPICA 20050408 f... |
190 191 192 |
/* * rscalc */ |
1da177e4c Linux-2.6.12-rc2 |
193 |
acpi_status |
50eca3eb8 [ACPI] ACPICA 200... |
194 195 |
acpi_rs_get_list_length(u8 * aml_buffer, u32 aml_buffer_length, acpi_size * size_needed); |
1da177e4c Linux-2.6.12-rc2 |
196 197 |
acpi_status |
50eca3eb8 [ACPI] ACPICA 200... |
198 199 |
acpi_rs_get_aml_length(struct acpi_resource *linked_list_buffer, acpi_size * size_needed); |
1da177e4c Linux-2.6.12-rc2 |
200 201 |
acpi_status |
4be44fcd3 [ACPI] Lindent al... |
202 203 |
acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object, acpi_size * buffer_size_needed); |
1da177e4c Linux-2.6.12-rc2 |
204 205 |
acpi_status |
61686124f [ACPI] ACPICA 200... |
206 207 208 |
acpi_rs_convert_aml_to_resources(u8 * aml, u32 length, u32 offset, u8 resource_index, void **context); |
1da177e4c Linux-2.6.12-rc2 |
209 210 |
acpi_status |
50eca3eb8 [ACPI] ACPICA 200... |
211 212 |
acpi_rs_convert_resources_to_aml(struct acpi_resource *resource, acpi_size aml_size_needed, u8 * output_buffer); |
1da177e4c Linux-2.6.12-rc2 |
213 |
|
50eca3eb8 [ACPI] ACPICA 200... |
214 |
/* |
50eca3eb8 [ACPI] ACPICA 200... |
215 216 |
* rsaddr */ |
0897831bb [ACPI] ACPICA 200... |
217 218 |
void acpi_rs_set_address_common(union aml_resource *aml, |
50eca3eb8 [ACPI] ACPICA 200... |
219 |
struct acpi_resource *resource); |
1da177e4c Linux-2.6.12-rc2 |
220 |
|
0897831bb [ACPI] ACPICA 200... |
221 222 |
u8 acpi_rs_get_address_common(struct acpi_resource *resource, |
50eca3eb8 [ACPI] ACPICA 200... |
223 |
union aml_resource *aml); |
1da177e4c Linux-2.6.12-rc2 |
224 |
|
50eca3eb8 [ACPI] ACPICA 200... |
225 226 227 |
/* * rsmisc */ |
1da177e4c Linux-2.6.12-rc2 |
228 |
acpi_status |
0897831bb [ACPI] ACPICA 200... |
229 230 231 |
acpi_rs_convert_aml_to_resource(struct acpi_resource *resource, union aml_resource *aml, struct acpi_rsconvert_info *info); |
1da177e4c Linux-2.6.12-rc2 |
232 233 |
acpi_status |
0897831bb [ACPI] ACPICA 200... |
234 235 236 |
acpi_rs_convert_resource_to_aml(struct acpi_resource *resource, union aml_resource *aml, struct acpi_rsconvert_info *info); |
50eca3eb8 [ACPI] ACPICA 200... |
237 238 239 240 241 242 243 |
/* * rsutils */ void acpi_rs_move_data(void *destination, void *source, u16 item_count, u8 move_type); |
0897831bb [ACPI] ACPICA 200... |
244 |
u8 acpi_rs_decode_bitmask(u16 mask, u8 * list); |
50eca3eb8 [ACPI] ACPICA 200... |
245 |
|
0897831bb [ACPI] ACPICA 200... |
246 |
u16 acpi_rs_encode_bitmask(u8 * list, u8 count); |
50eca3eb8 [ACPI] ACPICA 200... |
247 |
|
0897831bb [ACPI] ACPICA 200... |
248 249 250 |
acpi_rs_length acpi_rs_get_resource_source(acpi_rs_length resource_length, acpi_rs_length minimum_length, |
50eca3eb8 [ACPI] ACPICA 200... |
251 252 |
struct acpi_resource_source *resource_source, union aml_resource *aml, char *string_ptr); |
0897831bb [ACPI] ACPICA 200... |
253 |
acpi_rsdesc_size |
50eca3eb8 [ACPI] ACPICA 200... |
254 |
acpi_rs_set_resource_source(union aml_resource *aml, |
0897831bb [ACPI] ACPICA 200... |
255 |
acpi_rs_length minimum_length, |
50eca3eb8 [ACPI] ACPICA 200... |
256 |
struct acpi_resource_source *resource_source); |
1da177e4c Linux-2.6.12-rc2 |
257 |
|
50eca3eb8 [ACPI] ACPICA 200... |
258 259 |
void acpi_rs_set_resource_header(u8 descriptor_type, |
0897831bb [ACPI] ACPICA 200... |
260 261 262 263 264 265 |
acpi_rsdesc_size total_length, union aml_resource *aml); void acpi_rs_set_resource_length(acpi_rsdesc_size total_length, union aml_resource *aml); |
50eca3eb8 [ACPI] ACPICA 200... |
266 |
|
bda663d36 [ACPI] ACPICA 200... |
267 |
/* |
50eca3eb8 [ACPI] ACPICA 200... |
268 |
* rsdump |
bda663d36 [ACPI] ACPICA 200... |
269 |
*/ |
0897831bb [ACPI] ACPICA 200... |
270 |
void acpi_rs_dump_resource_list(struct acpi_resource *resource); |
50eca3eb8 [ACPI] ACPICA 200... |
271 |
|
0897831bb [ACPI] ACPICA 200... |
272 |
void acpi_rs_dump_irq_list(u8 * route_table); |
50eca3eb8 [ACPI] ACPICA 200... |
273 |
|
0897831bb [ACPI] ACPICA 200... |
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 |
/* * Resource conversion tables */ extern struct acpi_rsconvert_info acpi_rs_convert_dma[]; extern struct acpi_rsconvert_info acpi_rs_convert_end_dpf[]; extern struct acpi_rsconvert_info acpi_rs_convert_io[]; extern struct acpi_rsconvert_info acpi_rs_convert_fixed_io[]; extern struct acpi_rsconvert_info acpi_rs_convert_end_tag[]; extern struct acpi_rsconvert_info acpi_rs_convert_memory24[]; extern struct acpi_rsconvert_info acpi_rs_convert_generic_reg[]; extern struct acpi_rsconvert_info acpi_rs_convert_memory32[]; extern struct acpi_rsconvert_info acpi_rs_convert_fixed_memory32[]; extern struct acpi_rsconvert_info acpi_rs_convert_address32[]; extern struct acpi_rsconvert_info acpi_rs_convert_address16[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_irq[]; extern struct acpi_rsconvert_info acpi_rs_convert_address64[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_address64[]; /* These resources require separate get/set tables */ extern struct acpi_rsconvert_info acpi_rs_get_irq[]; extern struct acpi_rsconvert_info acpi_rs_get_start_dpf[]; extern struct acpi_rsconvert_info acpi_rs_get_vendor_small[]; extern struct acpi_rsconvert_info acpi_rs_get_vendor_large[]; extern struct acpi_rsconvert_info acpi_rs_set_irq[]; extern struct acpi_rsconvert_info acpi_rs_set_start_dpf[]; extern struct acpi_rsconvert_info acpi_rs_set_vendor[]; |
50eca3eb8 [ACPI] ACPICA 200... |
302 |
|
0897831bb [ACPI] ACPICA 200... |
303 304 305 306 307 |
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) /* * rsinfo */ extern struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[]; |
50eca3eb8 [ACPI] ACPICA 200... |
308 |
|
0897831bb [ACPI] ACPICA 200... |
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 |
/* * rsdump */ extern struct acpi_rsdump_info acpi_rs_dump_irq[]; extern struct acpi_rsdump_info acpi_rs_dump_dma[]; extern struct acpi_rsdump_info acpi_rs_dump_start_dpf[]; extern struct acpi_rsdump_info acpi_rs_dump_end_dpf[]; extern struct acpi_rsdump_info acpi_rs_dump_io[]; extern struct acpi_rsdump_info acpi_rs_dump_fixed_io[]; extern struct acpi_rsdump_info acpi_rs_dump_vendor[]; extern struct acpi_rsdump_info acpi_rs_dump_end_tag[]; extern struct acpi_rsdump_info acpi_rs_dump_memory24[]; extern struct acpi_rsdump_info acpi_rs_dump_memory32[]; extern struct acpi_rsdump_info acpi_rs_dump_fixed_memory32[]; extern struct acpi_rsdump_info acpi_rs_dump_address16[]; extern struct acpi_rsdump_info acpi_rs_dump_address32[]; extern struct acpi_rsdump_info acpi_rs_dump_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_irq[]; extern struct acpi_rsdump_info acpi_rs_dump_generic_reg[]; |
50eca3eb8 [ACPI] ACPICA 200... |
329 |
#endif |
bda663d36 [ACPI] ACPICA 200... |
330 |
|
4be44fcd3 [ACPI] Lindent al... |
331 |
#endif /* __ACRESRC_H__ */ |