virtio-devices: add or adjust comments for impl ByteValued

Signed-off-by: Wei Liu <liuwe@microsoft.com>
This commit is contained in:
Wei Liu 2021-11-17 13:39:53 +00:00 committed by Rob Bradford
parent d8becc742c
commit 31b3871eee
6 changed files with 25 additions and 36 deletions

View File

@ -100,7 +100,7 @@ pub struct VirtioBalloonConfig {
const CONFIG_ACTUAL_OFFSET: u64 = 4;
const CONFIG_ACTUAL_SIZE: usize = 4;
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioBalloonConfig {}
struct VirtioBalloonResizeReceiver {

View File

@ -69,7 +69,7 @@ impl Default for VirtioConsoleConfig {
}
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioConsoleConfig {}
struct ConsoleEpollHandler {

View File

@ -79,8 +79,6 @@ struct VirtioIommuRange32 {
end: u32,
}
unsafe impl ByteValued for VirtioIommuRange32 {}
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
#[allow(dead_code)]
@ -89,8 +87,6 @@ struct VirtioIommuRange64 {
end: u64,
}
unsafe impl ByteValued for VirtioIommuRange64 {}
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
#[allow(dead_code)]
@ -103,8 +99,6 @@ struct VirtioIommuConfig {
_reserved: [u8; 7],
}
unsafe impl ByteValued for VirtioIommuConfig {}
/// Virtio IOMMU request type
const VIRTIO_IOMMU_T_ATTACH: u8 = 1;
const VIRTIO_IOMMU_T_DETACH: u8 = 2;
@ -119,8 +113,6 @@ struct VirtioIommuReqHead {
_reserved: [u8; 3],
}
unsafe impl ByteValued for VirtioIommuReqHead {}
/// Virtio IOMMU request status
const VIRTIO_IOMMU_S_OK: u8 = 0;
#[allow(unused)]
@ -148,8 +140,6 @@ struct VirtioIommuReqTail {
_reserved: [u8; 3],
}
unsafe impl ByteValued for VirtioIommuReqTail {}
/// ATTACH request
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
@ -159,8 +149,6 @@ struct VirtioIommuReqAttach {
_reserved: [u8; 8],
}
unsafe impl ByteValued for VirtioIommuReqAttach {}
/// DETACH request
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
@ -170,8 +158,6 @@ struct VirtioIommuReqDetach {
_reserved: [u8; 8],
}
unsafe impl ByteValued for VirtioIommuReqDetach {}
/// Virtio IOMMU request MAP flags
#[allow(unused)]
const VIRTIO_IOMMU_MAP_F_READ: u32 = 1;
@ -194,8 +180,6 @@ struct VirtioIommuReqMap {
_flags: u32,
}
unsafe impl ByteValued for VirtioIommuReqMap {}
/// UNMAP request
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
@ -206,8 +190,6 @@ struct VirtioIommuReqUnmap {
_reserved: [u8; 4],
}
unsafe impl ByteValued for VirtioIommuReqUnmap {}
/// Virtio IOMMU request PROBE types
#[allow(unused)]
const VIRTIO_IOMMU_PROBE_T_NONE: u16 = 0;
@ -224,8 +206,6 @@ struct VirtioIommuReqProbe {
_reserved: [u64; 8],
}
unsafe impl ByteValued for VirtioIommuReqProbe {}
#[derive(Copy, Clone, Debug, Default)]
#[repr(packed)]
#[allow(dead_code)]
@ -234,8 +214,6 @@ struct VirtioIommuProbeProperty {
length: u16,
}
unsafe impl ByteValued for VirtioIommuProbeProperty {}
/// Virtio IOMMU request PROBE property RESV_MEM subtypes
#[allow(unused)]
const VIRTIO_IOMMU_RESV_MEM_T_RESERVED: u8 = 0;
@ -251,8 +229,6 @@ struct VirtioIommuProbeResvMem {
end: u64,
}
unsafe impl ByteValued for VirtioIommuProbeResvMem {}
/// Virtio IOMMU fault flags
#[allow(unused)]
const VIRTIO_IOMMU_FAULT_F_READ: u32 = 1;
@ -284,6 +260,19 @@ struct VirtioIommuFault {
address: u64,
}
// SAFETY: these data structures only contain integers and have no implicit padding
unsafe impl ByteValued for VirtioIommuRange32 {}
unsafe impl ByteValued for VirtioIommuRange64 {}
unsafe impl ByteValued for VirtioIommuConfig {}
unsafe impl ByteValued for VirtioIommuReqHead {}
unsafe impl ByteValued for VirtioIommuReqTail {}
unsafe impl ByteValued for VirtioIommuReqAttach {}
unsafe impl ByteValued for VirtioIommuReqDetach {}
unsafe impl ByteValued for VirtioIommuReqMap {}
unsafe impl ByteValued for VirtioIommuReqUnmap {}
unsafe impl ByteValued for VirtioIommuReqProbe {}
unsafe impl ByteValued for VirtioIommuProbeProperty {}
unsafe impl ByteValued for VirtioIommuProbeResvMem {}
unsafe impl ByteValued for VirtioIommuFault {}
#[derive(Debug)]

View File

@ -149,7 +149,7 @@ struct VirtioMemReq {
padding_1: [u16; 3],
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioMemReq {}
#[repr(C)]
@ -160,7 +160,7 @@ struct VirtioMemResp {
state: u16,
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioMemResp {}
#[repr(C)]
@ -186,7 +186,7 @@ pub struct VirtioMemConfig {
requested_size: u64,
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioMemConfig {}
impl VirtioMemConfig {

View File

@ -50,7 +50,7 @@ struct VirtioPmemConfig {
size: u64,
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioPmemConfig {}
#[derive(Copy, Clone, Debug, Default)]
@ -59,7 +59,7 @@ struct VirtioPmemReq {
type_: u32,
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioPmemReq {}
#[derive(Copy, Clone, Debug, Default)]
@ -68,7 +68,7 @@ struct VirtioPmemResp {
ret: u32,
}
// Safe because it only has data and has no implicit padding.
// SAFETY: it only has data and has no implicit padding.
unsafe impl ByteValued for VirtioPmemResp {}
#[derive(Debug)]

View File

@ -75,7 +75,7 @@ struct VirtioPciCap {
offset: Le32, // Offset within bar.
length: Le32, // Length of the structure, in bytes.
}
// It is safe to implement ByteValued. All members are simple numbers and any value is valid.
// SAFETY: All members are simple numbers and any value is valid.
unsafe impl ByteValued for VirtioPciCap {}
impl PciCapability for VirtioPciCap {
@ -111,7 +111,7 @@ struct VirtioPciNotifyCap {
cap: VirtioPciCap,
notify_off_multiplier: Le32,
}
// It is safe to implement ByteValued. All members are simple numbers and any value is valid.
// SAFETY: All members are simple numbers and any value is valid.
unsafe impl ByteValued for VirtioPciNotifyCap {}
impl PciCapability for VirtioPciNotifyCap {
@ -156,7 +156,7 @@ struct VirtioPciCap64 {
offset_hi: Le32,
length_hi: Le32,
}
// It is safe to implement ByteValued. All members are simple numbers and any value is valid.
// SAFETY: All members are simple numbers and any value is valid.
unsafe impl ByteValued for VirtioPciCap64 {}
impl PciCapability for VirtioPciCap64 {
@ -194,7 +194,7 @@ struct VirtioPciCfgCap {
cap: VirtioPciCap,
pci_cfg_data: [u8; 4],
}
// It is safe to implement ByteValued. All members are simple numbers and any value is valid.
// SAFETY: All members are simple numbers and any value is valid.
unsafe impl ByteValued for VirtioPciCfgCap {}
impl PciCapability for VirtioPciCfgCap {