[avb] Refactor as_avbops_ref() to as_ref() for reuse
This method can be reused to take the reference of
AvbSlotVerifyData.
Bug: 256148034
Test: m pvmfw_img && atest libpvmfw_avb.test
Change-Id: If1998b90e6a990841cbc5e8f3d72b3326068b7a5
diff --git a/pvmfw/avb/src/verify.rs b/pvmfw/avb/src/verify.rs
index a465b12..8eca130 100644
--- a/pvmfw/avb/src/verify.rs
+++ b/pvmfw/avb/src/verify.rs
@@ -169,7 +169,7 @@
out_pointer: *mut *mut u8,
out_num_bytes_preloaded: *mut usize,
) -> Result<(), AvbIOError> {
- let ops = as_avbops_ref(ops)?;
+ let ops = as_ref(ops)?;
let partition = ops.as_ref().get_partition(partition)?;
let out_pointer = to_nonnull(out_pointer)?;
// SAFETY: It is safe as the raw pointer `out_pointer` is a nonnull pointer.
@@ -211,7 +211,7 @@
buffer: *mut c_void,
out_num_read: *mut usize,
) -> Result<(), AvbIOError> {
- let ops = as_avbops_ref(ops)?;
+ let ops = as_ref(ops)?;
let partition = ops.as_ref().get_partition(partition)?;
let buffer = to_nonnull(buffer)?;
// SAFETY: It is safe to copy the requested number of bytes to `buffer` as `buffer`
@@ -253,7 +253,7 @@
partition: *const c_char,
out_size_num_bytes: *mut u64,
) -> Result<(), AvbIOError> {
- let ops = as_avbops_ref(ops)?;
+ let ops = as_ref(ops)?;
let partition = ops.as_ref().get_partition(partition)?;
let partition_size =
u64::try_from(partition.len()).map_err(|_| AvbIOError::InvalidValueSize)?;
@@ -324,7 +324,7 @@
// `public_key_data` is a valid pointer and it points to an array of length
// `public_key_length`.
let public_key = unsafe { slice::from_raw_parts(public_key_data, public_key_length) };
- let ops = as_avbops_ref(ops)?;
+ let ops = as_ref(ops)?;
// Verifies the public key for the known partitions only.
ops.as_ref().get_partition(partition)?;
let trusted_public_key = ops.as_ref().trusted_public_key;
@@ -336,14 +336,14 @@
Ok(())
}
-fn as_avbops_ref<'a>(ops: *mut AvbOps) -> Result<&'a AvbOps, AvbIOError> {
- let ops = to_nonnull(ops)?;
- // SAFETY: It is safe as the raw pointer `ops` is a nonnull pointer.
- unsafe { Ok(ops.as_ref()) }
+fn as_ref<'a, T>(ptr: *mut T) -> Result<&'a T, AvbIOError> {
+ let ptr = to_nonnull(ptr)?;
+ // SAFETY: It is safe as the raw pointer `ptr` is a nonnull pointer.
+ unsafe { Ok(ptr.as_ref()) }
}
-fn to_nonnull<T>(p: *mut T) -> Result<NonNull<T>, AvbIOError> {
- NonNull::new(p).ok_or(AvbIOError::NoSuchValue)
+fn to_nonnull<T>(ptr: *mut T) -> Result<NonNull<T>, AvbIOError> {
+ NonNull::new(ptr).ok_or(AvbIOError::NoSuchValue)
}
fn is_not_null<T>(ptr: *const T) -> Result<(), AvbIOError> {