ReactOS 0.4.15-dev-7928-g68a8619
evhandler.c File Reference
#include "acpi.h"
#include "accommon.h"
#include "acevents.h"
#include "acnamesp.h"
#include "acinterp.h"
Include dependency graph for evhandler.c:

Go to the source code of this file.

Macros

#define _COMPONENT   ACPI_EVENTS
 

Functions

static ACPI_STATUS AcpiEvInstallHandler (ACPI_HANDLE ObjHandle, UINT32 Level, void *Context, void **ReturnValue)
 
ACPI_STATUS AcpiEvInstallRegionHandlers (void)
 
BOOLEAN AcpiEvHasDefaultHandler (ACPI_NAMESPACE_NODE *Node, ACPI_ADR_SPACE_TYPE SpaceId)
 
ACPI_OPERAND_OBJECTAcpiEvFindRegionHandler (ACPI_ADR_SPACE_TYPE SpaceId, ACPI_OPERAND_OBJECT *HandlerObj)
 
ACPI_STATUS AcpiEvInstallSpaceHandler (ACPI_NAMESPACE_NODE *Node, ACPI_ADR_SPACE_TYPE SpaceId, ACPI_ADR_SPACE_HANDLER Handler, ACPI_ADR_SPACE_SETUP Setup, void *Context)
 

Variables

UINT8 AcpiGbl_DefaultAddressSpaces [ACPI_NUM_DEFAULT_SPACES]
 

Macro Definition Documentation

◆ _COMPONENT

#define _COMPONENT   ACPI_EVENTS

Definition at line 50 of file evhandler.c.

Function Documentation

◆ AcpiEvFindRegionHandler()

ACPI_OPERAND_OBJECT * AcpiEvFindRegionHandler ( ACPI_ADR_SPACE_TYPE  SpaceId,
ACPI_OPERAND_OBJECT HandlerObj 
)

Definition at line 346 of file evhandler.c.

349{
350
351 /* Walk the handler list for this device */
352
353 while (HandlerObj)
354 {
355 /* Same SpaceId indicates a handler is installed */
356
357 if (HandlerObj->AddressSpace.SpaceId == SpaceId)
358 {
359 return (HandlerObj);
360 }
361
362 /* Next handler object */
363
364 HandlerObj = HandlerObj->AddressSpace.Next;
365 }
366
367 return (NULL);
368}
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 ACPI_GPE_HANDLER void *Context UINT32 ACPI_NOTIFY_HANDLER void *Context ACPI_ADR_SPACE_TYPE SpaceId
Definition: acpixf.h:832
#define NULL
Definition: types.h:112
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:412
union acpi_operand_object * Next
Definition: acobject.h:420
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:539

Referenced by AcpiEvInitializeRegion(), AcpiEvInstallHandler(), and AcpiEvInstallSpaceHandler().

◆ AcpiEvHasDefaultHandler()

BOOLEAN AcpiEvHasDefaultHandler ( ACPI_NAMESPACE_NODE Node,
ACPI_ADR_SPACE_TYPE  SpaceId 
)

Definition at line 166 of file evhandler.c.

