<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe, 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>MdeModulePkg: 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-03T18:48:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7a934d0befca7d10f361c76af6d2fcb6eb48c835'/>
<id>urn:sha1:7a934d0befca7d10f361c76af6d2fcb6eb48c835</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>MdeModulePkg: Update to support mouse z-axis in ConSplitterDxe</title>
<updated>2025-09-29T01:10:22+00:00</updated>
<author>
<name>Yang Gang</name>
<email>yanggang@byosoft.com.cn</email>
</author>
<published>2025-07-04T09:32:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7b971810b0ef964276eff4541784ea2f520e66a9'/>
<id>urn:sha1:7b971810b0ef964276eff4541784ea2f520e66a9</id>
<content type='text'>
If `AbsoluteMaxZ`/`ResolutionZ` is 0, it means z-axis is not supported.
When getting AbsolutePointer/SimplePointer Protocol Interface and mouse
state from `gST-&gt;ConsoleInHandle`, `AbsoluteMaxZ`/`ResolutionZ` is checked,
so AbsState.CurrentZ/SimpleState.RelativeMovementZ is always 0.

Assign a valid value to `AbsoluteMaxZ`/`ResolutionZ` to indicate
z-axis support.

Signed-off-by: Yang Gang &lt;yanggang@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Usb cumulative codeql issues.</title>
<updated>2025-08-07T09:10:24+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2025-05-08T00:43:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9688712f1d15ddfb8fc53ad728823f5a987bd705'/>
<id>urn:sha1:9688712f1d15ddfb8fc53ad728823f5a987bd705</id>
<content type='text'>
Running Codeql on the MdeModulePkg\Bus\Usb drivers results in
codeql errors stemming for the following two checks.

- cpp/comparison-with-wider-type
- cpp/overflow-buffer

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;

Co-authored-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Co-authored-by: Taylor Beebe &lt;tabeebe@microsoft.com&gt;
Co-authored-by: pohanch &lt;125842322+pohanch@users.noreply.github.com&gt;
Co-authored-by: kenlautner &lt;85201046+kenlautner@users.noreply.github.com&gt;
Co-authored-by: Oliver Smith-Denny &lt;osde@linux.microsoft.com&gt;
Co-authored-by: Sean Brogan &lt;sean.brogan@microsoft.com&gt;
Co-authored-by: Aaron &lt;aaronpop@microsoft&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Correct Usb Mouse Z for absolute pointer.</title>
<updated>2025-05-09T08:01:42+00:00</updated>
<author>
<name>Bret Barkelew</name>
<email>brbarkel@microsoft.com</email>
</author>
<published>2024-07-01T18:09:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=b2db39cefe1318d13d30040d31a6954e6b7219ce'/>
<id>urn:sha1:b2db39cefe1318d13d30040d31a6954e6b7219ce</id>
<content type='text'>
https://www.usb.org/sites/default/files/hid1_11.pdf
Appendix B, B.2 Protocol 2 (Mouse) details the information
returned by a usb mouse HID.

bytes 3..n are specific to the device, but are used by absolute
pointer devices to return a z axis.

Prior to this change, the existing code was reusing the X value for
the Z axis, which was incorrect.

For usb devices which do not return enough data for a z axis,
this change will be a no-op.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: 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:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1436aea4d5707e672672a11bda72be2c63c936c3'/>
<id>urn:sha1:1436aea4d5707e672672a11bda72be2c63c936c3</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdeModulePkg 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: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbMouse: Fix few typos</title>
<updated>2020-02-10T22:30:07+00:00</updated>
<author>
<name>Antoine Coeur</name>
<email>coeur@gmx.fr</email>
</author>
<published>2020-02-07T01:07:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d22867471fe5178a00a03d8dde0b0ab0d5a5fa5d'/>
<id>urn:sha1:d22867471fe5178a00a03d8dde0b0ab0d5a5fa5d</id>
<content type='text'>
Fix few typos in comments and documentation.

