public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrew Fish" <afish@apple.com>
To: devel@edk2.groups.io, ray.ni@intel.com
Cc: "lersek@redhat.com" <lersek@redhat.com>,
	Achin Gupta <achin.gupta@arm.com>,
	Anthony Perard <anthony.perard@citrix.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"You, Benjamin" <benjamin.you@intel.com>,
	"Zhang, Chao B" <chao.b.zhang@intel.com>,
	"Bi, Dandan" <dandan.bi@intel.com>,
	David Woodhouse <dwmw2@infradead.org>,
	"Dong, Eric" <eric.dong@intel.com>,
	"Dong, Guo" <guo.dong@intel.com>,
	"Wu, Hao A" <hao.a.wu@intel.com>,
	"Carsey, Jaben" <jaben.carsey@intel.com>,
	"Wang, Jian J" <jian.j.wang@intel.com>,
	"Wu, Jiaxin" <jiaxin.wu@intel.com>,
	"Yao, Jiewen" <jiewen.yao@intel.com>,
	Jordan Justen <jordan.l.justen@intel.com>,
	Julien Grall <julien.grall@arm.com>,
	Leif Lindholm <leif.lindholm@linaro.org>,
	"Gao, Liming" <liming.gao@intel.com>,
	"Ma, Maurice" <maurice.ma@intel.com>,
	Mike Kinney <michael.d.kinney@intel.com>,
	"Fu, Siyuan" <siyuan.fu@intel.com>,
	Supreeth Venkatesh <supreeth.venkatesh@arm.com>,
	"Gao, Zhichao" <zhichao.gao@intel.com>
Subject: Re: [edk2-devel] [PATCH 01/35] DO NOT APPLY: edk2: turn standard handle types into pointers to non-VOID
Date: Tue, 17 Sep 2019 14:07:07 -0700	[thread overview]
Message-ID: <FCF42577-4086-4842-8241-7AE3EB2A8D1A@apple.com> (raw)
In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C2E3DBB@SHSMSX104.ccr.corp.intel.com>