169{
170 ACPI_OPERAND_OBJECT *ObjDesc;
171 ACPI_OPERAND_OBJECT *HandlerObj;
172
173
174 /* Must have an existing internal object */
175
176 ObjDesc = AcpiNsGetAttachedObject (Node);
177 if (ObjDesc)
178 {
179 HandlerObj = ObjDesc->CommonNotify.Handler;
180
181 /* Walk the linked list of handlers for this object */
182
183 while (HandlerObj)
184 {
185 if (HandlerObj->AddressSpace.SpaceId == SpaceId)
186 {
187 if (HandlerObj->AddressSpace.HandlerFlags &
189 {
190 return (TRUE);
191 }
192 }
193
194 HandlerObj = HandlerObj->AddressSpace.Next;
195 }
196 }
197
198 return (FALSE);
199}
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED
Definition: acobject.h:426
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
ACPI_OBJECT_NOTIFY_COMMON CommonNotify
Definition: acobject.h:528
Definition: dlist.c:348

Referenced by AcpiEvInitializeOpRegions().

◆ AcpiEvInstallHandler()

static ACPI_STATUS AcpiEvInstallHandler ( ACPI_HANDLE  ObjHandle,
UINT32  Level,
void Context,
void **  ReturnValue 
)
static

Definition at line 220 of file evhandler.c.

225{
226 ACPI_OPERAND_OBJECT *HandlerObj;
227 ACPI_OPERAND_OBJECT *NextHandlerObj;
228 ACPI_OPERAND_OBJECT *ObjDesc;
231
232
233 ACPI_FUNCTION_NAME (EvInstallHandler);
234
235
236 HandlerObj = (ACPI_OPERAND_OBJECT *) Context;
237
238 /* Parameter validation */
239
240 if (!HandlerObj)
241 {
242 return (AE_OK);
243 }
244
245 /* Convert and validate the device handle */
246
247 Node = AcpiNsValidateHandle (ObjHandle);
248 if (!Node)
249 {
250 return (AE_BAD_PARAMETER);
251 }
252
253 /*
254 * We only care about regions and objects that are allowed to have
255 * address space handlers
256 */
257 if ((Node->Type != ACPI_TYPE_DEVICE) &&
258 (Node->Type != ACPI_TYPE_REGION) &&
259 (Node != AcpiGbl_RootNode))
260 {
261 return (AE_OK);
262 }
263
264 /* Check for an existing internal object */
265
266 ObjDesc = AcpiNsGetAttachedObject (Node);
267 if (!ObjDesc)
268 {
269 /* No object, just exit */
270
271 return (AE_OK);
272 }
273
274 /* Devices are handled different than regions */
275
276 if (ObjDesc->Common.Type == ACPI_TYPE_DEVICE)
277 {
278 /* Check if this Device already has a handler for this address space */
279
280 NextHandlerObj = AcpiEvFindRegionHandler (
281 HandlerObj->AddressSpace.SpaceId, ObjDesc->CommonNotify.Handler);
282 if (NextHandlerObj)
283 {
284 /* Found a handler, is it for the same address space? */
285
287 "Found handler for region [%s] in device %p(%p) handler %p\n",
289 ObjDesc, NextHandlerObj, HandlerObj));
290
291 /*
292 * Since the object we found it on was a device, then it means
293 * that someone has already installed a handler for the branch
294 * of the namespace from this device on. Just bail out telling
295 * the walk routine to not traverse this branch. This preserves
296 * the scoping rule for handlers.
297 */
298 return (AE_CTRL_DEPTH);
299 }
300
301 /*
302 * As long as the device didn't have a handler for this space we
303 * don't care about it. We just ignore it and proceed.
304 */
305 return (AE_OK);
306 }
307
308 /* Object is a Region */
309
310 if (ObjDesc->Region.SpaceId != HandlerObj->AddressSpace.SpaceId)
311 {
312 /* This region is for a different address space, just ignore it */
313
314 return (AE_OK);
315 }
316
317 /*
318 * Now we have a region and it is for the handler's address space type.
319 *
320 * First disconnect region for any previous handler (if any)
321 */
322 AcpiEvDetachRegion (ObjDesc, FALSE);
323
324 /* Connect the region to the new handler */
325
326 Status = AcpiEvAttachRegion (HandlerObj, ObjDesc, FALSE);
327 return (Status);
328}
#define AE_BAD_PARAMETER
Definition: acexcep.h:151
#define AE_CTRL_DEPTH
Definition: acexcep.h:229
#define AE_OK
Definition: acexcep.h:97
ACPI_NAMESPACE_NODE * AcpiNsValidateHandle(ACPI_HANDLE Handle)
Definition: nsutils.c:655
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
#define ACPI_DB_OPREGION
Definition: acoutput.h:167
#define ACPI_FUNCTION_NAME(a)
Definition: acoutput.h:479
#define ACPI_TYPE_REGION
Definition: actypes.h:697
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_TYPE_DEVICE
Definition: actypes.h:693
const char * AcpiUtGetRegionName(UINT8 SpaceId)
Definition: utdecode.c:125
union node Node
Definition: types.h:1255
ACPI_OPERAND_OBJECT * AcpiEvFindRegionHandler(ACPI_ADR_SPACE_TYPE SpaceId, ACPI_OPERAND_OBJECT *HandlerObj)
Definition: evhandler.c:346
ACPI_STATUS AcpiEvAttachRegion(ACPI_OPERAND_OBJECT *HandlerObj, ACPI_OPERAND_OBJECT *RegionObj, BOOLEAN AcpiNsIsLocked)
Definition: evregion.c:568
void AcpiEvDetachRegion(ACPI_OPERAND_OBJECT *RegionObj, BOOLEAN AcpiNsIsLocked)
Definition: evregion.c:398
Status
Definition: gdiplustypes.h:25
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:202
ACPI_OBJECT_REGION Region
Definition: acobject.h:527
ACPI_OBJECT_COMMON Common
Definition: acobject.h:519

