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