nuttx/include/sys
wangjianyu3 4775b36316 drivers/usbdev: add UVC gadget class driver
Add USB Video Class 1.1 gadget driver supporting Bulk transport
with uncompressed YUY2 video streaming. Resolution and frame
interval are negotiated dynamically via PROBE/COMMIT control.

- uvc.h: protocol constants, streaming control struct, public API
- uvc.c: class driver with PROBE/COMMIT, bulk EP, /dev/uvc0 chardev
- Kconfig/Make.defs: USBUVC config and build rules
- boardctl.c: BOARDIOC_USBDEV_UVC standalone init path

Hardened against host disconnect:
- Removed nxmutex_lock from USB interrupt context paths
- Added 30s semaphore timeout in uvc_write with EP_CANCEL fallback
- Drain stale wrsem counts in VS_COMMIT before new stream
- Guard uvc_streaming_stop() against double EP_CANCEL race
- Handle EP_SUBMIT returning -ESHUTDOWN gracefully

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2026-03-29 12:35:22 -03:00
..
boardctl.h drivers/usbdev: add UVC gadget class driver 2026-03-29 12:35:22 -03:00
custom_file.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
endian.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
epoll.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
eventfd.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
fcntl.h fcntl: add sys/fcntl.h header file 2024-12-20 11:46:14 -03:00
file.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
gmon.h libs: add gprof arm64 support 2024-10-10 18:46:51 +08:00
inotify.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
ioctl.h sys/ioctl: extend the IOCTL defintion that compatible with linux kernel 2026-01-14 09:39:51 +08:00
ipc.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mman.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
mount.h drivers/fs: Control the behavior of FTL by passing oflags during the open process. 2025-07-16 14:11:41 +08:00
msg.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
param.h arm: systick: fix off-by-one in SysTick RELOAD programming 2026-01-26 19:34:00 +08:00
pciio.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
poll.h fs/poll: remove poll_fdsetup 2025-05-26 18:49:45 +08:00
prctl.h proctl: add PR_SET_DUMPABLE support 2024-12-20 11:46:14 -03:00
queue.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
random.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
resource.h sys/resouce: add RLIM_NLIMITS definition 2026-01-15 16:08:23 -03:00
select.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sem.h sem: add sys/sem.h header file 2024-12-20 11:46:14 -03:00
sendfile.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
shm.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
signal.h signal: add include/sys/signal.h to the signal 2024-12-20 11:46:14 -03:00
signalfd.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
socket.h net: make the sendmsg param type consistent with posix specification 2026-01-16 21:11:39 +08:00
sockio.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
stat.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
statfs.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
statvfs.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
syscall.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
syscall_lookup.h syscall: add sched_note_event_ip syscall for instrumentation dump 2026-01-28 02:06:23 +08:00
sysinfo.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
sysmacros.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
time.h syscall/adjtime: fix minior issue about adjtime and add clock_adjtime to syscall 2025-12-30 10:22:09 -03:00
timerfd.h fs/timerfd: implement TFD_TIMER_CANCEL_ON_SET to detect clock changes 2026-01-30 17:20:24 +08:00
times.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
timex.h sched/clock: support using CLOCKFD to call clock_adjtime 2025-12-30 10:22:09 -03:00
tree.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
types.h sys/types.h: Fixed the conflict issue with the "OK" constant definition 2026-01-16 16:16:21 +08:00
uio.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
un.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
utsname.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
vfs.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
video_controls.h include: migrate to SPDX identifier 2024-10-04 08:18:42 +08:00
videoio.h style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
wait.h sys/wait: add WCOREDUMP defintion 2026-01-15 23:16:27 +08:00