Cc: Jian J Wang &lt;jian.j.wang@intel.com&gt;
Cc: Hao A Wu &lt;hao.a.wu@intel.com&gt;
Cc: Ray Ni &lt;ray.ni@intel.com&gt;
Signed-off-by: Antoine Coeur &lt;coeur@gmx.fr&gt;
Reviewed-by: Philippe Mathieu-Daude &lt;philmd@redhat.com&gt;
Acked-by: Liming Gao &lt;liming.gao@intel.com&gt;
Signed-off-by: Philippe Mathieu-Daude &lt;philmd@redhat.com&gt;
Message-Id: &lt;20200207010831.9046-21-philmd@redhat.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbMouseAbsolutePointer: Fix endpoint selection</title>
<updated>2020-01-06T06:40:28+00:00</updated>
<author>
<name>MrChromebox</name>
<email>matt.devillier@gmail.com</email>
</author>
<published>2020-01-06T04:12:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6cfb6da9518d3c48107c26832e2709cfd92bf9fa'/>
<id>urn:sha1:6cfb6da9518d3c48107c26832e2709cfd92bf9fa</id>
<content type='text'>
The endpoint selected by the driver needs to not
only be an interrupt type, but have direction IN
as required to set up an asynchronous interrupt transfer.

Currently, the driver assumes that the first INT endpoint
will be of type IN, but that is not true of all devices,
and will silently fail on devices which have the OUT endpoint
before the IN. Adjust the endpoint selection loop to explictly
check for direction IN.

Signed-off-by: Matt DeVillier &lt;matt.devillier@gmail.com&gt;
Reviewed-by: Hao A Wu &lt;hao.a.wu@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Replace BSD License with BSD+Patent License</title>
<updated>2019-04-09T17:58:08+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2019-04-03T23:05:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9d510e61fceee7b92955ef9a3c20343752d8ce3f'/>
<id>urn:sha1:9d510e61fceee7b92955ef9a3c20343752d8ce3f</id>
<content type='text'>
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 &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Hao Wu &lt;hao.a.wu@intel.com&gt;
Reviewed-by: Jian J Wang &lt;jian.j.wang@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/AbsPointer: Don't access key codes when length is wrong</title>
<updated>2018-10-17T03:04:02+00:00</updated>
<author>
<name>Ruiyu Ni</name>
<email>ruiyu.ni@intel.com</email>
</author>
<published>2018-09-13T08:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0dd6065520742f62678db9dd6728f22b2abd68e2'/>
<id>urn:sha1:0dd6065520742f62678db9dd6728f22b2abd68e2</id>
<content type='text'>
Per USB HID spec, the buffer holding key codes should at least 3-byte
long.
Today's code assumes that the key codes buffer length is longer than
3-byte and unconditionally accesses the key codes buffer.
It's incorrect.
The patch fixes the issue by returning Device Error when the
length is less than 3-byte.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni &lt;ruiyu.ni@intel.com&gt;
Cc: Star Zeng &lt;star.zeng@intel.com&gt;
Cc: Jiewen Yao &lt;jiewen.yao@intel.com&gt;
Cc: Steven Shi &lt;steven.shi@intel.com&gt;
Reviewed-by: Star Zeng &lt;star.zeng@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Removing ipf which is no longer supported from edk2.</title>
<updated>2018-09-06T07:25:16+00:00</updated>
<author>
<name>Chen A Chen</name>
<email>chen.a.chen@intel.com</email>
</author>
<published>2018-06-29T03:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=de005223b77c473d45c9c8a11147f6968325f73e'/>
<id>urn:sha1:de005223b77c473d45c9c8a11147f6968325f73e</id>
<content type='text'>
Removing rules for Ipf sources file:
* Remove the source file which path with "ipf" and also listed in
  [Sources.IPF] section of INF file.
* Remove the source file which listed in [Components.IPF] section
  of DSC file and not listed in any other [Components] section.
* Remove the embedded Ipf code for MDE_CPU_IPF.

Removing rules for Inf file:
* Remove IPF from VALID_ARCHITECTURES comments.
* Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section.
* Remove the INF which only listed in [Components.IPF] section in DSC.
* Remove statements from [BuildOptions] that provide IPF specific flags.
* Remove any IPF sepcific sections.

Removing rules for Dec file:
* Remove [Includes.IPF] section from Dec.

Removing rules for Dsc file:
* Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC.
* Remove any IPF specific sections.
* Remove statements from [BuildOptions] that provide IPF specific flags.

Cc: Star Zeng &lt;star.zeng@intel.com&gt;
Cc: Eric Dong &lt;eric.dong@intel.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chen A Chen &lt;chen.a.chen@intel.com&gt;
Reviewed-by: Star Zeng &lt;star.zeng@intel.com&gt;
</content>
</entry>
</feed>
