genode/repos/os/recipes/api
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
..
audio_in_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
audio_out_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
blit depot: update recipe hashes 2021-12-17 15:06:38 +01:00
block_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
capture_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
event_session depot: update recipe hashes 2024-02-29 11:08:28 +01:00
file_system depot: update recipe hashes 2022-02-15 10:23:59 +01:00
file_system_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
framebuffer_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
genode_c_api depot: update recipe hashes 2024-02-29 11:08:28 +01:00
gpio_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
gpu_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
gui_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
i2c_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
input_session depot: update recipe hashes 2024-02-29 11:08:28 +01:00
loader_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
monitor depot: update recipe hashes 2023-08-24 11:01:40 +02:00
net depot: update recipe hashes 2023-11-30 15:11:36 +01:00
nic_driver depot: update recipe hashes 2023-05-30 12:13:34 +02:00
nic_session depot: update recipe hashes 2023-11-30 15:11:36 +01:00
nitpicker_gfx depot: update recipe hashes 2022-02-15 10:23:59 +01:00
os depot: update recipe hashes 2024-02-29 11:08:28 +01:00
pin_control_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
pin_state_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
platform_session depot: update recipe hashes 2024-02-29 11:08:28 +01:00
play_session depot: update recipe hashes 2024-02-29 11:08:28 +01:00
record_session depot: update recipe hashes 2024-02-29 11:08:28 +01:00
report_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
rtc_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
sandbox depot: update recipe hashes 2023-10-04 13:22:08 +02:00
terminal_session depot: update recipe hashes 2023-05-30 12:13:34 +02:00
trace depot: update recipe hashes 2023-04-17 14:48:30 +02:00
uart_session depot: update recipe hashes 2023-03-13 14:32:54 +01:00
uplink_session depot: update recipe hashes 2023-11-30 15:11:36 +01:00
usb_session usb: session renewal & new client API 2024-04-12 12:57:30 +02:00
vfs depot: update recipe hashes 2023-05-30 12:13:34 +02:00
virtio depot: update recipe hashes 2024-02-29 11:08:28 +01:00
session.inc Depot-archive recipes 2017-05-31 13:15:56 +02:00