Skip to content

Commit 7fc1d46

Browse files
committed
kernel/protocols: Add OCP to core query protocol
The query protocol is used to check the availability of a protocol at a given version. It should take into account every available protocol. Add the new OCP protocol management. Signed-off-by: Nicola Ramacciotti <niko.ramak@gmail.com>
1 parent 6a82fe1 commit 7fc1d46

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

kernel/src/protocols/core.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@ use crate::protocols::SVSM_UEFI_MM_PROTOCOL;
1717
use crate::protocols::apic::{APIC_PROTOCOL_VERSION_MAX, APIC_PROTOCOL_VERSION_MIN};
1818
use crate::protocols::attest::{ATTEST_PROTOCOL_VERSION_MAX, ATTEST_PROTOCOL_VERSION_MIN};
1919
use crate::protocols::errors::SvsmReqError;
20+
use crate::protocols::ocp::{
21+
OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MAX,
22+
OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MIN,
23+
};
2024
#[cfg(all(feature = "uefivars", not(test)))]
2125
use crate::protocols::uefivars::{UEFI_MM_PROTOCOL_VERSION_MAX, UEFI_MM_PROTOCOL_VERSION_MIN};
2226
use crate::protocols::{
2327
RequestParams, SVSM_APIC_PROTOCOL, SVSM_ATTEST_PROTOCOL, SVSM_CORE_PROTOCOL,
28+
SVSM_OBSERVABILITY_CONFIGURATION_PROTOCOL,
2429
};
2530
#[cfg(all(feature = "vtpm", not(test)))]
2631
use crate::protocols::{
@@ -276,6 +281,11 @@ fn core_query_protocol(params: &mut RequestParams) -> Result<(), SvsmReqError> {
276281
UEFI_MM_PROTOCOL_VERSION_MIN,
277282
UEFI_MM_PROTOCOL_VERSION_MAX,
278283
),
284+
SVSM_OBSERVABILITY_CONFIGURATION_PROTOCOL => protocol_supported(
285+
version,
286+
OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MIN,
287+
OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MAX,
288+
),
279289
_ => 0,
280290
};
281291

kernel/src/protocols/ocp.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ const SVSM_OCP_LIST: u32 = 0;
2727
const SVSM_OCP_READ: u32 = 1;
2828
const SVSM_OCP_WRITE: u32 = 2;
2929

30+
// Min and Max supported protocol version
31+
pub const OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MIN: u32 = 1;
32+
pub const OBSERVABILITY_CONFIGURATION_PROTOCOL_VERSION_MAX: u32 = 1;
33+
3034
#[bitfield(u32)]
3135
#[derive(IntoBytes, Immutable)]
3236
struct OcpSourceFlags {

0 commit comments

Comments
 (0)