Referenced by AcpiEvInstallSpaceHandler().

◆ AcpiEvInstallRegionHandlers()

ACPI_STATUS AcpiEvInstallRegionHandlers ( void  )

Definition at line 88 of file evhandler.c.

90{
92 UINT32 i;
93
94
95 ACPI_FUNCTION_TRACE (EvInstallRegionHandlers);
96
97
99 if (ACPI_FAILURE (Status))
100 {
102 }
103
104 /*
105 * All address spaces (PCI Config, EC, SMBus) are scope dependent and
106 * registration must occur for a specific device.
107 *
108 * In the case of the system memory and IO address spaces there is
109 * currently no device associated with the address space. For these we
110 * use the root.
111 *
112 * We install the default PCI config space handler at the root so that
113 * this space is immediately available even though the we have not
114 * enumerated all the PCI Root Buses yet. This is to conform to the ACPI
115 * specification which states that the PCI config space must be always
116 * available -- even though we are nowhere near ready to find the PCI root
117 * buses at this point.
118 *
119 * NOTE: We ignore AE_ALREADY_EXISTS because this means that a handler
120 * has already been installed (via AcpiInstallAddressSpaceHandler).
121 * Similar for AE_SAME_HANDLER.
122 */
123 for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++)
124 {
125 Status = AcpiEvInstallSpaceHandler (AcpiGbl_RootNode,
128 switch (Status)
129 {
130 case AE_OK:
131 case AE_SAME_HANDLER:
133
134 /* These exceptions are all OK */
135
136 Status = AE_OK;
137 break;
138
139 default:
140
141 goto UnlockAndExit;
142 }
143 }
144
145UnlockAndExit:
148}
unsigned int UINT32
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
#define AE_SAME_HANDLER
Definition: acexcep.h:133
#define AE_ALREADY_EXISTS
Definition: acexcep.h:115
#define ACPI_MTX_NAMESPACE
Definition: aclocal.h:85
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_DEFAULT_HANDLER
Definition: actypes.h:1211
ACPI_STATUS AcpiUtAcquireMutex(ACPI_MUTEX_HANDLE MutexId)
Definition: utmutex.c:256
ACPI_STATUS AcpiUtReleaseMutex(ACPI_MUTEX_HANDLE MutexId)
Definition: utmutex.c:348
#define ACPI_NUM_DEFAULT_SPACES
Definition: acconfig.h:202
ACPI_STATUS AcpiEvInstallSpaceHandler(ACPI_NAMESPACE_NODE *Node, ACPI_ADR_SPACE_TYPE SpaceId, ACPI_ADR_SPACE_HANDLER Handler, ACPI_ADR_SPACE_SETUP Setup, void *Context)
Definition: evhandler.c:389
UINT8 AcpiGbl_DefaultAddressSpaces[ACPI_NUM_DEFAULT_SPACES]
Definition: evhandler.c:66
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248

Referenced by AcpiLoadTables().

◆ AcpiEvInstallSpaceHandler()

ACPI_STATUS AcpiEvInstallSpaceHandler ( ACPI_NAMESPACE_NODE Node,
ACPI_ADR_SPACE_TYPE  SpaceId,
ACPI_ADR_SPACE_HANDLER  Handler,
ACPI_ADR_SPACE_SETUP  Setup,
void Context 
)

Definition at line 389 of file evhandler.c.

