Skip to content

Commit

Permalink
ACPICA: Deploy new create integer interface where appropriate
Browse files Browse the repository at this point in the history
Simplifies creation of simple integer objects.
ACPICA BZ 823.

http://www.acpica.org/bugzilla/show_bug.cgi?id=823

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
acpibob authored and lenb committed Nov 25, 2009
1 parent 502f7ef commit dc95a27
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 52 deletions.
4 changes: 1 addition & 3 deletions drivers/acpi/acpica/dsmthdat.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,13 +409,11 @@ acpi_ds_method_data_get_value(u8 type,
/* If slack enabled, init the local_x/arg_x to an Integer of value zero */

if (acpi_gbl_enable_interpreter_slack) {
object =
acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
object = acpi_ut_create_integer_object((u64) 0);
if (!object) {
return_ACPI_STATUS(AE_NO_MEMORY);
}

object->integer.value = 0;
node->object = object;
}

Expand Down
11 changes: 4 additions & 7 deletions drivers/acpi/acpica/evregion.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,23 +289,20 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
* connection status 1 for connecting the handler, 0 for disconnecting
* the handler (Passed as a parameter)
*/
args[0] = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
args[0] =
acpi_ut_create_integer_object((u64) region_obj->region.space_id);
if (!args[0]) {
status = AE_NO_MEMORY;
goto cleanup1;
}

args[1] = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
args[1] = acpi_ut_create_integer_object((u64) function);
if (!args[1]) {
status = AE_NO_MEMORY;
goto cleanup2;
}

/* Setup the parameter objects */

args[0]->integer.value = region_obj->region.space_id;
args[1]->integer.value = function;
args[2] = NULL;
args[2] = NULL; /* Terminate list */

/* Execute the method, no return value */

Expand Down
4 changes: 1 addition & 3 deletions drivers/acpi/acpica/exconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,12 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,

/* Table not found, return an Integer=0 and AE_OK */

ddb_handle = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
ddb_handle = acpi_ut_create_integer_object((u64) 0);
if (!ddb_handle) {
return_ACPI_STATUS(AE_NO_MEMORY);
}

ddb_handle->integer.value = 0;
*return_desc = ddb_handle;

return_ACPI_STATUS(AE_OK);
}

Expand Down
3 changes: 1 addition & 2 deletions drivers/acpi/acpica/exconvrt.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,

/* Create a new integer */

return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc = acpi_ut_create_integer_object(result);
if (!return_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
Expand All @@ -177,7 +177,6 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,

/* Save the Result */

return_desc->integer.value = result;
acpi_ex_truncate_for32bit_table(return_desc);
*result_desc = return_desc;
return_ACPI_STATUS(AE_OK);
Expand Down
3 changes: 1 addition & 2 deletions drivers/acpi/acpica/exfield.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,13 +162,12 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
} else {
/* Field will fit within an Integer (normal case) */

buffer_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
buffer_desc = acpi_ut_create_integer_object((u64) 0);
if (!buffer_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}

length = acpi_gbl_integer_byte_width;
buffer_desc->integer.value = 0;
buffer = &buffer_desc->integer.value;
}

Expand Down
38 changes: 17 additions & 21 deletions drivers/acpi/acpica/exoparg1.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,12 @@ acpi_status acpi_ex_opcode_0A_0T_1R(struct acpi_walk_state *walk_state)

/* Create a return object of type Integer */

return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc =
acpi_ut_create_integer_object(acpi_os_get_timer());
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;
}
return_desc->integer.value = acpi_os_get_timer();
break;

default: /* Unknown opcode */
Expand Down Expand Up @@ -599,7 +599,7 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
switch (walk_state->opcode) {
case AML_LNOT_OP: /* LNot (Operand) */

return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc = acpi_ut_create_integer_object((u64) 0);
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;
Expand Down Expand Up @@ -702,13 +702,11 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)

/* Allocate a descriptor to hold the type. */

return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc = acpi_ut_create_integer_object((u64) type);
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;
}

return_desc->integer.value = type;
break;

case AML_SIZE_OF_OP: /* size_of (source_object) */
Expand Down Expand Up @@ -777,13 +775,11 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
* Now that we have the size of the object, create a result
* object to hold the value
*/
return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc = acpi_ut_create_integer_object(value);
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;
}

return_desc->integer.value = value;
break;

case AML_REF_OF_OP: /* ref_of (source_object) */
Expand Down Expand Up @@ -946,24 +942,24 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
* NOTE: index into a buffer is NOT a pointer to a
* sub-buffer of the main buffer, it is only a pointer to a
* single element (byte) of the buffer!
*
* Since we are returning the value of the buffer at the
* indexed location, we don't need to add an additional
* reference to the buffer itself.
*/
return_desc =
acpi_ut_create_internal_object
(ACPI_TYPE_INTEGER);
acpi_ut_create_integer_object((u64)
temp_desc->
buffer.
pointer
[operand
[0]->
reference.
value]);
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;
}

/*
* Since we are returning the value of the buffer at the
* indexed location, we don't need to add an additional
* reference to the buffer itself.
*/
return_desc->integer.value =
temp_desc->buffer.
pointer[operand[0]->reference.
value];
break;

case ACPI_TYPE_PACKAGE:
Expand Down
7 changes: 2 additions & 5 deletions drivers/acpi/acpica/exoparg6.c
Original file line number Diff line number Diff line change
Expand Up @@ -253,18 +253,15 @@ acpi_status acpi_ex_opcode_6A_0T_1R(struct acpi_walk_state * walk_state)
}

/* Create an integer for the return value */
/* Default return value is ACPI_INTEGER_MAX if no match found */

return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
return_desc = acpi_ut_create_integer_object(ACPI_INTEGER_MAX);
if (!return_desc) {
status = AE_NO_MEMORY;
goto cleanup;

}

/* Default return value if no match found */

return_desc->integer.value = ACPI_INTEGER_MAX;

/*
* Examine each element until a match is found. Both match conditions
* must be satisfied for a match to occur. Within the loop,
Expand Down
8 changes: 2 additions & 6 deletions drivers/acpi/acpica/psparse.c
Original file line number Diff line number Diff line change
Expand Up @@ -610,17 +610,13 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
implicit_return_obj) {
previous_walk_state->
implicit_return_obj =
acpi_ut_create_internal_object
(ACPI_TYPE_INTEGER);
acpi_ut_create_integer_object
((u64) 0);
if (!previous_walk_state->
implicit_return_obj) {
return_ACPI_STATUS
(AE_NO_MEMORY);
}

previous_walk_state->
implicit_return_obj->
integer.value = 0;
}

/* Restart the calling control method */
Expand Down
4 changes: 1 addition & 3 deletions drivers/acpi/acpica/psxface.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,14 +306,12 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
*/
if (acpi_gbl_enable_interpreter_slack) {
walk_state->implicit_return_obj =
acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
acpi_ut_create_integer_object((u64) 0);
if (!walk_state->implicit_return_obj) {
status = AE_NO_MEMORY;
acpi_ds_delete_walk_state(walk_state);
goto cleanup;
}

walk_state->implicit_return_obj->integer.value = 0;
}

/* Parse the AML */
Expand Down

0 comments on commit dc95a27

Please sign in to comment.