Move protocol_features to the backend

Extend VhostUserBackend trait with protocol_features(), so device
backend implementations can freely define which protocol features they
want to support.

Signed-off-by: Sergio Lopez <slp@redhat.com>
This commit is contained in:
Sergio Lopez 2019-10-23 16:24:07 +02:00 committed by Samuel Ortiz
parent 6dce71c948
commit e22f9262ff

View file

@ -62,6 +62,9 @@ pub trait VhostUserBackend: Send + Sync + 'static {
/// Virtio features.
fn features(&self) -> u64;
/// Virtio protocol features.
fn protocol_features(&self) -> VhostUserProtocolFeatures;
/// Update guest memory regions.
fn update_memory(&mut self, mem: GuestMemoryMmap) -> result::Result<(), io::Error>;
@ -501,7 +504,7 @@ impl<S: VhostUserBackend> VhostUserSlaveReqHandler for VhostUserHandler<S> {
}
fn get_protocol_features(&mut self) -> VhostUserResult<VhostUserProtocolFeatures> {
Ok(VhostUserProtocolFeatures::all())
Ok(self.backend.read().unwrap().protocol_features())
}
fn set_protocol_features(&mut self, features: u64) -> VhostUserResult<()> {