ReactOS  0.4.14-dev-317-g96040ec
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 BOOLEAN Physical 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:822
smooth NULL
Definition: ftsmooth.c:416
union acpi_operand_object * Next
Definition: acobject.h:417
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:536
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:410

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 }
#define TRUE
Definition: types.h:120
#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED
Definition: acobject.h:423
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:822
union acpi_operand_object * Next
Definition: acobject.h:417
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:536
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:410
ACPI_OBJECT_NOTIFY_COMMON CommonNotify
Definition: acobject.h:525
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
UINT32 ACPI_STATUS
Definition: actypes.h:460
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:202
const char * AcpiUtGetRegionName(UINT8 SpaceId)
Definition: utdecode.c:124
union node Node
Definition: types.h:1255
void AcpiEvDetachRegion(ACPI_OPERAND_OBJECT *RegionObj, BOOLEAN AcpiNsIsLocked)
Definition: evregion.c:360
#define ACPI_DB_OPREGION
Definition: acoutput.h:167
ACPI_OBJECT_REGION Region
Definition: acobject.h:524
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:536
ACPI_STATUS AcpiEvAttachRegion(ACPI_OPERAND_OBJECT *HandlerObj, ACPI_OPERAND_OBJECT *RegionObj, BOOLEAN AcpiNsIsLocked)
Definition: evregion.c:530
#define ACPI_TYPE_DEVICE
Definition: actypes.h:684
Status
Definition: gdiplustypes.h:24
ACPI_OPERAND_OBJECT * AcpiEvFindRegionHandler(ACPI_ADR_SPACE_TYPE SpaceId, ACPI_OPERAND_OBJECT *HandlerObj)
Definition: evhandler.c:346
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:410
ACPI_OBJECT_COMMON Common
Definition: acobject.h:516
ACPI_OBJECT_NOTIFY_COMMON CommonNotify
Definition: acobject.h:525
#define ACPI_TYPE_REGION
Definition: actypes.h:688
#define ACPI_FUNCTION_NAME(a)
Definition: acoutput.h:479
ACPI_NAMESPACE_NODE * AcpiNsValidateHandle(ACPI_HANDLE Handle)
Definition: nsutils.c:655
#define AE_OK
Definition: acexcep.h:97
Definition: dlist.c:348

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:
132  case AE_ALREADY_EXISTS:
133 
134  /* These exceptions are all OK */
135 
136  Status = AE_OK;
137  break;
138 
139  default:
140 
141  goto UnlockAndExit;
142  }
143  }
144 
145 UnlockAndExit:
148 }
#define ACPI_NUM_DEFAULT_SPACES
Definition: acconfig.h:202
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define AE_SAME_HANDLER
Definition: acexcep.h:133
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
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
ACPI_STATUS AcpiUtReleaseMutex(ACPI_MUTEX_HANDLE MutexId)
Definition: utmutex.c:348
ACPI_STATUS AcpiUtAcquireMutex(ACPI_MUTEX_HANDLE MutexId)
Definition: utmutex.c:256
unsigned int UINT32
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
smooth NULL
Definition: ftsmooth.c:416
UINT8 AcpiGbl_DefaultAddressSpaces[ACPI_NUM_DEFAULT_SPACES]
Definition: evhandler.c:66
#define AE_ALREADY_EXISTS
Definition: acexcep.h:115
#define ACPI_DEFAULT_HANDLER
Definition: actypes.h:1200
Status
Definition: gdiplustypes.h:24
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_MTX_NAMESPACE
Definition: aclocal.h:85
#define AE_OK
Definition: acexcep.h:97

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 
443  case ACPI_ADR_SPACE_CMOS:
444 
447  break;
448 
450 
453  break;
454 
456 
458  Setup = NULL;
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 
526  ObjDesc = AcpiUtCreateInternalObject (Type);
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 
572  HandlerObj->AddressSpace.SpaceId = (UINT8) SpaceId;
573  HandlerObj->AddressSpace.HandlerFlags = Flags;
574  HandlerObj->AddressSpace.RegionList = NULL;
575  HandlerObj->AddressSpace.Node = Node;
576  HandlerObj->AddressSpace.Handler = Handler;
577  HandlerObj->AddressSpace.Context = Context;
578  HandlerObj->AddressSpace.Setup = Setup;
579 
580  /* Install at head of Device.AddressSpace list */
581 
582  HandlerObj->AddressSpace.Next = ObjDesc->CommonNotify.Handler;
583 
584  /*
585  * The Device object is the first reference on the HandlerObj.
586  * Each region that uses the handler adds a reference.
587  */
588  ObjDesc->CommonNotify.Handler = HandlerObj;
589 
590  /*
591  * Walk the namespace finding all of the regions this handler will
592  * manage.
593  *
594  * Start at the device and search the branch toward the leaf nodes
595  * until either the leaf is encountered or a device is detected that
596  * has an address handler of the same type.
597  *
598  * In either case, back up and search down the remainder of the branch
599  */
602  AcpiEvInstallHandler, NULL, HandlerObj, NULL);
603 
604 UnlockAndExit:
606 }
ACPI_STATUS AcpiEvPciConfigRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:176
ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:413
#define ACPI_TYPE_THERMAL
Definition: actypes.h:691
Type
Definition: Type.h:6
#define ACPI_NS_WALK_UNLOCK
Definition: acnamesp.h:77
ACPI_STATUS AcpiExDataTableSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:543
#define AE_NO_MEMORY
Definition: acexcep.h:112
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:822
#define AE_BAD_PARAMETER
Definition: acexcep.h:151
#define AE_SAME_HANDLER
Definition: acexcep.h:133
ACPI_STATUS AcpiEvDefaultRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:508
ACPI_ADR_SPACE_SETUP Setup
Definition: acobject.h:415
#define ACPI_ADR_SPACE_DATA_TABLE
Definition: actypes.h:873
union acpi_operand_object * RegionList
Definition: acobject.h:416
UINT32 ACPI_STATUS
Definition: actypes.h:460
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
#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED
Definition: acobject.h:423
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:822
#define ACPI_ADR_SPACE_SYSTEM_IO
Definition: actypes.h:852
const char * AcpiUtGetRegionName(UINT8 SpaceId)
Definition: utdecode.c:124
union node Node
Definition: types.h:1255
smooth NULL
Definition: ftsmooth.c:416
union acpi_operand_object * Next
Definition: acobject.h:417
#define ACPI_DB_OPREGION
Definition: acoutput.h:167
#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER
Definition: actypes.h:714
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:676
ACPI_ADR_SPACE_HANDLER Handler
Definition: acobject.h:412
static ACPI_STATUS AcpiEvInstallHandler(ACPI_HANDLE ObjHandle, UINT32 Level, void *Context, void **ReturnValue)
Definition: evhandler.c:220
#define AE_ALREADY_EXISTS
Definition: acexcep.h:115
#define ACPI_DEFAULT_HANDLER
Definition: actypes.h:1200
#define ACPI_UINT32_MAX
Definition: actypes.h:66
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
ACPI_STATUS AcpiExCmosSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:469
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:536
#define ACPI_TYPE_ANY
Definition: actypes.h:678
#define ACPI_TYPE_DEVICE
Definition: actypes.h:684
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:690
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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:662
Status
Definition: gdiplustypes.h:24
ACPI_STATUS AcpiEvPciBarRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:448
ACPI_STATUS AcpiNsAttachObject(ACPI_NAMESPACE_NODE *Node, ACPI_OPERAND_OBJECT *Object, ACPI_OBJECT_TYPE Type)
Definition: nsobject.c:76
ACPI_OPERAND_OBJECT * AcpiEvFindRegionHandler(ACPI_ADR_SPACE_TYPE SpaceId, ACPI_OPERAND_OBJECT *HandlerObj)
Definition: evhandler.c:346
#define ACPI_ADR_SPACE_CMOS
Definition: actypes.h:856
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:410
ACPI_STATUS AcpiEvIoSpaceRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:136
ACPI_OBJECT_COMMON Common
Definition: acobject.h:516
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:784
#define ACPI_ADR_SPACE_PCI_CONFIG
Definition: actypes.h:853
ACPI_STATUS AcpiExPciConfigSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:388
ACPI_STATUS AcpiEvSystemMemoryRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:70
const char * AcpiUtGetNodeName(void *Object)
Definition: utdecode.c:305
ACPI_OBJECT_NOTIFY_COMMON CommonNotify
Definition: acobject.h:525
struct tagContext Context
Definition: acpixf.h:1024
#define AcpiUtCreateInternalObject(t)
Definition: acutils.h:654
#define ACPI_ADR_SPACE_SYSTEM_MEMORY
Definition: actypes.h:851
ACPI_STATUS AcpiEvCmosRegionSetup(ACPI_HANDLE Handle, UINT32 Function, void *HandlerContext, void **RegionContext)
Definition: evrgnini.c:479
ACPI_STATUS AcpiExSystemIoSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:323
unsigned char UINT8
ACPI_STATUS AcpiExSystemMemorySpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:72
#define AE_OK
Definition: acexcep.h:97
ACPI_STATUS AcpiExPciBarSpaceHandler(UINT32 Function, ACPI_PHYSICAL_ADDRESS Address, UINT32 BitWidth, UINT64 *Value, void *HandlerContext, void *RegionContext)
Definition: exregion.c:506
#define ACPI_ADR_SPACE_PCI_BAR_TARGET
Definition: actypes.h:857
Definition: dlist.c:348

Referenced by AcpiEvInstallRegionHandlers(), and AcpiInstallAddressSpaceHandler().

Variable Documentation

◆ AcpiGbl_DefaultAddressSpaces

UINT8 AcpiGbl_DefaultAddressSpaces[ACPI_NUM_DEFAULT_SPACES]
Initial value:
=
{
}
#define ACPI_ADR_SPACE_DATA_TABLE
Definition: actypes.h:873
#define ACPI_ADR_SPACE_SYSTEM_IO
Definition: actypes.h:852
#define ACPI_ADR_SPACE_PCI_CONFIG
Definition: actypes.h:853
#define ACPI_ADR_SPACE_SYSTEM_MEMORY
Definition: actypes.h:851

Definition at line 66 of file evhandler.c.

Referenced by AcpiEvInitializeOpRegions(), and AcpiEvInstallRegionHandlers().