Commit graph

26 commits

Author SHA1 Message Date
Michael Kubacki
7a934d0bef MdeModulePkg: Replace include guards with #pragma once
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-02-23 21:01:28 +00:00
Michael Kubacki
1436aea4d5 MdeModulePkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdeModulePkg package

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-12-07 17:24:28 +00:00
Michael D Kinney
9d510e61fc MdeModulePkg: Replace BSD License with BSD+Patent License
https://bugzilla.tianocore.org/show_bug.cgi?id=1373

Replace BSD 2-Clause License with BSD+Patent License.  This change is
based on the following emails:

  https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
  https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html

RFCs with detailed process for the license change:

  V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
  V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
  V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2019-04-09 10:58:08 -07:00
Liming Gao
d1102dba72 MdeModulePkg: Clean up source files
1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-06-28 11:19:45 +08:00
li-elvin
ab7017fe2b Add capsule > 4GB support. When capsule data is put above 4GB, IA32 PEI transfers to long mode to get capsule data.
Signed-off-by: li-elvin
Reviewed-by: lgao4, mdkinney


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12264 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-02 11:34:35 +00:00
hhtian
cd5ebaa06d Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10420 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:49:11 +00:00
myronporter
64a80549c8 Grammatical and disclaimer changes (does not follow internal C coding stds.)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10269 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-17 20:48:52 +00:00
xli24
17dd1ce959 Rollback change of revision 10061.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10144 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 08:23:03 +00:00
xli24
ea02543004 Add support for capsule above 4G.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10061 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 08:45:08 +00:00
vanjeff
44770e5910 fixed typo
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9392 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-04 08:39:25 +00:00
vanjeff
7be273b7f5 added comments for CAPSULE_HOB_INFO in CapsuleVendor.h (MdeModuleModulePkg).
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9390 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-04 06:51:34 +00:00
vanjeff
72f01d4b4a add back CAPSULE_HOB_INFO definition for back-compatible.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9381 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-29 01:49:20 +00:00
vanjeff
53c13ffba4 remove CAPSULE_HOB_INFO definition from MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9380 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-28 07:54:40 +00:00
klu2
4a13fda739 Refine doxygen comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8726 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-02 18:06:45 +00:00
pkandel
e9b67286ad Committing changes to the comments, to improve code documentation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8533 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-11 14:17:23 +00:00
lgao4
b998288321 Correct typo in comments, clean IfrSupportLib.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7494 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-10 13:32:19 +00:00
lgao4
6426c8ffb4 Add comments for these header files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7364 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-23 14:45:13 +00:00
lgao4
e561879137 Add INF extension Information
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7228 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 06:26:42 +00:00
lgao4
109e9a6156 Code scrub for the following drivers and librarys.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7172 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-04 03:20:55 +00:00
gikidy
cfc8865f17 Remove some useless EDK_RELEASE_VERSION, EFI_SPECIFICATION_VERSION ,and review VALID_ARCHITECTURES in inf files with DSC file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6818 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 09:08:05 +00:00
lgao4
ebafc55b92 Add additional comments for structure definition.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6750 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-27 04:53:43 +00:00
lgao4
5f597758e2 Code scrube for MdeModule Definitions.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5428 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-08 13:29:42 +00:00
lgao4
504214c487 Add comments and DoxyGen format for these files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5028 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-09 07:07:50 +00:00
lgao4
0537d50f85 Add Capsule library
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4360 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-05 07:07:13 +00:00
yshang1
3cfb790c94 Retire the "Include/Common" of MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3425 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 10:52:02 +00:00
vanjeff
88f2012778 1. added common header files, Guid header filess, Protocol header files, PPI header files.
2. added Guids/Protocols/PPIs/Pcds definitions in .nspd, .dec files.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2744 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-26 08:03:14 +00:00