diff options
author | Len Brown <len.brown@intel.com> | 2009-01-09 00:13:17 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-01-09 03:30:47 -0500 |
commit | 95b482a8d31116f3f5c2a5089569393234d06385 (patch) | |
tree | f32aec8673a285a9d188948be97af3034ee06e93 /drivers/acpi/parser/psutils.c | |
parent | 6620e0c49f577454b772fb381543d60ae53eb885 (diff) |
ACPICA: create acpica/ directory
also, delete sleep/ and delete ACPI_CFLAGS from Makefile
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/parser/psutils.c')
-rw-r--r-- | drivers/acpi/parser/psutils.c | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c deleted file mode 100644 index eec7d624db8e..000000000000 --- a/drivers/acpi/parser/psutils.c +++ /dev/null | |||
@@ -1,244 +0,0 @@ | |||
1 | /****************************************************************************** | ||
2 | * | ||
3 | * Module Name: psutils - Parser miscellaneous utilities (Parser only) | ||
4 | * | ||
5 | *****************************************************************************/ | ||
6 | |||
7 | /* | ||
8 | * Copyright (C) 2000 - 2008, Intel Corp. | ||
9 | * All rights reserved. | ||
10 | * | ||
11 | * Redistribution and use in source and binary forms, with or without | ||
12 | * modification, are permitted provided that the following conditions | ||
13 | * are met: | ||
14 | * 1. Redistributions of source code must retain the above copyright | ||
15 | * notice, this list of conditions, and the following disclaimer, | ||
16 | * without modification. | ||
17 | * 2. Redistributions in binary form must reproduce at minimum a disclaimer | ||
18 | * substantially similar to the "NO WARRANTY" disclaimer below | ||
19 | * ("Disclaimer") and any redistribution must be conditioned upon | ||
20 | * including a substantially similar Disclaimer requirement for further | ||
21 | * binary redistribution. | ||
22 | * 3. Neither the names of the above-listed copyright holders nor the names | ||
23 | * of any contributors may be used to endorse or promote products derived | ||
24 | * from this software without specific prior written permission. | ||
25 | * | ||
26 | * Alternatively, this software may be distributed under the terms of the | ||
27 | * GNU General Public License ("GPL") version 2 as published by the Free | ||
28 | * Software Foundation. | ||
29 | * | ||
30 | * NO WARRANTY | ||
31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
32 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
33 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR | ||
34 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
35 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
36 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
37 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
38 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
39 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | ||
40 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
41 | * POSSIBILITY OF SUCH DAMAGES. | ||
42 | */ | ||
43 | |||
44 | #include <acpi/acpi.h> | ||
45 | #include <acpi/accommon.h> | ||
46 | #include <acpi/acparser.h> | ||
47 | #include <acpi/amlcode.h> | ||
48 | |||
49 | #define _COMPONENT ACPI_PARSER | ||
50 | ACPI_MODULE_NAME("psutils") | ||
51 | |||
52 | /******************************************************************************* | ||
53 | * | ||
54 | * FUNCTION: acpi_ps_create_scope_op | ||
55 | * | ||
56 | * PARAMETERS: None | ||
57 | * | ||
58 | * RETURN: A new Scope object, null on failure | ||
59 | * | ||
60 | * DESCRIPTION: Create a Scope and associated namepath op with the root name | ||
61 | * | ||
62 | ******************************************************************************/ | ||
63 | union acpi_parse_object *acpi_ps_create_scope_op(void) | ||
64 | { | ||
65 | union acpi_parse_object *scope_op; | ||
66 | |||
67 | scope_op = acpi_ps_alloc_op(AML_SCOPE_OP); | ||
68 | if (!scope_op) { | ||
69 | return (NULL); | ||
70 | } | ||
71 | |||
72 | scope_op->named.name = ACPI_ROOT_NAME; | ||
73 | return (scope_op); | ||
74 | } | ||
75 | |||
76 | /******************************************************************************* | ||
77 | * | ||
78 | * FUNCTION: acpi_ps_init_op | ||
79 | * | ||
80 | * PARAMETERS: Op - A newly allocated Op object | ||
81 | * Opcode - Opcode to store in the Op | ||
82 | * | ||
83 | * RETURN: None | ||
84 | * | ||
85 | * DESCRIPTION: Initialize a parse (Op) object | ||
86 | * | ||
87 | ******************************************************************************/ | ||
88 | |||
89 | void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode) | ||
90 | { | ||
91 | ACPI_FUNCTION_ENTRY(); | ||
92 | |||
93 | op->common.descriptor_type = ACPI_DESC_TYPE_PARSER; | ||
94 | op->common.aml_opcode = opcode; | ||
95 | |||
96 | ACPI_DISASM_ONLY_MEMBERS(ACPI_STRNCPY(op->common.aml_op_name, | ||
97 | (acpi_ps_get_opcode_info | ||
98 | (opcode))->name, | ||
99 | sizeof(op->common.aml_op_name))); | ||
100 | } | ||
101 | |||
102 | /******************************************************************************* | ||
103 | * | ||
104 | * FUNCTION: acpi_ps_alloc_op | ||
105 | * | ||
106 | * PARAMETERS: Opcode - Opcode that will be stored in the new Op | ||
107 | * | ||
108 | * RETURN: Pointer to the new Op, null on failure | ||
109 | * | ||
110 | * DESCRIPTION: Allocate an acpi_op, choose op type (and thus size) based on | ||
111 | * opcode. A cache of opcodes is available for the pure | ||
112 | * GENERIC_OP, since this is by far the most commonly used. | ||
113 | * | ||
114 | ******************************************************************************/ | ||
115 | |||
116 | union acpi_parse_object *acpi_ps_alloc_op(u16 opcode) | ||
117 | { | ||
118 | union acpi_parse_object *op; | ||
119 | const struct acpi_opcode_info *op_info; | ||
120 | u8 flags = ACPI_PARSEOP_GENERIC; | ||
121 | |||
122 | ACPI_FUNCTION_ENTRY(); | ||
123 | |||
124 | op_info = acpi_ps_get_opcode_info(opcode); | ||
125 | |||
126 | /* Determine type of parse_op required */ | ||
127 | |||
128 | if (op_info->flags & AML_DEFER) { | ||
129 | flags = ACPI_PARSEOP_DEFERRED; | ||
130 | } else if (op_info->flags & AML_NAMED) { | ||
131 | flags = ACPI_PARSEOP_NAMED; | ||
132 | } else if (opcode == AML_INT_BYTELIST_OP) { | ||
133 | flags = ACPI_PARSEOP_BYTELIST; | ||
134 | } | ||
135 | |||
136 | /* Allocate the minimum required size object */ | ||
137 | |||
138 | if (flags == ACPI_PARSEOP_GENERIC) { | ||
139 | |||
140 | /* The generic op (default) is by far the most common (16 to 1) */ | ||
141 | |||
142 | op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); | ||
143 | } else { | ||
144 | /* Extended parseop */ | ||
145 | |||
146 | op = acpi_os_acquire_object(acpi_gbl_ps_node_ext_cache); | ||
147 | } | ||
148 | |||
149 | /* Initialize the Op */ | ||
150 | |||
151 | if (op) { | ||
152 | acpi_ps_init_op(op, opcode); | ||
153 | op->common.flags = flags; | ||
154 | } | ||
155 | |||
156 | return (op); | ||
157 | } | ||
158 | |||
159 | /******************************************************************************* | ||
160 | * | ||
161 | * FUNCTION: acpi_ps_free_op | ||
162 | * | ||
163 | * PARAMETERS: Op - Op to be freed | ||
164 | * | ||
165 | * RETURN: None. | ||
166 | * | ||
167 | * DESCRIPTION: Free an Op object. Either put it on the GENERIC_OP cache list | ||
168 | * or actually free it. | ||
169 | * | ||
170 | ******************************************************************************/ | ||
171 | |||
172 | void acpi_ps_free_op(union acpi_parse_object *op) | ||
173 | { | ||
174 | ACPI_FUNCTION_NAME(ps_free_op); | ||
175 | |||
176 | if (op->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { | ||
177 | ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", | ||
178 | op)); | ||
179 | } | ||
180 | |||
181 | if (op->common.flags & ACPI_PARSEOP_GENERIC) { | ||
182 | (void)acpi_os_release_object(acpi_gbl_ps_node_cache, op); | ||
183 | } else { | ||
184 | (void)acpi_os_release_object(acpi_gbl_ps_node_ext_cache, op); | ||
185 | } | ||
186 | } | ||
187 | |||
188 | /******************************************************************************* | ||
189 | * | ||
190 | * FUNCTION: Utility functions | ||
191 | * | ||
192 | * DESCRIPTION: Low level character and object functions | ||
193 | * | ||
194 | ******************************************************************************/ | ||
195 | |||
196 | /* | ||
197 | * Is "c" a namestring lead character? | ||
198 | */ | ||
199 | u8 acpi_ps_is_leading_char(u32 c) | ||
200 | { | ||
201 | return ((u8) (c == '_' || (c >= 'A' && c <= 'Z'))); | ||
202 | } | ||
203 | |||
204 | /* | ||
205 | * Is "c" a namestring prefix character? | ||
206 | */ | ||
207 | u8 acpi_ps_is_prefix_char(u32 c) | ||
208 | { | ||
209 | return ((u8) (c == '\\' || c == '^')); | ||
210 | } | ||
211 | |||
212 | /* | ||
213 | * Get op's name (4-byte name segment) or 0 if unnamed | ||
214 | */ | ||
215 | #ifdef ACPI_FUTURE_USAGE | ||
216 | u32 acpi_ps_get_name(union acpi_parse_object * op) | ||
217 | { | ||
218 | |||
219 | /* The "generic" object has no name associated with it */ | ||
220 | |||
221 | if (op->common.flags & ACPI_PARSEOP_GENERIC) { | ||
222 | return (0); | ||
223 | } | ||
224 | |||
225 | /* Only the "Extended" parse objects have a name */ | ||
226 | |||
227 | return (op->named.name); | ||
228 | } | ||
229 | #endif /* ACPI_FUTURE_USAGE */ | ||
230 | |||
231 | /* | ||
232 | * Set op's name | ||
233 | */ | ||
234 | void acpi_ps_set_name(union acpi_parse_object *op, u32 name) | ||
235 | { | ||
236 | |||
237 | /* The "generic" object has no name associated with it */ | ||
238 | |||
239 | if (op->common.flags & ACPI_PARSEOP_GENERIC) { | ||
240 | return; | ||
241 | } | ||
242 | |||
243 | op->named.name = name; | ||
244 | } | ||