This source file includes following definitions.
- acpi_ps_get_opcode_info
- acpi_ps_get_opcode_name
- acpi_ps_get_argument_count
1
2
3
4
5
6
7
8
9
10 #include <acpi/acpi.h>
11 #include "accommon.h"
12 #include "acparser.h"
13 #include "acopcode.h"
14 #include "amlcode.h"
15
16 #define _COMPONENT ACPI_PARSER
17 ACPI_MODULE_NAME("psopinfo")
18
19 static const u8 acpi_gbl_argument_count[] =
20 { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 6 };
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode)
36 {
37 #ifdef ACPI_DEBUG_OUTPUT
38 const char *opcode_name = "Unknown AML opcode";
39 #endif
40
41 ACPI_FUNCTION_NAME(ps_get_opcode_info);
42
43
44
45
46 if (!(opcode & 0xFF00)) {
47
48
49
50 return (&acpi_gbl_aml_op_info
51 [acpi_gbl_short_op_index[(u8)opcode]]);
52 }
53
54 if (((opcode & 0xFF00) == AML_EXTENDED_OPCODE) &&
55 (((u8)opcode) <= MAX_EXTENDED_OPCODE)) {
56
57
58
59 return (&acpi_gbl_aml_op_info
60 [acpi_gbl_long_op_index[(u8)opcode]]);
61 }
62 #if defined ACPI_ASL_COMPILER && defined ACPI_DEBUG_OUTPUT
63 #include "asldefine.h"
64
65 switch (opcode) {
66 case AML_RAW_DATA_BYTE:
67 opcode_name = "-Raw Data Byte-";
68 break;
69
70 case AML_RAW_DATA_WORD:
71 opcode_name = "-Raw Data Word-";
72 break;
73
74 case AML_RAW_DATA_DWORD:
75 opcode_name = "-Raw Data Dword-";
76 break;
77
78 case AML_RAW_DATA_QWORD:
79 opcode_name = "-Raw Data Qword-";
80 break;
81
82 case AML_RAW_DATA_BUFFER:
83 opcode_name = "-Raw Data Buffer-";
84 break;
85
86 case AML_RAW_DATA_CHAIN:
87 opcode_name = "-Raw Data Buffer Chain-";
88 break;
89
90 case AML_PACKAGE_LENGTH:
91 opcode_name = "-Package Length-";
92 break;
93
94 case AML_UNASSIGNED_OPCODE:
95 opcode_name = "-Unassigned Opcode-";
96 break;
97
98 case AML_DEFAULT_ARG_OP:
99 opcode_name = "-Default Arg-";
100 break;
101
102 default:
103 break;
104 }
105 #endif
106
107
108
109 ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%s [%4.4X]\n", opcode_name, opcode));
110
111 return (&acpi_gbl_aml_op_info[_UNK]);
112 }
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 const char *acpi_ps_get_opcode_name(u16 opcode)
128 {
129 #if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
130
131 const struct acpi_opcode_info *op;
132
133 op = acpi_ps_get_opcode_info(opcode);
134
135
136
137 return (op->name);
138
139 #else
140 return ("OpcodeName unavailable");
141
142 #endif
143 }
144
145
146
147
148
149
150
151
152
153
154
155
156
157 u8 acpi_ps_get_argument_count(u32 op_type)
158 {
159
160 if (op_type <= AML_TYPE_EXEC_6A_0T_1R) {
161 return (acpi_gbl_argument_count[op_type]);
162 }
163
164 return (0);
165 }
166
167
168
169
170
171 const u8 acpi_gbl_short_op_index[256] = {
172
173
174 0x00, 0x01, _UNK, _UNK, _UNK, _UNK, 0x02, _UNK,
175 0x03, _UNK, 0x04, 0x05, 0x06, 0x07, 0x6E, _UNK,
176 0x08, 0x09, 0x0a, 0x6F, 0x0b, 0x81, _UNK, _UNK,
177 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
178 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
179 _UNK, _UNK, _UNK, _UNK, _UNK, 0x63, _PFX, _PFX,
180 0x67, 0x66, 0x68, 0x65, 0x69, 0x64, 0x6A, 0x7D,
181 0x7F, 0x80, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
182 _UNK, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
183 _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
184 _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
185 _ASC, _ASC, _ASC, _UNK, _PFX, _UNK, _PFX, _ASC,
186 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
187 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, _UNK,
188 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
189 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
190 0x2b, 0x2c, 0x2d, 0x2e, 0x70, 0x71, 0x2f, 0x30,
191 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x72,
192 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x73, 0x74,
193 0x75, 0x76, _UNK, _UNK, 0x77, 0x78, 0x79, 0x7A,
194 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x60, 0x61,
195 0x62, 0x82, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
196 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
197 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
198 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
199 _UNK, _UNK, _UNK, _UNK, 0x44, _UNK, _UNK, _UNK,
200 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
201 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
202 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
203 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
204 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
205 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x45,
206 };
207
208
209
210
211
212 const u8 acpi_gbl_long_op_index[NUM_EXTENDED_OPCODE] = {
213
214
215 _UNK, 0x46, 0x47, _UNK, _UNK, _UNK, _UNK, _UNK,
216 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
217 _UNK, _UNK, 0x48, 0x49, _UNK, _UNK, _UNK, _UNK,
218 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x7B,
219 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
220 0x52, 0x53, 0x54, _UNK, _UNK, _UNK, _UNK, _UNK,
221 0x55, 0x56, 0x57, 0x7e, _UNK, _UNK, _UNK, _UNK,
222 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
223 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
224 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
225 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
226 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
227 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
228 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
229 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
230 _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
231 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
232 0x7C,
233 };