PatchworkOS
Loading...
Searching...
No Matches
convert.c File Reference

Go to the source code of this file.

Data Structures

struct  aml_convert_entry_t
 

Macros

#define AML_HEX_DIGITS   "0123456789ABCDEF"
 
#define AML_CONVERT_TRY_NEXT_CONVERTER   1
 

Typedefs

typedef uint64_t(* aml_convert_func_t) (aml_state_t *state, aml_object_t *src, aml_object_t *dest)
 

Functions

static uint64_t aml_string_prepare (aml_object_t *obj, uint64_t length)
 
static void aml_byte_to_hex (uint8_t byte, char *dest)
 
static uint8_t aml_hex_to_byte (char chr)
 
static uint64_t aml_buffer_to_buffer_field (aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
 
static uint64_t aml_buffer_to_integer (aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
 
static uint64_t aml_buffer_to_string (aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
 
static uint64_t aml_buffer_to_debug_object (aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
 
static uint64_t aml_integer_to_buffer (aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
 
static uint64_t aml_integer_to_field_unit (aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
 
static uint64_t aml_integer_to_buffer_field (aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
 
static uint64_t aml_integer_to_string (aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
 
static uint64_t aml_integer_to_debug_object (aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
 
static uint64_t aml_package_to_debug_object (aml_state_t *state, aml_object_t *package, aml_object_t *dest)
 
static uint64_t aml_string_to_integer (aml_state_t *state, aml_object_t *string, aml_object_t *dest)
 
static uint64_t aml_string_to_buffer (aml_state_t *state, aml_object_t *string, aml_object_t *dest)
 
static uint64_t aml_string_to_debug_object (aml_state_t *state, aml_object_t *string, aml_object_t *dest)
 
static aml_convert_entry_taml_converters_get (aml_type_t srcType)
 
uint64_t aml_convert (aml_state_t *state, aml_object_t *src, aml_object_t *dest, aml_type_t allowedTypes)
 Converts the data in the source object to a allowed type and stores it in the destination object.
 
uint64_t aml_convert_result (aml_state_t *state, aml_object_t *result, aml_object_t *target)
 Performs a "Implicit Result Object Conversion" acording to the rules in section 19.3.5.5 of the ACPI specification.
 
uint64_t aml_convert_source (aml_state_t *state, aml_object_t *src, aml_object_t **dest, aml_type_t allowedTypes)
 Performs a "Implicit Source Operand Conversion" acording to the rules in section 19.3.5.4 of the ACPI specification.
 
uint64_t aml_convert_to_buffer (aml_state_t *state, aml_object_t *src, aml_object_t **dest)
 Converts a Integer, String or Buffer source object to a Buffer destination object.
 
uint64_t aml_convert_to_decimal_string (aml_state_t *state, aml_object_t *src, aml_object_t **dest)
 Converts a Integer, String or Buffer source object to a String destination object in decimal format.
 
uint64_t aml_convert_to_hex_string (aml_state_t *state, aml_object_t *src, aml_object_t **dest)
 Converts a Integer, String or Buffer source object to a String destination object in hexadecimal format.
 
uint64_t aml_convert_to_integer (aml_state_t *state, aml_object_t *src, aml_object_t **dest)
 Converts a Integer, String or Buffer source object to an Integer destination object.
 
uint64_t aml_convert_integer_to_bcd (aml_integer_t value, aml_integer_t *out)
 Converts an integer to its Binary-Coded Decimal (BCD) representation.
 

Variables

static aml_convert_entry_t bufferConverters [AML_TYPE_AMOUNT]
 
static aml_convert_entry_t integerConverters [AML_TYPE_AMOUNT]
 
static aml_convert_entry_t packageConverters [AML_TYPE_AMOUNT]
 
static aml_convert_entry_t stringConverters [AML_TYPE_AMOUNT]
 

Macro Definition Documentation

◆ AML_CONVERT_TRY_NEXT_CONVERTER

#define AML_CONVERT_TRY_NEXT_CONVERTER   1

Definition at line 17 of file convert.c.

◆ AML_HEX_DIGITS

#define AML_HEX_DIGITS   "0123456789ABCDEF"

Definition at line 15 of file convert.c.

Typedef Documentation

◆ aml_convert_func_t

typedef uint64_t(* aml_convert_func_t) (aml_state_t *state, aml_object_t *src, aml_object_t *dest)

Definition at line 19 of file convert.c.

Function Documentation

◆ aml_buffer_to_buffer_field()

static uint64_t aml_buffer_to_buffer_field ( aml_state_t state,
aml_object_t buffer,
aml_object_t dest 
)
static

◆ aml_buffer_to_debug_object()

static uint64_t aml_buffer_to_debug_object ( aml_state_t state,
aml_object_t buffer,
aml_object_t dest 
)
static

Definition at line 131 of file convert.c.

References buffer, and LOG_INFO.

◆ aml_buffer_to_integer()

static uint64_t aml_buffer_to_integer ( aml_state_t state,
aml_object_t buffer,
aml_object_t dest 
)
static

◆ aml_buffer_to_string()

static uint64_t aml_buffer_to_string ( aml_state_t state,
aml_object_t buffer,
aml_object_t dest 
)
static

◆ aml_byte_to_hex()

static void aml_byte_to_hex ( uint8_t  byte,
char *  dest 
)
inlinestatic

Definition at line 55 of file convert.c.

References AML_HEX_DIGITS.

Referenced by aml_buffer_to_string(), aml_convert_to_hex_string(), and aml_integer_to_string().

◆ aml_converters_get()

static aml_convert_entry_t * aml_converters_get ( aml_type_t  srcType)
static

◆ aml_hex_to_byte()

static uint8_t aml_hex_to_byte ( char  chr)
inlinestatic

Definition at line 61 of file convert.c.

Referenced by aml_convert_to_integer(), and aml_string_to_integer().

◆ aml_integer_to_buffer()

◆ aml_integer_to_buffer_field()

static uint64_t aml_integer_to_buffer_field ( aml_state_t state,
aml_object_t integer,
aml_object_t dest 
)
static

◆ aml_integer_to_debug_object()

static uint64_t aml_integer_to_debug_object ( aml_state_t state,
aml_object_t integer,
aml_object_t dest 
)
static

Definition at line 227 of file convert.c.

References aml_object_t::integer, LOG_INFO, and aml_integer_obj_t::value.

◆ aml_integer_to_field_unit()

static uint64_t aml_integer_to_field_unit ( aml_state_t state,
aml_object_t integer,
aml_object_t dest 
)
static

◆ aml_integer_to_string()

static uint64_t aml_integer_to_string ( aml_state_t state,
aml_object_t integer,
aml_object_t dest 
)
static

◆ aml_package_to_debug_object()

static uint64_t aml_package_to_debug_object ( aml_state_t state,
aml_object_t package,
aml_object_t dest 
)
static

◆ aml_string_prepare()

static uint64_t aml_string_prepare ( aml_object_t obj,
uint64_t  length 
)
inlinestatic

◆ aml_string_to_buffer()

◆ aml_string_to_debug_object()

static uint64_t aml_string_to_debug_object ( aml_state_t state,
aml_object_t string,
aml_object_t dest 
)
static

◆ aml_string_to_integer()

Variable Documentation

◆ bufferConverters

aml_convert_entry_t bufferConverters[AML_TYPE_AMOUNT]
static
Initial value:
= {
}
static uint64_t aml_buffer_to_string(aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
Definition convert.c:105
static uint64_t aml_buffer_to_debug_object(aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
Definition convert.c:131
static uint64_t aml_buffer_to_integer(aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
Definition convert.c:85
static uint64_t aml_buffer_to_buffer_field(aml_state_t *state, aml_object_t *buffer, aml_object_t *dest)
Definition convert.c:75
@ AML_BUFFER_FIELD
Definition object.h:60
@ AML_DEBUG_OBJECT
Definition object.h:61
@ AML_STRING
Definition object.h:83
@ AML_INTEGER
Definition object.h:65
@ AML_BUFFER
Definition object.h:59

Definition at line 155 of file convert.c.

Referenced by aml_converters_get().

◆ integerConverters

aml_convert_entry_t integerConverters[AML_TYPE_AMOUNT]
static
Initial value:
= {
}
static uint64_t aml_integer_to_buffer(aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
Definition convert.c:162
static uint64_t aml_integer_to_string(aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
Definition convert.c:205
static uint64_t aml_integer_to_buffer_field(aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
Definition convert.c:195
static uint64_t aml_integer_to_field_unit(aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
Definition convert.c:186
static uint64_t aml_integer_to_debug_object(aml_state_t *state, aml_object_t *integer, aml_object_t *dest)
Definition convert.c:227
@ AML_FIELD_UNIT
Definition object.h:64

Definition at line 235 of file convert.c.

Referenced by aml_converters_get().

◆ packageConverters

aml_convert_entry_t packageConverters[AML_TYPE_AMOUNT]
static
Initial value:
= {
}
static uint64_t aml_package_to_debug_object(aml_state_t *state, aml_object_t *package, aml_object_t *dest)
Definition convert.c:243
@ AML_PACKAGE
Definition object.h:79

Definition at line 260 of file convert.c.

Referenced by aml_converters_get().

◆ stringConverters

aml_convert_entry_t stringConverters[AML_TYPE_AMOUNT]
static
Initial value:
= {
}
static uint64_t aml_string_to_integer(aml_state_t *state, aml_object_t *string, aml_object_t *dest)
Definition convert.c:264
static uint64_t aml_string_to_buffer(aml_state_t *state, aml_object_t *string, aml_object_t *dest)
Definition convert.c:290
static uint64_t aml_string_to_debug_object(aml_state_t *state, aml_object_t *string, aml_object_t *dest)
Definition convert.c:328

Definition at line 342 of file convert.c.

Referenced by aml_converters_get().