From patchwork Tue Mar 22 17:21:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laszlo Ersek X-Patchwork-Id: 64192 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp2196336lbc; Tue, 22 Mar 2016 10:21:21 -0700 (PDT) X-Received: by 10.66.55.73 with SMTP id q9mr55929176pap.50.1458667280059; Tue, 22 Mar 2016 10:21:20 -0700 (PDT) Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id ry2si18746986pab.159.2016.03.22.10.21.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Mar 2016 10:21:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 88C3B1A1FED; Tue, 22 Mar 2016 10:21:43 -0700 (PDT) X-Original-To: edk2-devel@ml01.01.org Delivered-To: edk2-devel@ml01.01.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0088D1A1FE2 for ; Tue, 22 Mar 2016 10:21:41 -0700 (PDT) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id A2B94C00EB0F; Tue, 22 Mar 2016 17:21:17 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-74.phx2.redhat.com [10.3.113.74]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u2MHLCE1000739; Tue, 22 Mar 2016 13:21:16 -0400 From: Laszlo Ersek To: edk2-devel@ml01.01.org Date: Tue, 22 Mar 2016 18:21:04 +0100 Message-Id: <1458667268-23242-3-git-send-email-lersek@redhat.com> In-Reply-To: <1458667268-23242-1-git-send-email-lersek@redhat.com> References: <1458667268-23242-1-git-send-email-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 Subject: [edk2] [PATCH 2/6] MdePkg/UefiLib: introduce EfiEventGroupSignal X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Michael D Kinney , Jordan Justen , Liming Gao , Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" This is a small convenience function that eases signaling an event group (identified by GUID). An example where it can be used is Platform BDS signaling the End-of-DXE event group. The naming follows EfiNamedEventSignal(). The patch modifies the library class header, and updates the most commonly used library instance at once. Other library instances in the edk2 tree will be adapted in the following patches. Cc: Michael D Kinney Cc: Liming Gao Cc: Jordan Justen Cc: Ard Biesheuvel Suggested-by: Jordan Justen Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek --- MdePkg/Include/Library/UefiLib.h | 18 ++++++++ MdePkg/Library/UefiLib/UefiLib.c | 43 ++++++++++++++++++++ 2 files changed, 61 insertions(+) -- 1.8.3.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h index 4ce8dc6c059a..e8a6b8498e65 100644 --- a/MdePkg/Include/Library/UefiLib.h +++ b/MdePkg/Include/Library/UefiLib.h @@ -223,6 +223,24 @@ EfiNamedEventSignal ( IN CONST EFI_GUID *Name ); +/** + Signals an event group by placing a new event in the group temporarily and + signaling it. + + @param[in] EventGroup Supplies the unique identifier of the event + group to signal. + + @retval EFI_SUCCESS The event group was signaled successfully. + @retval EFI_INVALID_PARAMETER EventGroup is NULL. + @return Error codes that report problems about event + creation or signaling. +**/ +EFI_STATUS +EFIAPI +EfiEventGroupSignal ( + IN CONST EFI_GUID *EventGroup + ); + /** Returns the current TPL. diff --git a/MdePkg/Library/UefiLib/UefiLib.c b/MdePkg/Library/UefiLib/UefiLib.c index ba3acc1af228..96d375fb6f2e 100644 --- a/MdePkg/Library/UefiLib/UefiLib.c +++ b/MdePkg/Library/UefiLib/UefiLib.c @@ -304,6 +304,49 @@ EfiNamedEventSignal ( return Status; } +/** + Signals an event group by placing a new event in the group temporarily and + signaling it. + + @param[in] EventGroup Supplies the unique identifier of the event + group to signal. + + @retval EFI_SUCCESS The event group was signaled successfully. + @retval EFI_INVALID_PARAMETER EventGroup is NULL. + @return Error codes that report problems about event + creation or signaling. +**/ +EFI_STATUS +EFIAPI +EfiEventGroupSignal ( + IN CONST EFI_GUID *EventGroup + ) +{ + EFI_STATUS Status; + EFI_EVENT Event; + + if (EventGroup == NULL) { + return EFI_INVALID_PARAMETER; + } + + Status = gBS->CreateEventEx ( + EVT_NOTIFY_SIGNAL, + TPL_CALLBACK, + InternalEmptyFunction, + NULL, + EventGroup, + &Event + ); + if (EFI_ERROR (Status)) { + return Status; + } + + Status = gBS->SignalEvent (Event); + gBS->CloseEvent (Event); + + return Status; +} + /** Returns the current TPL.