vhost-device/vsock/src/rxops.rs
Stefano Garzarella 8fa597e941 vsock: add SPDX-License-Identifier in each file
Harsha specified `license = "Apache-2.0 OR BSD-3-Clause"` in
vsock/Cargo.toml, so let's add a properly SPDX tag in the
vsock files.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 14:21:54 +02:00

37 lines
785 B
Rust

// SPDX-License-Identifier: Apache-2.0 or BSD-3-Clause
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
pub enum RxOps {
/// VSOCK_OP_REQUEST
Request = 0,
/// VSOCK_OP_RW
Rw = 1,
/// VSOCK_OP_RESPONSE
Response = 2,
/// VSOCK_OP_CREDIT_UPDATE
CreditUpdate = 3,
/// VSOCK_OP_RST
Reset = 4,
}
impl RxOps {
/// Convert enum value into bitmask.
pub fn bitmask(self) -> u8 {
1u8 << (self as u8)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_bitmask() {
assert_eq!(1, RxOps::Request.bitmask());
assert_eq!(2, RxOps::Rw.bitmask());
assert_eq!(4, RxOps::Response.bitmask());
assert_eq!(8, RxOps::CreditUpdate.bitmask());
assert_eq!(16, RxOps::Reset.bitmask());
}
}