^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Name: acstruct.h - Internal structs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright (C) 2000 - 2020, Intel Corp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #ifndef __ACSTRUCT_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define __ACSTRUCT_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /* acpisrc:struct_defs -- for acpisrc conversion */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) /*****************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * Tree walking typedefs and structs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) * Walk state - current state of a parse tree walk. Used for both a leisurely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) * stroll through the tree (for whatever reason), and for control method
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) * execution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define ACPI_NEXT_OP_DOWNWARD 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define ACPI_NEXT_OP_UPWARD 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) * Groups of definitions for walk_type used for different implementations of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) * walkers (never simultaneously) - flags for interpreter:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define ACPI_WALK_NON_METHOD 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define ACPI_WALK_METHOD 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define ACPI_WALK_METHOD_RESTART 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct acpi_walk_state {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) struct acpi_walk_state *next; /* Next walk_state in list */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) u8 descriptor_type; /* To differentiate various internal objs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) u8 walk_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) u16 opcode; /* Current AML opcode */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) u8 next_op_info; /* Info about next_op */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) u8 num_operands; /* Stack pointer for Operands[] array */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) u8 operand_index; /* Index into operand stack, to be used by acpi_ds_obj_stack_push */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) acpi_owner_id owner_id; /* Owner of objects created during the walk */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) u8 last_predicate; /* Result of last predicate */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) u8 current_result;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) u8 return_used;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) u8 scope_depth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) u8 pass_number; /* Parse pass during table load */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) u8 namespace_override; /* Override existing objects */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) u8 result_size; /* Total elements for the result stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) u8 result_count; /* Current number of occupied elements of result stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) u8 *aml;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) u32 arg_types;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) u32 method_breakpoint; /* For single stepping */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) u32 user_breakpoint; /* User AML breakpoint */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) u32 parse_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) struct acpi_parse_state parser_state; /* Current state of parser */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) u32 prev_arg_types;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) u32 arg_count; /* push for fixed or var args */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) u16 method_nesting_depth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) u8 method_is_nested;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) struct acpi_namespace_node arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) struct acpi_namespace_node local_variables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) union acpi_operand_object *operands[ACPI_OBJ_NUM_OPERANDS + 1]; /* Operands passed to the interpreter (+1 for NULL terminator) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) union acpi_operand_object **params;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) u8 *aml_last_while;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) union acpi_operand_object **caller_return_desc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) union acpi_generic_state *control_state; /* List of control states (nested IFs) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) struct acpi_namespace_node *deferred_node; /* Used when executing deferred opcodes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) union acpi_operand_object *implicit_return_obj;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) struct acpi_namespace_node *method_call_node; /* Called method Node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) union acpi_parse_object *method_call_op; /* method_call Op if running a method */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) union acpi_operand_object *method_desc; /* Method descriptor if running a method */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) struct acpi_namespace_node *method_node; /* Method node if running a method */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) char *method_pathname; /* Full pathname of running method */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) union acpi_parse_object *op; /* Current parser op */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) const struct acpi_opcode_info *op_info; /* Info on current opcode */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) union acpi_parse_object *origin; /* Start of walk [Obsolete] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) union acpi_operand_object *result_obj;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) union acpi_generic_state *results; /* Stack of accumulated results */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) union acpi_operand_object *return_desc; /* Return object, if any */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) union acpi_generic_state *scope_info; /* Stack of nested scopes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) union acpi_parse_object *prev_op; /* Last op that was processed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) union acpi_parse_object *next_op; /* next op to be processed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) struct acpi_thread_state *thread;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) acpi_parse_downwards descending_callback;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) acpi_parse_upwards ascending_callback;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) /* Info used by acpi_ns_initialize_objects and acpi_ds_initialize_objects */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) struct acpi_init_walk_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) u32 table_index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) u32 object_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) u32 method_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) u32 serial_method_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) u32 non_serial_method_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) u32 serialized_method_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) u32 device_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) u32 op_region_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) u32 field_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) u32 buffer_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) u32 package_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) u32 op_region_init;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) u32 field_init;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) u32 buffer_init;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) u32 package_init;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) acpi_owner_id owner_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) struct acpi_get_devices_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) acpi_walk_callback user_function;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) void *context;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) const char *hid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) union acpi_aml_operands {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) union acpi_operand_object *operands[7];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) struct acpi_object_integer *type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) struct acpi_object_integer *code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) struct acpi_object_integer *argument;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) } fatal;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) union acpi_operand_object *source;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) struct acpi_object_integer *index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) union acpi_operand_object *target;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) } index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) union acpi_operand_object *source;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) struct acpi_object_integer *index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) struct acpi_object_integer *length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) union acpi_operand_object *target;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) } mid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) * Structure used to pass object evaluation information and parameters.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) * Purpose is to reduce CPU stack use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) struct acpi_evaluate_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) /* The first 3 elements are passed by the caller to acpi_ns_evaluate */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) struct acpi_namespace_node *prefix_node; /* Input: starting node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) const char *relative_pathname; /* Input: path relative to prefix_node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) union acpi_operand_object **parameters; /* Input: argument list */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) struct acpi_namespace_node *node; /* Resolved node (prefix_node:relative_pathname) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) union acpi_operand_object *obj_desc; /* Object attached to the resolved node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) char *full_pathname; /* Full pathname of the resolved node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) const union acpi_predefined_info *predefined; /* Used if Node is a predefined name */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) union acpi_operand_object *return_object; /* Object returned from the evaluation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) union acpi_operand_object *parent_package; /* Used if return object is a Package */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) u32 return_flags; /* Used for return value analysis */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) u32 return_btype; /* Bitmapped type of the returned object */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) u16 param_count; /* Count of the input argument list */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) u16 node_flags; /* Same as Node->Flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) u8 pass_number; /* Parser pass number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) u8 return_object_type; /* Object type of the returned object */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) u8 flags; /* General flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) /* Values for Flags above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) #define ACPI_IGNORE_RETURN_VALUE 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) /* Defines for return_flags field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) #define ACPI_OBJECT_REPAIRED 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) #define ACPI_OBJECT_WRAPPED 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) /* Info used by acpi_ns_initialize_devices */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) struct acpi_device_walk_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) struct acpi_table_desc *table_desc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) struct acpi_evaluate_info *evaluate_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) u32 device_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) u32 num_STA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) u32 num_INI;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) /* Info used by Acpi acpi_db_display_fields */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) struct acpi_region_walk_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) u32 debug_level;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) u32 count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) acpi_owner_id owner_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) u8 display_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) u32 address_space_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) /* TBD: [Restructure] Merge with struct above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) struct acpi_walk_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) u32 debug_level;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) u32 count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) acpi_owner_id owner_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) u8 display_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) /* Display Types */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) #define ACPI_DISPLAY_SUMMARY (u8) 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) #define ACPI_DISPLAY_OBJECTS (u8) 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) #define ACPI_DISPLAY_MASK (u8) 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) #define ACPI_DISPLAY_SHORT (u8) 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) #endif