diff options
Diffstat (limited to 'drivers/acpi/executer/exnames.c')
-rw-r--r-- | drivers/acpi/executer/exnames.c | 235 |
1 files changed, 106 insertions, 129 deletions
diff --git a/drivers/acpi/executer/exnames.c b/drivers/acpi/executer/exnames.c index b6ba1a7a677a..239d8473e9a5 100644 --- a/drivers/acpi/executer/exnames.c +++ b/drivers/acpi/executer/exnames.c | |||
@@ -42,26 +42,18 @@ | |||
42 | * POSSIBILITY OF SUCH DAMAGES. | 42 | * POSSIBILITY OF SUCH DAMAGES. |
43 | */ | 43 | */ |
44 | 44 | ||
45 | |||
46 | #include <acpi/acpi.h> | 45 | #include <acpi/acpi.h> |
47 | #include <acpi/acinterp.h> | 46 | #include <acpi/acinterp.h> |
48 | #include <acpi/amlcode.h> | 47 | #include <acpi/amlcode.h> |
49 | 48 | ||
50 | #define _COMPONENT ACPI_EXECUTER | 49 | #define _COMPONENT ACPI_EXECUTER |
51 | ACPI_MODULE_NAME ("exnames") | 50 | ACPI_MODULE_NAME("exnames") |
52 | 51 | ||
53 | /* Local prototypes */ | 52 | /* Local prototypes */ |
54 | 53 | static char *acpi_ex_allocate_name_string(u32 prefix_count, u32 num_name_segs); | |
55 | static char * | ||
56 | acpi_ex_allocate_name_string ( | ||
57 | u32 prefix_count, | ||
58 | u32 num_name_segs); | ||
59 | 54 | ||
60 | static acpi_status | 55 | static acpi_status |
61 | acpi_ex_name_segment ( | 56 | acpi_ex_name_segment(u8 ** in_aml_address, char *name_string); |
62 | u8 **in_aml_address, | ||
63 | char *name_string); | ||
64 | |||
65 | 57 | ||
66 | /******************************************************************************* | 58 | /******************************************************************************* |
67 | * | 59 | * |
@@ -79,17 +71,13 @@ acpi_ex_name_segment ( | |||
79 | * | 71 | * |
80 | ******************************************************************************/ | 72 | ******************************************************************************/ |
81 | 73 | ||
82 | static char * | 74 | static char *acpi_ex_allocate_name_string(u32 prefix_count, u32 num_name_segs) |
83 | acpi_ex_allocate_name_string ( | ||
84 | u32 prefix_count, | ||
85 | u32 num_name_segs) | ||
86 | { | 75 | { |
87 | char *temp_ptr; | 76 | char *temp_ptr; |
88 | char *name_string; | 77 | char *name_string; |
89 | u32 size_needed; | 78 | u32 size_needed; |
90 | |||
91 | ACPI_FUNCTION_TRACE ("ex_allocate_name_string"); | ||
92 | 79 | ||
80 | ACPI_FUNCTION_TRACE("ex_allocate_name_string"); | ||
93 | 81 | ||
94 | /* | 82 | /* |
95 | * Allow room for all \ and ^ prefixes, all segments and a multi_name_prefix. | 83 | * Allow room for all \ and ^ prefixes, all segments and a multi_name_prefix. |
@@ -100,20 +88,19 @@ acpi_ex_allocate_name_string ( | |||
100 | /* Special case for root */ | 88 | /* Special case for root */ |
101 | 89 | ||
102 | size_needed = 1 + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1; | 90 | size_needed = 1 + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1; |
103 | } | 91 | } else { |
104 | else { | 92 | size_needed = |
105 | size_needed = prefix_count + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1; | 93 | prefix_count + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1; |
106 | } | 94 | } |
107 | 95 | ||
108 | /* | 96 | /* |
109 | * Allocate a buffer for the name. | 97 | * Allocate a buffer for the name. |
110 | * This buffer must be deleted by the caller! | 98 | * This buffer must be deleted by the caller! |
111 | */ | 99 | */ |
112 | name_string = ACPI_MEM_ALLOCATE (size_needed); | 100 | name_string = ACPI_MEM_ALLOCATE(size_needed); |
113 | if (!name_string) { | 101 | if (!name_string) { |
114 | ACPI_REPORT_ERROR (( | 102 | ACPI_REPORT_ERROR(("ex_allocate_name_string: Could not allocate size %d\n", size_needed)); |
115 | "ex_allocate_name_string: Could not allocate size %d\n", size_needed)); | 103 | return_PTR(NULL); |
116 | return_PTR (NULL); | ||
117 | } | 104 | } |
118 | 105 | ||
119 | temp_ptr = name_string; | 106 | temp_ptr = name_string; |
@@ -122,23 +109,20 @@ acpi_ex_allocate_name_string ( | |||
122 | 109 | ||
123 | if (prefix_count == ACPI_UINT32_MAX) { | 110 | if (prefix_count == ACPI_UINT32_MAX) { |
124 | *temp_ptr++ = AML_ROOT_PREFIX; | 111 | *temp_ptr++ = AML_ROOT_PREFIX; |
125 | } | 112 | } else { |
126 | else { | ||
127 | while (prefix_count--) { | 113 | while (prefix_count--) { |
128 | *temp_ptr++ = AML_PARENT_PREFIX; | 114 | *temp_ptr++ = AML_PARENT_PREFIX; |
129 | } | 115 | } |
130 | } | 116 | } |
131 | 117 | ||
132 | |||
133 | /* Set up Dual or Multi prefixes if needed */ | 118 | /* Set up Dual or Multi prefixes if needed */ |
134 | 119 | ||
135 | if (num_name_segs > 2) { | 120 | if (num_name_segs > 2) { |
136 | /* Set up multi prefixes */ | 121 | /* Set up multi prefixes */ |
137 | 122 | ||
138 | *temp_ptr++ = AML_MULTI_NAME_PREFIX_OP; | 123 | *temp_ptr++ = AML_MULTI_NAME_PREFIX_OP; |
139 | *temp_ptr++ = (char) num_name_segs; | 124 | *temp_ptr++ = (char)num_name_segs; |
140 | } | 125 | } else if (2 == num_name_segs) { |
141 | else if (2 == num_name_segs) { | ||
142 | /* Set up dual prefixes */ | 126 | /* Set up dual prefixes */ |
143 | 127 | ||
144 | *temp_ptr++ = AML_DUAL_NAME_PREFIX; | 128 | *temp_ptr++ = AML_DUAL_NAME_PREFIX; |
@@ -150,7 +134,7 @@ acpi_ex_allocate_name_string ( | |||
150 | */ | 134 | */ |
151 | *temp_ptr = 0; | 135 | *temp_ptr = 0; |
152 | 136 | ||
153 | return_PTR (name_string); | 137 | return_PTR(name_string); |
154 | } | 138 | } |
155 | 139 | ||
156 | /******************************************************************************* | 140 | /******************************************************************************* |
@@ -167,19 +151,14 @@ acpi_ex_allocate_name_string ( | |||
167 | * | 151 | * |
168 | ******************************************************************************/ | 152 | ******************************************************************************/ |
169 | 153 | ||
170 | static acpi_status | 154 | static acpi_status acpi_ex_name_segment(u8 ** in_aml_address, char *name_string) |
171 | acpi_ex_name_segment ( | ||
172 | u8 **in_aml_address, | ||
173 | char *name_string) | ||
174 | { | 155 | { |
175 | char *aml_address = (void *) *in_aml_address; | 156 | char *aml_address = (void *)*in_aml_address; |
176 | acpi_status status = AE_OK; | 157 | acpi_status status = AE_OK; |
177 | u32 index; | 158 | u32 index; |
178 | char char_buf[5]; | 159 | char char_buf[5]; |
179 | |||
180 | |||
181 | ACPI_FUNCTION_TRACE ("ex_name_segment"); | ||
182 | 160 | ||
161 | ACPI_FUNCTION_TRACE("ex_name_segment"); | ||
183 | 162 | ||
184 | /* | 163 | /* |
185 | * If first character is a digit, then we know that we aren't looking at a | 164 | * If first character is a digit, then we know that we aren't looking at a |
@@ -188,20 +167,20 @@ acpi_ex_name_segment ( | |||
188 | char_buf[0] = *aml_address; | 167 | char_buf[0] = *aml_address; |
189 | 168 | ||
190 | if ('0' <= char_buf[0] && char_buf[0] <= '9') { | 169 | if ('0' <= char_buf[0] && char_buf[0] <= '9') { |
191 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "leading digit: %c\n", char_buf[0])); | 170 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "leading digit: %c\n", |
192 | return_ACPI_STATUS (AE_CTRL_PENDING); | 171 | char_buf[0])); |
172 | return_ACPI_STATUS(AE_CTRL_PENDING); | ||
193 | } | 173 | } |
194 | 174 | ||
195 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Bytes from stream:\n")); | 175 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, "Bytes from stream:\n")); |
196 | 176 | ||
197 | for (index = 0; | 177 | for (index = 0; |
198 | (index < ACPI_NAME_SIZE) && (acpi_ut_valid_acpi_character (*aml_address)); | 178 | (index < ACPI_NAME_SIZE) |
199 | index++) { | 179 | && (acpi_ut_valid_acpi_character(*aml_address)); index++) { |
200 | char_buf[index] = *aml_address++; | 180 | char_buf[index] = *aml_address++; |
201 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "%c\n", char_buf[index])); | 181 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, "%c\n", char_buf[index])); |
202 | } | 182 | } |
203 | 183 | ||
204 | |||
205 | /* Valid name segment */ | 184 | /* Valid name segment */ |
206 | 185 | ||
207 | if (index == 4) { | 186 | if (index == 4) { |
@@ -210,41 +189,37 @@ acpi_ex_name_segment ( | |||
210 | char_buf[4] = '\0'; | 189 | char_buf[4] = '\0'; |
211 | 190 | ||
212 | if (name_string) { | 191 | if (name_string) { |
213 | ACPI_STRCAT (name_string, char_buf); | 192 | ACPI_STRCAT(name_string, char_buf); |
214 | ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, | 193 | ACPI_DEBUG_PRINT((ACPI_DB_NAMES, |
215 | "Appended to - %s \n", name_string)); | 194 | "Appended to - %s \n", name_string)); |
195 | } else { | ||
196 | ACPI_DEBUG_PRINT((ACPI_DB_NAMES, | ||
197 | "No Name string - %s \n", char_buf)); | ||
216 | } | 198 | } |
217 | else { | 199 | } else if (index == 0) { |
218 | ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, | ||
219 | "No Name string - %s \n", char_buf)); | ||
220 | } | ||
221 | } | ||
222 | else if (index == 0) { | ||
223 | /* | 200 | /* |
224 | * First character was not a valid name character, | 201 | * First character was not a valid name character, |
225 | * so we are looking at something other than a name. | 202 | * so we are looking at something other than a name. |
226 | */ | 203 | */ |
227 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 204 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
228 | "Leading character is not alpha: %02Xh (not a name)\n", | 205 | "Leading character is not alpha: %02Xh (not a name)\n", |
229 | char_buf[0])); | 206 | char_buf[0])); |
230 | status = AE_CTRL_PENDING; | 207 | status = AE_CTRL_PENDING; |
231 | } | 208 | } else { |
232 | else { | ||
233 | /* | 209 | /* |
234 | * Segment started with one or more valid characters, but fewer than | 210 | * Segment started with one or more valid characters, but fewer than |
235 | * the required 4 | 211 | * the required 4 |
236 | */ | 212 | */ |
237 | status = AE_AML_BAD_NAME; | 213 | status = AE_AML_BAD_NAME; |
238 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 214 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
239 | "Bad character %02x in name, at %p\n", | 215 | "Bad character %02x in name, at %p\n", |
240 | *aml_address, aml_address)); | 216 | *aml_address, aml_address)); |
241 | } | 217 | } |
242 | 218 | ||
243 | *in_aml_address = (u8 *) aml_address; | 219 | *in_aml_address = (u8 *) aml_address; |
244 | return_ACPI_STATUS (status); | 220 | return_ACPI_STATUS(status); |
245 | } | 221 | } |
246 | 222 | ||
247 | |||
248 | /******************************************************************************* | 223 | /******************************************************************************* |
249 | * | 224 | * |
250 | * FUNCTION: acpi_ex_get_name_string | 225 | * FUNCTION: acpi_ex_get_name_string |
@@ -263,37 +238,32 @@ acpi_ex_name_segment ( | |||
263 | ******************************************************************************/ | 238 | ******************************************************************************/ |
264 | 239 | ||
265 | acpi_status | 240 | acpi_status |
266 | acpi_ex_get_name_string ( | 241 | acpi_ex_get_name_string(acpi_object_type data_type, |
267 | acpi_object_type data_type, | 242 | u8 * in_aml_address, |
268 | u8 *in_aml_address, | 243 | char **out_name_string, u32 * out_name_length) |
269 | char **out_name_string, | ||
270 | u32 *out_name_length) | ||
271 | { | 244 | { |
272 | acpi_status status = AE_OK; | 245 | acpi_status status = AE_OK; |
273 | u8 *aml_address = in_aml_address; | 246 | u8 *aml_address = in_aml_address; |
274 | char *name_string = NULL; | 247 | char *name_string = NULL; |
275 | u32 num_segments; | 248 | u32 num_segments; |
276 | u32 prefix_count = 0; | 249 | u32 prefix_count = 0; |
277 | u8 has_prefix = FALSE; | 250 | u8 has_prefix = FALSE; |
278 | 251 | ||
279 | 252 | ACPI_FUNCTION_TRACE_PTR("ex_get_name_string", aml_address); | |
280 | ACPI_FUNCTION_TRACE_PTR ("ex_get_name_string", aml_address); | 253 | |
281 | 254 | if (ACPI_TYPE_LOCAL_REGION_FIELD == data_type || | |
282 | 255 | ACPI_TYPE_LOCAL_BANK_FIELD == data_type || | |
283 | if (ACPI_TYPE_LOCAL_REGION_FIELD == data_type || | 256 | ACPI_TYPE_LOCAL_INDEX_FIELD == data_type) { |
284 | ACPI_TYPE_LOCAL_BANK_FIELD == data_type || | ||
285 | ACPI_TYPE_LOCAL_INDEX_FIELD == data_type) { | ||
286 | /* Disallow prefixes for types associated with field_unit names */ | 257 | /* Disallow prefixes for types associated with field_unit names */ |
287 | 258 | ||
288 | name_string = acpi_ex_allocate_name_string (0, 1); | 259 | name_string = acpi_ex_allocate_name_string(0, 1); |
289 | if (!name_string) { | 260 | if (!name_string) { |
290 | status = AE_NO_MEMORY; | 261 | status = AE_NO_MEMORY; |
262 | } else { | ||
263 | status = | ||
264 | acpi_ex_name_segment(&aml_address, name_string); | ||
291 | } | 265 | } |
292 | else { | 266 | } else { |
293 | status = acpi_ex_name_segment (&aml_address, name_string); | ||
294 | } | ||
295 | } | ||
296 | else { | ||
297 | /* | 267 | /* |
298 | * data_type is not a field name. | 268 | * data_type is not a field name. |
299 | * Examine first character of name for root or parent prefix operators | 269 | * Examine first character of name for root or parent prefix operators |
@@ -301,8 +271,9 @@ acpi_ex_get_name_string ( | |||
301 | switch (*aml_address) { | 271 | switch (*aml_address) { |
302 | case AML_ROOT_PREFIX: | 272 | case AML_ROOT_PREFIX: |
303 | 273 | ||
304 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "root_prefix(\\) at %p\n", | 274 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, |
305 | aml_address)); | 275 | "root_prefix(\\) at %p\n", |
276 | aml_address)); | ||
306 | 277 | ||
307 | /* | 278 | /* |
308 | * Remember that we have a root_prefix -- | 279 | * Remember that we have a root_prefix -- |
@@ -313,14 +284,14 @@ acpi_ex_get_name_string ( | |||
313 | has_prefix = TRUE; | 284 | has_prefix = TRUE; |
314 | break; | 285 | break; |
315 | 286 | ||
316 | |||
317 | case AML_PARENT_PREFIX: | 287 | case AML_PARENT_PREFIX: |
318 | 288 | ||
319 | /* Increment past possibly multiple parent prefixes */ | 289 | /* Increment past possibly multiple parent prefixes */ |
320 | 290 | ||
321 | do { | 291 | do { |
322 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "parent_prefix (^) at %p\n", | 292 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, |
323 | aml_address)); | 293 | "parent_prefix (^) at %p\n", |
294 | aml_address)); | ||
324 | 295 | ||
325 | aml_address++; | 296 | aml_address++; |
326 | prefix_count++; | 297 | prefix_count++; |
@@ -330,7 +301,6 @@ acpi_ex_get_name_string ( | |||
330 | has_prefix = TRUE; | 301 | has_prefix = TRUE; |
331 | break; | 302 | break; |
332 | 303 | ||
333 | |||
334 | default: | 304 | default: |
335 | 305 | ||
336 | /* Not a prefix character */ | 306 | /* Not a prefix character */ |
@@ -343,11 +313,13 @@ acpi_ex_get_name_string ( | |||
343 | switch (*aml_address) { | 313 | switch (*aml_address) { |
344 | case AML_DUAL_NAME_PREFIX: | 314 | case AML_DUAL_NAME_PREFIX: |
345 | 315 | ||
346 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "dual_name_prefix at %p\n", | 316 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, |
347 | aml_address)); | 317 | "dual_name_prefix at %p\n", |
318 | aml_address)); | ||
348 | 319 | ||
349 | aml_address++; | 320 | aml_address++; |
350 | name_string = acpi_ex_allocate_name_string (prefix_count, 2); | 321 | name_string = |
322 | acpi_ex_allocate_name_string(prefix_count, 2); | ||
351 | if (!name_string) { | 323 | if (!name_string) { |
352 | status = AE_NO_MEMORY; | 324 | status = AE_NO_MEMORY; |
353 | break; | 325 | break; |
@@ -357,24 +329,29 @@ acpi_ex_get_name_string ( | |||
357 | 329 | ||
358 | has_prefix = TRUE; | 330 | has_prefix = TRUE; |
359 | 331 | ||
360 | status = acpi_ex_name_segment (&aml_address, name_string); | 332 | status = |
361 | if (ACPI_SUCCESS (status)) { | 333 | acpi_ex_name_segment(&aml_address, name_string); |
362 | status = acpi_ex_name_segment (&aml_address, name_string); | 334 | if (ACPI_SUCCESS(status)) { |
335 | status = | ||
336 | acpi_ex_name_segment(&aml_address, | ||
337 | name_string); | ||
363 | } | 338 | } |
364 | break; | 339 | break; |
365 | 340 | ||
366 | |||
367 | case AML_MULTI_NAME_PREFIX_OP: | 341 | case AML_MULTI_NAME_PREFIX_OP: |
368 | 342 | ||
369 | ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "multi_name_prefix at %p\n", | 343 | ACPI_DEBUG_PRINT((ACPI_DB_LOAD, |
370 | aml_address)); | 344 | "multi_name_prefix at %p\n", |
345 | aml_address)); | ||
371 | 346 | ||
372 | /* Fetch count of segments remaining in name path */ | 347 | /* Fetch count of segments remaining in name path */ |
373 | 348 | ||
374 | aml_address++; | 349 | aml_address++; |
375 | num_segments = *aml_address; | 350 | num_segments = *aml_address; |
376 | 351 | ||
377 | name_string = acpi_ex_allocate_name_string (prefix_count, num_segments); | 352 | name_string = |
353 | acpi_ex_allocate_name_string(prefix_count, | ||
354 | num_segments); | ||
378 | if (!name_string) { | 355 | if (!name_string) { |
379 | status = AE_NO_MEMORY; | 356 | status = AE_NO_MEMORY; |
380 | break; | 357 | break; |
@@ -386,27 +363,28 @@ acpi_ex_get_name_string ( | |||
386 | has_prefix = TRUE; | 363 | has_prefix = TRUE; |
387 | 364 | ||
388 | while (num_segments && | 365 | while (num_segments && |
389 | (status = acpi_ex_name_segment (&aml_address, name_string)) == | 366 | (status = |
390 | AE_OK) { | 367 | acpi_ex_name_segment(&aml_address, |
368 | name_string)) == AE_OK) { | ||
391 | num_segments--; | 369 | num_segments--; |
392 | } | 370 | } |
393 | 371 | ||
394 | break; | 372 | break; |
395 | 373 | ||
396 | |||
397 | case 0: | 374 | case 0: |
398 | 375 | ||
399 | /* null_name valid as of 8-12-98 ASL/AML Grammar Update */ | 376 | /* null_name valid as of 8-12-98 ASL/AML Grammar Update */ |
400 | 377 | ||
401 | if (prefix_count == ACPI_UINT32_MAX) { | 378 | if (prefix_count == ACPI_UINT32_MAX) { |
402 | ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, | 379 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
403 | "name_seg is \"\\\" followed by NULL\n")); | 380 | "name_seg is \"\\\" followed by NULL\n")); |
404 | } | 381 | } |
405 | 382 | ||
406 | /* Consume the NULL byte */ | 383 | /* Consume the NULL byte */ |
407 | 384 | ||
408 | aml_address++; | 385 | aml_address++; |
409 | name_string = acpi_ex_allocate_name_string (prefix_count, 0); | 386 | name_string = |
387 | acpi_ex_allocate_name_string(prefix_count, 0); | ||
410 | if (!name_string) { | 388 | if (!name_string) { |
411 | status = AE_NO_MEMORY; | 389 | status = AE_NO_MEMORY; |
412 | break; | 390 | break; |
@@ -414,18 +392,19 @@ acpi_ex_get_name_string ( | |||
414 | 392 | ||
415 | break; | 393 | break; |
416 | 394 | ||
417 | |||
418 | default: | 395 | default: |
419 | 396 | ||
420 | /* Name segment string */ | 397 | /* Name segment string */ |
421 | 398 | ||
422 | name_string = acpi_ex_allocate_name_string (prefix_count, 1); | 399 | name_string = |
400 | acpi_ex_allocate_name_string(prefix_count, 1); | ||
423 | if (!name_string) { | 401 | if (!name_string) { |
424 | status = AE_NO_MEMORY; | 402 | status = AE_NO_MEMORY; |
425 | break; | 403 | break; |
426 | } | 404 | } |
427 | 405 | ||
428 | status = acpi_ex_name_segment (&aml_address, name_string); | 406 | status = |
407 | acpi_ex_name_segment(&aml_address, name_string); | ||
429 | break; | 408 | break; |
430 | } | 409 | } |
431 | } | 410 | } |
@@ -433,22 +412,20 @@ acpi_ex_get_name_string ( | |||
433 | if (AE_CTRL_PENDING == status && has_prefix) { | 412 | if (AE_CTRL_PENDING == status && has_prefix) { |
434 | /* Ran out of segments after processing a prefix */ | 413 | /* Ran out of segments after processing a prefix */ |
435 | 414 | ||
436 | ACPI_REPORT_ERROR ( | 415 | ACPI_REPORT_ERROR(("ex_do_name: Malformed Name at %p\n", |
437 | ("ex_do_name: Malformed Name at %p\n", name_string)); | 416 | name_string)); |
438 | status = AE_AML_BAD_NAME; | 417 | status = AE_AML_BAD_NAME; |
439 | } | 418 | } |
440 | 419 | ||
441 | if (ACPI_FAILURE (status)) { | 420 | if (ACPI_FAILURE(status)) { |
442 | if (name_string) { | 421 | if (name_string) { |
443 | ACPI_MEM_FREE (name_string); | 422 | ACPI_MEM_FREE(name_string); |
444 | } | 423 | } |
445 | return_ACPI_STATUS (status); | 424 | return_ACPI_STATUS(status); |
446 | } | 425 | } |
447 | 426 | ||
448 | *out_name_string = name_string; | 427 | *out_name_string = name_string; |
449 | *out_name_length = (u32) (aml_address - in_aml_address); | 428 | *out_name_length = (u32) (aml_address - in_aml_address); |
450 | 429 | ||
451 | return_ACPI_STATUS (status); | 430 | return_ACPI_STATUS(status); |
452 | } | 431 | } |
453 | |||
454 | |||