Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/acpi/acconfig.h
26282 views
1
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2
/******************************************************************************
3
*
4
* Name: acconfig.h - Global configuration constants
5
*
6
* Copyright (C) 2000 - 2025, Intel Corp.
7
*
8
*****************************************************************************/
9
10
#ifndef _ACCONFIG_H
11
#define _ACCONFIG_H
12
13
/******************************************************************************
14
*
15
* Configuration options
16
*
17
*****************************************************************************/
18
19
/*
20
* ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
21
* ACPI subsystem. This includes the DEBUG_PRINT output
22
* statements. When disabled, all DEBUG_PRINT
23
* statements are compiled out.
24
*
25
* ACPI_APPLICATION - Use this switch if the subsystem is going to be run
26
* at the application level.
27
*
28
*/
29
30
/*
31
* OS name, used for the _OS object. The _OS object is essentially obsolete,
32
* but there is a large base of ASL/AML code in existing machines that check
33
* for the string below. The use of this string usually guarantees that
34
* the ASL will execute down the most tested code path. Also, there is some
35
* code that will not execute the _OSI method unless _OS matches the string
36
* below. Therefore, change this string at your own risk.
37
*/
38
#define ACPI_OS_NAME "Microsoft Windows NT"
39
40
/* Maximum objects in the various object caches */
41
42
#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
43
#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
44
#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
45
#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
46
#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
47
#define ACPI_MAX_COMMENT_CACHE_DEPTH 96 /* Comments for the -ca option */
48
49
/*
50
* Should the subsystem abort the loading of an ACPI table if the
51
* table checksum is incorrect?
52
*/
53
#ifndef ACPI_CHECKSUM_ABORT
54
#define ACPI_CHECKSUM_ABORT FALSE
55
#endif
56
57
/*
58
* Generate a version of ACPICA that only supports "reduced hardware"
59
* platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
60
* version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
61
* model. In other words, no ACPI hardware is supported.
62
*
63
* If TRUE, this means no support for the following:
64
* PM Event and Control registers
65
* SCI interrupt (and handler)
66
* Fixed Events
67
* General Purpose Events (GPEs)
68
* Global Lock
69
* ACPI PM timer
70
*/
71
#ifndef ACPI_REDUCED_HARDWARE
72
#define ACPI_REDUCED_HARDWARE FALSE
73
#endif
74
75
/******************************************************************************
76
*
77
* Subsystem Constants
78
*
79
*****************************************************************************/
80
81
/* Version of ACPI supported */
82
83
#define ACPI_CA_SUPPORT_LEVEL 5
84
85
/* Maximum count for a semaphore object */
86
87
#define ACPI_MAX_SEMAPHORE_COUNT 256
88
89
/* Maximum object reference count (detects object deletion issues) */
90
91
#define ACPI_MAX_REFERENCE_COUNT 0x4000
92
93
/* Default page size for use in mapping memory for operation regions */
94
95
#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */
96
97
/* owner_id tracking. 128 entries allows for 4095 owner_ids */
98
99
#define ACPI_NUM_OWNERID_MASKS 128
100
101
/* Size of the root table array is increased by this increment */
102
103
#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
104
105
/* Maximum sleep allowed via Sleep() operator */
106
107
#define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */
108
109
/* Address Range lists are per-space_id (Memory and I/O only) */
110
111
#define ACPI_ADDRESS_RANGE_MAX 2
112
113
/* Maximum time (default 30s) of While() loops before abort */
114
115
#define ACPI_MAX_LOOP_TIMEOUT 30
116
117
/******************************************************************************
118
*
119
* ACPI Specification constants (Do not change unless the specification changes)
120
*
121
*****************************************************************************/
122
123
/* Method info (in WALK_STATE), containing local variables and arguments */
124
125
#define ACPI_METHOD_NUM_LOCALS 8
126
#define ACPI_METHOD_MAX_LOCAL 7
127
128
#define ACPI_METHOD_NUM_ARGS 7
129
#define ACPI_METHOD_MAX_ARG 6
130
131
/*
132
* Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
133
*/
134
#define ACPI_OBJ_NUM_OPERANDS 8
135
#define ACPI_OBJ_MAX_OPERAND 7
136
137
/* Number of elements in the Result Stack frame, can be an arbitrary value */
138
139
#define ACPI_RESULTS_FRAME_OBJ_NUM 8
140
141
/*
142
* Maximal number of elements the Result Stack can contain,
143
* it may be an arbitrary value not exceeding the types of
144
* result_size and result_count (now u8).
145
*/
146
#define ACPI_RESULTS_OBJ_NUM_MAX 255
147
148
/* Constants used in searching for the RSDP in low memory */
149
150
#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
151
#define ACPI_EBDA_PTR_LENGTH 2
152
#define ACPI_EBDA_WINDOW_SIZE 1024
153
#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
154
#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
155
#define ACPI_RSDP_SCAN_STEP 16
156
157
/* Operation regions */
158
159
#define ACPI_USER_REGION_BEGIN 0x80
160
161
/* Maximum space_ids for Operation Regions */
162
163
#define ACPI_MAX_ADDRESS_SPACE 255
164
#define ACPI_NUM_DEFAULT_SPACES 4
165
166
/* Array sizes. Used for range checking also */
167
168
#define ACPI_MAX_MATCH_OPCODE 5
169
170
/* RSDP checksums */
171
172
#define ACPI_RSDP_CHECKSUM_LENGTH 20
173
#define ACPI_RSDP_XCHECKSUM_LENGTH 36
174
175
/*
176
* SMBus, GSBus and IPMI buffer sizes. All have a 2-byte header,
177
* containing both Status and Length.
178
*/
179
#define ACPI_SERIAL_HEADER_SIZE 2 /* Common for below. Status and Length fields */
180
181
#define ACPI_SMBUS_DATA_SIZE 32
182
#define ACPI_SMBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE
183
184
#define ACPI_IPMI_DATA_SIZE 64
185
#define ACPI_IPMI_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE
186
187
#define ACPI_MAX_GSBUS_DATA_SIZE 255
188
#define ACPI_MAX_GSBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE
189
190
#define ACPI_PRM_INPUT_BUFFER_SIZE 26
191
192
#define ACPI_FFH_INPUT_BUFFER_SIZE 256
193
194
/* _sx_d and _sx_w control methods */
195
196
#define ACPI_NUM_sx_d_METHODS 4
197
#define ACPI_NUM_sx_w_METHODS 5
198
199
/******************************************************************************
200
*
201
* Miscellaneous constants
202
*
203
*****************************************************************************/
204
205
/* UUID constants */
206
207
#define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */
208
#define UUID_STRING_LENGTH 36 /* Total length of a UUID string */
209
210
/* Positions for required hyphens (dashes) in UUID strings */
211
212
#define UUID_HYPHEN1_OFFSET 8
213
#define UUID_HYPHEN2_OFFSET 13
214
#define UUID_HYPHEN3_OFFSET 18
215
#define UUID_HYPHEN4_OFFSET 23
216
217
/******************************************************************************
218
*
219
* ACPI AML Debugger
220
*
221
*****************************************************************************/
222
223
#define ACPI_DEBUGGER_MAX_ARGS ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */
224
#define ACPI_DB_LINE_BUFFER_SIZE 512
225
226
#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
227
#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
228
229
#endif /* _ACCONFIG_H */
230
231