genode/repos/os/run
Stefan Kalkowski 7ec08af6d9 usb: session renewal & new client API
Replace the USB session API by one that provides a devices ROM only,
which contains information about all USB devices available for this client,
as well as methods to acquire and release a single device.

The acquisition of an USB device returns the capability to a device session
that includes a packet stream buffer to communicate control transfers
in between the client and the USB host controller driver. Moreover,
additional methods to acquire and release an USB interface can be used.

The acquisition of an USB interface returns the capability to an interface
session that includes a packet stream buffer to communicate either
bulk, interrupt, or isochronous transfers in between the client and the
USB host controller driver.

This commit implements the API changes in behalf of the Genode C API's
USB server and client side. Addtionally, it provides Usb::Device,
Usb::Interface, and Usb::Endpoint utilities that can be used by native
C++ clients to use the new API and hide the sophisticated packet stream API.

The adaptations necessary target the following areas:

* lx_emul layer for USB host and client side
* Linux USB host controller driver port for PC
* Linux USB client ports: usb_hid_drv and usb_net_drv, additionally
  reduce the Linux tasks used inside these drivers
* Native usb_block_drv
* black_hole component
* Port of libusb, including smartcard and usb_webcam driver depending on it
* Port of Qemu XHCI model library, including vbox5 & vbox6 depending on it
* Adapt all run-scripts and drivers_interactive recipes to work
  with the new policy rules of the USB host controller driver

Fix genodelabs/genode#5021
2024-04-12 12:57:30 +02:00
..
ahci_block.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
assert_nic.inc os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
assert_qemu_nic.inc os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
block_request_stream.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
block_tester.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
bomb.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
cache.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
cpu_balancer.run Adapt run scripts to trace-subject filtering 2023-12-13 12:28:52 +01:00
cpu_bench.run run/cpu_bench.run: add timeout for zynq_usrp_e31x 2023-11-28 14:24:26 +01:00
demo.run disable demo and fb_bench for zynq_usrp_e31x 2023-11-28 14:24:26 +01:00
dns.run os/include/net: add support for the DNS protocol 2023-11-28 14:24:23 +01:00
event_filter.run event_filter: <log motion="true"> attribute 2024-02-26 08:59:09 +01:00
fb_bench.run disable demo and fb_bench for zynq_usrp_e31x 2023-11-28 14:24:26 +01:00
framebuffer.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
i2c_mcp9808.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
init_smp.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
loader.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
log_core.run Supplement the build of shared libs where needed 2023-11-28 14:44:29 +01:00
lx_fs_import.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
mixer.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
monitor_gdb_interactive.run monitor: add more debugging features 2023-08-23 13:46:37 +02:00
monitor_gdb_tests.inc monitor: move monitor_gdb test commands to separate file 2023-10-04 13:22:08 +02:00
monitor_gdb.inc os: build 'lib/ld' in 'monitor_gdb.inc' 2023-12-13 12:28:05 +01:00
monitor_gdb.run monitor_gdb.run: disable pagination earlier 2023-11-28 14:24:24 +01:00
monitor.run test-monitor: increase buffer size 2024-04-12 12:57:28 +02:00
nic_bridge_stress.run nic_router/nic_bridge: free MAC addresses 2019-04-01 19:33:48 +02:00
nic_dump.run os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
nic_router_dhcp_managed.run nic_router: support multiple DHCP option 6 entries 2020-12-09 14:02:10 +01:00
nic_router_dhcp_unmanaged.run nic_router: support multiple DHCP option 6 entries 2020-12-09 14:02:10 +01:00
nic_router_dhcp.inc nic_router_dhcp: raise test timeout 2023-06-16 11:24:26 +02:00
nic_router_disable_arp.run os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
nic_router_flood.run os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
nic_router_stress.run nic_router/nic_bridge: free MAC addresses 2019-04-01 19:33:48 +02:00
nic_stress.inc os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
nic_uplink.run cleanup file permissions 2023-08-23 13:46:37 +02:00
nvme.run pci_decode: limit bus parsing to subordinate buses 2023-07-14 12:06:31 +02:00
ping_nic_router.run os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
ping.run os net tests: unify & document target restrictions 2023-08-21 08:12:01 +02:00
platform_drv.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
pointer.run fb_sdl: adapt RAM quota for large screen sizes 2023-10-04 13:22:05 +02:00
rom_to_file.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
rtc.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
sd_card_bench.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
sd_card.run sd_card.run: fix broken config and automate 2023-06-16 11:24:26 +02:00
smbios_decoder.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
tar_rom.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
test.run test.run: remove obsolete boot-module heuristic 2024-02-26 08:31:04 +01:00
timeout.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
tz_vmm.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
uart.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
usb_block.run usb: session renewal & new client API 2024-04-12 12:57:30 +02:00
vfs_block.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
vmm_arm.run os: use [build_artifacts] in run scripts 2023-05-30 12:03:26 +02:00
vmm_x86.run vmm_x86: port to new VMM library API 2023-10-04 13:22:04 +02:00