2005-04-16 15:20:36 -07:00
/*******************************************************************************
*
* Module Name : rsmem24 - Memory resource descriptors
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* Copyright ( C ) 2000 - 2005 , R . Byron Moore
* All rights reserved .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions , and the following disclaimer ,
* without modification .
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
* substantially similar to the " NO WARRANTY " disclaimer below
* ( " Disclaimer " ) and any redistribution must be conditioned upon
* including a substantially similar Disclaimer requirement for further
* binary redistribution .
* 3. Neither the names of the above - listed copyright holders nor the names
* of any contributors may be used to endorse or promote products derived
* from this software without specific prior written permission .
*
* Alternatively , this software may be distributed under the terms of the
* GNU General Public License ( " GPL " ) version 2 as published by the Free
* Software Foundation .
*
* NO WARRANTY
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* " AS IS " AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
* LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
* DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT ,
* STRICT LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES .
*/
# include <acpi/acpi.h>
# include <acpi/acresrc.h>
# define _COMPONENT ACPI_RESOURCES
2005-08-05 00:44:28 -04:00
ACPI_MODULE_NAME ( " rsmemory " )
2005-04-16 15:20:36 -07:00
/*******************************************************************************
*
* FUNCTION : acpi_rs_memory24_resource
*
* PARAMETERS : byte_stream_buffer - Pointer to the resource input byte
* stream
* bytes_consumed - Pointer to where the number of bytes
* consumed the byte_stream_buffer is
* returned
* output_buffer - Pointer to the return data buffer
* structure_size - Pointer to where the number of bytes
* in the return data struct is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the resource byte stream and fill out the appropriate
* structure pointed to by the output_buffer . Return the
* number of bytes consumed from the byte stream .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_memory24_resource ( u8 * byte_stream_buffer ,
acpi_size * bytes_consumed ,
u8 * * output_buffer , acpi_size * structure_size )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = byte_stream_buffer ;
struct acpi_resource * output_struct = ( void * ) * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
acpi_size struct_size =
ACPI_SIZEOF_RESOURCE ( struct acpi_resource_mem24 ) ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_memory24_resource " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* Point past the Descriptor to get the number of bytes consumed */
2005-04-16 15:20:36 -07:00
buffer + = 1 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
* bytes_consumed = ( acpi_size ) temp16 + 3 ;
output_struct - > id = ACPI_RSTYPE_MEM24 ;
2005-04-18 22:49:35 -04:00
/* Check Byte 3 the Read/Write bit */
2005-04-16 15:20:36 -07:00
temp8 = * buffer ;
buffer + = 1 ;
output_struct - > data . memory24 . read_write_attribute = temp8 & 0x01 ;
2005-04-18 22:49:35 -04:00
/* Get min_base_address (Bytes 4-5) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
output_struct - > data . memory24 . min_base_address = temp16 ;
2005-04-18 22:49:35 -04:00
/* Get max_base_address (Bytes 6-7) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
output_struct - > data . memory24 . max_base_address = temp16 ;
2005-04-18 22:49:35 -04:00
/* Get Alignment (Bytes 8-9) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
output_struct - > data . memory24 . alignment = temp16 ;
2005-04-18 22:49:35 -04:00
/* Get range_length (Bytes 10-11) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
output_struct - > data . memory24 . range_length = temp16 ;
2005-04-18 22:49:35 -04:00
/* Set the Length parameter */
2005-04-16 15:20:36 -07:00
output_struct - > length = ( u32 ) struct_size ;
2005-04-18 22:49:35 -04:00
/* Return the final size of the structure */
2005-04-16 15:20:36 -07:00
* structure_size = struct_size ;
2005-08-05 00:44:28 -04:00
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}
/*******************************************************************************
*
* FUNCTION : acpi_rs_memory24_stream
*
* PARAMETERS : linked_list - Pointer to the resource linked list
* output_buffer - Pointer to the user ' s return buffer
* bytes_consumed - Pointer to where the number of bytes
* used in the output_buffer is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the linked list resource structure and fills in the
* the appropriate bytes in a byte stream
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_memory24_stream ( struct acpi_resource * linked_list ,
u8 * * output_buffer , acpi_size * bytes_consumed )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_memory24_stream " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* The descriptor field is static */
2005-04-16 15:20:36 -07:00
* buffer = 0x81 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* The length field is static */
2005-04-16 15:20:36 -07:00
temp16 = 0x09 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( buffer , & temp16 ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the Information Byte */
2005-04-16 15:20:36 -07:00
temp8 = ( u8 ) ( linked_list - > data . memory24 . read_write_attribute & 0x01 ) ;
* buffer = temp8 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* Set the Range minimum base address */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_16 ( buffer ,
& linked_list - > data . memory24 . min_base_address ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the Range maximum base address */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_16 ( buffer ,
& linked_list - > data . memory24 . max_base_address ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the base alignment */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_16 ( buffer , & linked_list - > data . memory24 . alignment ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the range length */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_16 ( buffer , & linked_list - > data . memory24 . range_length ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Return the number of bytes consumed in this operation */
2005-08-05 00:44:28 -04:00
* bytes_consumed = ACPI_PTR_DIFF ( buffer , * output_buffer ) ;
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}
/*******************************************************************************
*
* FUNCTION : acpi_rs_memory32_range_resource
*
* PARAMETERS : byte_stream_buffer - Pointer to the resource input byte
* stream
* bytes_consumed - Pointer to where the number of bytes
* consumed the byte_stream_buffer is
* returned
* output_buffer - Pointer to the return data buffer
* structure_size - Pointer to where the number of bytes
* in the return data struct is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the resource byte stream and fill out the appropriate
* structure pointed to by the output_buffer . Return the
* number of bytes consumed from the byte stream .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_memory32_range_resource ( u8 * byte_stream_buffer ,
acpi_size * bytes_consumed ,
u8 * * output_buffer , acpi_size * structure_size )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = byte_stream_buffer ;
struct acpi_resource * output_struct = ( void * ) * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
acpi_size struct_size =
ACPI_SIZEOF_RESOURCE ( struct acpi_resource_mem32 ) ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_memory32_range_resource " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* Point past the Descriptor to get the number of bytes consumed */
2005-04-16 15:20:36 -07:00
buffer + = 1 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
* bytes_consumed = ( acpi_size ) temp16 + 3 ;
output_struct - > id = ACPI_RSTYPE_MEM32 ;
/*
* Point to the place in the output buffer where the data portion will
* begin .
* 1. Set the RESOURCE_DATA * Data to point to its own address , then
* 2. Set the pointer to the next address .
*
* NOTE : output_struct - > Data is cast to u8 , otherwise , this addition adds
* 4 * sizeof ( RESOURCE_DATA ) instead of 4 * sizeof ( u8 )
*/
2005-04-18 22:49:35 -04:00
/* Check Byte 3 the Read/Write bit */
2005-04-16 15:20:36 -07:00
temp8 = * buffer ;
buffer + = 1 ;
output_struct - > data . memory32 . read_write_attribute = temp8 & 0x01 ;
2005-04-18 22:49:35 -04:00
/* Get min_base_address (Bytes 4-7) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . memory32 . min_base_address ,
buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Get max_base_address (Bytes 8-11) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . memory32 . max_base_address ,
buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Get Alignment (Bytes 12-15) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . memory32 . alignment , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Get range_length (Bytes 16-19) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . memory32 . range_length , buffer ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* Set the Length parameter */
2005-04-16 15:20:36 -07:00
output_struct - > length = ( u32 ) struct_size ;
2005-04-18 22:49:35 -04:00
/* Return the final size of the structure */
2005-04-16 15:20:36 -07:00
* structure_size = struct_size ;
2005-08-05 00:44:28 -04:00
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}
/*******************************************************************************
*
* FUNCTION : acpi_rs_fixed_memory32_resource
*
* PARAMETERS : byte_stream_buffer - Pointer to the resource input byte
* stream
* bytes_consumed - Pointer to where the number of bytes
* consumed the byte_stream_buffer is
* returned
* output_buffer - Pointer to the return data buffer
* structure_size - Pointer to where the number of bytes
* in the return data struct is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the resource byte stream and fill out the appropriate
* structure pointed to by the output_buffer . Return the
* number of bytes consumed from the byte stream .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_fixed_memory32_resource ( u8 * byte_stream_buffer ,
acpi_size * bytes_consumed ,
u8 * * output_buffer , acpi_size * structure_size )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = byte_stream_buffer ;
struct acpi_resource * output_struct = ( void * ) * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
acpi_size struct_size =
ACPI_SIZEOF_RESOURCE ( struct acpi_resource_fixed_mem32 ) ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_fixed_memory32_resource " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* Point past the Descriptor to get the number of bytes consumed */
2005-04-16 15:20:36 -07:00
buffer + = 1 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( & temp16 , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
* bytes_consumed = ( acpi_size ) temp16 + 3 ;
output_struct - > id = ACPI_RSTYPE_FIXED_MEM32 ;
2005-04-18 22:49:35 -04:00
/* Check Byte 3 the Read/Write bit */
2005-04-16 15:20:36 -07:00
temp8 = * buffer ;
buffer + = 1 ;
output_struct - > data . fixed_memory32 . read_write_attribute = temp8 & 0x01 ;
2005-04-18 22:49:35 -04:00
/* Get range_base_address (Bytes 4-7) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . fixed_memory32 .
range_base_address , buffer ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Get range_length (Bytes 8-11) */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( & output_struct - > data . fixed_memory32 . range_length ,
buffer ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* Set the Length parameter */
2005-04-16 15:20:36 -07:00
output_struct - > length = ( u32 ) struct_size ;
2005-04-18 22:49:35 -04:00
/* Return the final size of the structure */
2005-04-16 15:20:36 -07:00
* structure_size = struct_size ;
2005-08-05 00:44:28 -04:00
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}
/*******************************************************************************
*
* FUNCTION : acpi_rs_memory32_range_stream
*
* PARAMETERS : linked_list - Pointer to the resource linked list
* output_buffer - Pointer to the user ' s return buffer
* bytes_consumed - Pointer to where the number of bytes
* used in the output_buffer is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the linked list resource structure and fills in the
* the appropriate bytes in a byte stream
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_memory32_range_stream ( struct acpi_resource * linked_list ,
u8 * * output_buffer , acpi_size * bytes_consumed )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_memory32_range_stream " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* The descriptor field is static */
2005-04-16 15:20:36 -07:00
* buffer = 0x85 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* The length field is static */
2005-04-16 15:20:36 -07:00
temp16 = 0x11 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( buffer , & temp16 ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the Information Byte */
2005-04-16 15:20:36 -07:00
temp8 = ( u8 ) ( linked_list - > data . memory32 . read_write_attribute & 0x01 ) ;
* buffer = temp8 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* Set the Range minimum base address */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer ,
& linked_list - > data . memory32 . min_base_address ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Set the Range maximum base address */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer ,
& linked_list - > data . memory32 . max_base_address ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Set the base alignment */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer , & linked_list - > data . memory32 . alignment ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Set the range length */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer , & linked_list - > data . memory32 . range_length ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Return the number of bytes consumed in this operation */
2005-08-05 00:44:28 -04:00
* bytes_consumed = ACPI_PTR_DIFF ( buffer , * output_buffer ) ;
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}
/*******************************************************************************
*
* FUNCTION : acpi_rs_fixed_memory32_stream
*
* PARAMETERS : linked_list - Pointer to the resource linked list
* output_buffer - Pointer to the user ' s return buffer
* bytes_consumed - Pointer to where the number of bytes
* used in the output_buffer is returned
*
* RETURN : Status
*
* DESCRIPTION : Take the linked list resource structure and fills in the
* the appropriate bytes in a byte stream
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
acpi_status
2005-08-05 00:44:28 -04:00
acpi_rs_fixed_memory32_stream ( struct acpi_resource * linked_list ,
u8 * * output_buffer , acpi_size * bytes_consumed )
2005-04-16 15:20:36 -07:00
{
2005-08-05 00:44:28 -04:00
u8 * buffer = * output_buffer ;
u16 temp16 = 0 ;
u8 temp8 = 0 ;
2005-04-16 15:20:36 -07:00
2005-08-05 00:44:28 -04:00
ACPI_FUNCTION_TRACE ( " rs_fixed_memory32_stream " ) ;
2005-04-16 15:20:36 -07:00
2005-04-18 22:49:35 -04:00
/* The descriptor field is static */
2005-04-16 15:20:36 -07:00
* buffer = 0x86 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* The length field is static */
2005-04-16 15:20:36 -07:00
temp16 = 0x09 ;
2005-08-05 00:44:28 -04:00
ACPI_MOVE_16_TO_16 ( buffer , & temp16 ) ;
2005-04-16 15:20:36 -07:00
buffer + = 2 ;
2005-04-18 22:49:35 -04:00
/* Set the Information Byte */
2005-08-05 00:44:28 -04:00
temp8 =
( u8 ) ( linked_list - > data . fixed_memory32 . read_write_attribute & 0x01 ) ;
2005-04-16 15:20:36 -07:00
* buffer = temp8 ;
buffer + = 1 ;
2005-04-18 22:49:35 -04:00
/* Set the Range base address */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer ,
& linked_list - > data . fixed_memory32 .
range_base_address ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Set the range length */
2005-08-05 00:44:28 -04:00
ACPI_MOVE_32_TO_32 ( buffer ,
& linked_list - > data . fixed_memory32 . range_length ) ;
2005-04-16 15:20:36 -07:00
buffer + = 4 ;
2005-04-18 22:49:35 -04:00
/* Return the number of bytes consumed in this operation */
2005-08-05 00:44:28 -04:00
* bytes_consumed = ACPI_PTR_DIFF ( buffer , * output_buffer ) ;
return_ACPI_STATUS ( AE_OK ) ;
2005-04-16 15:20:36 -07:00
}