From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.70]) by mx.groups.io with SMTP id smtpd.web11.6386.1683682155050502308 for ; Tue, 09 May 2023 18:29:15 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=MbjyLvIm; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.93.70, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jWdhpjajwDcUoMkZG18VQEdPGAGOGul61/CSLgx/Nn4tUE53LjIPDIKIqJgFBFb9FAROKL4khIpEsv/jTzhNj+UQb0ZNpKq+H2IyGcU4blVQwsbpc8azouwBaLc7MGrsoK8WxkBzgUFkqVW8n1mhDWFvMAWfr3cwBgMJDGcJT0bfxUZeu0eofVDhoHfasKsajX53Bz13Ij9/puzdrR+JIkxyhzJroIxdIvZFF02d5mW7/RjKmHRLUbfZxrs2kHmpeX0vImCjRL4E+Be4Y38ZfPMj6k8C007OhWgeGjhNuqHLhJRh4KUplaLkWy95SOFBmGRLXao+pGOShfhDt7L5Pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nNtR7idKVTnQ0hmsucNDEBb3Dt3lTkdQ4uh9y5WCRAk=; b=fvrclBfsSWImyuE3OOI+D6VTCfwajE7QfD85wpViHlQmj8Ipj0P95vnkp93YKJSRfuU3wAKj01rcn9ZJ+/xIiU7PQFb30jHzUgANjFuGU09pUR305zyG7xwSIpyFXhR8rBX0Ft+nxxzkDi4Fo+vQ/LipHR67cuAxGgny11hGrJeqChKNGlsG27HoRAKnFU2EaLjM8iIN8NFJ4QBZs5tjU0awTmyuCCKu7M2GdEoaSeu6qWzkN4bMpZUSKKnpp0eO06gVoSPyGTmQz1sIhk7E9W9YJ7Q1M/wIN0diRngElzAdOpyg1gbp4UizIgzDzH34fi0+M5JUPptCI2RRQI3lGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nNtR7idKVTnQ0hmsucNDEBb3Dt3lTkdQ4uh9y5WCRAk=; b=MbjyLvIm5yMqK/t1TKfDdvA0k54ikOvFEnymMK39/cfumi++5MapZtGT+eJRwnDoFsSymXQpF9UpK7JvMT6OK6fM+heRJ8sdwmU8SzlEtwRJvtA4HgYuPAaFL4XvWJEzAmfFEEyXbW0OWL9Kjw7KoIYq9iqt3ADiYptdmuLIrn0= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CY5PR12MB6550.namprd12.prod.outlook.com (2603:10b6:930:42::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Wed, 10 May 2023 01:29:12 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::46f1:bdce:a4bc:29e3]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::46f1:bdce:a4bc:29e3%3]) with mapi id 15.20.6363.032; Wed, 10 May 2023 01:29:12 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy Subject: Re: [edk2-redfish-client][PATCH 1/6] RedfishClientPkg: Introduce Redfish event library Thread-Topic: [edk2-redfish-client][PATCH 1/6] RedfishClientPkg: Introduce Redfish event library Thread-Index: AQHZgn5gL6UOPfRhgEyAXi3pPDbHDK9SuJQw Date: Wed, 10 May 2023 01:29:12 +0000 Message-ID: References: <20230509135834.6866-1-nicklew@nvidia.com> In-Reply-To: <20230509135834.6866-1-nicklew@nvidia.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-10T01:29:09Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=60f4963b-768a-43e1-acbe-a018496a44e2; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|CY5PR12MB6550:EE_ x-ms-office365-filtering-correlation-id: 1b12741f-abe3-460d-6429-08db50f5f5ca x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FERodmpK6BX3cMc0wUJHBrAQ+BAkXDyUhOUwyjU3wYlgfEC0DFztVQWPsJKhgerVf+/X4leWr3ULwsMZopAlv1XFHlPtLEO1qJF1XKlu+VcgWVyP+9jefOlLH/0JUo+oreMxgoN/NHSpIO6WoRP7PO3OxhLJphMuy14L85WW3nXm6vNUw+4avHzuQluCk2Ib37In3sryIkrlSjlw7iebcPXcCk+mDrjVGb1vbjZksspo1un1x4bsDlEY1JLfKJkoYpMc1Elul2bSwxk2uMaiq6PWtJ7OP5yW2eezFqU37msnoGDuCo+IcUghzqgmImCKCqm7I+QmF0pN29H2EY60yi8gy9OnIc6ZkrtSaE29LyhZjNoxkJvQEOGEJ6ddQECxtbFgw8jO5N6BRKuNIid2Wm0KOKgcgl95+oOxLCfX93gBpsmadHDOQruQ9UrMbMbLr+riUEkCh/MRxddNIaRGQ6rVjojffRxYfuwqjXupE0VXlaBJe1kLGjkC3BWVGgqIQtvJ0xRYI8hsF84LAIOpPaZrq5OmjA92OwtS1pEkyZk2ccvRf5S1Cu/ITmzG02luXREFYM+8L1Ks9bECwcovDT0kybR7HCEEs3NR3gMzSPoQYEeKFUTh/a3XAv/mlLo4 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(366004)(396003)(136003)(346002)(376002)(451199021)(2906002)(86362001)(83380400001)(38070700005)(186003)(4326008)(41300700001)(66476007)(66946007)(76116006)(66446008)(64756008)(66556008)(9686003)(6506007)(26005)(53546011)(30864003)(5660300002)(33656002)(7696005)(38100700002)(52536014)(71200400001)(55016003)(122000001)(110136005)(316002)(8676002)(8936002)(478600001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?GmopZgZUOkktIvTZjLLt6W+aOvUpkNERCfye9LmNC1Mnadvfw6+eLt0bM3IT?= =?us-ascii?Q?dV4ln4Z9kMhS9NOQyr8gQQLQsH7QNDa/XOQhFUZUbzDqtP+eXM3U0dJQCk2Q?= =?us-ascii?Q?r2TnStgzsOpJpCPVSCwk5PSEGkym3s2KsjAJD3YTHLKn6TuGEkaNIAviq8gv?= =?us-ascii?Q?/4L2a5SPH6SQeG8R6YLUzC/y1GJswMXEZJ66HQL7gbJsxLEG+w0cYRnuMfVP?= =?us-ascii?Q?NVIAQj9+nGnAZl2kAHKCNcsWH/9qvMoCnckP73rH7win90jSFf2d5eR4bMGt?= =?us-ascii?Q?Ci3sykr3NbBZf3B5RVefEjGuOOty3IA3xHVntux5fhi+udVfUopPxV5mnGOE?= =?us-ascii?Q?C5M+W1YAWhIDPJbyY2caWs9jImoGZmhVAeie+HyVouyfiMKVoENGSRkBUmG7?= =?us-ascii?Q?MWmlG62ZO2PErtLRuzVbnr46juK3blGRtoZpWpum1MYrr3WPkb2c2Uoir2Ci?= =?us-ascii?Q?Nz0YQ4jWTO4WiNFykq0OJfSs6SrmEJEA5GBwBFMm52HJPz22FEXKCOJg8T1C?= =?us-ascii?Q?0dZPaINu6TFkH9Smzy8flVbljCKCvRkE4WTgJa2Lkd44FqND1eUy4nhWEdh0?= =?us-ascii?Q?WMZd4rP3o2oo7Oktd05sZxTrL3yQJtFw/3dz9cku3ogs81v270MVKtdrWLcr?= =?us-ascii?Q?R9ZEjQwkF2aB/bjs73ISmvQxX/4V1pDT70Q/Bh3pJ6LPHSfR4+ixJZkGnkof?= =?us-ascii?Q?DdKnqaOIuslSMGMJpnMcOxXQbUIWr8xGDZeAC6PEugZJ1f/4Nu3OpHDI/ZoG?= =?us-ascii?Q?wr1XBnOZtmfhZNKEYEqIHOTuB5fcbg41sTyeOsTLUBBU+X21KF67YujGcYRY?= =?us-ascii?Q?KjmPxKO+ZVsS/6HMXGI2ksWLEDHSFNzjAbtwOJ9sYNPzbkW1qleH1NaUse2L?= =?us-ascii?Q?uQPIGjxhIZWOzGHizPr+44stdqmQWI4vAz2DxC4QqLI4jhLZWGBnpXHX0oxZ?= =?us-ascii?Q?adTJ6naecqSmskfQJ+fSTzcsMvH8+KO56/vksdovSDxBrzH/hNaIQxhydUQC?= =?us-ascii?Q?RwHO8jDk6zjcNOpeRgLnD9yEwlHuNMx470X/lkRjcYW0EFY9Ir4yFwwm2gWM?= =?us-ascii?Q?jReOoffVGKeZIs3BPm+9QOGY0PfkU/+um+/D+5RtsPgAF3ESvZ6eC/9HagKq?= =?us-ascii?Q?g1qdItcGZZAUiLf8GgvPzop3TjY8q+o28goVq4K86O7LyhHZn3f3Hc09uQla?= =?us-ascii?Q?uGCXRsz4AQVVDK8BjB9bOd9Lo8dzx8f0jqFZLeTyqASZRSBDSUCvU5CmAKqe?= =?us-ascii?Q?GpDOvtmpkh369/UidiCz90OYjYDw3M2t/ZzWdfHxatnY6iZ7nbPuHH82qZev?= =?us-ascii?Q?dFJzfO0/UyIcl+AMUPwppd+H1eCaK75vNkFUK+WmMD9VUyz6Fo3Z1TjXDccn?= =?us-ascii?Q?boIGhJVJ0B2ee72JdokuAA2O20BESRaH0fH4u5QKFhyGnvlNDBIJzVFevL8O?= =?us-ascii?Q?IFtKvEJfRCvtFnsJB5H2ll3VaoM7Q/6rnA8TdK5nyVpywG+7xGOFAgku3dus?= =?us-ascii?Q?HD8jWrneBfKZjXOi5bUiYkI4pqM7xr7DlqgnlXMBVUvPbSsiq8+7KN4yVUIC?= =?us-ascii?Q?wjwrQ/VDikT8LjanU5VtNH1M3c+Ftlrnn3jb33Z5?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b12741f-abe3-460d-6429-08db50f5f5ca X-MS-Exchange-CrossTenant-originalarrivaltime: 10 May 2023 01:29:12.3382 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ngWXh5SrRCYNbwKvPfJy1QEEqq6vV/FKUpA8+ery352jE6rpfGx3S8wqGwsBcf1QFmkzUTiIrwaBVpK12s1rFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6550 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Nickle Wang > Sent: Tuesday, May 9, 2023 9:59 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > > Subject: [edk2-redfish-client][PATCH 1/6] RedfishClientPkg: Introduce Red= fish > event library >=20 > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. >=20 >=20 > Add RedfishEventLib to handle Redfish event. There are two events defined= in > this library. One is the event before feature driver provisioning and the= other one > is the event after all provisioning is finished. >=20 > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > --- > RedfishClientPkg/RedfishClientPkg.dec | 5 + > RedfishClientPkg/RedfishClientLibs.dsc.inc | 1 + > .../RedfishEventLib/RedfishEventLib.inf | 42 ++++++ > .../Include/Guid/RedfishClientEventGroup.h | 27 ++++ > .../Include/Library/RedfishEventLib.h | 77 ++++++++++ > .../Library/RedfishEventLib/RedfishEventLib.c | 138 ++++++++++++++++++ > 6 files changed, 290 insertions(+) > create mode 100644 > RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.inf > create mode 100644 RedfishClientPkg/Include/Guid/RedfishClientEventGroup= .h > create mode 100644 RedfishClientPkg/Include/Library/RedfishEventLib.h > create mode 100644 > RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.c >=20 > diff --git a/RedfishClientPkg/RedfishClientPkg.dec > b/RedfishClientPkg/RedfishClientPkg.dec > index 09df062d..39b2f5ba 100644 > --- a/RedfishClientPkg/RedfishClientPkg.dec > +++ b/RedfishClientPkg/RedfishClientPkg.dec > @@ -21,6 +21,7 @@ >=20 > [LibraryClasses] > RedfishFeatureUtilityLib|Include/Library/RedfishFeatureUtilityLib.h > + RedfishEventLib|Include/Library/RedfishEventLib.h >=20 > [LibraryClasses.Common.Private] > ## @libraryclass Redfish Helper Library @@ -39,6 +40,10 @@ > ## Include/Guid/RedfishClientPkgTokenSpace.h > gEfiRedfishClientPkgTokenSpaceGuid =3D { 0x8c444dae, 0x728b, 0x48ee= , { 0x9e, > 0x19, 0x8f, 0x0a, 0x3d, 0x4e, 0x9c, 0xc8 } } >=20 > + ## Include/Guid/RedfishClientEventGroup.h > + gEfiRedfishClientFeatureReadyToProvisioningGuid =3D { 0x77E4FC1C, 0x24= 28, > 0x47EE, { 0x9E, 0xEC, 0x8B, 0x77, 0xEF, 0x9D, 0x4E, 0xF0 } } > + gEfiRedfishClientFeatureAfterProvisioningGuid =3D { 0xE547CB6F, 0x30= 6F, > 0x4226, { 0xAB, 0x70, 0xA0, 0x6E, 0x26, 0xF1, 0x2E, 0xD0 } } > + > [PcdsFixedAtBuild] >=20 > gEfiRedfishClientPkgTokenSpaceGuid.PcdMaxRedfishSchemaStringSize|32|UINT > 32|0x10000001 >=20 > gEfiRedfishClientPkgTokenSpaceGuid.PcdMaxRedfishSchemaVersionSize|8|UIN > T32|0x10000002 > diff --git a/RedfishClientPkg/RedfishClientLibs.dsc.inc > b/RedfishClientPkg/RedfishClientLibs.dsc.inc > index 5467aced..ce1c27d8 100644 > --- a/RedfishClientPkg/RedfishClientLibs.dsc.inc > +++ b/RedfishClientPkg/RedfishClientLibs.dsc.inc > @@ -28,3 +28,4 @@ >=20 > RedfishContentCodingLib|RedfishPkg/Library/RedfishContentCodingLibNull/Re= d > fishContentCodingLibNull.inf >=20 > ConverterCommonLib|RedfishClientPkg/ConverterLib/edk2library/ConverterCo > mmonLib/ConverterCommonLib.inf >=20 > + > + RedfishEventLib|RedfishClientPkg/Library/RedfishEventLib/RedfishEventL > + ib.inf > diff --git a/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.inf > b/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.inf > new file mode 100644 > index 00000000..a9d475c2 > --- /dev/null > +++ b/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.inf > @@ -0,0 +1,42 @@ > +## @file > +# > +# (C) Copyright 2022 Hewlett Packard Enterprise Development LP
# # > +SPDX-License-Identifier: BSD-2-Clause-Patent # ## > + > +[Defines] > + INF_VERSION =3D 0x00010006 > + BASE_NAME =3D RedfishEventLib > + FILE_GUID =3D C4F7E27D-2338-43EA-9D1F-D10960E3652= 1 > + MODULE_TYPE =3D DXE_DRIVER > + VERSION_STRING =3D 1.0 > + LIBRARY_CLASS =3D RedfishEventLib| DXE_DRIVER UEFI_DR= IVER > + > +# > +# VALID_ARCHITECTURES =3D IA32 X64 EBC > +# > + > +[Sources] > + RedfishEventLib.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + RedfishPkg/RedfishPkg.dec > + RedfishClientPkg/RedfishClientPkg.dec > + > +[LibraryClasses] > + BaseLib > + DebugLib > + UefiBootServicesTableLib > + UefiLib > + > +[Protocols] > + > +[Pcd] > + > +[Guids] > + gEfiRedfishClientFeatureReadyToProvisioningGuid > + gEfiRedfishClientFeatureAfterProvisioningGuid > diff --git a/RedfishClientPkg/Include/Guid/RedfishClientEventGroup.h > b/RedfishClientPkg/Include/Guid/RedfishClientEventGroup.h > new file mode 100644 > index 00000000..07ce118e > --- /dev/null > +++ b/RedfishClientPkg/Include/Guid/RedfishClientEventGroup.h > @@ -0,0 +1,27 @@ > +/** @file > + GUID for Redfish Client Event Group GUID > + > + (C) Copyright 2022 Hewlett Packard Enterprise Development LP
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef REDFISH_CLIENT_EVENT_GROUP_GUID_H_ > +#define REDFISH_CLIENT_EVENT_GROUP_GUID_H_ > + > +#define REDFISH_CLIENT_FEATURE_READY_TO_PROVISIONING_GUID \ > + { \ > + 0x77E4FC1C, 0x2428, 0x47EE, { 0x9E, 0xEC, 0x8B, 0x77, 0xEF, 0x9D, > +0x4E, 0xF0 } \ > + } > + > +extern EFI_GUID gEfiRedfishClientFeatureReadyToProvisioningGuid; > + > +#define REDFISH_CLIENT_FEATURE_AFTER_PROVISIONING_GUID \ > + { \ > + 0xE547CB6F, 0x306F, 0x4226, { 0xAB, 0x70, 0xA0, 0x6E, 0x26, 0xF1, > +0x2E, 0xD0 } \ > + } > + > +extern EFI_GUID gEfiRedfishClientFeatureAfterProvisioningGuid; > + > +#endif > diff --git a/RedfishClientPkg/Include/Library/RedfishEventLib.h > b/RedfishClientPkg/Include/Library/RedfishEventLib.h > new file mode 100644 > index 00000000..e569ac8b > --- /dev/null > +++ b/RedfishClientPkg/Include/Library/RedfishEventLib.h > @@ -0,0 +1,77 @@ > +/** @file > + This file defines the Redfish event library interface. > + > + (C) Copyright 2022 Hewlett Packard Enterprise Development LP
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef REDFISH_EVENT_LIB_H_ > +#define REDFISH_EVENT_LIB_H_ > + > +#include > + > +/** > + Create an EFI event before Redfish provisioning start. > + > + @param NotifyFunction The notification function to call wh= en the > event is signaled. > + @param NotifyContext The content to pass to NotifyFunctio= n when > the event is signaled. > + @param ReadyToProvisioningEvent Returns the EFI event returned from > gBS->CreateEvent(Ex). > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +EFIAPI > +CreateReadyToProvisioningEvent ( > + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL > + IN VOID *NotifyContext, OPTIONAL > + OUT EFI_EVENT *ReadyToProvisioningEvent > + ); > + > +/** > + Create an EFI event after Redfish provisioning finished. > + > + @param NotifyFunction The notification function to call wh= en the > event is signaled. > + @param NotifyContext The content to pass to NotifyFunctio= n when > the event is signaled. > + @param ReadyToProvisioningEvent Returns the EFI event returned from > gBS->CreateEvent(Ex). > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +EFIAPI > +CreateAfterProvisioningEvent ( > + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL > + IN VOID *NotifyContext, OPTIONAL > + OUT EFI_EVENT *ReadyToProvisioningEvent > + ); > + > +/** > + Signal ready to provisioning event. > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +SignalReadyToProvisioningEvent ( > + IN VOID > + ); > + > +/** > + Signal after provisioning event. > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +SignalAfterProvisioningEvent ( > + IN VOID > + ); > + > +#endif > diff --git a/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.c > b/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.c > new file mode 100644 > index 00000000..b2a3db75 > --- /dev/null > +++ b/RedfishClientPkg/Library/RedfishEventLib/RedfishEventLib.c > @@ -0,0 +1,138 @@ > +/** @file > + Redfish event library to deliver Redfish specific event. > + > + (C) Copyright 2022 Hewlett Packard Enterprise Development LP
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > + > +#include > + > +#include > +#include > +#include > +#include > +#include > + > +/** > + Create an EFI event before Redfish provisioning start. > + > + @param NotifyFunction The notification function to call wh= en the > event is signaled. > + @param NotifyContext The content to pass to NotifyFunctio= n when > the event is signaled. > + @param ReadyToProvisioningEvent Returns the EFI event returned from > gBS->CreateEvent(Ex). > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +EFIAPI > +CreateReadyToProvisioningEvent ( > + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL > + IN VOID *NotifyContext, OPTIONAL > + OUT EFI_EVENT *ReadyToProvisioningEvent > + ) > +{ > + EFI_STATUS Status; > + > + Status =3D gBS->CreateEventEx ( > + EVT_NOTIFY_SIGNAL, > + TPL_CALLBACK, > + (NotifyFunction =3D=3D NULL ? EfiEventEmptyFunction : = NotifyFunction), > + NotifyContext, > + &gEfiRedfishClientFeatureReadyToProvisioningGuid, > + ReadyToProvisioningEvent > + ); > + > + return Status; > +} > + > +/** > + Create an EFI event after Redfish provisioning finished. > + > + @param NotifyFunction The notification function to call wh= en the > event is signaled. > + @param NotifyContext The content to pass to NotifyFunctio= n when > the event is signaled. > + @param ReadyToProvisioningEvent Returns the EFI event returned from > gBS->CreateEvent(Ex). > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +EFIAPI > +CreateAfterProvisioningEvent ( > + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL > + IN VOID *NotifyContext, OPTIONAL > + OUT EFI_EVENT *ReadyToProvisioningEvent > + ) > +{ > + EFI_STATUS Status; > + > + Status =3D gBS->CreateEventEx ( > + EVT_NOTIFY_SIGNAL, > + TPL_CALLBACK, > + (NotifyFunction =3D=3D NULL ? EfiEventEmptyFunction : = NotifyFunction), > + NotifyContext, > + &gEfiRedfishClientFeatureAfterProvisioningGuid, > + ReadyToProvisioningEvent > + ); > + > + return Status; > +} > + > +/** > + Signal ready to provisioning event. > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +SignalReadyToProvisioningEvent ( > + IN VOID > + ) > +{ > + EFI_STATUS Status; > + EFI_EVENT Event; > + > + Status =3D CreateReadyToProvisioningEvent (NULL, NULL, &Event); if > + (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a, failed to create after provisioning event\= n", > __FUNCTION__)); > + return Status; > + } > + > + gBS->SignalEvent (Event); > + gBS->CloseEvent (Event); > + > + return EFI_SUCCESS; > +} > + > +/** > + Signal after provisioning event. > + > + @retval EFI_SUCCESS Event was created. > + @retval Other Event was not created. > + > +**/ > +EFI_STATUS > +SignalAfterProvisioningEvent ( > + IN VOID > + ) > +{ > + EFI_STATUS Status; > + EFI_EVENT Event; > + > + Status =3D CreateAfterProvisioningEvent (NULL, NULL, &Event); if > + (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a, failed to create after provisioning event\= n", > __FUNCTION__)); > + return Status; > + } > + > + gBS->SignalEvent (Event); > + gBS->CloseEvent (Event); > + > + return EFI_SUCCESS; > +} > -- > 2.17.1