Hi Pedro, Thanks for your feedback.
The sample code what I listed in last mail is from/owned by another team, and I didn't find other special #ifndef case for RSIC-V building so far. RISC-V is an new processor architecture in edk2 implementation, in our internal BIOS code, there are many similar common code for edk2 and Windows app (for simulation). It's better if we can reuse existing code (mostly are from x86) and minimize modifications as much as possible. So I think use same guard name is make sense. How about your comments? Thanks. Best regards, Gavin -----Original Message----- From: Pedro Falcato <pedro.falc...@gmail.com> Sent: Wednesday, June 21, 2023 10:16 PM To: Xue, Gavin <gavin....@intel.com> Cc: devel@edk2.groups.io; suni...@ventanamicro.com; Warkentin, Andrei <andrei.warken...@intel.com>; Wang, Yimin <yimin.w...@intel.com>; Sheng, Alan <alan.sh...@intel.com> Subject: Re: [edk2-devel] [edk2 PATCH] MdePkg: Use same ProcessorBind symbol define for RISCV64 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 (#106286): https://edk2.groups.io/g/devel/message/106286 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] -=-=-=-=-=-=-=-=-=-=-=-