summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Core/Dxe/Event/Event.c
AgeCommit message (Collapse)AuthorFilesLines
2025-10-30MdeModulePkg/Core/Dxe: Fix TPL inversion from DEBUG() messageMichael D Kinney1-4/+4
PR #11443 introduced a regression by adding a DEBUG() message when the lock for events is acquired and that lock is at TPL_HIGH_LEVEL. If DEBUG() messages are routed through Report Status Code, and the Report Status Code Protocol has not been located yet, then a call to gBS->LocateProtocol() is made and that call raises TPL to TPL_NOTIFY which causes a TPL inversion. The event lock is used to atomically update gEventSignalQueue. There is no need for the DEBUG() message to within the event lock scope. The fix is to scope the event lock to only the InsertHeadList() call to update gEventSignalQueue. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-09-16MdeModulePkg/DxeMain: Add debug code for Event Group notify functionsPhil Noh1-1/+13
There are a lot of notify callback events for Event Groups. Usually they are not reported unless there is a debug code in the callback itself. The debug message helps to check which/when the callback is registered and executed in POST. Also helps to notice the callback sequence. It depends on DEBUG_EVENT flag enabled by PcdFixedDebugPrintErrorLevel PCD token. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
2021-12-07MdeModulePkg: Apply uncrustify changesMichael Kubacki1-94/+71
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-12-07MdeModulePkg: Change OPTIONAL keyword usage styleMichael D Kinney1-9/+8
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760 Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2019-10-09MdeModulePkg: document workaround for EFI_RUNTIME_EVENT_ENTRY PI spec bugLaszlo Ersek1-0/+8
The PI spec (v1.7) correctly specifies "EFI_RUNTIME_EVENT_ENTRY.Event" in natural language, but the field type in the structure definition itself is wrong -- it should be EFI_EVENT, not (EFI_EVENT*). This spec bug is likely unfixable for compatibility reasons, and so edk2 works it around already. We should clearly document the workaround. Functionally, this patch is a no-op. (I've also requested a non-normative (informative) clarification for the PI spec: <https://mantis.uefi.org/mantis/view.php?id=2017>.) Cc: Dandan Bi <dandan.bi@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
2019-04-09MdeModulePkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney1-7/+1
https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2017-01-20MdeModulePkg: Use EfiEventEmptyFunction from UefiLibStar Zeng1-2/+2
Use EfiEventEmptyFunction from UefiLib and remove the duplication of event empty function. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=298 Cc: Feng Tian <feng.tian@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
2016-01-27MdeModulePkg DxeCore: Avoid the closed event to be signaled wronglyStar Zeng1-1/+6
Signal a closed event will still invoke the event notification function, it could only be exposed when no the DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED bit set in PcdDebugPropertyMask. For example: gBS->CreateEvent ( EVT_NOTIFY_SIGNAL, TPL_CALLBACK, CallbackFun, NULL, &Event ); gBS->CloseEvent (Event); gBS->SignalEvent (Event); <- CallbackFun still be invoked Although the case to signal a closed event is abnormal, the code could still be enhanced to avoid it. Cc: Liming Gao <liming.gao@intel.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Thomas Palmer <thomas.palmer@hpe.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19754 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-21MdeModulePkg: Remove event from protocol database only if registeredSamer El-Haj-Mahmoud1-3/+6
In a CloseEvent, an UnregisterProtocolNotify is done unconditionally. There is a penalty associated with searching the protocol database on every CloseEvent and impacts performance, especially during Network IO. Unregister needs to be done only if the Event is for a RegisterProtocolNotify. So extend the ExFlag in IEVENT to a UINT8 and define new flags that can be set to indicate if the Event is part of a group, or registered on a protocol notify. Then in CloseEvent, call UnregisterProtocolNotify only if the register protocol notify flag is set. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18517 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-071) Add type cast for better coding style.Feng Tian1-1/+1
2) replace StrCpy() usage in Variable driver with StrnCpy(). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15770 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-09The UEFI specification does not say anything when the pointers passed toOlivier Martin1-2/+12
WaitForEvent() are NULL. Passing NULL pointer would cause a segmentation fault in the current code. This change prevents to get segmentation faults in this case. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15643 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-26Return EFI_INVALID_PARAMETER when Type has either EVT_NOTIFY_SIGNAL or ↵lzeng141-3/+48
EVT_NOTIFY_WAIT set and NotifyTpl is not a supported TPL level. Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13222 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-17MdeModulePkg DXE Core: Add Idle event during BootServices WaitForEventjljusten1-3/+18
Signal an Idle event during BootServices WaitForEvent. Signed-off-by: jljusten Reviewed-by: mdkinney Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11841 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-12Correct typo in word in DxeCore.lgao41-1/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11307 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24Update the copyright notice formathhtian1-2/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10420 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-15Apply code to avoid security warnings.qhuang81-9/+7
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7279 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-21Fix several coding style violationsqhuang81-6/+6
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6163 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-23move header files in MdeModulePkg\Core\Dxe except DxeMain.h into their ↵eric_tian1-0/+1
corresponding sub-module directories. It is used to provide good modularity. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5949 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-16Merge the global data in ExecData.c to Event.ceric_tian1-34/+59
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5901 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-16Comments for CoreInitializeMemoryServices should be updatederic_tian1-1/+1
Comments for CoreInitializeGcdServices should be updated. Comments for CoreInitializeEventServices should be updated. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5899 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-27Clean up DxeCore to remove duplicate memory allocation & device path utility ↵qhuang81-1/+1
services in Library.c.DxeCore should use MemoryAllocationLib & DevicePathLib for these API. Minor cleanup the coding style: #include <DxeMain.h> should be changed to #include "DxeMain.h" since "DxeMain.h" is not pubic header fie. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5742 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-02Fix UEFI Boot Service CreateEvent() to follow UEFI Specification with ↵mdkinney1-2/+2
respect to the use of TPL_APPLICATION git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5606 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-24Code Scrub for Dxe Core.qhuang81-40/+40
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5560 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-18Code scrub for DxeCoreqhuang81-9/+5
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5520 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-21Update to fix minor coding style issues.qhuang81-6/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5256 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-21Change the file name case to follow coding style: The first character should ↵qhuang81-0/+688
be capital. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5253 6f19259b-4bc3-4df7-8a09-765794883524