<feed xmlns='http://www.w3.org/2005/Atom'>
<title>usbx.git/common/usbx_device_classes/src, 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/src?h=dev</id>
<link rel='self' href='http://cgit.235523.xyz/usbx.git/atom/common/usbx_device_classes/src?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>Merge pull request #228 from ayedm1/refer_to_ux_internal_defines</title>
<updated>2026-03-03T16:37:32Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-03-03T16:37:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=3456fbc11058b3367502a40d4eadf0aecaab55c9'/>
<id>urn:sha1:3456fbc11058b3367502a40d4eadf0aecaab55c9</id>
<content type='text'>
Improved code to leverage the ux internal macros instead of using direct tx struct fields</content>
</entry>
<entry>
<title>Merge pull request #246 from ayedm1/device_storage_load_eject_media</title>
<updated>2026-03-03T16:35:59Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-03-03T16:35:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=74288e2ca4bd16b3b56de4020ff5675d0b8af7b0'/>
<id>urn:sha1:74288e2ca4bd16b3b56de4020ff5675d0b8af7b0</id>
<content type='text'>
Added START STOP (load/eject) request support to Device MSC</content>
</entry>
<entry>
<title>Fix RNDIS linux enumeration</title>
<updated>2026-02-26T11:38:46Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2026-02-14T19:00:47Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=3634023876b974394efbe95685a53366e3e0c2d7'/>
<id>urn:sha1:3634023876b974394efbe95685a53366e3e0c2d7</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>Refer to ux internal marco instead of using direct tx</title>
<updated>2026-01-20T02:24:27Z</updated>
<author>
<name>MAY</name>
<email>mohamed.ayed1@outlook.com</email>
</author>
<published>2025-12-03T19:11:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/usbx.git/commit/?id=ce4baf2e3ae331d938afb7a6a544a8da308c694b'/>
<id>urn:sha1:ce4baf2e3ae331d938afb7a6a544a8da308c694b</id>
<content type='text'>
</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>
</feed>
