os: extend USB C-API with claim/release

To signal that a device gets used and released by a session
introduce claim, release, and release all callbacks in the
USB interface of the C-API.

Ref genodelabs/genode#4483
This commit is contained in:
Stefan Kalkowski
2022-04-25 11:13:23 +02:00
committed by Christian Helmuth
parent 2e9e5c37b5
commit 8ca2c597e0
2 changed files with 40 additions and 5 deletions

View File

@ -68,6 +68,24 @@ typedef int (*genode_usb_rpc_endp_desc_t)
(genode_usb_bus_num_t bus, genode_usb_dev_num_t dev, unsigned idx,
unsigned alt, unsigned endp, void * buf, unsigned long buf_size);
/**
* Callback to claim a given interface
*/
typedef int (*genode_usb_rpc_claim_t)
(genode_usb_bus_num_t bus, genode_usb_dev_num_t dev, unsigned iface);
/**
* Callback to release a given interface
*/
typedef int (*genode_usb_rpc_release_t)
(genode_usb_bus_num_t bus, genode_usb_dev_num_t dev, unsigned iface);
/**
* Callback to release all interfaces
*/
typedef void (*genode_usb_rpc_release_all_t)
(genode_usb_bus_num_t bus, genode_usb_dev_num_t dev);
struct genode_usb_rpc_callbacks {
genode_shared_dataspace_alloc_attach_t alloc_fn;
genode_shared_dataspace_free_t free_fn;
@ -76,6 +94,9 @@ struct genode_usb_rpc_callbacks {
genode_usb_rpc_iface_desc_t iface_desc_fn;
genode_usb_rpc_iface_extra_t iface_extra_fn;
genode_usb_rpc_endp_desc_t endp_desc_fn;
genode_usb_rpc_claim_t claim_fn;
genode_usb_rpc_release_t release_fn;
genode_usb_rpc_release_all_t release_all_fn;
};
/**