|
PatchworkOS
2ca1c69
A non-POSIX operating system.
|
Expression Opcodes Encoding. More...
Expression Opcodes Encoding.
Data Structures | |
| struct | aml_term_arg_list_t |
| TermArgList structure. More... | |
Enumerations | |
| enum | aml_match_opcode_t { AML_MATCH_MTR = 0 , AML_MATCH_MEQ = 1 , AML_MATCH_MLE = 2 , AML_MATCH_MLT = 3 , AML_MATCH_MGE = 4 , AML_MATCH_MGT = 5 } |
| Match opcodes for DefMatch. More... | |
Functions | |
| aml_object_t * | aml_operand_read (aml_term_list_ctx_t *ctx, aml_type_t allowedTypes) |
| Reads an Operand structure from the AML byte stream. | |
| uint64_t | aml_buffer_size_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a BufferSize structure from the AML byte stream. | |
| uint64_t | aml_def_buffer_read (aml_term_list_ctx_t *ctx, aml_object_t *out) |
| Reads a DefBuffer structure from the AML byte stream. | |
| uint64_t | aml_term_arg_list_read (aml_term_list_ctx_t *ctx, uint64_t argCount, aml_term_arg_list_t *out) |
| Reads a TermArgList structure from the AML byte stream. | |
| aml_object_t * | aml_method_invocation_read (aml_term_list_ctx_t *ctx) |
| Reads a MethodInvocation structure from the AML byte stream. | |
| aml_object_t * | aml_def_cond_ref_of_read (aml_term_list_ctx_t *ctx) |
| Reads a DefCondRefOf structure from the AML byte stream. | |
| aml_object_t * | aml_def_store_read (aml_term_list_ctx_t *ctx) |
| Reads a DefStore structure from the AML byte stream. | |
| uint64_t | aml_dividend_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a Dividend structure from the AML byte stream. | |
| uint64_t | aml_divisor_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a Divisor structure from the AML byte stream. | |
| aml_object_t * | aml_remainder_read (aml_term_list_ctx_t *ctx) |
| Reads a Remainder structure from the AML byte stream. | |
| aml_object_t * | aml_quotient_read (aml_term_list_ctx_t *ctx) |
| Reads a Quotient structure from the AML byte stream. | |
| aml_object_t * | aml_def_add_read (aml_term_list_ctx_t *ctx) |
| Reads a DefAdd structure from the AML byte stream. | |
| aml_object_t * | aml_def_subtract_read (aml_term_list_ctx_t *ctx) |
| Reads a DefSubtract structure from the AML byte stream. | |
| aml_object_t * | aml_def_multiply_read (aml_term_list_ctx_t *ctx) |
| Reads a DefMultiply structure from the AML byte stream. | |
| aml_object_t * | aml_def_divide_read (aml_term_list_ctx_t *ctx) |
| Reads a DefDivide structure from the AML byte stream. | |
| aml_object_t * | aml_def_mod_read (aml_term_list_ctx_t *ctx) |
| Reads a DefMod structure from the AML byte stream. | |
| aml_object_t * | aml_def_and_read (aml_term_list_ctx_t *ctx) |
| Reads a DefAnd structure from the AML byte stream. | |
| aml_object_t * | aml_def_nand_read (aml_term_list_ctx_t *ctx) |
| Reads a DefNAnd structure from the AML byte stream. | |
| aml_object_t * | aml_def_or_read (aml_term_list_ctx_t *ctx) |
| Reads a DefOr structure from the AML byte stream. | |
| aml_object_t * | aml_def_nor_read (aml_term_list_ctx_t *ctx) |
| Reads a DefNOr structure from the AML byte stream. | |
| aml_object_t * | aml_def_xor_read (aml_term_list_ctx_t *ctx) |
| Reads a DefXOr structure from the AML byte stream. | |
| aml_object_t * | aml_def_not_read (aml_term_list_ctx_t *ctx) |
| Reads a DefNot structure from the AML byte stream. | |
| uint64_t | aml_shift_count_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a ShiftCount structure from the AML byte stream. | |
| aml_object_t * | aml_def_shift_left_read (aml_term_list_ctx_t *ctx) |
| Reads a DefShiftLeft structure from the AML byte stream. | |
| aml_object_t * | aml_def_shift_right_read (aml_term_list_ctx_t *ctx) |
| Reads a DefShiftRight structure from the AML byte stream. | |
| aml_object_t * | aml_def_increment_read (aml_term_list_ctx_t *ctx) |
| Reads a DefIncrement structure from the AML byte stream. | |
| aml_object_t * | aml_def_decrement_read (aml_term_list_ctx_t *ctx) |
| Reads a DefDecrement structure from the AML byte stream. | |
| aml_object_t * | aml_obj_reference_read (aml_term_list_ctx_t *ctx) |
| Reads an ObjReference structure from the AML byte stream. | |
| aml_object_t * | aml_def_deref_of_read (aml_term_list_ctx_t *ctx) |
| Reads a DefDerefOf structure from the AML byte stream. | |
| aml_object_t * | aml_buff_pkg_str_obj_read (aml_term_list_ctx_t *ctx) |
| Reads a BuffPkgStrObj structure from the AML byte stream. | |
| uint64_t | aml_index_value_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads an IndexValue structure from the AML byte stream. | |
| aml_object_t * | aml_def_index_read (aml_term_list_ctx_t *ctx) |
| Reads a DefIndex structure from the AML byte stream. | |
| aml_object_t * | aml_def_land_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLAnd structure from the AML byte stream. | |
| aml_object_t * | aml_def_lequal_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLEqual structure from the AML byte stream. | |
| aml_object_t * | aml_def_lgreater_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLGreater structure from the AML byte stream. | |
| aml_object_t * | aml_def_lgreater_equal_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLGreaterEqual structure from the AML byte stream. | |
| aml_object_t * | aml_def_lless_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLLess structure from the AML byte stream. | |
| aml_object_t * | aml_def_lless_equal_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLLessEqual structure from the AML byte stream. | |
| aml_object_t * | aml_def_lnot_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLNot structure from the AML byte stream. | |
| aml_object_t * | aml_def_lnot_equal_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLNotEqual structure from the AML byte stream. | |
| aml_object_t * | aml_def_lor_read (aml_term_list_ctx_t *ctx) |
| Reads a DefLOr structure from the AML byte stream. | |
| aml_object_t * | aml_mutex_object_read (aml_term_list_ctx_t *ctx) |
| Reads a MutexObject structure from the AML byte stream. | |
| uint64_t | aml_timeout_read (aml_term_list_ctx_t *ctx, uint16_t *out) |
| Reads a Timeout structure from the AML byte stream. | |
| aml_object_t * | aml_def_acquire_read (aml_term_list_ctx_t *ctx) |
| Reads a DefAcquire structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_bcd_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToBcd structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_buffer_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToBuffer structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_decimal_string_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToDecimalString structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_hex_string_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToHexString structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_integer_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToInteger structure from the AML byte stream. | |
| uint64_t | aml_length_arg_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a LengthArg structure from the AML byte stream. | |
| aml_object_t * | aml_def_to_string_read (aml_term_list_ctx_t *ctx) |
| Reads a DefToString structure from the AML byte stream. | |
| aml_object_t * | aml_def_timer_read (aml_term_list_ctx_t *ctx) |
| Reads a DefTimer structure from the AML byte stream. | |
| aml_object_t * | aml_def_copy_object_read (aml_term_list_ctx_t *ctx) |
| Reads a DefCopyObject structure from the AML byte stream. | |
| aml_object_t * | aml_data_read (aml_term_list_ctx_t *ctx) |
| Reads a Data structure from the AML byte stream. | |
| aml_object_t * | aml_def_concat_read (aml_term_list_ctx_t *ctx) |
| Reads a DefConcat structure from the AML byte stream. | |
| aml_object_t * | aml_def_size_of_read (aml_term_list_ctx_t *ctx) |
| Reads a DefSizeOf structure from the AML byte stream. | |
| aml_object_t * | aml_def_ref_of_read (aml_term_list_ctx_t *ctx) |
| Reads a DefRefOf structure from the AML byte stream. | |
| aml_object_t * | aml_def_object_type_read (aml_term_list_ctx_t *ctx) |
| Reads a DefObjectType structure from the AML byte stream. | |
| aml_object_t * | aml_reference_type_opcode_read (aml_term_list_ctx_t *ctx) |
| aml_object_t * | aml_def_find_set_left_bit_read (aml_term_list_ctx_t *ctx) |
| Reads a DefFindSetLeftBit structure from the AML byte stream. | |
| aml_object_t * | aml_def_find_set_right_bit_read (aml_term_list_ctx_t *ctx) |
| Reads a DefFindSetRightBit structure from the AML byte stream. | |
| aml_package_t * | aml_search_pkg_read (aml_term_list_ctx_t *ctx) |
| Reads a SearchPkg structure from the AML byte stream. | |
| uint64_t | aml_match_opcode_read (aml_term_list_ctx_t *ctx, aml_match_opcode_t *out) |
| Reads a MatchOpcode structure from the AML byte stream. | |
| uint64_t | aml_start_index_read (aml_term_list_ctx_t *ctx, aml_uint_t *out) |
| Reads a StartIndex structure from the AML byte stream. | |
| aml_object_t * | aml_def_match_read (aml_term_list_ctx_t *ctx) |
| Reads a DefMatch structure from the AML byte stream. | |
| aml_object_t * | aml_mid_obj_read (aml_term_list_ctx_t *ctx) |
| Reads a MidObj structure from the AML byte stream. | |
| aml_object_t * | aml_def_mid_read (aml_term_list_ctx_t *ctx) |
| Reads a DefMid structure from the AML byte stream. | |
| aml_object_t * | aml_expression_opcode_read (aml_term_list_ctx_t *ctx) |
| Reads an ExpressionOpcode structure from the AML byte stream. | |
| enum aml_match_opcode_t |
Match opcodes for DefMatch.
| Enumerator | |
|---|---|
| AML_MATCH_MTR | |
| AML_MATCH_MEQ | |
| AML_MATCH_MLE | |
| AML_MATCH_MLT | |
| AML_MATCH_MGE | |
| AML_MATCH_MGT | |
Definition at line 795 of file expression.h.
| aml_object_t * aml_operand_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_type_t | allowedTypes | ||
| ) |
Reads an Operand structure from the AML byte stream.
An Operand structure is defined as Operand := TermArg => Integer in the spec but this must be wrong.
For example, Operand is used in the definition of DefLGreaterEqual which is defined as DefLGreaterEqual := LgreaterEqualOp Operand Operand. Clearly using the Operand structure.
However, this does not make any sense as in section 19.6.72, regarding LGreaterEqual, it states that "Source1 and Source2 must each evaluate to an integer, a string or a buffer" clearly contradicting the definition of Operand as only being able to evaluate to an integer. More examples of this can be found all over the place.
So instead we use let the caller specify what types are allowed.
| ctx | The TermList context. |
| out | Output pointer to be filled with the object pointer storing the result. |
| allowedTypes | The allowed types that the TermArg can evaluate to. |
0. On failure, ERR and errno is set. Definition at line 25 of file expression.c.
| uint64_t aml_buffer_size_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a BufferSize structure from the AML byte stream.
A BufferSize structure is defined as BufferSize := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the buffer size will be stored. |
ERR and errno is set. Definition at line 287 of file expression.c.
| uint64_t aml_def_buffer_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_object_t * | out | ||
| ) |
Reads a DefBuffer structure from the AML byte stream.
The DefBuffer structure is defined as DefBuffer := BufferOp PkgLength BufferSize ByteList.
| ctx | The TermList context. |
| out | Output pointer to the object to store the result. |
0. On failure, ERR and errno is set. Definition at line 297 of file expression.c.
| uint64_t aml_term_arg_list_read | ( | aml_term_list_ctx_t * | ctx, |
| uint64_t | argCount, | ||
| aml_term_arg_list_t * | out | ||
| ) |
Reads a TermArgList structure from the AML byte stream.
A TermArgList structure is defined as TermArgList := Nothing | <termarg termarglist>.
The number of arguments to read is determined by knowing ahead of time what object the arguments will be passed to.
| ctx | The TermList context. |
| argCount | The number of arguments to read. |
| out | Pointer to the buffer where the TermArgList will be stored. |
0. On failure, ERR and errno is set. Definition at line 334 of file expression.c.
| aml_object_t * aml_method_invocation_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a MethodInvocation structure from the AML byte stream.
A MethodInvocation structure is defined as MethodInvocation := NameString TermArgList.
So this is a bit confusing, but my interpretation is that despite the name, a MethodInvocation can be any object, not just methods. For example, fields. In such cases, the TermArgList is empty. Its the only thing that makes any sense when I inspect the aml bytecode as there are clearly named objects referenced in TermArgs, but there is no "child" definition that contains such a thing, atleast that i can find. But the specification says literally nothing about this. I guess you could say that any object is being "invoked" when it is being read, it just happens to not take any arguments.
The result may have the AML_OBJECT_EXCEPTION_ON_USE flag set.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 361 of file expression.c.
| aml_object_t * aml_def_cond_ref_of_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefCondRefOf structure from the AML byte stream.
A DefCondRefOf structure is defined as DefCondRefOf := CondRefOfOp SuperName Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 407 of file expression.c.
| aml_object_t * aml_def_store_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefStore structure from the AML byte stream.
A DefStore structure is defined as DefStore := StoreOp TermArg SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 477 of file expression.c.
| uint64_t aml_dividend_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a Dividend structure from the AML byte stream.
A Dividend structure is defined as Dividend := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer value of the dividend will be stored. |
0. On failure, ERR and errno is set. Definition at line 499 of file expression.c.
| uint64_t aml_divisor_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a Divisor structure from the AML byte stream.
A Divisor structure is defined as Divisor := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer value of the divisor will be stored. |
0. On failure, ERR and errno is set. Definition at line 510 of file expression.c.
| aml_object_t * aml_remainder_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a Remainder structure from the AML byte stream.
A Remainder structure is defined as Remainder := Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 521 of file expression.c.
| aml_object_t * aml_quotient_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a Quotient structure from the AML byte stream.
A Quotient structure is defined as Quotient := Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 533 of file expression.c.
| aml_object_t * aml_def_add_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefAdd structure from the AML byte stream.
The DefAdd structure is defined as DefAdd := AddOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 545 of file expression.c.
| aml_object_t * aml_def_subtract_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefSubtract structure from the AML byte stream.
The DefSubtract structure is defined as DefSubtract := SubtractOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 575 of file expression.c.
| aml_object_t * aml_def_multiply_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefMultiply structure from the AML byte stream.
The DefMultiply structure is defined as DefMultiply := MultiplyOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 605 of file expression.c.
| aml_object_t * aml_def_divide_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefDivide structure from the AML byte stream.
The DefDivide structure is defined as DefDivide := DivideOp Dividend Divisor Remainder Quotient.
The specification says that a division by zero is not allowed, for the sake of compatibility we ignore this and instead set the divisor to 1.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 635 of file expression.c.
| aml_object_t * aml_def_mod_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefMod structure from the AML byte stream.
The DefMod structure is defined as DefMod := ModOp Dividend Divisor Target.
The specification says that a division by zero is not allowed, for the sake of compatibility we ignore this and instead set the divisor to 1.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 703 of file expression.c.
| aml_object_t * aml_def_and_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefAnd structure from the AML byte stream.
The DefAnd structure is defined as DefAnd := AndOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 753 of file expression.c.
| aml_object_t * aml_def_nand_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefNAnd structure from the AML byte stream.
The DefNAnd structure is defined as DefNAnd := NandOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 783 of file expression.c.
| aml_object_t * aml_def_or_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefOr structure from the AML byte stream.
The DefOr structure is defined as DefOr := OrOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 813 of file expression.c.
| aml_object_t * aml_def_nor_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefNOr structure from the AML byte stream.
The DefNOr structure is defined as DefNOr := NorOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 843 of file expression.c.
| aml_object_t * aml_def_xor_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefXOr structure from the AML byte stream.
The DefXOr structure is defined as DefXOr := XorOp Operand Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 873 of file expression.c.
| aml_object_t * aml_def_not_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefNot structure from the AML byte stream.
The DefNot structure is defined as DefNot := NotOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 903 of file expression.c.
| uint64_t aml_shift_count_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a ShiftCount structure from the AML byte stream.
A ShiftCount structure is defined as ShiftCount := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer result will be stored. |
0. On failure, ERR and errno is set. Definition at line 930 of file expression.c.
| aml_object_t * aml_def_shift_left_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefShiftLeft structure from the AML byte stream.
The DefShiftLeft structure is defined as DefShiftLeft := ShiftLeftOp Operand ShiftCount Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 941 of file expression.c.
| aml_object_t * aml_def_shift_right_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefShiftRight structure from the AML byte stream.
The DefShiftRight structure is defined as DefShiftRight := ShiftRightOp Operand ShiftCount Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 987 of file expression.c.
| aml_object_t * aml_def_increment_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefIncrement structure from the AML byte stream.
The DefIncrement structure is defined as DefIncrement := IncrementOp SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1033 of file expression.c.
| aml_object_t * aml_def_decrement_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefDecrement structure from the AML byte stream.
The DefDecrement structure is defined as DefDecrement := DecrementOp SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1066 of file expression.c.
| aml_object_t * aml_obj_reference_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads an ObjReference structure from the AML byte stream.
An ObjReference structure is defined as ObjReference := TermArg => ObjectReference | String.
If a String is read then it is considered a path to an object and will be resolved to an ObjectReference.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1099 of file expression.c.
| aml_object_t * aml_def_deref_of_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefDerefOf structure from the AML byte stream.
A DefDerefOf structure is defined as DefDerefOf := DerefOfOp ObjReference.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1131 of file expression.c.
| aml_object_t * aml_buff_pkg_str_obj_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a BuffPkgStrObj structure from the AML byte stream.
A BuffPkgStrObj structure is defined as BuffPkgStrObj := TermArg => Buffer, Package, or String.
Note that the TermArg must resolve to an ObjectReference that points to a Buffer, Package, or String. Becouse taking a reference to an object within a temporary object does not make sense, temporary objects are not allowed.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1149 of file expression.c.
| uint64_t aml_index_value_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads an IndexValue structure from the AML byte stream.
An IndexValue structure is defined as IndexValue := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer result will be stored. |
0. On failure, ERR and errno is set. Definition at line 1161 of file expression.c.
| aml_object_t * aml_def_index_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefIndex structure from the AML byte stream.
A DefIndex structure is defined as DefIndex := IndexOp BuffPkgStrObj IndexValue Target.
Returns a reference to an indexed element within the buffer, package or string stored in BuffPkgStrObj, and optionally stores that reference in Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1172 of file expression.c.
| aml_object_t * aml_def_land_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLAnd structure from the AML byte stream.
A DefLAnd structure is defined as DefLAnd := LandOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1300 of file expression.c.
| aml_object_t * aml_def_lequal_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLEqual structure from the AML byte stream.
A DefLEqual structure is defined as DefLEqual := LequalOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1327 of file expression.c.
| aml_object_t * aml_def_lgreater_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLGreater structure from the AML byte stream.
A DefLGreater structure is defined as DefLGreater := LgreaterOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1355 of file expression.c.
| aml_object_t * aml_def_lgreater_equal_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLGreaterEqual structure from the AML byte stream.
A DefLGreaterEqual structure is defined as DefLGreaterEqual := LgreaterEqualOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1383 of file expression.c.
| aml_object_t * aml_def_lless_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLLess structure from the AML byte stream.
A DefLLess structure is defined as DefLLess := LlessOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1411 of file expression.c.
| aml_object_t * aml_def_lless_equal_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLLessEqual structure from the AML byte stream.
A DefLLessEqual structure is defined as DefLLessEqual := LlessEqualOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1439 of file expression.c.
| aml_object_t * aml_def_lnot_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLNot structure from the AML byte stream.
A DefLNot structure is defined as DefLNot := LnotOp Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1467 of file expression.c.
| aml_object_t * aml_def_lnot_equal_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLNotEqual structure from the AML byte stream.
A DefLNotEqual structure is defined as DefLNotEqual := LnotEqualOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1492 of file expression.c.
| aml_object_t * aml_def_lor_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefLOr structure from the AML byte stream.
A DefLOr structure is defined as DefLOr := LorOp Operand Operand.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1520 of file expression.c.
| aml_object_t * aml_mutex_object_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a MutexObject structure from the AML byte stream.
A MutexObject structure is defined as MutexObject := SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1547 of file expression.c.
| uint64_t aml_timeout_read | ( | aml_term_list_ctx_t * | ctx, |
| uint16_t * | out | ||
| ) |
Reads a Timeout structure from the AML byte stream.
A Timeout structure is defined as Timeout := WordData.
| ctx | The TermList context. |
| out | Output pointer where the integer result will be stored. |
0. On failure, ERR and errno is set. Definition at line 1567 of file expression.c.
| aml_object_t * aml_def_acquire_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefAcquire structure from the AML byte stream.
A DefAcquire structure is defined as DefAcquire := AcquireOp MutexObject Timeout.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1578 of file expression.c.
| aml_object_t * aml_def_to_bcd_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToBcd structure from the AML byte stream.
A DefToBcd structure is defined as DefToBCD := ToBCDOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1627 of file expression.c.
| aml_object_t * aml_def_to_buffer_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToBuffer structure from the AML byte stream.
A DefToBuffer structure is defined as DefToBuffer := ToBufferOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1661 of file expression.c.
| aml_object_t * aml_def_to_decimal_string_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToDecimalString structure from the AML byte stream.
A DefToDecimalString structure is defined as DefToDecimalString := ToDecimalStringOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1689 of file expression.c.
| aml_object_t * aml_def_to_hex_string_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToHexString structure from the AML byte stream.
A DefToHexString structure is defined as DefToHexString := ToHexStringOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1716 of file expression.c.
| aml_object_t * aml_def_to_integer_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToInteger structure from the AML byte stream.
A DefToInteger structure is defined as DefToInteger := ToIntegerOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1743 of file expression.c.
| uint64_t aml_length_arg_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a LengthArg structure from the AML byte stream.
A LengthArg structure is defined as LengthArg := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer result will be stored. |
ERR and errno is set. Definition at line 1771 of file expression.c.
| aml_object_t * aml_def_to_string_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefToString structure from the AML byte stream.
A DefToString structure is defined as DefToString := ToStringOp TermArg LengthArg Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1782 of file expression.c.
| aml_object_t * aml_def_timer_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefTimer structure from the AML byte stream.
A DefTimer structure is defined as DefTimer := TimerOp.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1839 of file expression.c.
| aml_object_t * aml_def_copy_object_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefCopyObject structure from the AML byte stream.
A DefCopyObject structure is defined as DefCopyObject := CopyObjectOp TermArg SimpleName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1865 of file expression.c.
| aml_object_t * aml_data_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a Data structure from the AML byte stream.
A Data structure is defined as Data := TermArg => ComputationalData.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1886 of file expression.c.
| aml_object_t * aml_def_concat_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefConcat structure from the AML byte stream.
A DefConcat structure is defined as DefConcat := ConcatOp Data Data Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1898 of file expression.c.
| aml_object_t * aml_def_size_of_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefSizeOf structure from the AML byte stream.
A DefSizeOf structure is defined as DefSizeOf := SizeOfOp SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1927 of file expression.c.
| aml_object_t * aml_def_ref_of_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefRefOf structure from the AML byte stream.
A DefRefOf structure is defined as DefRefOf := RefOfOp SuperName.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 1989 of file expression.c.
| aml_object_t * aml_def_object_type_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefObjectType structure from the AML byte stream.
A DefObjectType structure is defined as DefObjectType := ObjectTypeOp <SimpleName | DebugObj | DefRefOf | DefDerefOf | DefIndex>.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2014 of file expression.c.
| aml_object_t * aml_reference_type_opcode_read | ( | aml_term_list_ctx_t * | ctx | ) |
I am unsure about this. But it seems that ReferenceTypeOpcodes should dereference the result if its an ObjectReference. Mainly this is based of the examples found in section 19.6.63.2 and 19.6.63.3 of the Index Operator where we can see the Store Operator storing directly to the result of an Index Operator. And this seems to line up with testing. I could not find any explicit mention of this in the spec though.
Definition at line 2117 of file expression.c.
| aml_object_t * aml_def_find_set_left_bit_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefFindSetLeftBit structure from the AML byte stream.
A DefFindSetLeftBit structure is defined as DefFindSetLeftBit := FindSetLeftBitOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2169 of file expression.c.
| aml_object_t * aml_def_find_set_right_bit_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefFindSetRightBit structure from the AML byte stream.
A DefFindSetRightBit structure is defined as DefFindSetRightBit := FindSetRightBitOp Operand Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2218 of file expression.c.
| aml_package_t * aml_search_pkg_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a SearchPkg structure from the AML byte stream.
A SearchPkg structure is defined as SearchPkg := TermArg => Package.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2267 of file expression.c.
| uint64_t aml_match_opcode_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_match_opcode_t * | out | ||
| ) |
Reads a MatchOpcode structure from the AML byte stream.
A MatchOpcode structure is defined as MatchOpcode := ByteData // 0 MTR // 1 MEQ // 2 MLE // 3 MLT // 4 MGE // 5 MGT.
| ctx | The TermList context. |
| out | Output pointer where the match opcode will be stored. |
ERR and errno is set. Definition at line 2279 of file expression.c.
| uint64_t aml_start_index_read | ( | aml_term_list_ctx_t * | ctx, |
| aml_uint_t * | out | ||
| ) |
Reads a StartIndex structure from the AML byte stream.
A StartIndex structure is defined as StartIndex := TermArg => Integer.
| ctx | The TermList context. |
| out | Output pointer where the integer result will be stored. |
0. On failure, ERR and errno is set. Definition at line 2299 of file expression.c.
| aml_object_t * aml_def_match_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefMatch structure from the AML byte stream.
A DefMatch structure is defined as DefMatch := MatchOp SearchPkg MatchOpcode Operand MatchOpcode Operand StartIndex.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2332 of file expression.c.
| aml_object_t * aml_mid_obj_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a MidObj structure from the AML byte stream.
A MidObj structure is defined as MidObj := TermArg => Buffer | String.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2438 of file expression.c.
| aml_object_t * aml_def_mid_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads a DefMid structure from the AML byte stream.
A DefMid structure is defined as DefMid := MidOp MidObj TermArg TermArg Target.
| ctx | The TermList context. |
NULL and errno is set. Definition at line 2450 of file expression.c.
| aml_object_t * aml_expression_opcode_read | ( | aml_term_list_ctx_t * | ctx | ) |
Reads an ExpressionOpcode structure from the AML byte stream.
An ExpressionOpcode structure is defined as ExpressionOpcode := DefAcquire | DefAdd | DefAnd | DefBuffer | DefConcat | DefConcatRes | DefCondRefOf | DefCopyObject | DefDecrement | DefDerefOf | DefDivide | DefFindSetLeftBit | DefFindSetRightBit | DefFromBCD | DefIncrement | DefIndex | DefLAnd | DefLEqual | DefLGreater | DefLGreaterEqual | DefLLess | DefLLessEqual | DefMid | DefLNot | DefLNotEqual | DefLoadTable | DefLOr | DefMatch | DefMod | DefMultiply | DefNAnd | DefNOr | DefNot | DefObjectType | DefOr | DefPackage | DefVarPackage | DefRefOf | DefShiftLeft | DefShiftRight | DefSizeOf | DefStore | DefSubtract | DefTimer | DefToBCD | DefToBuffer | DefToDecimalString | DefToHexString | DefToInteger | DefToString | DefWait | DefXOr | MethodInvocation.
Currently unimplemented Opcodes are:
DefConcatResDefFromBCDDefMidDefLoadTableDefWait| ctx | The TermList context. |
NULL and errno is set. Definition at line 2503 of file expression.c.