395{
396 ACPI_OPERAND_OBJECT *ObjDesc;
397 ACPI_OPERAND_OBJECT *HandlerObj;
400 UINT8 Flags = 0;
401
402
403 ACPI_FUNCTION_TRACE (EvInstallSpaceHandler);
404
405
406 /*
407 * This registration is valid for only the types below and the root.
408 * The root node is where the default handlers get installed.
409 */
410 if ((Node->Type != ACPI_TYPE_DEVICE) &&
411 (Node->Type != ACPI_TYPE_PROCESSOR) &&
412 (Node->Type != ACPI_TYPE_THERMAL) &&
413 (Node != AcpiGbl_RootNode))
414 {
416 goto UnlockAndExit;
417 }
418
420 {
422
423 switch (SpaceId)
424 {
426
429 break;
430
432
435 break;
436
438
441 break;
442
444
447 break;
448
450
453 break;
454
456
459 break;
460
461 default:
462
464 goto UnlockAndExit;
465 }
466 }
467
468 /* If the caller hasn't specified a setup routine, use the default */
469
470 if (!Setup)
471 {
473 }
474
475 /* Check for an existing internal object */
476
477 ObjDesc = AcpiNsGetAttachedObject (Node);
478 if (ObjDesc)
479 {
480 /*
481 * The attached device object already exists. Now make sure
482 * the handler is not already installed.
483 */
484 HandlerObj = AcpiEvFindRegionHandler (SpaceId,
485 ObjDesc->CommonNotify.Handler);
486
487 if (HandlerObj)
488 {
489 if (HandlerObj->AddressSpace.Handler == Handler)
490 {
491 /*
492 * It is (relatively) OK to attempt to install the SAME
493 * handler twice. This can easily happen with the
494 * PCI_Config space.
495 */
497 goto UnlockAndExit;
498 }
499 else
500 {
501 /* A handler is already installed */
502
504 }
505
506 goto UnlockAndExit;
507 }
508 }
509 else
510 {
512 "Creating object on Device %p while installing handler\n",
513 Node));
514
515 /* ObjDesc does not exist, create one */
516
517 if (Node->Type == ACPI_TYPE_ANY)
518 {
520 }
521 else
522 {
523 Type = Node->Type;
524 }
525
527 if (!ObjDesc)
528 {
530 goto UnlockAndExit;
531 }
532
533 /* Init new descriptor */
534
535 ObjDesc->Common.Type = (UINT8) Type;
536
537 /* Attach the new object to the Node */
538
539 Status = AcpiNsAttachObject (Node, ObjDesc, Type);
540
541 /* Remove local reference to the object */
542
543 AcpiUtRemoveReference (ObjDesc);
544
545 if (ACPI_FAILURE (Status))
546 {
547 goto UnlockAndExit;
548 }
549 }
550
552 "Installing address handler for region %s(%X) "
553 "on Device %4.4s %p(%p)\n",
555 AcpiUtGetNodeName (Node), Node, ObjDesc));
556
557 /*
558 * Install the handler
559 *
560 * At this point there is no existing handler. Just allocate the object
561 * for the handler and link it into the list.
562 */
564 if (!HandlerObj)
565 {
567 goto UnlockAndExit;
568 }
569
570 /* Init handler obj */
571
573 if (ACPI_FAILURE (Status))
574 {
575 AcpiUtRemoveReference (HandlerObj);
576 goto UnlockAndExit;
577 }
578
579 HandlerObj->AddressSpace.SpaceId = (UINT8) SpaceId;
580 HandlerObj->AddressSpace.HandlerFlags = Flags;
581 HandlerObj->AddressSpace.RegionList = NULL;
582 HandlerObj->AddressSpace.Node = Node;
583 HandlerObj->AddressSpace.Handler = Handler;
584 HandlerObj->AddressSpace.Context = Context;
585 HandlerObj->AddressSpace.Setup = Setup;
586
587 /* Install at head of Device.AddressSpace list */
588
589 HandlerObj->AddressSpace.Next = ObjDesc->CommonNotify.Handler;
590
591 /*
592 * The Device object is the first reference on the HandlerObj.
593 * Each region that uses the handler adds a reference.
594 */
595 ObjDesc->CommonNotify.Handler = HandlerObj;
596
597 /*
598 * Walk the namespace finding all of the regions this handler will
599 * manage.
600 *
601 * Start at the device and search the branch toward the leaf nodes
602 * until either the leaf is encountered or a device is detected that
603 * has an address handler of the same type.
604 *
605 * In either case, back up and search down the remainder of the branch
606 */
609 AcpiEvInstallHandler, NULL, HandlerObj, NULL);
610
611UnlockAndExit:
613}
unsigned char UINT8
Type
Definition: Type.h:7
#define AE_NO_MEMORY
Definition: acexcep.h:112
#define ACPI_NS_WALK_UNLOCK
Definition: acnamesp.h:77
ACPI_STATUS AcpiNsAttachObject(ACPI_NAMESPACE_NODE *Node, ACPI_OPERAND_OBJECT *Object, ACPI_OBJECT_TYPE Type)
Definition: nsobject.c:76
ACPI_STATUS AcpiNsWalkNamespace(ACPI_OBJECT_TYPE Type, ACPI_HANDLE StartObject, UINT32 MaxDepth, UINT32 Flags, ACPI_WALK_CALLBACK DescendingCallback, ACPI_WALK_CALLBACK AscendingCallback, void *Context, void **ReturnValue)
Definition: nswalk.c:190
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 ACPI_GPE_HANDLER void *Context UINT32 ACPI_NOTIFY_HANDLER void *Context ACPI_ADR_SPACE_TYPE ACPI_ADR_SPACE_HANDLER ACPI_ADR_SPACE_SETUP Setup
Definition: acpixf.h:834
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
Definition: acpixf.h:672
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:699
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:685
#define ACPI_ADR_SPACE_SYSTEM_IO
Definition: actypes.h:862
#define ACPI_ADR_SPACE_SYSTEM_MEMORY
Definition: actypes.h:861
#define ACPI_TYPE_ANY
Definition: actypes.h:687
#define ACPI_ADR_SPACE_PCI_CONFIG
Definition: actypes.h:863
#define ACPI_ADR_SPACE_DATA_TABLE
Definition: actypes.h:884
#define ACPI_UINT32_MAX
Definition: actypes.h:66
#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER
Definition: actypes.h:723
#define ACPI_ADR_SPACE_PCI_BAR_TARGET
Definition: actypes.h:867
#define AcpiOsCreateMutex(OutHandle)
Definition: actypes.h:274
#define ACPI_TYPE_THERMAL
Definition: actypes.h:700
#define ACPI_ADR_SPACE_CMOS
Definition: actypes.h:866
#define AcpiUtCreateInternalObject(t)
Definition: acutils.h:681
const char * AcpiUtGetNodeName(void *Object)
Definition: utdecode.c:306
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:790
static ACPI_STATUS AcpiEvInstallHandler(ACPI_HANDLE ObjHandle, UINT32 Level, void *Context, void **ReturnValue)
Definition: evhandler.c:220
ACPI_STATUS AcpiEvPciConfigRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:179
ACPI_STATUS AcpiEvDefaultRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:568
ACPI_STATUS AcpiEvPciBarRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:450
ACPI_STATUS AcpiEvCmosRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:481
ACPI_STATUS AcpiEvIoSpaceRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:139
ACPI_STATUS AcpiEvDataTableRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:512
ACPI_STATUS AcpiEvSystemMemoryRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:70
ACPI_STATUS AcpiExSystemMemorySpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:72
ACPI_STATUS AcpiExPciBarSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:542
ACPI_STATUS AcpiExCmosSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:505
ACPI_STATUS AcpiExDataTableSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:579
ACPI_STATUS AcpiExPciConfigSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:424
ACPI_STATUS AcpiExSystemIoSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:359
union acpi_operand_object * RegionList
Definition: acobject.h:419
ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:415
ACPI_ADR_SPACE_HANDLER Handler
Definition: acobject.h:414
ACPI_MUTEX ContextMutex
Definition: acobject.h:417
ACPI_ADR_SPACE_SETUP Setup
Definition: acobject.h:418
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Referenced by AcpiEvInstallRegionHandlers(), and AcpiInstallAddressSpaceHandler().

Variable Documentation

◆ AcpiGbl_DefaultAddressSpaces