Liming, Pragma once is an alternative to include guards. If we want to remove the use of the include guard macros that start with '_', we can consider using pragma once everywhere.
https://en.wikipedia.org/wiki/Pragma_once If other include files have packed structure requirements, then they should do it in their own files. No include file should depend on #pragma pack from another include file. Mike > -----Original Message----- > From: Gao, Liming <liming....@intel.com> > Sent: Monday, July 27, 2020 7:07 PM > To: Leif Lindholm <l...@nuviainc.com>; Javeed, Ashraf > <ashraf.jav...@intel.com>; Laszlo Ersek > <ler...@redhat.com>; Sean Brogan > <sean.bro...@microsoft.com> > Cc: devel@edk2.groups.io; Kinney, Michael D > <michael.d.kin...@intel.com> > Subject: RE: [edk2-devel] [PATCH V4 1/2] > MdePkg/Include/IndustryStandard: CXL 1.1 Registers > > Leif: > > -----Original Message----- > From: Leif Lindholm <l...@nuviainc.com> > Sent: 2020年7月28日 0:14 > To: Gao, Liming <liming....@intel.com> > Cc: devel@edk2.groups.io; Javeed, Ashraf > <ashraf.jav...@intel.com>; Kinney, Michael D > <michael.d.kin...@intel.com> > Subject: Re: [edk2-devel] [PATCH V4 1/2] > MdePkg/Include/IndustryStandard: CXL 1.1 Registers > > On Mon, Jul 27, 2020 at 14:55:03 +0000, Gao, Liming > wrote: > > > > diff --git > a/MdePkg/Include/IndustryStandard/Cxl11.h > > > > b/MdePkg/Include/IndustryStandard/Cxl11.h > > > > new file mode 100644 > > > > index 0000000000..933c1ab817 > > > > --- /dev/null > > > > +++ b/MdePkg/Include/IndustryStandard/Cxl11.h > > > > @@ -0,0 +1,569 @@ > > > > +/** @file > > > > + CXL 1.1 Register definitions > > > > + > > > > + This file contains the register definitions > based on the > > > > + Compute Express Link > > > > + (CXL) Specification Revision 1.1. > > > > + > > > > +Copyright (c) 2020, Intel Corporation. All > rights reserved.<BR> > > > > +SPDX-License-Identifier: BSD-2-Clause-Patent > > > > + > > > > +**/ > > > > + > > > > +#ifndef _CXL11_H_ > > > > +#define _CXL11_H_ > > > > > > We should not be adding macros with a leading _ - > these are intended > > > for toolchain use. > > > > This style is align to other header file. This is the > file header > > macro to make sure the header file be included more > than once. > > Yes. The other headers should also be changed, but in > the meantime it would be good to stop adding more > incorrect ones. > https://edk2-docs.gitbook.io/edk-ii-c-coding-standards- > specification/5_source_files/53_include_files#5-3-5- > all-include-file-contents-must-be-protected-by-a- > include-guard > > [Liming] Thank for your point. I miss this one, too. > Now, most cases don't follow this rule. So, there is no > good example for the reference. > I agree the rule to apply the strict check for new > adding file. I will check whether ECC has this check > point. > > > > > + > > > > +// > > > > +// CXL Flex Bus Device default device and > function number // > > > > +Compute Express Link Specification Revision: 1.1 > - Chapter 7.1.1 > > > > +// > > > > +#define CXL_DEV_DEV > 0 > > > > +#define CXL_DEV_FUNC > 0 > > > > + > > > > +// > > > > +// Ensure proper structure formats // #pragma > pack(1) > > > > > > And this pragma has no function whatsoever with > regards to any of > > > the register definition structs below. It would be > much better if > > > the structs requiring packing (_DEVICE, _PORT, ...) > were grouped > > > together and only those were given this treatment. > > > > > > #pragma pack(1) is *not* a safe default. > > > > > > > I know pack(1) is for the compact structure layout. > > Yes. And it should be used when structs need to be > compacted. > All of the bitfield structs are single-variable > structs, so the packing has no effect on them, other > than setting the struct alignment requirements to 1 > byte, which will not be correct (or efficient) on all > architectures. > > [Liming] Yes. There is no effect for bitfield > structure. This header file still includes some > structure, such as CXL_1_1_DVSEC_FLEX_BUS_DEVICE. They > may have the compact alignment requirement. > @Javeed, Ashraf, can you conform it? > > > > Now, one final comment - and this is more of a > project feature > > > suggestion: > > > Industry standard headers is something fairly > special, even in > > > comparison with the rest of MdePkg. *I* would > certainly like to > > > ensure I don't miss changes or additions to them. > > > Could we set up a dedicated group of reviewers for > this folder only? > > > This need not affect the actual maintainership of > MdePkg, just > > > ensure more eyeballs (or screen readers, braille > terminals, ...) hit > > > updates here? > > > > > > i.e. something like the below to Maintainers.txt: > > > > > > F: MdePkg/Include/IndustryStandard/ > > > R: Leif ... > > > R: ... > > > R: ... > > > > > > > This is a good suggestion. IndustryStandard needs > more feedback. > > Can you send the patch to update Maintainers.txt? > > Sure, I can do that. Any thoughts on others to add than > me? > > [Liming] Thanks. Laszlo or Sean may be added if they > are also interested in IndustryStandard header file. > > Thanks > Liming > / > Leif -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#63379): https://edk2.groups.io/g/devel/message/63379 Mute This Topic: https://groups.io/mt/75823529/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-