length += ACPI_ROUND_UP_TO_NATIVE_WORD (acpi_ns_get_pathname_length (internal_object->reference.node)); 
length += ACPI_ROUND_UP_TO_NATIVE_WORD ( acpi_ns_get_pathname_length (internal_object->reference.node)); 
acpi_ut_get_simple_object_size (	union acpi_operand_object       *internal_object,	acpi_size                       *obj_length){	acpi_size                       length;	acpi_status                     status = AE_OK;	ACPI_FUNCTION_TRACE_PTR ("ut_get_simple_object_size", internal_object);	/* Handle a null object (Could be a uninitialized package element -- which is legal) */	if (!internal_object) {		*obj_length = 0;		return_ACPI_STATUS (AE_OK);	}	/* Start with the length of the Acpi object */	length = sizeof (union acpi_object);	if (ACPI_GET_DESCRIPTOR_TYPE (internal_object) == ACPI_DESC_TYPE_NAMED) {		/* Object is a named object (reference), just return the length */		*obj_length = ACPI_ROUND_UP_TO_NATIVE_WORD (length);		return_ACPI_STATUS (status);	}	/*	 * The final length depends on the object type	 * Strings and Buffers are packed right up against the parent object and	 * must be accessed bytewise or there may be alignment problems on	 * certain processors	 */	switch (ACPI_GET_OBJECT_TYPE (internal_object)) {	case ACPI_TYPE_STRING:		length += (acpi_size) internal_object->string.length + 1;		break;	case ACPI_TYPE_BUFFER:		length += (acpi_size) internal_object->buffer.length;		break;	case ACPI_TYPE_INTEGER:	case ACPI_TYPE_PROCESSOR:	case ACPI_TYPE_POWER:		/*		 * No extra data for these types		 */		break;	case ACPI_TYPE_LOCAL_REFERENCE:		switch (internal_object->reference.opcode) {		case AML_INT_NAMEPATH_OP:			/*			 * Get the actual length of the full pathname to this object.			 * The reference will be converted to the pathname to the object			 */			length += ACPI_ROUND_UP_TO_NATIVE_WORD (acpi_ns_get_pathname_length (internal_object->reference.node));			break;		default:			/*			 * No other reference opcodes are supported.			 * Notably, Locals and Args are not supported, but this may be			 * required eventually.			 */			ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,				"Unsupported Reference opcode=%X in object %p\n",				internal_object->reference.opcode, internal_object));			status = AE_TYPE;			break;		}		break;	default:		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported type=%X in object %p\n",			ACPI_GET_OBJECT_TYPE (internal_object), internal_object));		status = AE_TYPE;		break;	}	/*	 * Account for the space required by the object rounded up to the next	 * multiple of the machine word size.  This keeps each object aligned	 * on a machine word boundary. (preventing alignment faults on some	 * machines.)	 */	*obj_length = ACPI_ROUND_UP_TO_NATIVE_WORD (length);	return_ACPI_STATUS (status);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/44f6c01242da4e162f28d8e1216a8c7a91174605/utobject.c/buggy/drivers/acpi/utilities/utobject.c