Hello all,
I'm working with the DXE core event services and am not sure that the code in 
MdeModulePkg agrees with the UEFI spec.
The situation is this: in several modules I have created an event using the 
CreateEventEx() method, with an EventGroup GUID. Later, I want to signal the 
event group, but the module which does the signaling does not have any work to 
do in response to the event. It would seem that I can signal the event by doing 
as indicated in the UEFI spec:
gBS->CreateEventEx (
  0,
  0,
  NULL,
  NULL,
  &gMyEventGroupGuid,
  &Event);
gBS->SignalEvent(Event);

However, this does not work with EDKII. I see in Event.c :
if ((Event->Type & EVT_NOTIFY_SIGNAL) != 0) {
      if (Event->ExFlag) {
        //
        // The CreateEventEx() style requires all members of the Event Group
        //  to be signaled.
        //
        CoreReleaseEventLock ();
        CoreNotifySignalList (&Event->EventGroup);
        CoreAcquireEventLock ();

Which seems to indicate that the event group is only signaled if the event 
being signaled is of type EVT_NOTIFY_SIGNAL. In order to get my event group 
signaled, I must create an event with a dummy callback and give it type 
EVT_NOTIFY_SIGNAL, even though I do not have any work to do in response to the 
event.

Is this an error in MdeModulePkg's implementation? Or is the spec incomplete?

Thanks.

--
Justin Johnson
Platform Software Engineer
Dell, Inc.

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to