> On Sep 17, 2019, at 1:28 PM, Ni, Ray <ray.ni@intel.com> wrote:
> 
> Andrew,
> I agree. Your solution is like "use strict;" in Perl language. (https://perldoc.perl.org/strict.html)
> Maybe "STRICT_UEFI_TYPES" without "ER". I don't see any strict in today's code. 😊
> 

Ray,

I'm flexible on the name, I was just trying to give a good example of what I was suggesting. 

Thanks,

Andrew Fish

> Thanks,
> Ray
> 
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Andrew Fish via Groups.Io
>> Sent: Tuesday, September 17, 2019 1:22 PM
>> To: Ni, Ray <ray.ni@intel.com>
>> Cc: devel@edk2.groups.io; lersek@redhat.com; Achin Gupta <achin.gupta@arm.com>; Anthony Perard
>> <anthony.perard@citrix.com>; Ard Biesheuvel <ard.biesheuvel@linaro.org>; You, Benjamin <benjamin.you@intel.com>;
>> Zhang, Chao B <chao.b.zhang@intel.com>; Bi, Dandan <dandan.bi@intel.com>; David Woodhouse
>> <dwmw2@infradead.org>; Dong, Eric <eric.dong@intel.com>; Dong, Guo <guo.dong@intel.com>; Wu, Hao A
>> <hao.a.wu@intel.com>; Carsey, Jaben <jaben.carsey@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Wu, Jiaxin
>> <jiaxin.wu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>; Julien Grall
>> <julien.grall@arm.com>; Leif Lindholm <leif.lindholm@linaro.org>; Gao, Liming <liming.gao@intel.com>; Ma, Maurice
>> <maurice.ma@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Supreeth
>> Venkatesh <supreeth.venkatesh@arm.com>; Gao, Zhichao <zhichao.gao@intel.com>
>> Subject: Re: [edk2-devel] [PATCH 01/35] DO NOT APPLY: edk2: turn standard handle types into pointers to non-VOID
>> 
>> 
>> 
>>> On Sep 17, 2019, at 1:06 PM, Ni, Ray <ray.ni@intel.com> wrote:
>>> 
>>> Laszlo,
>>> Thank you very much for this work.
>>> They are quite helpful to detect potential issues.
>>> 
>>> But without this specific patch being checked in, future break will still happen.
>>> I don't want it to be checked in ASAP because I know that there are quite a lot of close source code that may get build
>> break due to this change.
>>> Besides that, what prevent you make the decision to check in the changes?
>>> 
>> 
>> Ray,
>> 
>> I was thinking the same thing. Could we make this an optional feature via a #define? We could always default to the Spec
>> Behavior, and new projects could opt into the stricter version.
>> 
>> #ifndef STRICTER_UEFI_TYPES
>> typedef VOID    *EFI_PEI_FV_HANDLE;
>> #else
>> struct EFI_PEI_FV_OBJECT;
>> typedef struct EFI_PEI_FV_OBJECT *EFI_PEI_FV_HANDLE;
>> #endif
>> 
>> Thanks,
>> 
>> Andrew Fish
>> 
>>> Thanks,
>>> Ray
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Laszlo Ersek
>>>> Sent: Tuesday, September 17, 2019 12:49 PM
>>>> To: edk2-devel-groups-io <devel@edk2.groups.io>
>>>> Cc: Achin Gupta <achin.gupta@arm.com>; Andrew Fish <afish@apple.com>; Anthony Perard
>> <anthony.perard@citrix.com>;
>>>> Ard Biesheuvel <ard.biesheuvel@linaro.org>; You, Benjamin <benjamin.you@intel.com>; Zhang, Chao B
>>>> <chao.b.zhang@intel.com>; Bi, Dandan <dandan.bi@intel.com>; David Woodhouse <dwmw2@infradead.org>; Dong,
>> Eric
>>>> <eric.dong@intel.com>; Dong, Guo <guo.dong@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Carsey, Jaben
>>>> <jaben.carsey@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Wu, Jiaxin <jiaxin.wu@intel.com>; Yao, Jiewen
>>>> <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>; Julien Grall <julien.grall@arm.com>; Leif
>> Lindholm
>>>> <leif.lindholm@linaro.org>; Gao, Liming <liming.gao@intel.com>; Ma, Maurice <maurice.ma@intel.com>; Kinney,
>> Michael
>>>> D <michael.d.kinney@intel.com>; Ni, Ray <ray.ni@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Supreeth Venkatesh
>>>> <supreeth.venkatesh@arm.com>; Gao, Zhichao <zhichao.gao@intel.com>
>>>> Subject: [edk2-devel] [PATCH 01/35] DO NOT APPLY: edk2: turn standard handle types into pointers to non-VOID
>>>> 
>>>> Unfortunately, the UEFI / PI / Shell specs define a number of handle types
>>>> as pointers to VOID. This is a design mistake; those types should have
>>>> been pointers to incomplete union or structure types. Any
>>>> pointer-to-object type converts implicitly to, and from, pointer-to-void,
>>>> which prevents compilers from catching at least the following two types of
>>>> mistakes:
>>>> 
>>>> - mixing up one handle type with another (for example, EFI_HANDLE with
>>>> EFI_EVENT),
>>>> 
>>>> - getting the depth of indirection wrong (for example, mixing up
>>>> (EFI_HANDLE*) with EFI_HANDLE).
>>>> 
>>>> In order to root out such mistakes in the edk2 codebase, introduce
>>>> incomplete structure types with unique tags, such as:
>>>> 
>>>> struct EFI_FOOBAR_OBJECT;
>>>> typedef struct EFI_FOOBAR_OBJECT *EFI_FOOBAR_HANDLE;
>>>> 
>>>> replacing the spec mandated
>>>> 
>>>> typedef VOID *EFI_FOOBAR_HANDLE;
>>>> 
>>>> (For some types, such as:
>>>> 
>>>> - EFI_ACPI_HANDLE,
>>>> - EFI_EVENT,
>>>> - EFI_FONT_HANDLE,
>>>> - EFI_HANDLE,
>>>> - EFI_HII_HANDLE,
>>>> - EFI_S3_BOOT_SCRIPT_POSITION,
>>>> - SHELL_FILE_HANDLE,
>>>> 
>>>> we connect the actual complete type (the internal, implementation-specific
>>>> type) to the typedef. Some of these also demonstrate how the code could
>>>> have looked in practice if the specs had used proper opaque (=incomplete)
>>>> types.)
>>>> 
>>>> Then, unleash "build" on the package DSC files. This causes the compiler
>>>> to warn about incompatible pointer assignments, and to stop the build.
>>>> 
>>>> The rest of the series addresses the resultant warnings. Each patch
>>>> belongs in one of two categories:
>>>> 
>>>> - semantic cleanups (no functional / behavioral changes),
>>>> - actual bugfixes.
>>>> 
>>>> As the subject line of this patch states, this specific patch is *not*
>>>> meant to be applied. It is just a "what if" patch that temporarily
>>>> isolates the standard types from each other, the way the specs should
>>>> have, so that the compiler have more information to work with.
>>>> 
>>>> Cc: Achin Gupta <achin.gupta@arm.com>
>>>> Cc: Andrew Fish <afish@apple.com>
>>>> Cc: Anthony Perard <anthony.perard@citrix.com>
>>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>>> Cc: Benjamin You <benjamin.you@intel.com>
>>>> Cc: Chao Zhang <chao.b.zhang@intel.com>
>>>> Cc: Dandan Bi <dandan.bi@intel.com>
>>>> Cc: David Woodhouse <dwmw2@infradead.org>
>>>> Cc: Eric Dong <eric.dong@intel.com>
>>>> Cc: Guo Dong <guo.dong@intel.com>
>>>> Cc: Hao A Wu <hao.a.wu@intel.com>
>>>> Cc: Jaben Carsey <jaben.carsey@intel.com>
>>>> Cc: Jian J Wang <jian.j.wang@intel.com>
>>>> Cc: Jian Wang <jian.j.wang@intel.com>
>>>> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
>>>> Cc: Jiewen Yao <jiewen.yao@intel.com>
>>>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>>>> Cc: Julien Grall <julien.grall@arm.com>
>>>> Cc: Leif Lindholm <leif.lindholm@linaro.org>
>>>> Cc: Liming Gao <liming.gao@intel.com>
>>>> Cc: Maurice Ma <maurice.ma@intel.com>
>>>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>>>> Cc: Ray Ni <ray.ni@intel.com>
>>>> Cc: Siyuan Fu <siyuan.fu@intel.com>
>>>> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
>>>> Cc: Zhichao Gao <zhichao.gao@intel.com>
>>>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>>>> ---
>>>> MdePkg/Include/Pi/PiPeiCis.h                         | 6 ++++--
>>>> MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h | 3 ++-
>>>> MdePkg/Include/Protocol/Bis.h                        | 3 ++-
>>>> MdePkg/Include/Protocol/Eap.h                        | 3 ++-
>>>> MdePkg/Include/Protocol/HiiFont.h                    | 3 +--
>>>> MdePkg/Include/Protocol/MmMp.h                       | 3 ++-
>>>> MdePkg/Include/Protocol/S3SaveState.h                | 2 +-
>>>> MdePkg/Include/Protocol/Shell.h                      | 3 ++-
>>>> MdePkg/Include/Protocol/UserManager.h                | 9 ++++++---
>>>> MdePkg/Include/Uefi/UefiBaseType.h                   | 6 ++++--
>>>> MdePkg/Include/Uefi/UefiInternalFormRepresentation.h | 3 ++-
>>>> MdeModulePkg/Core/Dxe/Event/Event.h                  | 2 +-
>>>> MdeModulePkg/Core/Dxe/Hand/Handle.h                  | 2 +-
>>>> MdeModulePkg/Core/PiSmmCore/PiSmmCore.h              | 2 +-
>>>> MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h   | 2 +-
>>>> MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h  | 2 +-
>>>> StandaloneMmPkg/Core/StandaloneMmCore.h              | 2 +-
>>>> 17 files changed, 34 insertions(+), 22 deletions(-)
>>>> 
>>>> diff --git a/MdePkg/Include/Pi/PiPeiCis.h b/MdePkg/Include/Pi/PiPeiCis.h
>>>> index d9d4ed7d413a..3e9e82b62ae9 100644
>>>> --- a/MdePkg/Include/Pi/PiPeiCis.h
>>>> +++ b/MdePkg/Include/Pi/PiPeiCis.h
>>>> @@ -18,12 +18,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>>>> ///
>>>> /// The handles of EFI FV.
>>>> ///
>>>> -typedef VOID    *EFI_PEI_FV_HANDLE;
>>>> +struct EFI_PEI_FV_OBJECT;
>>>> +typedef struct EFI_PEI_FV_OBJECT *EFI_PEI_FV_HANDLE;
>>>> 
>>>> ///
>>>> /// The handles of EFI FFS.
>>>> ///
>>>> -typedef VOID    *EFI_PEI_FILE_HANDLE;
>>>> +struct EFI_PEI_FILE_OBJECT;
>>>> +typedef struct EFI_PEI_FILE_OBJECT *EFI_PEI_FILE_HANDLE;
>>>> 
>>>> ///
>>>> /// Declare the forward reference data structure for EFI_PEI_SERVICE.
>>>> diff --git a/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
>>>> b/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
>>>> index a8e0b24c6c8d..8a1863f3e03d 100644
>>>> --- a/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
>>>> +++ b/MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h
>>>> @@ -16,7 +16,8 @@
>>>>  { 0xeb97088e, 0xcfdf, 0x49c6, { 0xbe, 0x4b, 0xd9, 0x6, 0xa5, 0xb2, 0xe, 0x86 }}
>>>> 
>>>> typedef UINT32  EFI_ACPI_TABLE_VERSION;
>>>> -typedef VOID    *EFI_ACPI_HANDLE;
>>>> +struct EFI_ACPI_OBJECT;
>>>> +typedef struct EFI_ACPI_OBJECT *EFI_ACPI_HANDLE;
>>>> 
>>>> #define EFI_ACPI_TABLE_VERSION_NONE (1 << 0)
>>>> #define EFI_ACPI_TABLE_VERSION_1_0B (1 << 1)
>>>> diff --git a/MdePkg/Include/Protocol/Bis.h b/MdePkg/Include/Protocol/Bis.h
>>>> index 2be6718f4bc2..8eca94512d03 100644
>>>> --- a/MdePkg/Include/Protocol/Bis.h
>>>> +++ b/MdePkg/Include/Protocol/Bis.h
>>>> @@ -37,7 +37,8 @@ typedef struct _EFI_BIS_PROTOCOL  EFI_BIS_PROTOCOL;
>>>> //
>>>> // Basic types
>>>> //
>>>> -typedef VOID    *BIS_APPLICATION_HANDLE;
>>>> +struct BIS_APPLICATION_OBJECT;
>>>> +typedef struct BIS_APPLICATION_OBJECT *BIS_APPLICATION_HANDLE;
>>>> typedef UINT16  BIS_ALG_ID;
>>>> typedef UINT32  BIS_CERT_ID;
>>>> 
>>>> diff --git a/MdePkg/Include/Protocol/Eap.h b/MdePkg/Include/Protocol/Eap.h
>>>> index 203d0f40b0dd..06584ef409d0 100644
>>>> --- a/MdePkg/Include/Protocol/Eap.h
>>>> +++ b/MdePkg/Include/Protocol/Eap.h
>>>> @@ -28,7 +28,8 @@ typedef struct _EFI_EAP_PROTOCOL EFI_EAP_PROTOCOL;
>>>> /// Type for the identification number assigned to the Port by the
>>>> /// System in which the Port resides.
>>>> ///
>>>> -typedef VOID *  EFI_PORT_HANDLE;
>>>> +struct EFI_PORT_OBJECT;
>>>> +typedef struct EFI_PORT_OBJECT *EFI_PORT_HANDLE;
>>>> 
>>>> ///
>>>> /// EAP Authentication Method Type (RFC 3748)
>>>> diff --git a/MdePkg/Include/Protocol/HiiFont.h b/MdePkg/Include/Protocol/HiiFont.h
>>>> index 1f2e321ea4e2..450cad9ada70 100644
>>>> --- a/MdePkg/Include/Protocol/HiiFont.h
>>>> +++ b/MdePkg/Include/Protocol/HiiFont.h
>>>> @@ -19,8 +19,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>>>> { 0xe9ca4775, 0x8657, 0x47fc, { 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 } }
>>>> 
>>>> typedef struct _EFI_HII_FONT_PROTOCOL EFI_HII_FONT_PROTOCOL;
>>>> -
>>>> -typedef VOID    *EFI_FONT_HANDLE;
>>>> +typedef LIST_ENTRY *EFI_FONT_HANDLE;
>>>> 
>>>> ///
>>>> /// EFI_HII_OUT_FLAGS.
>>>> diff --git a/MdePkg/Include/Protocol/MmMp.h b/MdePkg/Include/Protocol/MmMp.h
>>>> index beace1386cbe..cd4e0db47e08 100644
>>>> --- a/MdePkg/Include/Protocol/MmMp.h
>>>> +++ b/MdePkg/Include/Protocol/MmMp.h
>>>> @@ -36,7 +36,8 @@
>>>> //
>>>> // Completion token
>>>> //
>>>> -typedef VOID* MM_COMPLETION;
>>>> +struct MM_COMPLETION_OBJECT;
>>>> +typedef struct MM_COMPLETION_OBJECT* MM_COMPLETION;
>>>> 
>>>> typedef struct {
>>>>  MM_COMPLETION  Completion;
>>>> diff --git a/MdePkg/Include/Protocol/S3SaveState.h b/MdePkg/Include/Protocol/S3SaveState.h
>>>> index c1b8f8b9e08d..235c36be6737 100644
>>>> --- a/MdePkg/Include/Protocol/S3SaveState.h
>>>> +++ b/MdePkg/Include/Protocol/S3SaveState.h
>>>> @@ -21,7 +21,7 @@
>>>>    { 0xe857caf6, 0xc046, 0x45dc, { 0xbe, 0x3f, 0xee, 0x7, 0x65, 0xfb, 0xa8, 0x87 }}
>>>> 
>>>> 
>>>> -typedef VOID *EFI_S3_BOOT_SCRIPT_POSITION;
>>>> +typedef UINT8 *EFI_S3_BOOT_SCRIPT_POSITION;
>>>> 
>>>> typedef struct _EFI_S3_SAVE_STATE_PROTOCOL  EFI_S3_SAVE_STATE_PROTOCOL;
>>>> 
>>>> diff --git a/MdePkg/Include/Protocol/Shell.h b/MdePkg/Include/Protocol/Shell.h
>>>> index cfb7878228c5..bf791792b4f2 100644
>>>> --- a/MdePkg/Include/Protocol/Shell.h
>>>> +++ b/MdePkg/Include/Protocol/Shell.h
>>>> @@ -11,12 +11,13 @@
>>>> #define __EFI_SHELL_PROTOCOL_H__
>>>> 
>>>> #include <Guid/FileInfo.h>
>>>> +#include <Protocol/SimpleFileSystem.h>
>>>> 
>>>> #define EFI_SHELL_PROTOCOL_GUID \
>>>>  { \
>>>>  0x6302d008, 0x7f9b, 0x4f30, { 0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e } \
>>>>  }
>>>> -typedef VOID *SHELL_FILE_HANDLE;
>>>> +typedef EFI_FILE_PROTOCOL *SHELL_FILE_HANDLE;
>>>> 
>>>> typedef enum {
>>>>  ///
>>>> diff --git a/MdePkg/Include/Protocol/UserManager.h b/MdePkg/Include/Protocol/UserManager.h
>>>> index 26ac4955f1ec..9abfcffbeebf 100644
>>>> --- a/MdePkg/Include/Protocol/UserManager.h
>>>> +++ b/MdePkg/Include/Protocol/UserManager.h
>>>> @@ -24,8 +24,10 @@
>>>>    0xbaf1e6de, 0x209e, 0x4adb, { 0x8d, 0x96, 0xfd, 0x8b, 0x71, 0xf3, 0xf6, 0x83 } \
>>>>  }
>>>> 
>>>> -typedef VOID *EFI_USER_PROFILE_HANDLE;
>>>> -typedef VOID *EFI_USER_INFO_HANDLE;
>>>> +struct EFI_USER_PROFILE_OBJECT;
>>>> +typedef struct EFI_USER_PROFILE_OBJECT *EFI_USER_PROFILE_HANDLE;
>>>> +struct EFI_USER_INFO_OBJECT;
>>>> +typedef struct EFI_USER_INFO_OBJECT *EFI_USER_INFO_HANDLE;
>>>> 
>>>> ///
>>>> /// The attributes of the user profile information.
>>>> @@ -157,7 +159,8 @@ typedef CHAR16 *EFI_USER_INFO_CREDENTIAL_PROVIDER_NAME;
>>>> /// Biometric Exchange Formats Framework) specification.
>>>> ///
>>>> #define EFI_USER_INFO_CBEFF_RECORD                    0x0B
>>>> -typedef VOID *EFI_USER_INFO_CBEFF;
>>>> +struct EFI_USER_INFO_CBEFF_OBJECT;
>>>> +typedef struct EFI_USER_INFO_CBEFF_OBJECT *EFI_USER_INFO_CBEFF;
>>>> ///
>>>> /// Indicates how close of a match the fingerprint must be in order to be considered a match.
>>>> ///
>>>> diff --git a/MdePkg/Include/Uefi/UefiBaseType.h b/MdePkg/Include/Uefi/UefiBaseType.h
>>>> index a62f13dd064f..be5831991b52 100644
>>>> --- a/MdePkg/Include/Uefi/UefiBaseType.h
>>>> +++ b/MdePkg/Include/Uefi/UefiBaseType.h
>>>> @@ -28,11 +28,13 @@ typedef RETURN_STATUS             EFI_STATUS;
>>>> ///
>>>> /// A collection of related interfaces.
>>>> ///
>>>> -typedef VOID                      *EFI_HANDLE;
>>>> +struct EFI_OBJECT;
>>>> +typedef struct EFI_OBJECT *EFI_HANDLE;
>>>> ///
>>>> /// Handle to an event structure.
>>>> ///
>>>> -typedef VOID                      *EFI_EVENT;
>>>> +struct EFI_EVENT_OBJECT;
>>>> +typedef struct EFI_EVENT_OBJECT *EFI_EVENT;
>>>> ///
>>>> /// Task priority level.
>>>> ///
>>>> diff --git a/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
>>>> b/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
>>>> index 4a1346a599d0..93bf9e9e0f13 100644
>>>> --- a/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
>>>> +++ b/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
>>>> @@ -20,7 +20,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>>>> ///
>>>> /// The following types are currently defined:
>>>> ///
>>>> -typedef VOID*   EFI_HII_HANDLE;
>>>> +struct EFI_HII_OBJECT;
>>>> +typedef struct EFI_HII_OBJECT* EFI_HII_HANDLE;
>>>> typedef CHAR16* EFI_STRING;
>>>> typedef UINT16  EFI_IMAGE_ID;
>>>> typedef UINT16  EFI_QUESTION_ID;
>>>> diff --git a/MdeModulePkg/Core/Dxe/Event/Event.h b/MdeModulePkg/Core/Dxe/Event/Event.h
>>>> index 8141c5003eec..42590cb1dd09 100644
>>>> --- a/MdeModulePkg/Core/Dxe/Event/Event.h
>>>> +++ b/MdeModulePkg/Core/Dxe/Event/Event.h
>>>> @@ -37,7 +37,7 @@ typedef struct {
>>>> } TIMER_EVENT_INFO;
>>>> 
>>>> #define EVENT_SIGNATURE         SIGNATURE_32('e','v','n','t')
>>>> -typedef struct {
>>>> +typedef struct EFI_EVENT_OBJECT {
>>>>  UINTN                   Signature;
>>>>  UINT32                  Type;
>>>>  UINT32                  SignalCount;
>>>> diff --git a/MdeModulePkg/Core/Dxe/Hand/Handle.h b/MdeModulePkg/Core/Dxe/Hand/Handle.h
>>>> index 83eb2b9f3afe..1f1ab3274e8a 100644
>>>> --- a/MdeModulePkg/Core/Dxe/Hand/Handle.h
>>>> +++ b/MdeModulePkg/Core/Dxe/Hand/Handle.h
>>>> @@ -15,7 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>>>> ///
>>>> /// IHANDLE - contains a list of protocol handles
>>>> ///
>>>> -typedef struct {
>>>> +typedef struct EFI_OBJECT {
>>>>  UINTN               Signature;
>>>>  /// All handles list of IHANDLE
>>>>  LIST_ENTRY          AllHandles;
>>>> diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
>>>> index 0908e7f4e9e7..c55da58d465e 100644
>>>> --- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
>>>> +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
>>>> @@ -145,7 +145,7 @@ typedef struct {
>>>> ///
>>>> /// IHANDLE - contains a list of protocol handles
>>>> ///
>>>> -typedef struct {
>>>> +typedef struct EFI_OBJECT {
>>>>  UINTN               Signature;
>>>>  /// All handles list of IHANDLE
>>>>  LIST_ENTRY          AllHandles;
>>>> diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
>>>> b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
>>>> index 50d4c96edb63..bfebbb1f8182 100644
>>>> --- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
>>>> +++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
>>>> @@ -88,7 +88,7 @@ struct _EFI_AML_NODE_LIST {
>>>> //         This buffer should not be freed.
>>>> //  Size is the total size of this ACPI node buffer.
>>>> //
>>>> -typedef struct {
>>>> +typedef struct EFI_ACPI_OBJECT {
>>>>  UINT32                  Signature;
>>>>  UINT8                   *Buffer;
>>>>  UINTN                   Size;
>>>> diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
>>>> b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
>>>> index 4a3feab94df5..48972d0fcad6 100644
>>>> --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
>>>> +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
>>>> @@ -274,7 +274,7 @@ typedef struct _HII_DATABASE_PACKAGE_LIST_INSTANCE {
>>>> 
>>>> #define HII_HANDLE_SIGNATURE            SIGNATURE_32 ('h','i','h','l')
>>>> 
>>>> -typedef struct {
>>>> +typedef struct EFI_HII_OBJECT {
>>>>  UINTN               Signature;
>>>>  LIST_ENTRY          Handle;
>>>>  UINTN               Key;
>>>> diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.h b/StandaloneMmPkg/Core/StandaloneMmCore.h
>>>> index 4d0eed273f50..dcf91bc5e916 100644
>>>> --- a/StandaloneMmPkg/Core/StandaloneMmCore.h
>>>> +++ b/StandaloneMmPkg/Core/StandaloneMmCore.h
>>>> @@ -105,7 +105,7 @@ typedef struct {
>>>> ///
>>>> /// IHANDLE - contains a list of protocol handles
>>>> ///
>>>> -typedef struct {
>>>> +typedef struct EFI_OBJECT {
>>>>  UINTN               Signature;
>>>>  /// All handles list of IHANDLE
>>>>  LIST_ENTRY          AllHandles;
>>>> --
>>>> 2.19.1.3.g30247aa5d201
>>>> 
>>>> 
>>>> 
>>>> -=-=-=-=-=-=
>>>> Groups.io Links: You receive all messages sent to this group.
>>>> 
>>>> View/Reply Online (#47388): https://edk2.groups.io/g/devel/message/47388
>>>> Mute This Topic: https://groups.io/mt/34180199/1712937
>>>> Group Owner: devel+owner@edk2.groups.io
>>>> Unsubscribe: https://edk2.groups.io/g/devel/unsub  [ray.ni@intel.com]
>>>> -=-=-=-=-=-=
>>> 
>> 
>> 
>> 
> 
> 
> 
> 


  reply	other threads:[~2019-09-17 21:07 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-17 19:49 [PATCH 00/35] edk2: clean up the usage of standardized (VOID*) typedefs Laszlo Ersek
2019-09-17 19:49 ` [PATCH 01/35] DO NOT APPLY: edk2: turn standard handle types into pointers to non-VOID Laszlo Ersek
2019-09-17 20:06   ` [edk2-devel] " Ni, Ray
2019-09-17 20:22     ` Andrew Fish
2019-09-17 20:28       ` Ni, Ray
2019-09-17 21:07         ` Andrew Fish [this message]
2019-09-17 21:11           ` Michael D Kinney
2019-09-18  8:41       ` Laszlo Ersek
2019-09-18 15:16         ` Michael D Kinney
2019-09-18 17:41           ` Laszlo Ersek
2019-09-18 15:55         ` Andrew Fish
2019-09-18 16:16           ` Leif Lindholm
2019-09-18 17:45           ` Laszlo Ersek
2019-09-18  8:36     ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 02/35] EmbeddedPkg: add missing EFIAPI calling convention specifiers Laszlo Ersek
2019-09-18 17:41   ` Leif Lindholm
2019-09-17 19:49 ` [PATCH 03/35] EmbeddedPkg/AndroidFastbootTransportTcpDxe: fix DestroyChild() call Laszlo Ersek
2019-09-24 10:47   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:12   ` Laszlo Ersek
2019-09-26 12:16   ` Ard Biesheuvel
2019-09-17 19:49 ` [PATCH 04/35] EmbeddedPkg/Universal/MmcDxe: "fix" CloseProtocol() call in BindingStop() Laszlo Ersek
2019-09-25 15:52   ` Ard Biesheuvel
2019-09-17 19:49 ` [PATCH 05/35] EmulatorPkg/DxeTimerLib: drop superfluous cast Laszlo Ersek
2019-09-17 20:02   ` Ni, Ray
2019-09-20 15:00   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 06/35] EmulatorPkg: stop abusing EFI_HANDLE for keystroke notify registration Laszlo Ersek
2019-09-17 20:01   ` Ni, Ray
2019-09-24 10:44   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 07/35] MdeModulePkg: fix cast in GetModuleInfoFromHandle() calls Laszlo Ersek
2019-09-19  1:46   ` Dandan Bi
2019-09-24 10:43   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 08/35] MdeModulePkg/UefiHiiLib: stop using EFI_HANDLE in place of EFI_HII_HANDLE Laszlo Ersek
2019-09-19  1:46   ` Dandan Bi
2019-09-24 10:49   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 09/35] MdeModulePkg: stop abusing EFI_EVENT for protocol notify registration Laszlo Ersek
2019-09-17 20:17   ` Ni, Ray
2019-09-25 16:02   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:10     ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 10/35] MdeModulePkg/PlatformVarCleanupLib: fix HiiConstructConfigHdr() call Laszlo Ersek
2019-09-23 11:45   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-24 17:28     ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 11/35] MdeModulePkg: document workaround for EFI_RUNTIME_EVENT_ENTRY PI spec bug Laszlo Ersek
2019-09-19  1:47   ` Dandan Bi
2019-09-17 19:49 ` [PATCH 12/35] MdeModulePkg: stop abusing EFI_HANDLE for keystroke notify registration Laszlo Ersek
2019-09-17 20:16   ` [edk2-devel] " Ni, Ray
2019-09-19  1:47   ` Dandan Bi
2019-09-24 10:54   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 13/35] MdeModulePkg: PEI Core: clean up "AprioriFile" handling in FindFileEx() Laszlo Ersek
2019-09-19  1:46   ` Dandan Bi
2019-09-24 15:40   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 14/35] MdeModulePkg: fix UninstallMultipleProtocolInterfaces() calls Laszlo Ersek
2019-09-17 20:16   ` Ni, Ray
2019-09-17 19:49 ` [PATCH 15/35] MdeModulePkg/PiSmmCore: make type punning consistent Laszlo Ersek
2019-09-18  2:38   ` Dong, Eric
2019-09-17 19:49 ` [PATCH 16/35] MdeModulePkg/S3SaveState: cast Position for S3BootScriptLib explicitly Laszlo Ersek
2019-09-19  1:47   ` [edk2-devel] " Dandan Bi
2019-09-17 19:49 ` [PATCH 17/35] MdePkg/DxeServicesLib: remove bogus cast Laszlo Ersek
2019-09-18  4:47   ` [edk2-devel] " Liming Gao
2019-09-24 15:38   ` Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 18/35] NetworkPkg/DxeNetLib: fix type typo in NetLibGetMacAddress() Laszlo Ersek
2019-09-24 11:00   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-10-08  0:32     ` Siyuan, Fu
2019-10-08 23:36       ` Laszlo Ersek
2019-09-26 12:14   ` Laszlo Ersek
2019-10-03 11:05     ` Laszlo Ersek
2019-10-04 19:18       ` Laszlo Ersek
2019-10-07 18:15   ` Michael D Kinney
2019-09-17 19:49 ` [PATCH 19/35] NetworkPkg: fix CloseProtocol & UninstallMultipleProtocolInterfaces calls Laszlo Ersek
2019-09-26 12:14   ` [edk2-devel] " Laszlo Ersek
2019-09-26 12:42   ` Philippe Mathieu-Daudé
2019-09-30 20:16     ` Laszlo Ersek
2019-10-01  7:18       ` Philippe Mathieu-Daudé
2019-09-27  0:03   ` Siyuan, Fu
2019-09-17 19:49 ` [PATCH 20/35] NetworkPkg/Ip4Dxe: fix NetLibDestroyServiceChild() call Laszlo Ersek
2019-09-23 16:03   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-27  0:04     ` Siyuan, Fu
2019-09-26 12:14   ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 21/35] NetworkPkg/TcpDxe: fix SockFreeFoo() parameter list Laszlo Ersek
2019-09-23 15:09   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:14   ` Laszlo Ersek
2019-09-27  0:06   ` Siyuan, Fu
2019-09-17 19:49 ` [PATCH 22/35] OvmfPkg/XenBusDxe: fix UninstallMultipleProtocolInterfaces() call Laszlo Ersek
2019-09-18  9:32   ` Anthony PERARD
2019-09-18 10:30   ` Julien Grall
2019-09-23 15:03   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 23/35] OvmfPkg/VirtioNetDxe: fix SignalEvent() call Laszlo Ersek
2019-09-20 14:59   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:16   ` Laszlo Ersek
2019-09-26 12:17   ` Ard Biesheuvel
2019-09-17 19:49 ` [PATCH 24/35] OvmfPkg/PlatformDxe: fix EFI_HII_HANDLE parameters of internal functions Laszlo Ersek
2019-09-20 14:56   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-25 15:57   ` Ard Biesheuvel
2019-09-17 19:49 ` [PATCH 25/35] OvmfPkg/VideoDxe: document EFI_EDID_OVERRIDE_PROTOCOL.GetEdid() call Laszlo Ersek
2019-09-23 15:59   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:43     ` Laszlo Ersek
2019-10-04 20:01       ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 26/35] SecurityPkg: fix UninstallMultipleProtocolInterfaces() calls Laszlo Ersek
2019-09-23  9:55   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:45   ` Laszlo Ersek
2019-10-03 11:06     ` Laszlo Ersek
2019-10-04  0:05       ` Yao, Jiewen
2019-10-04 13:14       ` Zhang, Chao B
2019-10-04 18:15         ` Laszlo Ersek
2019-10-05 14:28       ` Zhang, Chao B
2019-10-07 18:14         ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 27/35] SecurityPkg: stop abusing EFI_EVENT for protocol notify registration Laszlo Ersek
2019-09-23  9:56   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 12:46   ` Laszlo Ersek
2019-10-03 11:06     ` Laszlo Ersek
2019-10-04  0:05       ` Yao, Jiewen
2019-10-04 13:16       ` Zhang, Chao B
2019-10-05 14:28       ` Zhang, Chao B
2019-09-17 19:49 ` [PATCH 28/35] ShellPkg/UefiShellDriver1CommandsLib: fix parameter list typo Laszlo Ersek
2019-09-24 15:44   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26  2:46   ` Gao, Zhichao
2019-09-17 19:49 ` [PATCH 29/35] ShellPkg: stop using EFI_HANDLE in place of EFI_HII_HANDLE Laszlo Ersek
2019-09-25 18:04   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26 11:48     ` Laszlo Ersek
2019-09-26  2:43   ` Gao, Zhichao
2019-09-17 19:49 ` [PATCH 30/35] ShellPkg: stop taking EFI_HANDLE in place of SHELL_FILE_HANDLE Laszlo Ersek
2019-09-23  9:58   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-26  2:53   ` Gao, Zhichao
2019-09-26 12:08     ` Laszlo Ersek
2019-09-26 14:43       ` Gao, Zhichao
2019-09-30 19:52         ` Laszlo Ersek
2019-09-17 19:49 ` [PATCH 31/35] ShellPkg/UefiShellDebug1CommandsLib: fix ShellCloseFile() call Laszlo Ersek
2019-09-23 10:01   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-23 14:28     ` Carsey, Jaben
2019-09-24  1:18       ` Gao, Zhichao
2019-09-17 19:49 ` [PATCH 32/35] ShellPkg/UefiShellLib: clarify workaround for unfixable EdkShell bug Laszlo Ersek
2019-09-26 12:47   ` [edk2-devel] " Laszlo Ersek
2019-09-26 14:05     ` Gao, Zhichao
2019-09-26 14:58     ` Carsey, Jaben
2019-09-17 19:49 ` [PATCH 33/35] StandaloneMmPkg/Core: stop abusing EFI_HANDLE for FwVolHeader tracking Laszlo Ersek
2019-09-26 12:48   ` [edk2-devel] " Laszlo Ersek
2019-10-03 11:10     ` Laszlo Ersek
2019-10-03 11:17       ` Achin Gupta
2019-10-04  0:10       ` Yao, Jiewen
2019-10-04 14:53       ` Achin Gupta
2019-09-17 19:49 ` [PATCH 34/35] UefiPayloadPkg/BlSupportPei: fix MMCONFIG assignment from XSDT Laszlo Ersek
2019-09-23  2:30   ` Guo Dong
2019-09-26 13:17   ` [edk2-devel] " Philippe Mathieu-Daudé
2019-09-17 19:49 ` [PATCH 35/35] UefiPayloadPkg/BlSupportDxe: fix ReserveResourceInGcd() calls Laszlo Ersek
2019-09-23  2:28   ` [edk2-devel] " Guo Dong
2019-09-23 15:08   ` Philippe Mathieu-Daudé
2019-09-23 16:02     ` Guo Dong
2019-09-23 16:04       ` Philippe Mathieu-Daudé
2019-09-24 17:29     ` Laszlo Ersek
2019-09-19  0:32 ` [edk2-devel] [PATCH 00/35] edk2: clean up the usage of standardized (VOID*) typedefs Wu, Hao A
2019-09-23 16:27 ` Marvin Häuser
2019-09-24 20:26   ` Laszlo Ersek
2019-09-25  8:13     ` Marvin Häuser
2019-09-25 15:54       ` Laszlo Ersek
2019-10-08 23:49 ` Laszlo Ersek
2019-10-09  9:50   ` Laszlo Ersek

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=FCF42577-4086-4842-8241-7AE3EB2A8D1A@apple.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