<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-02-23T21:01:28+00:00</updated>
<entry>
<title>ShellPkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T19:26:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8472271daeed6ebb23b6992155b65c029aa42984'/>
<id>urn:sha1:8472271daeed6ebb23b6992155b65c029aa42984</id>
<content type='text'>
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 &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Remove ARM32 Support</title>
<updated>2025-09-25T22:04:10+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2025-09-15T14:49:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9c657c36856a47190eeba3bc24a44f575cf6b1a6'/>
<id>urn:sha1:9c657c36856a47190eeba3bc24a44f575cf6b1a6</id>
<content type='text'>
edk2 is dropping support for the ARM32 architecture. This commit
removes support from ShellPkg.

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg/AcpiView: Update field-validator prototype</title>
<updated>2024-08-01T17:20:10+00:00</updated>
<author>
<name>Rohit Mathew</name>
<email>Rohit.Mathew@arm.com</email>
</author>
<published>2023-08-22T11:20:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=107d0c380009ad3b17a1730fce264eefdd027616'/>
<id>urn:sha1:107d0c380009ad3b17a1730fce264eefdd027616</id>
<content type='text'>
As of now, the field-validator implemented by FNPTR_FIELD_VALIDATOR
function pointer takes two parameters, the pointer to the field and a
context pointer. For cases where the validator has to have access to the
length of the field, there is no clean way to currently do it. In order
to resolve this, this commit updates the field-validator's prototype to
take the length of the field as an additional parameter.

This enhancement allows field validators to perform more comprehensive
validation, especially when the length of the field is critical to the
validation logic. This change should improve the overall robustness and
flexibility of AcpiView.

Signed-off-by: Rohit Mathew &lt;Rohit.Mathew@arm.com&gt;
Cc: James Morse &lt;james.Morse@arm.com&gt;
Cc: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
Cc: Thomas Abraham &lt;thomas.abraham@arm.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Fix incorrect PPTT FlagName dereference</title>
<updated>2022-02-07T01:52:17+00:00</updated>
<author>
<name>Chris Jones</name>
<email>christopher.jones@arm.com</email>
</author>
<published>2021-12-14T12:37:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6fb09da89f88000a7592171a0ce08cf1feaa0646'/>
<id>urn:sha1:6fb09da89f88000a7592171a0ce08cf1feaa0646</id>
<content type='text'>
Bugzilla: 3770 (https://bugzilla.tianocore.org/show_bug.cgi?id=3770)

The PPTT parser in AcpiView incorrectly dereferences a pointer to
FlagName when trying to log an error with the PPTT cache flags, which
can lead to random crashes and other errors.

Also fix some spacing in the error message to ensure the message is
printed cleanly.

Signed-off-by: Chris Jones &lt;christopher.jones@arm.com&gt;
Reviewed-by: Rebecca Cran &lt;rebecca@nuviainc.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Add Cache ID to PPTT parser</title>
<updated>2021-12-10T20:06:52+00:00</updated>
<author>
<name>Chris Jones</name>
<email>christopher.jones@arm.com</email>
</author>
<published>2021-12-08T16:06:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8cf2bdfcfbab23feb62ce68007ce265d4686bd7f'/>
<id>urn:sha1:8cf2bdfcfbab23feb62ce68007ce265d4686bd7f</id>
<content type='text'>
Bugzilla: 3697 (https://bugzilla.tianocore.org/show_bug.cgi?id=3697)

Update the Acpiview PPTT parser with the Cache ID field and relevant
validations as defined in tables 5.140 and 5.141 of the ACPI 6.4
specification.

Signed-off-by: Chris Jones &lt;christopher.jones@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Update Acpiview PPTT parser to ACPI 6.4</title>
<updated>2021-12-10T20:06:52+00:00</updated>
<author>
<name>Chris Jones</name>
<email>christopher.jones@arm.com</email>
</author>
<published>2021-12-08T16:06:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a50b65ce22398422529d305740ec2cea859e8449'/>
<id>urn:sha1:a50b65ce22398422529d305740ec2cea859e8449</id>
<content type='text'>
Bugzilla: 3697 (https://bugzilla.tianocore.org/show_bug.cgi?id=3697)

Update the Acpiview PPTT parser to use Acpi64.h. As part of the changes,
remove support for parsing PPTT type 2 ID structure.

Mantis ID for removing PPTT type 2 structure:
2072 (https://mantis.uefi.org/mantis/view.php?id=2072)

Signed-off-by: Chris Jones &lt;christopher.jones@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Apply uncrustify changes</title>
<updated>2021-12-07T17:24:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2021-12-05T22:54:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=47d20b54f9a65b08aa602a1866c1b59a69088dfc'/>
<id>urn:sha1:47d20b54f9a65b08aa602a1866c1b59a69088dfc</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

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

Cc: Andrew Fish &lt;afish@apple.com&gt;
Cc: Leif Lindholm &lt;leif@nuviainc.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Ray Ni &lt;ray.ni@intel.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg/AcpiView: Refactor configuration</title>
<updated>2020-06-30T01:39:50+00:00</updated>
<author>
<name>Tomas Pilar</name>
<email>Tomas.Pilar@arm.com</email>
</author>
<published>2020-06-19T11:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e18ac66d84e68387dbbe4fd8761b8f3a889534a9'/>
<id>urn:sha1:e18ac66d84e68387dbbe4fd8761b8f3a889534a9</id>
<content type='text'>
A new file and header (AcpiViewConfig.[ch]) is created
that houses the user configuration. This declutters the
core code and improves modularity of the design.

The module level symbols for verbosity, table selection, and
highlighting are refactored into the new file.

Cc: Ray Ni &lt;ray.ni@intel.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Signed-off-by: Tomas Pilar &lt;tomas.pilar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: Prevent infinite loop if structure length is 0</title>
<updated>2020-02-20T09:27:00+00:00</updated>
<author>
<name>Krzysztof Koch</name>
<email>krzysztof.koch@arm.com</email>
</author>
<published>2020-02-19T10:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=b85048261aa5dc0b8fd98ddc4431d8c2a6389b25'/>
<id>urn:sha1:b85048261aa5dc0b8fd98ddc4431d8c2a6389b25</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2534

Extend validation of ACPI structure lengths which are read from the
ACPI table being parsed. Additionally check if the structure 'Length'
field value is positive. If not, stop parsing the faulting table.

Some ACPI tables define internal structures of variable size. The
'Length' field inside the substructure is used to update a pointer used
for table traversal. If the byte-length of the structure is equal to 0,
acpiview can enter an infinite loop. This condition can occur if, for
example, the zero-allocated ACPI table buffer is not fully populated.
This is typically a bug on the ACPI table writer side.

In short, this method helps acpiview recover gracefully from a
zero-valued ACPI structure length.

Signed-off-by: Krzysztof Koch &lt;krzysztof.koch@arm.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: PPTT: Validate global pointers before use</title>
<updated>2020-02-11T02:12:45+00:00</updated>
<author>
<name>Krzysztof Koch</name>
<email>krzysztof.koch@arm.com</email>
</author>
<published>2020-01-20T11:13:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=84a534b406a390dee3cf2661e44a8875b7b34532'/>
<id>urn:sha1:84a534b406a390dee3cf2661e44a8875b7b34532</id>
<content type='text'>
Check if the NumberOfPrivateResources, ProcessorTopologyStructureType
and ProcessorTopologyStructureLength pointers have been successfully
updated before they are used for further table parsing.

Signed-off-by: Krzysztof Koch &lt;krzysztof.koch@arm.com&gt;
</content>
</entry>
</feed>
