コード例 #1
0
ファイル: psutils.c プロジェクト: TKr/Wive-ng-rt8186
acpi_parse_object*
acpi_ps_alloc_op (
	u16                     opcode)
{
	acpi_parse_object       *op = NULL;
	u32                     size;
	u8                      flags;
	const acpi_opcode_info  *op_info;


	FUNCTION_ENTRY ();


	op_info = acpi_ps_get_opcode_info (opcode);

	/* Allocate the minimum required size object */

	if (op_info->flags & AML_DEFER) {
		size = sizeof (acpi_parse2_object);
		flags = PARSEOP_DEFERRED;
	}

	else if (op_info->flags & AML_NAMED) {
		size = sizeof (acpi_parse2_object);
		flags = PARSEOP_NAMED;
	}

	else if (opcode == AML_INT_BYTELIST_OP) {
		size = sizeof (acpi_parse2_object);
		flags = PARSEOP_BYTELIST;
	}

	else {
		size = sizeof (acpi_parse_object);
		flags = PARSEOP_GENERIC;
	}


	if (size == sizeof (acpi_parse_object)) {
		/*
		 * The generic op is by far the most common (16 to 1)
		 */
		op = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_PSNODE);
	}

	else {
		op = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_PSNODE_EXT);
	}

	/* Initialize the Op */

	if (op) {
		acpi_ps_init_op (op, opcode);
		op->flags = flags;
	}

	return (op);
}
コード例 #2
0
void *
acpi_ut_allocate_object_desc_dbg (
	NATIVE_CHAR             *module_name,
	u32                     line_number,
	u32                     component_id)
{
	acpi_operand_object     *object;


	FUNCTION_TRACE ("Ut_allocate_object_desc_dbg");


	object = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_OPERAND);
	if (!object) {
		_REPORT_ERROR (module_name, line_number, component_id,
				  ("Could not allocate an object descriptor\n"));

		return_PTR (NULL);
	}


	/* Mark the descriptor type */

	object->common.data_type = ACPI_DESC_TYPE_INTERNAL;

	ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
			object, sizeof (acpi_operand_object)));

	return_PTR (object);
}
コード例 #3
0
ファイル: utobject.c プロジェクト: GodFox/magx_kernel_xpixl
void *
acpi_ut_allocate_object_desc_dbg (
	char                            *module_name,
	u32                             line_number,
	u32                             component_id)
{
	union acpi_operand_object       *object;


	ACPI_FUNCTION_TRACE ("ut_allocate_object_desc_dbg");


	object = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_OPERAND);
	if (!object) {
		_ACPI_REPORT_ERROR (module_name, line_number, component_id,
				  ("Could not allocate an object descriptor\n"));

		return_PTR (NULL);
	}

	/* Mark the descriptor type */

	ACPI_SET_DESCRIPTOR_TYPE (object, ACPI_DESC_TYPE_OPERAND);

	ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
			object, (u32) sizeof (union acpi_operand_object)));

	return_PTR (object);
}
コード例 #4
0
ファイル: utmisc.c プロジェクト: Dronevery/JetsonTK1-kernel
union acpi_generic_state *
acpi_ut_create_generic_state (void)
{
	union acpi_generic_state        *state;


	ACPI_FUNCTION_ENTRY ();


	state = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_STATE);

	/* Initialize */

	if (state) {
		state->common.data_type = ACPI_DESC_TYPE_STATE;
	}

	return (state);
}