diff options
Diffstat (limited to 'drivers/acpi/executer/exconvrt.c')
-rw-r--r-- | drivers/acpi/executer/exconvrt.c | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/drivers/acpi/executer/exconvrt.c b/drivers/acpi/executer/exconvrt.c index df7ba1219bf6..97856c48bd74 100644 --- a/drivers/acpi/executer/exconvrt.c +++ b/drivers/acpi/executer/exconvrt.c | |||
@@ -50,6 +50,15 @@ | |||
50 | #define _COMPONENT ACPI_EXECUTER | 50 | #define _COMPONENT ACPI_EXECUTER |
51 | ACPI_MODULE_NAME ("exconvrt") | 51 | ACPI_MODULE_NAME ("exconvrt") |
52 | 52 | ||
53 | /* Local prototypes */ | ||
54 | |||
55 | static u32 | ||
56 | acpi_ex_convert_to_ascii ( | ||
57 | acpi_integer integer, | ||
58 | u16 base, | ||
59 | u8 *string, | ||
60 | u8 max_length); | ||
61 | |||
53 | 62 | ||
54 | /******************************************************************************* | 63 | /******************************************************************************* |
55 | * | 64 | * |
@@ -115,9 +124,8 @@ acpi_ex_convert_to_integer ( | |||
115 | */ | 124 | */ |
116 | result = 0; | 125 | result = 0; |
117 | 126 | ||
118 | /* | 127 | /* String conversion is different than Buffer conversion */ |
119 | * String conversion is different than Buffer conversion | 128 | |
120 | */ | ||
121 | switch (ACPI_GET_OBJECT_TYPE (obj_desc)) { | 129 | switch (ACPI_GET_OBJECT_TYPE (obj_desc)) { |
122 | case ACPI_TYPE_STRING: | 130 | case ACPI_TYPE_STRING: |
123 | 131 | ||
@@ -168,9 +176,8 @@ acpi_ex_convert_to_integer ( | |||
168 | break; | 176 | break; |
169 | } | 177 | } |
170 | 178 | ||
171 | /* | 179 | /* Create a new integer */ |
172 | * Create a new integer | 180 | |
173 | */ | ||
174 | return_desc = acpi_ut_create_internal_object (ACPI_TYPE_INTEGER); | 181 | return_desc = acpi_ut_create_internal_object (ACPI_TYPE_INTEGER); |
175 | if (!return_desc) { | 182 | if (!return_desc) { |
176 | return_ACPI_STATUS (AE_NO_MEMORY); | 183 | return_ACPI_STATUS (AE_NO_MEMORY); |
@@ -251,7 +258,8 @@ acpi_ex_convert_to_buffer ( | |||
251 | * ASL/AML code that depends on the null being transferred to the new | 258 | * ASL/AML code that depends on the null being transferred to the new |
252 | * buffer. | 259 | * buffer. |
253 | */ | 260 | */ |
254 | return_desc = acpi_ut_create_buffer_object ((acpi_size) obj_desc->string.length + 1); | 261 | return_desc = acpi_ut_create_buffer_object ( |
262 | (acpi_size) obj_desc->string.length + 1); | ||
255 | if (!return_desc) { | 263 | if (!return_desc) { |
256 | return_ACPI_STATUS (AE_NO_MEMORY); | 264 | return_ACPI_STATUS (AE_NO_MEMORY); |
257 | } | 265 | } |
@@ -291,7 +299,7 @@ acpi_ex_convert_to_buffer ( | |||
291 | * | 299 | * |
292 | ******************************************************************************/ | 300 | ******************************************************************************/ |
293 | 301 | ||
294 | u32 | 302 | static u32 |
295 | acpi_ex_convert_to_ascii ( | 303 | acpi_ex_convert_to_ascii ( |
296 | acpi_integer integer, | 304 | acpi_integer integer, |
297 | u16 base, | 305 | u16 base, |
@@ -357,8 +365,9 @@ acpi_ex_convert_to_ascii ( | |||
357 | 365 | ||
358 | case 16: | 366 | case 16: |
359 | 367 | ||
360 | hex_length = ACPI_MUL_2 (data_width); /* 2 ascii hex chars per data byte */ | 368 | /* hex_length: 2 ascii hex chars per data byte */ |
361 | 369 | ||
370 | hex_length = ACPI_MUL_2 (data_width); | ||
362 | for (i = 0, j = (hex_length-1); i < hex_length; i++, j--) { | 371 | for (i = 0, j = (hex_length-1); i < hex_length; i++, j--) { |
363 | /* Get one hex digit, most significant digits first */ | 372 | /* Get one hex digit, most significant digits first */ |
364 | 373 | ||
@@ -475,7 +484,7 @@ acpi_ex_convert_to_string ( | |||
475 | /* Setup string length, base, and separator */ | 484 | /* Setup string length, base, and separator */ |
476 | 485 | ||
477 | switch (type) { | 486 | switch (type) { |
478 | case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by to_decimal_string operator */ | 487 | case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by to_decimal_string */ |
479 | /* | 488 | /* |
480 | * From ACPI: "If Data is a buffer, it is converted to a string of | 489 | * From ACPI: "If Data is a buffer, it is converted to a string of |
481 | * decimal values separated by commas." | 490 | * decimal values separated by commas." |
@@ -509,7 +518,7 @@ acpi_ex_convert_to_string ( | |||
509 | string_length = (obj_desc->buffer.length * 3); | 518 | string_length = (obj_desc->buffer.length * 3); |
510 | break; | 519 | break; |
511 | 520 | ||
512 | case ACPI_EXPLICIT_CONVERT_HEX: /* Used by to_hex_string operator */ | 521 | case ACPI_EXPLICIT_CONVERT_HEX: /* Used by to_hex_string */ |
513 | /* | 522 | /* |
514 | * From ACPI: "If Data is a buffer, it is converted to a string of | 523 | * From ACPI: "If Data is a buffer, it is converted to a string of |
515 | * hexadecimal values separated by commas." | 524 | * hexadecimal values separated by commas." |
@@ -530,9 +539,8 @@ acpi_ex_convert_to_string ( | |||
530 | return_ACPI_STATUS (AE_AML_STRING_LIMIT); | 539 | return_ACPI_STATUS (AE_AML_STRING_LIMIT); |
531 | } | 540 | } |
532 | 541 | ||
533 | /* | 542 | /* Create a new string object and string buffer */ |
534 | * Create a new string object and string buffer | 543 | |
535 | */ | ||
536 | return_desc = acpi_ut_create_string_object ((acpi_size) string_length); | 544 | return_desc = acpi_ut_create_string_object ((acpi_size) string_length); |
537 | if (!return_desc) { | 545 | if (!return_desc) { |
538 | return_ACPI_STATUS (AE_NO_MEMORY); | 546 | return_ACPI_STATUS (AE_NO_MEMORY); |
@@ -551,8 +559,10 @@ acpi_ex_convert_to_string ( | |||
551 | *new_buf++ = separator; /* each separated by a comma or space */ | 559 | *new_buf++ = separator; /* each separated by a comma or space */ |
552 | } | 560 | } |
553 | 561 | ||
554 | /* Null terminate the string (overwrites final comma/space from above) */ | 562 | /* |
555 | 563 | * Null terminate the string | |
564 | * (overwrites final comma/space from above) | ||
565 | */ | ||
556 | new_buf--; | 566 | new_buf--; |
557 | *new_buf = 0; | 567 | *new_buf = 0; |
558 | break; | 568 | break; |
@@ -645,7 +655,6 @@ acpi_ex_convert_to_target_type ( | |||
645 | 655 | ||
646 | 656 | ||
647 | case ACPI_TYPE_STRING: | 657 | case ACPI_TYPE_STRING: |
648 | |||
649 | /* | 658 | /* |
650 | * The operand must be a String. We can convert an | 659 | * The operand must be a String. We can convert an |
651 | * Integer or Buffer if necessary | 660 | * Integer or Buffer if necessary |
@@ -656,7 +665,6 @@ acpi_ex_convert_to_target_type ( | |||
656 | 665 | ||
657 | 666 | ||
658 | case ACPI_TYPE_BUFFER: | 667 | case ACPI_TYPE_BUFFER: |
659 | |||
660 | /* | 668 | /* |
661 | * The operand must be a Buffer. We can convert an | 669 | * The operand must be a Buffer. We can convert an |
662 | * Integer or String if necessary | 670 | * Integer or String if necessary |