On Fri, Jun 16, 2023 at 4:52 PM Xue, Gavin <gavin....@intel.com> wrote: > > Hi Sunil/Pedro, > > 1. As you know, ProcessorBind.h file of CPU Architecture file declares sets > of base types for edk2 code compiling. > So data type in edk2 code doesn't rely on specific compiler (msvc, gcc etc.), > which is a good design. > > But in practice, for the purpose of reuse, some code can be built with edk2, > and also can be built to a standalone application (e.g. Win App). > Just like below code piece: > =========== > #ifndef __WRAPPER_BASE_TYPES_H__ > #define __WRAPPER_BASE_TYPES_H__ > > // > // To avoid definition conflict during EDK2 build, it must include > // ProcessorBind.h before xxx.h > // > #ifndef __PROCESSOR_BIND_H__ > > #include <stdint.h> > typedef uint8_t UINT8; > ========== > > In this case, if this is a edk2 build, the code will refer to data types from > ProcessorBind.h, otherwise, it will refer to stdint.h from compiler. > > 2. Regarding the guard name, it's same __PROCESSOR_BIND_H__ macro in > AArch64/Arm/Ebc/Ia32/X64, but it is PROCESSOR_BIND_H_ > in RiscV64 and LoongArh64. For above code, if we build BIOS for RISCV64, it > will try to include stdint.h due to different guard name. > > I am not sure if we can use same guard name to keep code alignment, or give > some comments. Thanks.
Hi, Hmm, interesting problem. Have you tried to #ifndef with some other define? Like, I don't know, MAX_UINTN or EFIAPI? -- Pedro -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#106264): https://edk2.groups.io/g/devel/message/106264 Mute This Topic: https://groups.io/mt/99567569/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-