
EDK II C Coding Standards Specification
DRAFT FOR REVIEW
04/03/2026 04:02:35
Acknowledgements
Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code (original document form) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.
Redistributions in compiled form (transformed to other DTDs, converted to PDF, epub, HTML and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright (c) 2006-2017, Intel Corporation. All rights reserved.
Revision History
| Revision | Revision History | Date |
|---|---|---|
| 0.0.1 | First swag. | 6/23/00 |
| 0.0.2 | Included feedback from team. | 8/3/00 |
| 0.3 | Add comments. | 8/10/00 |
| 0.3001 | Pre-vacation update, need to sync with new numbering process. | 9/11/00 |
| 0.31 | Incorporated Sync 1 learnings. | 12/12/00 |
| 0.32 | Completed TAT ARs. | 6/8/01 |
| 0.33 | Added goto rules. | 8/16/01 |
| 0.34 | Updated to match driver and Runtime Lib. | 11/15/01 |
| 0.9 | Updated to Intel(R) Platform Innovation Framework for EFI. Added checklist appendix. | 1/8/04 |
| 0.91 | Completed editing and formatting pass. | 3/3/04 |
| 0.92 | Updated the structure declaration rules: Added section 4.8 and modified the checklist in Appendix A. | 4/8/04 |
| 0.93 | Added some minor clarifications in section 3.1, 4.5, 7.1, and 10. | 9/14/04 |
| 0.94 | Revised to accommodate Doxygen style commenting standards | 3/1/06 |
| 0.50 | Change to new numbering scheme. Incorporate Review Comments. Editing and formatting. | 4/21/06 |
| 0.51 | Changed to EDK II. | 7/13/06 |
| 0.52 | Update rules to clarify areas of misinterpretation. Add copyright formatting rules. | 2/09/2010 |
| 0.60 | Re-organize document and update to current rules. | 2/15/2010 |
| 0.70 | Release for Review | 3/1/2010 |
| 0.95 | Review comments incorporated, Release to Tech Pubs for Finalization | 3/10/2010 |
| 1.00 | First full release | 3/15/2010 |
| 1.01 | Restructure into book format. | 12/08/2011 |
| 1.02 | Incorporate suggestions and trackers | 3/19/2012 |
| Release For Review | 4/2/2012 | |
| Release | 4/16/2012 | |
| 1.03 | Update and incorporate requests and bug fixes. Remove "Intel Confidential" classification. | 9/11/2014 |
| 1.50 | Release for Review | 9/26/2014 |
| 1.80 | Incorporate US Review Comments | 10/10/2014 |
| 1.85 | Incorporate PRC Review Comments | 10/24/2014 |
| Release for Extended US & PRC Review | 10/28/2014 | |
| 2.0 | Release | 11/14/2014 |
| 2.1 | DRAFT for REFORMAT | 10/30/2015 |
| 2.2 | Convert to Gitbook | June 2017 |
| GH #9 BZ #425 Commit 3f1100b [CCS] clarify line breaking and indentation requirements for multi-line function calls | June 2017 | |
| 2.3 | BZ #1656 Commit d096859 Update all Wiki pages for the BSD+Patent license change with SPDX identifiers | April 2019 |
| GH #10 BZ #607 Commit f5ad35e Document code comment requirements for spurious variable assignments | Sept 2019 | |
| GH #10 BZ #607 Commit 1b4a4cc Restrict and clarify applicability of "/*" comments | Sept 2019 | |
| GH #10 BZ #607 Commit 0f75934 Remove "Horror Vacui" rule | Sept 2019 | |
| Commit d2b81c4 Fix URLs on the Introduction page | Dec 2020 | |
| Commit 0d88b47 Update Name Space Rules examples to follow coding standard | Dec 2020 | |
| Commit 3edad55 Update Chapter 5 examples to follow coding standard | Dec 2020 | |
| Commit 835ab88 Fix extraneous semicolon in Chapter 5 function example | Dec 2020 | |
| Commit 9286fa6 Add Gitbook Action to publish HTML, PDF, EPUB, and MOBI | Oct 2020 | |
| Add 4.2 Directory names section and update File names section for the guidelines of module directory and file naming | September 2022 | |
| Commit bda6c02 Insert Directory Names section | Oct 2022 | |
| Commit 782dc33 Updates 4.2 and 4.3 sections | Oct 2022 | |
| Commit 275e9e6 Fix missing hyperlink in section 4.2 | Oct 2022 | |
| 2.4 | Commit bbec647 Fix Markdown to PDF formatting issue | Nov 2022 |
GH #21 BZ #1766 Commit 422e975 Remove use of STATIC macros from EDK II C Coding Standard Specification |
Feb 2025 | |
| Commit 7a15a16 Use github.ref_name in publish action | April 2025 | |
| Commit cacfbcf Use publish-gitbook-docs action for document publishing | April 2025 | |
PR #25 Replace include guard macros with #pragma once in include files |
Feb 2026 | |
| GH #19 BZ #723 PR #26 5.1.8 Typo: "provided" should be "proven" | March 2026 | |
| GH #20 BZ #839 PR #27 Minor typographical errors in chapters 1-5 | March 2026 | |
| GH #24 BZ #4160 PR #28 Unclear statement for the blank line for comment | March 2026 | |
| GH #23 BZ #2664 PR #29 Fix code examples to match rules and EDK II uncrustify style | March 2026 | |
| GH #30 PR #31 Update Revision History with GitHub Issues/PR links | March 2026 |