From: "Rebecca Cran" <rebecca@bsdio.com>
To: devel@edk2.groups.io, michael.d.kinney@intel.com, "Gao,
Liming" <gaoliming@byosoft.com.cn>,
"Liu, Zhiguang" <zhiguang.liu@intel.com>
Subject: Re: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__
Date: Thu, 9 Feb 2023 18:21:04 -0700 [thread overview]
Message-ID: <ef4a1a9c-a7f9-8747-3bbd-05ee7b73546c@bsdio.com> (raw)
In-Reply-To: <CO1PR11MB4929003630EB8A11ECD84469D2DE9@CO1PR11MB4929.namprd11.prod.outlook.com>
Mike,
Yes, it passed CI - see https://github.com/tianocore/edk2/pull/4022 .
I wasn't sure if we cared about EBC builds these days. Given the link on
https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html
to the compiler goes to a generic page that doesn't mention it, is it
possible to get a copy if I want to verify if changes I'm making are
compatible?
I know there was a project to add support for building EBC using LLVM,
but I'm not sure if anything came of it.
The cover letter didn't come through, since my email from
rebecca@quicinc.com is increasingly unreliable as some outgoing mail is
blocked (see my message "Changes to my email").
The cover letter that didn't come through with the patch series is:
Update MdePkg to be more C11 compliant.
We require C11 following the addition of the _Static_assert macro in
Base.h.
Fix the 32-bit enum size check to use a signed int (which is the maximum
size allowed by C11), and change the use of the pre-standard __FUNCTION__
to the C11 __func__.
Personal PR: https://github.com/tianocore/edk2/pull/4022
On 2/9/23 18:01, Michael D Kinney wrote:
> Hi Rebecca,
>
> Did this pass EDK II CI?
>
> This change does break EBC compiler builds. The following has to be added to
> MdePkg/Include/Ebc/ProcessorBind.h in order to use __func__ everywhere.
>
> #define __func__ __FUNCTION__
>
> I also see __FUNCTION__ used in many packages. I am wondering if we want
> to do this clean up if it should be its own patch series and update all
> packages in once series.
>
> Mike
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran
>> Sent: Thursday, February 9, 2023 7:45 AM
>> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Liu, Zhiguang
>> <zhiguang.liu@intel.com>
>> Cc: Rebecca Cran <rebecca@quicinc.com>
>> Subject: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__
>>
>> __FUNCTION__ is a pre-standard extension that gcc and Visual C++ among
>> others support, while __func__ was standardized in C99.
>>
>> Since it's more standard, replace __FUNCTION__ with __func__ throughout
>> MdePkg.
>>
>> Signed-off-by: Rebecca Cran <rebecca@quicinc.com>
>> ---
>> MdePkg/Include/Library/PerformanceLib.h | 12 ++++++------
>> MdePkg/Include/Library/UnitTestLib.h | 18 +++++++++---------
>> MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c | 6 +++---
>> MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c | 12 ++++++------
>> MdePkg/Library/BaseLib/SafeString.c | 2 +-
>> MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c | 4 ++--
>> MdePkg/Library/DxeRngLib/DxeRngLib.c | 14 +++++++-------
>> 7 files changed, 34 insertions(+), 34 deletions(-)
>>
>> diff --git a/MdePkg/Include/Library/PerformanceLib.h b/MdePkg/Include/Library/PerformanceLib.h
>> index 34ec956b9c0e..d0f2dfb070d5 100644
>> --- a/MdePkg/Include/Library/PerformanceLib.h
>> +++ b/MdePkg/Include/Library/PerformanceLib.h
>> @@ -526,7 +526,7 @@ LogPerformanceMeasurement (
>> #define PERF_EVENT_SIGNAL_BEGIN(EventGuid) \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __FUNCTION__ , 0, PERF_EVENTSIGNAL_START_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __func__ , 0, PERF_EVENTSIGNAL_START_ID); \
>> } \
>> } while (FALSE)
>>
>> @@ -542,7 +542,7 @@ LogPerformanceMeasurement (
>> #define PERF_EVENT_SIGNAL_END(EventGuid) \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __FUNCTION__ , 0, PERF_EVENTSIGNAL_END_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __func__ , 0, PERF_EVENTSIGNAL_END_ID); \
>> } \
>> } while (FALSE)
>>
>> @@ -558,7 +558,7 @@ LogPerformanceMeasurement (
>> #define PERF_CALLBACK_BEGIN(TriggerGuid) \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __FUNCTION__ , 0, PERF_CALLBACK_START_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __func__ , 0, PERF_CALLBACK_START_ID); \
>> } \
>> } while (FALSE)
>>
>> @@ -574,7 +574,7 @@ LogPerformanceMeasurement (
>> #define PERF_CALLBACK_END(TriggerGuid) \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __FUNCTION__ , 0, PERF_CALLBACK_END_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __func__ , 0, PERF_CALLBACK_END_ID); \
>> } \
>> } while (FALSE)
>>
>> @@ -589,7 +589,7 @@ LogPerformanceMeasurement (
>> #define PERF_FUNCTION_BEGIN() \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __FUNCTION__ , 0, PERF_FUNCTION_START_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __func__ , 0, PERF_FUNCTION_START_ID); \
>> } \
>> } while (FALSE)
>>
>> @@ -604,7 +604,7 @@ LogPerformanceMeasurement (
>> #define PERF_FUNCTION_END() \
>> do { \
>> if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
>> - LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __FUNCTION__ , 0, PERF_FUNCTION_END_ID); \
>> + LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __func__ , 0, PERF_FUNCTION_END_ID); \
>> } \
>> } while (FALSE)
>>
>> diff --git a/MdePkg/Include/Library/UnitTestLib.h b/MdePkg/Include/Library/UnitTestLib.h
>> index 71c205b1b143..321a310602d7 100644
>> --- a/MdePkg/Include/Library/UnitTestLib.h
>> +++ b/MdePkg/Include/Library/UnitTestLib.h
>> @@ -348,7 +348,7 @@ SaveFrameworkState (
>> @param[in] Expression Expression to be evaluated for TRUE.
>> **/
>> #define UT_ASSERT_TRUE(Expression) \
>> - if(!UnitTestAssertTrue ((Expression), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #Expression)) { \
>> + if(!UnitTestAssertTrue ((Expression), __func__, DEBUG_LINE_NUMBER, __FILE__, #Expression)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -360,7 +360,7 @@ SaveFrameworkState (
>> @param[in] Expression Expression to be evaluated for FALSE.
>> **/
>> #define UT_ASSERT_FALSE(Expression) \
>> - if(!UnitTestAssertFalse ((Expression), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #Expression)) { \
>> + if(!UnitTestAssertFalse ((Expression), __func__, DEBUG_LINE_NUMBER, __FILE__, #Expression)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -373,7 +373,7 @@ SaveFrameworkState (
>> @param[in] ValueB Value to be compared for equality (64-bit comparison).
>> **/
>> #define UT_ASSERT_EQUAL(ValueA, ValueB) \
>> - if(!UnitTestAssertEqual ((UINT64)(ValueA), (UINT64)(ValueB), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #ValueA, #ValueB)) { \
>> + if(!UnitTestAssertEqual ((UINT64)(ValueA), (UINT64)(ValueB), __func__, DEBUG_LINE_NUMBER, __FILE__, #ValueA, #ValueB)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -387,7 +387,7 @@ SaveFrameworkState (
>> @param[in] Length Number of bytes to compare in BufferA and BufferB.
>> **/
>> #define UT_ASSERT_MEM_EQUAL(BufferA, BufferB, Length)
>> \
>> - if(!UnitTestAssertMemEqual ((VOID *)(UINTN)(BufferA), (VOID *)(UINTN)(BufferB), (UINTN)Length, __FUNCTION__, DEBUG_LINE_NUMBER,
>> __FILE__, #BufferA, #BufferB)) { \
>> + if(!UnitTestAssertMemEqual ((VOID *)(UINTN)(BufferA), (VOID *)(UINTN)(BufferB), (UINTN)Length, __func__, DEBUG_LINE_NUMBER,
>> __FILE__, #BufferA, #BufferB)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED;
>> \
>> }
>>
>> @@ -400,7 +400,7 @@ SaveFrameworkState (
>> @param[in] ValueB Value to be compared for inequality (64-bit comparison).
>> **/
>> #define UT_ASSERT_NOT_EQUAL(ValueA, ValueB) \
>> - if(!UnitTestAssertNotEqual ((UINT64)(ValueA), (UINT64)(ValueB), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #ValueA, #ValueB)) { \
>> + if(!UnitTestAssertNotEqual ((UINT64)(ValueA), (UINT64)(ValueB), __func__, DEBUG_LINE_NUMBER, __FILE__, #ValueA, #ValueB)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -412,7 +412,7 @@ SaveFrameworkState (
>> @param[in] Status EFI_STATUS value to check.
>> **/
>> #define UT_ASSERT_NOT_EFI_ERROR(Status) \
>> - if(!UnitTestAssertNotEfiError ((Status), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #Status)) { \
>> + if(!UnitTestAssertNotEfiError ((Status), __func__, DEBUG_LINE_NUMBER, __FILE__, #Status)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -425,7 +425,7 @@ SaveFrameworkState (
>> @param[in] Expected EFI_STATUS values to compare for equality.
>> **/
>> #define UT_ASSERT_STATUS_EQUAL(Status, Expected) \
>> - if(!UnitTestAssertStatusEqual ((Status), (Expected), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #Status)) { \
>> + if(!UnitTestAssertStatusEqual ((Status), (Expected), __func__, DEBUG_LINE_NUMBER, __FILE__, #Status)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -437,7 +437,7 @@ SaveFrameworkState (
>> @param[in] Pointer Pointer to be checked against NULL.
>> **/
>> #define UT_ASSERT_NOT_NULL(Pointer) \
>> - if(!UnitTestAssertNotNull ((Pointer), __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, #Pointer)) { \
>> + if(!UnitTestAssertNotNull ((Pointer), __func__, DEBUG_LINE_NUMBER, __FILE__, #Pointer)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> }
>>
>> @@ -482,7 +482,7 @@ extern BASE_LIBRARY_JUMP_BUFFER *gUnitTestExpectAssertFailureJumpBuffer;
>> } \
>> if (!UnitTestExpectAssertFailure ( \
>> UnitTestJumpStatus, \
>> - __FUNCTION__, DEBUG_LINE_NUMBER, __FILE__, \
>> + __func__, DEBUG_LINE_NUMBER, __FILE__, \
>> #FunctionCall, Status)) { \
>> return UNIT_TEST_ERROR_TEST_FAILED; \
>> } \
>> diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c b/MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c
>> index 4c8773278c3c..617b0f4218b8 100644
>> --- a/MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c
>> +++ b/MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c
>> @@ -100,7 +100,7 @@ WriteBackInvalidateDataCache (
>> VOID
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __func__));
>> }
>>
>> /**
>> @@ -136,7 +136,7 @@ WriteBackInvalidateDataCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __func__));
>> return Address;
>> }
>>
>> @@ -191,7 +191,7 @@ WriteBackDataCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a: Not currently implemented on LoongArch.\n", __func__));
>> return Address;
>> }
>>
>> diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
>> index 67a3387ff3c6..bb26fe013d8b 100644
>> --- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
>> +++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
>> @@ -76,7 +76,7 @@ InvalidateInstructionCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> return Address;
>> }
>>
>> @@ -96,7 +96,7 @@ WriteBackInvalidateDataCache (
>> VOID
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> }
>>
>> /**
>> @@ -132,7 +132,7 @@ WriteBackInvalidateDataCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> return Address;
>> }
>>
>> @@ -152,7 +152,7 @@ WriteBackDataCache (
>> VOID
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> }
>>
>> /**
>> @@ -187,7 +187,7 @@ WriteBackDataCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> return Address;
>> }
>>
>> @@ -245,6 +245,6 @@ InvalidateDataCacheRange (
>> IN UINTN Length
>> )
>> {
>> - DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a:RISC-V unsupported function.\n", __func__));
>> return Address;
>> }
>> diff --git a/MdePkg/Library/BaseLib/SafeString.c b/MdePkg/Library/BaseLib/SafeString.c
>> index b75b33381732..954d3f8c8988 100644
>> --- a/MdePkg/Library/BaseLib/SafeString.c
>> +++ b/MdePkg/Library/BaseLib/SafeString.c
>> @@ -17,7 +17,7 @@
>> if (!(Expression)) { \
>> DEBUG ((DEBUG_VERBOSE, \
>> "%a(%d) %a: SAFE_STRING_CONSTRAINT_CHECK(%a) failed. Return %r\n", \
>> - __FILE__, DEBUG_LINE_NUMBER, __FUNCTION__, DEBUG_EXPRESSION_STRING (Expression), Status)); \
>> + __FILE__, DEBUG_LINE_NUMBER, __func__, DEBUG_EXPRESSION_STRING (Expression), Status)); \
>> return Status; \
>> } \
>> } while (FALSE)
>> diff --git a/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c
>> b/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c
>> index f47301de8982..a23113f9c91d 100644
>> --- a/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c
>> +++ b/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c
>> @@ -1416,7 +1416,7 @@ RedBlackTreeValidate (
>> CONST RED_BLACK_TREE_NODE *Last;
>> CONST RED_BLACK_TREE_NODE *Node;
>>
>> - DEBUG ((DEBUG_VERBOSE, "%a: Tree=%p\n", __FUNCTION__, Tree));
>> + DEBUG ((DEBUG_VERBOSE, "%a: Tree=%p\n", __func__, Tree));
>>
>> //
>> // property #5
>> @@ -1459,7 +1459,7 @@ RedBlackTreeValidate (
>> DEBUG ((
>> DEBUG_VERBOSE,
>> "%a: Tree=%p BlackHeight=%Ld Count=%Ld\n",
>> - __FUNCTION__,
>> + __func__,
>> Tree,
>> (INT64)BlackHeight,
>> (INT64)ForwardCount
>> diff --git a/MdePkg/Library/DxeRngLib/DxeRngLib.c b/MdePkg/Library/DxeRngLib/DxeRngLib.c
>> index 82129aa44598..46aea515924f 100644
>> --- a/MdePkg/Library/DxeRngLib/DxeRngLib.c
>> +++ b/MdePkg/Library/DxeRngLib/DxeRngLib.c
>> @@ -37,43 +37,43 @@ GenerateRandomNumberViaNist800Algorithm (
>> RngProtocol = NULL;
>>
>> if (Buffer == NULL) {
>> - DEBUG ((DEBUG_ERROR, "%a: Buffer == NULL.\n", __FUNCTION__));
>> + DEBUG ((DEBUG_ERROR, "%a: Buffer == NULL.\n", __func__));
>> return EFI_INVALID_PARAMETER;
>> }
>>
>> Status = gBS->LocateProtocol (&gEfiRngProtocolGuid, NULL, (VOID **)&RngProtocol);
>> if (EFI_ERROR (Status) || (RngProtocol == NULL)) {
>> - DEBUG ((DEBUG_ERROR, "%a: Could not locate RNG prototocol, Status = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_ERROR, "%a: Could not locate RNG prototocol, Status = %r\n", __func__, Status));
>> return Status;
>> }
>>
>> Status = RngProtocol->GetRNG (RngProtocol, &gEfiRngAlgorithmSp80090Ctr256Guid, BufferSize, Buffer);
>> - DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm CTR-256 - Status = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm CTR-256 - Status = %r\n", __func__, Status));
>> if (!EFI_ERROR (Status)) {
>> return Status;
>> }
>>
>> Status = RngProtocol->GetRNG (RngProtocol, &gEfiRngAlgorithmSp80090Hmac256Guid, BufferSize, Buffer);
>> - DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm HMAC-256 - Status = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm HMAC-256 - Status = %r\n", __func__, Status));
>> if (!EFI_ERROR (Status)) {
>> return Status;
>> }
>>
>> Status = RngProtocol->GetRNG (RngProtocol, &gEfiRngAlgorithmSp80090Hash256Guid, BufferSize, Buffer);
>> - DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm Hash-256 - Status = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm Hash-256 - Status = %r\n", __func__, Status));
>> if (!EFI_ERROR (Status)) {
>> return Status;
>> }
>>
>> // If all the other methods have failed, use the default method from the RngProtocol
>> Status = RngProtocol->GetRNG (RngProtocol, NULL, BufferSize, Buffer);
>> - DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm Hash-256 - Status = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm Hash-256 - Status = %r\n", __func__, Status));
>> if (!EFI_ERROR (Status)) {
>> return Status;
>> }
>>
>> // If we get to this point, we have failed
>> - DEBUG ((DEBUG_ERROR, "%a: GetRNG() failed, staus = %r\n", __FUNCTION__, Status));
>> + DEBUG ((DEBUG_ERROR, "%a: GetRNG() failed, staus = %r\n", __func__, Status));
>>
>> return Status;
>> }// GenerateRandomNumberViaNist800Algorithm()
>> --
>> 2.30.2
>>
>>
>>
>>
>>
>
>
>
>
>
>
next prev parent reply other threads:[~2023-02-10 1:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-09 15:45 [PATCH 1/2] MdePkg: Update Base.h to be compliant with C11 Rebecca Cran
2023-02-09 15:45 ` [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Rebecca Cran
2023-02-10 1:01 ` [edk2-devel] " Michael D Kinney
2023-02-10 1:21 ` Rebecca Cran [this message]
2023-02-10 11:45 ` Ard Biesheuvel
2023-02-10 15:19 ` Leif Lindholm
2023-02-10 18:16 ` Michael D Kinney
2023-02-12 19:59 ` Rebecca Cran
2023-03-14 2:19 ` Rebecca Cran
2023-03-14 20:40 ` Michael D Kinney
2023-03-17 13:31 ` Rebecca Cran
2023-03-17 15:16 ` Michael D Kinney
2023-03-22 16:58 ` Michael D Kinney
2023-03-22 17:45 ` Rebecca Cran
2023-03-23 0:58 ` Michael D Kinney
2023-03-23 1:43 ` Huang, Yanbo
2023-03-23 1:46 ` Rebecca Cran
2023-03-17 4:23 ` Sunil V L
2023-02-10 1:03 ` [edk2-devel] [PATCH 1/2] MdePkg: Update Base.h to be compliant with C11 Michael D Kinney
2023-02-10 1:14 ` Rebecca Cran
2023-02-10 4:15 ` Rebecca Cran
2023-03-06 16:39 ` Rebecca Cran
2023-03-10 2:45 ` 回复: " gaoliming
2023-03-10 17:58 ` Rebecca Cran
2023-03-13 17:54 ` Rebecca Cran
2023-03-13 20:46 ` Michael D Kinney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ef4a1a9c-a7f9-8747-3bbd-05ee7b73546c@bsdio.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox