acpi_ps_get_next_field (	struct acpi_parse_state         *parser_state){	u32                             aml_offset = (u32) ACPI_PTR_DIFF (parser_state->aml,			 parser_state->aml_start);	union acpi_parse_object         *field;	u16                             opcode;	u32                             name;	ACPI_FUNCTION_TRACE ("ps_get_next_field");	/* determine field type */	switch (ACPI_GET8 (parser_state->aml)) {	default:		opcode = AML_INT_NAMEDFIELD_OP;		break;	case 0x00:		opcode = AML_INT_RESERVEDFIELD_OP;		parser_state->aml++;		break;	case 0x01:		opcode = AML_INT_ACCESSFIELD_OP;		parser_state->aml++;		break;	}	/* Allocate a new field op */	field = acpi_ps_alloc_op (opcode);	if (!field) {		return_PTR (NULL);	}	field->common.aml_offset = aml_offset;	/* Decode the field type */	switch (opcode) {	case AML_INT_NAMEDFIELD_OP:		/* Get the 4-character name */		ACPI_MOVE_32_TO_32 (&name, parser_state->aml);		acpi_ps_set_name (field, name);		parser_state->aml += ACPI_NAME_SIZE;		/* Get the length which is encoded as a package length */		field->common.value.size = acpi_ps_get_next_package_length (parser_state);		break;	case AML_INT_RESERVEDFIELD_OP:		/* Get the length which is encoded as a package length */		field->common.value.size = acpi_ps_get_next_package_length (parser_state);		break;	case AML_INT_ACCESSFIELD_OP:		/*		 * Get access_type and access_attrib and merge into the field Op		 * access_type is first operand, access_attribute is second		 */		field->common.value.integer = (ACPI_GET8 (parser_state->aml) << 8);		parser_state->aml++;		field->common.value.integer |= ACPI_GET8 (parser_state->aml);		parser_state->aml++;		break;	default:		/* Opcode was set in previous switch */		break;	}	return_PTR (field);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/44f6c01242da4e162f28d8e1216a8c7a91174605/psargs.c/buggy/drivers/acpi/parser/psargs.c