1 /******************************************************************************
2 *
3 * Name: acnamesp.h - Namespace subcomponent prototypes and defines
4 *
5 *****************************************************************************/
6
7 /*
8 * Copyright (C) 2000 - 2011, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions, and the following disclaimer,
16 * without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * substantially similar to the "NO WARRANTY" disclaimer below
19 * ("Disclaimer") and any redistribution must be conditioned upon
20 * including a substantially similar Disclaimer requirement for further
21 * binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 * of any contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
100 */
101 ACPI_STATUS
102 AcpiNsLoadNamespace (
103 void);
104
105 ACPI_STATUS
106 AcpiNsLoadTable (
107 UINT32 TableIndex,
108 ACPI_NAMESPACE_NODE *Node);
109
110
111 /*
112 * nswalk - walk the namespace
113 */
114 ACPI_STATUS
115 AcpiNsWalkNamespace (
116 ACPI_OBJECT_TYPE Type,
117 ACPI_HANDLE StartObject,
118 UINT32 MaxDepth,
119 UINT32 Flags,
120 ACPI_WALK_CALLBACK PreOrderVisit,
121 ACPI_WALK_CALLBACK PostOrderVisit,
122 void *Context,
123 void **ReturnValue);
124
125 ACPI_NAMESPACE_NODE *
126 AcpiNsGetNextNode (
127 ACPI_NAMESPACE_NODE *Parent,
128 ACPI_NAMESPACE_NODE *Child);
129
130 ACPI_NAMESPACE_NODE *
131 AcpiNsGetNextNodeTyped (
132 ACPI_OBJECT_TYPE Type,
133 ACPI_NAMESPACE_NODE *Parent,
134 ACPI_NAMESPACE_NODE *Child);
135
136 /*
137 * nsparse - table parsing
138 */
139 ACPI_STATUS
140 AcpiNsParseTable (
141 UINT32 TableIndex,
187
188 void
189 AcpiNsDeleteNamespaceByOwner (
190 ACPI_OWNER_ID OwnerId);
191
192 void
193 AcpiNsDetachObject (
194 ACPI_NAMESPACE_NODE *Node);
195
196 void
197 AcpiNsDeleteChildren (
198 ACPI_NAMESPACE_NODE *Parent);
199
200 int
201 AcpiNsCompareNames (
202 char *Name1,
203 char *Name2);
204
205
206 /*
207 * nsdump - Namespace dump/print utilities
208 */
209 void
210 AcpiNsDumpTables (
211 ACPI_HANDLE SearchBase,
212 UINT32 MaxDepth);
213
214 void
215 AcpiNsDumpEntry (
216 ACPI_HANDLE Handle,
217 UINT32 DebugLevel);
218
219 void
220 AcpiNsDumpPathname (
221 ACPI_HANDLE Handle,
222 char *Msg,
223 UINT32 Level,
224 UINT32 Component);
225
226 void
227 AcpiNsPrintPathname (
228 UINT32 NumSegments,
229 char *Pathname);
230
231 ACPI_STATUS
232 AcpiNsDumpOneObject (
233 ACPI_HANDLE ObjHandle,
234 UINT32 Level,
235 void *Context,
236 void **ReturnValue);
237
238 void
239 AcpiNsDumpObjects (
240 ACPI_OBJECT_TYPE Type,
241 UINT8 DisplayType,
242 UINT32 MaxDepth,
243 ACPI_OWNER_ID OwnerId,
244 ACPI_HANDLE StartHandle);
245
246
247 /*
248 * nseval - Namespace evaluation functions
249 */
250 ACPI_STATUS
251 AcpiNsEvaluate (
252 ACPI_EVALUATE_INFO *Info);
253
254 void
255 AcpiNsExecModuleCodeList (
256 void);
257
258
259 /*
260 * nspredef - Support for predefined/reserved names
261 */
262 ACPI_STATUS
263 AcpiNsCheckPredefinedNames (
264 ACPI_NAMESPACE_NODE *Node,
265 UINT32 UserParamCount,
266 ACPI_STATUS ReturnStatus,
267 ACPI_OPERAND_OBJECT **ReturnObject);
268
269 const ACPI_PREDEFINED_INFO *
270 AcpiNsCheckForPredefinedName (
271 ACPI_NAMESPACE_NODE *Node);
272
273 void
274 AcpiNsCheckParameterCount (
275 char *Pathname,
276 ACPI_NAMESPACE_NODE *Node,
277 UINT32 UserParamCount,
278 const ACPI_PREDEFINED_INFO *Info);
279
280
281 /*
282 * nsnames - Name and Scope manipulation
283 */
284 UINT32
285 AcpiNsOpensScope (
286 ACPI_OBJECT_TYPE Type);
287
288 ACPI_STATUS
289 AcpiNsBuildExternalPath (
290 ACPI_NAMESPACE_NODE *Node,
291 ACPI_SIZE Size,
292 char *NameBuffer);
293
294 char *
295 AcpiNsGetExternalPathname (
296 ACPI_NAMESPACE_NODE *Node);
297
298 char *
299 AcpiNsNameOfCurrentScope (
300 ACPI_WALK_STATE *WalkState);
301
344 ACPI_OBJECT_HANDLER Handler,
345 void *Data);
346
347 ACPI_STATUS
348 AcpiNsDetachData (
349 ACPI_NAMESPACE_NODE *Node,
350 ACPI_OBJECT_HANDLER Handler);
351
352 ACPI_STATUS
353 AcpiNsGetAttachedData (
354 ACPI_NAMESPACE_NODE *Node,
355 ACPI_OBJECT_HANDLER Handler,
356 void **Data);
357
358
359 /*
360 * nsrepair - General return object repair for all
361 * predefined methods/objects
362 */
363 ACPI_STATUS
364 AcpiNsRepairObject (
365 ACPI_PREDEFINED_DATA *Data,
366 UINT32 ExpectedBtypes,
367 UINT32 PackageIndex,
368 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
369
370 ACPI_STATUS
371 AcpiNsRepairPackageList (
372 ACPI_PREDEFINED_DATA *Data,
373 ACPI_OPERAND_OBJECT **ObjDescPtr);
374
375 ACPI_STATUS
376 AcpiNsRepairNullElement (
377 ACPI_PREDEFINED_DATA *Data,
378 UINT32 ExpectedBtypes,
379 UINT32 PackageIndex,
380 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
381
382 void
383 AcpiNsRemoveNullElements (
384 ACPI_PREDEFINED_DATA *Data,
385 UINT8 PackageType,
386 ACPI_OPERAND_OBJECT *ObjDesc);
387
388
389 /*
390 * nsrepair2 - Return object repair for specific
391 * predefined methods/objects
392 */
393 ACPI_STATUS
394 AcpiNsComplexRepairs (
395 ACPI_PREDEFINED_DATA *Data,
396 ACPI_NAMESPACE_NODE *Node,
397 ACPI_STATUS ValidateStatus,
398 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
399
400
401 /*
402 * nssearch - Namespace searching and entry
403 */
404 ACPI_STATUS
405 AcpiNsSearchAndEnter (
406 UINT32 EntryName,
407 ACPI_WALK_STATE *WalkState,
408 ACPI_NAMESPACE_NODE *Node,
409 ACPI_INTERPRETER_MODE InterpreterMode,
410 ACPI_OBJECT_TYPE Type,
411 UINT32 Flags,
412 ACPI_NAMESPACE_NODE **RetNode);
413
414 ACPI_STATUS
415 AcpiNsSearchOneScope (
416 UINT32 EntryName,
417 ACPI_NAMESPACE_NODE *Node,
418 ACPI_OBJECT_TYPE Type,
419 ACPI_NAMESPACE_NODE **RetNode);
420
421 void
422 AcpiNsInstallNode (
423 ACPI_WALK_STATE *WalkState,
424 ACPI_NAMESPACE_NODE *ParentNode,
425 ACPI_NAMESPACE_NODE *Node,
426 ACPI_OBJECT_TYPE Type);
427
428
429 /*
430 * nsutils - Utility functions
431 */
432 BOOLEAN
433 AcpiNsValidRootPrefix (
434 char Prefix);
435
436 ACPI_OBJECT_TYPE
437 AcpiNsGetType (
438 ACPI_NAMESPACE_NODE *Node);
439
440 UINT32
441 AcpiNsLocal (
442 ACPI_OBJECT_TYPE Type);
443
444 void
445 AcpiNsPrintNodePathname (
446 ACPI_NAMESPACE_NODE *Node,
447 const char *Msg);
448
449 ACPI_STATUS
450 AcpiNsBuildInternalName (
451 ACPI_NAMESTRING_INFO *Info);
452
453 void
454 AcpiNsGetInternalNameLength (
455 ACPI_NAMESTRING_INFO *Info);
|
1 /******************************************************************************
2 *
3 * Name: acnamesp.h - Namespace subcomponent prototypes and defines
4 *
5 *****************************************************************************/
6
7 /*
8 * Copyright (C) 2000 - 2014, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions, and the following disclaimer,
16 * without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * substantially similar to the "NO WARRANTY" disclaimer below
19 * ("Disclaimer") and any redistribution must be conditioned upon
20 * including a substantially similar Disclaimer requirement for further
21 * binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 * of any contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
100 */
101 ACPI_STATUS
102 AcpiNsLoadNamespace (
103 void);
104
105 ACPI_STATUS
106 AcpiNsLoadTable (
107 UINT32 TableIndex,
108 ACPI_NAMESPACE_NODE *Node);
109
110
111 /*
112 * nswalk - walk the namespace
113 */
114 ACPI_STATUS
115 AcpiNsWalkNamespace (
116 ACPI_OBJECT_TYPE Type,
117 ACPI_HANDLE StartObject,
118 UINT32 MaxDepth,
119 UINT32 Flags,
120 ACPI_WALK_CALLBACK DescendingCallback,
121 ACPI_WALK_CALLBACK AscendingCallback,
122 void *Context,
123 void **ReturnValue);
124
125 ACPI_NAMESPACE_NODE *
126 AcpiNsGetNextNode (
127 ACPI_NAMESPACE_NODE *Parent,
128 ACPI_NAMESPACE_NODE *Child);
129
130 ACPI_NAMESPACE_NODE *
131 AcpiNsGetNextNodeTyped (
132 ACPI_OBJECT_TYPE Type,
133 ACPI_NAMESPACE_NODE *Parent,
134 ACPI_NAMESPACE_NODE *Child);
135
136 /*
137 * nsparse - table parsing
138 */
139 ACPI_STATUS
140 AcpiNsParseTable (
141 UINT32 TableIndex,
187
188 void
189 AcpiNsDeleteNamespaceByOwner (
190 ACPI_OWNER_ID OwnerId);
191
192 void
193 AcpiNsDetachObject (
194 ACPI_NAMESPACE_NODE *Node);
195
196 void
197 AcpiNsDeleteChildren (
198 ACPI_NAMESPACE_NODE *Parent);
199
200 int
201 AcpiNsCompareNames (
202 char *Name1,
203 char *Name2);
204
205
206 /*
207 * nsconvert - Dynamic object conversion routines
208 */
209 ACPI_STATUS
210 AcpiNsConvertToInteger (
211 ACPI_OPERAND_OBJECT *OriginalObject,
212 ACPI_OPERAND_OBJECT **ReturnObject);
213
214 ACPI_STATUS
215 AcpiNsConvertToString (
216 ACPI_OPERAND_OBJECT *OriginalObject,
217 ACPI_OPERAND_OBJECT **ReturnObject);
218
219 ACPI_STATUS
220 AcpiNsConvertToBuffer (
221 ACPI_OPERAND_OBJECT *OriginalObject,
222 ACPI_OPERAND_OBJECT **ReturnObject);
223
224 ACPI_STATUS
225 AcpiNsConvertToUnicode (
226 ACPI_OPERAND_OBJECT *OriginalObject,
227 ACPI_OPERAND_OBJECT **ReturnObject);
228
229 ACPI_STATUS
230 AcpiNsConvertToResource (
231 ACPI_OPERAND_OBJECT *OriginalObject,
232 ACPI_OPERAND_OBJECT **ReturnObject);
233
234
235 /*
236 * nsdump - Namespace dump/print utilities
237 */
238 void
239 AcpiNsDumpTables (
240 ACPI_HANDLE SearchBase,
241 UINT32 MaxDepth);
242
243 void
244 AcpiNsDumpEntry (
245 ACPI_HANDLE Handle,
246 UINT32 DebugLevel);
247
248 void
249 AcpiNsDumpPathname (
250 ACPI_HANDLE Handle,
251 char *Msg,
252 UINT32 Level,
253 UINT32 Component);
254
255 void
256 AcpiNsPrintPathname (
257 UINT32 NumSegments,
258 char *Pathname);
259
260 ACPI_STATUS
261 AcpiNsDumpOneObject (
262 ACPI_HANDLE ObjHandle,
263 UINT32 Level,
264 void *Context,
265 void **ReturnValue);
266
267 void
268 AcpiNsDumpObjects (
269 ACPI_OBJECT_TYPE Type,
270 UINT8 DisplayType,
271 UINT32 MaxDepth,
272 ACPI_OWNER_ID OwnerId,
273 ACPI_HANDLE StartHandle);
274
275 void
276 AcpiNsDumpObjectPaths (
277 ACPI_OBJECT_TYPE Type,
278 UINT8 DisplayType,
279 UINT32 MaxDepth,
280 ACPI_OWNER_ID OwnerId,
281 ACPI_HANDLE StartHandle);
282
283
284 /*
285 * nseval - Namespace evaluation functions
286 */
287 ACPI_STATUS
288 AcpiNsEvaluate (
289 ACPI_EVALUATE_INFO *Info);
290
291 void
292 AcpiNsExecModuleCodeList (
293 void);
294
295
296 /*
297 * nsarguments - Argument count/type checking for predefined/reserved names
298 */
299 void
300 AcpiNsCheckArgumentCount (
301 char *Pathname,
302 ACPI_NAMESPACE_NODE *Node,
303 UINT32 UserParamCount,
304 const ACPI_PREDEFINED_INFO *Info);
305
306 void
307 AcpiNsCheckAcpiCompliance (
308 char *Pathname,
309 ACPI_NAMESPACE_NODE *Node,
310 const ACPI_PREDEFINED_INFO *Predefined);
311
312 void
313 AcpiNsCheckArgumentTypes (
314 ACPI_EVALUATE_INFO *Info);
315
316
317 /*
318 * nspredef - Return value checking for predefined/reserved names
319 */
320 ACPI_STATUS
321 AcpiNsCheckReturnValue (
322 ACPI_NAMESPACE_NODE *Node,
323 ACPI_EVALUATE_INFO *Info,
324 UINT32 UserParamCount,
325 ACPI_STATUS ReturnStatus,
326 ACPI_OPERAND_OBJECT **ReturnObject);
327
328 ACPI_STATUS
329 AcpiNsCheckObjectType (
330 ACPI_EVALUATE_INFO *Info,
331 ACPI_OPERAND_OBJECT **ReturnObjectPtr,
332 UINT32 ExpectedBtypes,
333 UINT32 PackageIndex);
334
335
336 /*
337 * nsprepkg - Validation of predefined name packages
338 */
339 ACPI_STATUS
340 AcpiNsCheckPackage (
341 ACPI_EVALUATE_INFO *Info,
342 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
343
344
345 /*
346 * nsnames - Name and Scope manipulation
347 */
348 UINT32
349 AcpiNsOpensScope (
350 ACPI_OBJECT_TYPE Type);
351
352 ACPI_STATUS
353 AcpiNsBuildExternalPath (
354 ACPI_NAMESPACE_NODE *Node,
355 ACPI_SIZE Size,
356 char *NameBuffer);
357
358 char *
359 AcpiNsGetExternalPathname (
360 ACPI_NAMESPACE_NODE *Node);
361
362 char *
363 AcpiNsNameOfCurrentScope (
364 ACPI_WALK_STATE *WalkState);
365
408 ACPI_OBJECT_HANDLER Handler,
409 void *Data);
410
411 ACPI_STATUS
412 AcpiNsDetachData (
413 ACPI_NAMESPACE_NODE *Node,
414 ACPI_OBJECT_HANDLER Handler);
415
416 ACPI_STATUS
417 AcpiNsGetAttachedData (
418 ACPI_NAMESPACE_NODE *Node,
419 ACPI_OBJECT_HANDLER Handler,
420 void **Data);
421
422
423 /*
424 * nsrepair - General return object repair for all
425 * predefined methods/objects
426 */
427 ACPI_STATUS
428 AcpiNsSimpleRepair (
429 ACPI_EVALUATE_INFO *Info,
430 UINT32 ExpectedBtypes,
431 UINT32 PackageIndex,
432 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
433
434 ACPI_STATUS
435 AcpiNsWrapWithPackage (
436 ACPI_EVALUATE_INFO *Info,
437 ACPI_OPERAND_OBJECT *OriginalObject,
438 ACPI_OPERAND_OBJECT **ObjDescPtr);
439
440 ACPI_STATUS
441 AcpiNsRepairNullElement (
442 ACPI_EVALUATE_INFO *Info,
443 UINT32 ExpectedBtypes,
444 UINT32 PackageIndex,
445 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
446
447 void
448 AcpiNsRemoveNullElements (
449 ACPI_EVALUATE_INFO *Info,
450 UINT8 PackageType,
451 ACPI_OPERAND_OBJECT *ObjDesc);
452
453
454 /*
455 * nsrepair2 - Return object repair for specific
456 * predefined methods/objects
457 */
458 ACPI_STATUS
459 AcpiNsComplexRepairs (
460 ACPI_EVALUATE_INFO *Info,
461 ACPI_NAMESPACE_NODE *Node,
462 ACPI_STATUS ValidateStatus,
463 ACPI_OPERAND_OBJECT **ReturnObjectPtr);
464
465
466 /*
467 * nssearch - Namespace searching and entry
468 */
469 ACPI_STATUS
470 AcpiNsSearchAndEnter (
471 UINT32 EntryName,
472 ACPI_WALK_STATE *WalkState,
473 ACPI_NAMESPACE_NODE *Node,
474 ACPI_INTERPRETER_MODE InterpreterMode,
475 ACPI_OBJECT_TYPE Type,
476 UINT32 Flags,
477 ACPI_NAMESPACE_NODE **RetNode);
478
479 ACPI_STATUS
480 AcpiNsSearchOneScope (
481 UINT32 EntryName,
482 ACPI_NAMESPACE_NODE *Node,
483 ACPI_OBJECT_TYPE Type,
484 ACPI_NAMESPACE_NODE **RetNode);
485
486 void
487 AcpiNsInstallNode (
488 ACPI_WALK_STATE *WalkState,
489 ACPI_NAMESPACE_NODE *ParentNode,
490 ACPI_NAMESPACE_NODE *Node,
491 ACPI_OBJECT_TYPE Type);
492
493
494 /*
495 * nsutils - Utility functions
496 */
497 ACPI_OBJECT_TYPE
498 AcpiNsGetType (
499 ACPI_NAMESPACE_NODE *Node);
500
501 UINT32
502 AcpiNsLocal (
503 ACPI_OBJECT_TYPE Type);
504
505 void
506 AcpiNsPrintNodePathname (
507 ACPI_NAMESPACE_NODE *Node,
508 const char *Msg);
509
510 ACPI_STATUS
511 AcpiNsBuildInternalName (
512 ACPI_NAMESTRING_INFO *Info);
513
514 void
515 AcpiNsGetInternalNameLength (
516 ACPI_NAMESTRING_INFO *Info);
|