<feed xmlns='http://www.w3.org/2005/Atom'>
<title>usbx.git/common/usbx_device_classes/inc, branch dev</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/usbx.git/atom/common/usbx_device_classes/inc?h=dev</id>
<link rel='self' href='http://cgit.235523.xyz/usbx.git/atom/common/usbx_device_classes/inc?h=dev'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/'/>
<updated>2026-06-04T19:25:54Z</updated>
<entry>
<title>Added optional device HID protocol change callback and host HID protocol get/set API (#244)</title>
<updated>2026-06-04T19:25:54Z</updated>
<author>
<name>MAY</name>
<email>81168645+ayedm1@users.noreply.github.com</email>
</author>
<published>2026-06-04T19:25:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=35927220c0165c06dc90e6c9aa7a8eb9b5806065'/>
<id>urn:sha1:35927220c0165c06dc90e6c9aa7a8eb9b5806065</id>
<content type='text'>
This pull request adds host-side HID API functions to get and set the HID protocol (boot vs. report mode), and introduces an optional device-sidecallback invoked when the protocol changes.

New features

 - Added host-side APIs ux_host_class_hid_protocol_set() and ux_host_class_hid_protocol_get() with error-checking wrappers (_uxe_ variants).
 - Added optional device-side callback ux_device_class_hid_set_protocol_callback, invoked when the host changes the active protocol.
 - Added a comprehensive test to verify the new protocol callback functionality.

Bug fixes (host-side protocol get/set)

 1. DMA buffer safety (protocol_get): The received byte is now written into a cache-safe allocated buffer instead of the caller's USHORT* directly. Stack memory is not DMA-safe on cache-incoherent embedded targets, and writing 1 byte into a USHORT* yields incorrect results on big-endianplatforms. Follows the same pattern as ux_host_class_hid_idle_get.
 2. Missing device protection semaphore (both functions): In RTOS mode, ux_device_protection_semaphore is now acquired before submitting the transfer, in addition to the HID instance semaphore. All other HID control transfer functions (idle_get, idle_set) take both semaphores; omitting it allowed concurrent callers to corrupt the shared transfer_request fields.
 3. Missing standalone locking (both functions): Added proper UX_HOST_STANDALONE support using UX_DISABLE/UX_RESTORE to atomically check and setUX_HOST_CLASS_HID_FLAG_LOCK and UX_DEVICE_FLAG_LOCK, and set UX_TRANSFER_FLAG_AUTO_DEVICE_UNLOCK + UX_TRANSFER_STATE_RESET on the transfer request before initiating. Follows the idle_get inline standalone pattern.

Co-authored-by: Frédéric Desbiens &lt;frederic.desbiens@eclipse-foundation.org&gt;
Co-authored-by: Copilot &lt;223556219+Copilot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Merge branch 'dev' into cdc_acm_device_break_req</title>
<updated>2026-03-05T14:34:53Z</updated>
<author>
<name>MAY</name>
<email>81168645+ayedm1@users.noreply.github.com</email>
</author>
<published>2026-03-05T14:34:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=7f5c6b2f9620449a0ab757e8ef86d85a91f6816d'/>
<id>urn:sha1:7f5c6b2f9620449a0ab757e8ef86d85a91f6816d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Updated copyright headers and removed trailing whitespace</title>
<updated>2026-03-05T09:02:41Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-03-05T09:02:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=ea36a88e9fee4136b56e0b8faf94b9acf4c21761'/>
<id>urn:sha1:ea36a88e9fee4136b56e0b8faf94b9acf4c21761</id>
<content type='text'>
</content>
</entry>
<entry>
<title>device cdc acm support break request</title>
<updated>2026-02-10T16:25:50Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2026-01-27T04:10:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=6ad1351d30e277a92fcb6d9bebbcbe86011ebe6d'/>
<id>urn:sha1:6ad1351d30e277a92fcb6d9bebbcbe86011ebe6d</id>
<content type='text'>
- Implements handling of UX_SLAVE_CLASS_CDC_ACM_SEND_BREAK in the CDC ACM control request path.
- Ensures break state is cleared on class deactivation to avoid carrying state across disconnect/reset cycles.
- Minor comment/whitespace cleanups in touched headers/sources.
- Testing: Build-only / compilation sanity/send break request. (no new automated tests added).
</content>
</entry>
<entry>
<title>Device MSC: add START STOP (load/eject) request support</title>
<updated>2026-02-09T21:06:46Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2026-01-18T14:14:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=8cdbb7c4b1d2024280e346359433e34e4f4d4be5'/>
<id>urn:sha1:8cdbb7c4b1d2024280e346359433e34e4f4d4be5</id>
<content type='text'>
- Add mass-storage “removable media” support by tracking per-LUN prevent/allow medium removal and loaded/ejected status.
- Introduce an optional per-LUN callback to handle SCSI START STOP UNIT (including load/eject and power-condition fields).
- Extend storage constants (media types, sense keys/codes, power conditions, prevent flags) to support the new behavior and improve readability (explicit hex values).
- Initialize new per-LUN state on activation (default: medium removal allowed, medium loaded) and wire the new callback through storage initialization.
- Includes minor formatting/comment cleanups and version banner updates to 6.4.6.

SCSI Block Commands – 4 (SBC-4)
</content>
</entry>
<entry>
<title>Cleanup hid device class files</title>
<updated>2025-12-20T23:02:53Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2025-12-14T02:20:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=becc8d08e0916e3c12c4c85c02cf05b48f40c7fb'/>
<id>urn:sha1:becc8d08e0916e3c12c4c85c02cf05b48f40c7fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix typo ALIGNMENT -&gt; ALIGNMENT</title>
<updated>2025-11-26T18:46:53Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2025-11-26T18:46:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=4ea08807e95cc7211741b83ceb3cbd92e01f1441'/>
<id>urn:sha1:4ea08807e95cc7211741b83ceb3cbd92e01f1441</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add missing free allocated memory for device classes, fix typo</title>
<updated>2024-03-23T02:45:33Z</updated>
<author>
<name>Mohamed AYED</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2024-03-22T16:41:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=e4595e3c32fe4123e23a3620fa40b4095d258a30'/>
<id>urn:sha1:e4595e3c32fe4123e23a3620fa40b4095d258a30</id>
<content type='text'>
add missing free allocated memory for device classes (pima/dfu/rndis).
remove extra spaces.
add hid instance sanity check in ux_device_class_hid_uninitializ before freed hid instance memory.
</content>
</entry>
<entry>
<title>Update copyright.</title>
<updated>2024-01-29T06:21:32Z</updated>
<author>
<name>Bo Chen (from Dev Box)</name>
<email>boche@microsoft.com</email>
</author>
<published>2024-01-29T06:21:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=a6087c2efa17d10f67b450392218b68571a68d16'/>
<id>urn:sha1:a6087c2efa17d10f67b450392218b68571a68d16</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update on 23 Oct 2023. Expand to see details.</title>
<updated>2023-10-23T05:31:40Z</updated>
<author>
<name>Chaoqiong Xiao</name>
<email>chxiao@microsoft.com</email>
</author>
<published>2023-10-23T05:31:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=26585e42dccf2e1ce954d8cdb4890fac72d04864'/>
<id>urn:sha1:26585e42dccf2e1ce954d8cdb4890fac72d04864</id>
<content type='text'>
52c60057 Update headers and readme for 6.3.0 release.
5360ad52 Host H264 frame support.
4b097e80 Add javascript to codeql detection
70278ae3 Fixed use after free issues.
5560620e Improved standalone enum transfer flow. Turn off ASIX in standalone build. Im...
39a01206 Improved host HID clients (mouse/keyboard/remote control) deactivation sequence.
be2c7fd5 Improved standalone host CDC ACM control and data instance link management (MSRC 81489,81570)
c2368eb2 Improved AC AS management and error handing.
b9c23b38 PIMA Host/device optional interrupt endpoint support and host unused semaphore removal.
34ca3af9 Removed interface link in class linked to device.
5d3c9dd0 Improved endpoints get error handling (host CDC-ECM/ACM, storage). Moved stor...
71b08ad1 Improved host audio descriptors validation
4717e3f1 Enable weekly pipeline build to avoid CodeQL expiration
ca408b54 Checked XML tag nesting depth in Pictbridge object parsing
c300a00c Limited pictbridge array element to hexa output array size.
0e644aaa Reject fake CDC-ECM data interface not located next to its control interface.
911007a9 Improved host HID usage handling.
d0576877 Enable dummy check of python for CodeQL
2761e105 Fixed some split transfer issue.
db0dbeda Added packet length validation for received nx packet.
f5007249 Fix PIMA issues on data set extraction
3ec66399 Fixing device RNDIS bugs with zero copy
1ec77d6b Fix device HID issue when adding class memory man and zero copy.
d52e55c0 Add zero copy support in device printer
a5cb883f Added zero copy support in device CDC_ECM and RNDIS
1f967ae2 Enable codeql in onebranch pipeline
de265dbc Enable zero copy for device audio and video
53aee275 Refined memory management to reduce overhead.
</content>
</entry>
</feed>
