Skip to content

Commit 8d1b62f

Browse files
committed
fix: copilot suggestions
1 parent 0bd97de commit 8d1b62f

File tree

8 files changed

+48
-126
lines changed

8 files changed

+48
-126
lines changed

Cargo.lock

Lines changed: 0 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ authors = ["Caliptra contributors", "OpenPRoT contributors"]
55
edition = "2024"
66

77
[dependencies]
8-
zerocopy = {version = "0.8.17", features = ["derive"]}
8+
zerocopy = { version = "0.8.17", features = ["derive"] }
99
bitfield = "0.14.0"
10-
bytemuck = "1.24.0"

src/message/firmware_update/get_fw_params.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,7 @@ impl PldmCodec for GetFirmwareParametersResponse {
257257
offset += core::mem::size_of::<u8>();
258258

259259
let bytes = self.parms.encode(&mut buffer[offset..])?;
260-
offset += bytes;
261-
Ok(offset)
260+
Ok(offset + bytes)
262261
}
263262

264263
fn decode(buffer: &[u8]) -> Result<Self, PldmCodecError> {

src/message/firmware_update/get_package_data.rs

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ pub const GET_PACKAGE_DATA_PORTION_SIZE: usize = 1024;
1717
#[repr(C, packed)]
1818
/// The FD sends this command to transfer optional data that shall be received prior to transferring
1919
/// components during the firmware update process. This command is only used if the firmware update
20-
/// package contained content within the [FirmwareDevicePackageData] field, the UA provided the length of
20+
/// package contained content within the FirmwareDevicePackageData field, the UA provided the length of
2121
/// the package data in the RequestUpdate command, and the FD indicated that it would use this command
22-
/// in the [FDWillSendGetPackageDataCommand] field.
22+
/// in the FDWillSendGetPackageDataCommand field.
2323
pub struct GetPackageDataRequest {
2424
pub hdr: PldmMsgHeader<[u8; PLDM_MSG_HEADER_LEN]>,
2525
pub data_transfer_handle: u32,
@@ -120,19 +120,16 @@ impl PldmCodec for GetPackageDataResponse {
120120
return Err(PldmCodecError::BufferTooShort);
121121
}
122122

123-
dbg!(core::mem::size_of::<GetPackageDataResponse>());
124-
125123
let mut offset = 0;
126-
buffer[offset..offset + std::mem::size_of_val(&self.hdr.0)].copy_from_slice(&self.hdr.0);
127-
offset += std::mem::size_of_val(&self.hdr.0);
128-
dbg!(offset);
124+
buffer[offset..offset + size_of_val(&self.hdr.0)].copy_from_slice(&self.hdr.0);
125+
offset += size_of_val(&self.hdr.0);
129126

130127
buffer[offset] = self.completion_code;
131128
offset += 1;
132129

133-
buffer[offset..offset + std::mem::size_of_val(&self.next_data_transfer_handle)]
130+
buffer[offset..offset + size_of_val(&self.next_data_transfer_handle)]
134131
.copy_from_slice(self.next_data_transfer_handle.as_bytes());
135-
offset += std::mem::size_of_val(&self.next_data_transfer_handle);
132+
offset += size_of_val(&self.next_data_transfer_handle);
136133

137134
buffer[offset] = self.transfer_flag;
138135
offset += 1;
@@ -141,11 +138,7 @@ impl PldmCodec for GetPackageDataResponse {
141138
self.portion_of_package_data[0..self.portion_of_package_data_len].as_bytes(),
142139
);
143140

144-
offset += self.portion_of_package_data_len;
145-
dbg!(&buffer, &buffer.len(), &self.portion_of_package_data_len);
146-
dbg!(self.portion_of_package_data_len);
147-
148-
Ok(offset)
141+
Ok(offset + self.portion_of_package_data_len)
149142
}
150143

151144
fn decode(buffer: &[u8]) -> Result<Self, crate::codec::PldmCodecError> {
@@ -309,7 +302,7 @@ impl<'a> PldmCodecWithLifetime<'a> for GetDeviceMetaDataResponse<'a> {
309302
buffer[offset..offset + self.portion_of_device_metadata.len()]
310303
.copy_from_slice(self.portion_of_device_metadata);
311304

312-
Ok(size)
305+
Ok(offset + self.portion_of_device_metadata.len())
313306
}
314307

315308
fn decode(buffer: &'a [u8]) -> Result<Self, PldmCodecError> {
@@ -350,8 +343,8 @@ impl<'a> PldmCodecWithLifetime<'a> for GetDeviceMetaDataResponse<'a> {
350343
}
351344

352345
/// The FD sends this command to transfer the data that was originally obtained by the UA through the
353-
/// [GetDeviceMetaData] command. This command shall only be used if the FD indicated in the
354-
/// [RequestUpdate] response that it had device metadata that needed to be obtained by the UA. The FD can
346+
/// [GetDeviceMetaDataRequest] command. This command shall only be used if the FD indicated in the
347+
/// RequestUpdate response that it had device metadata that needed to be obtained by the UA. The FD can
355348
/// send this command when it is in any state, except the IDLE and LEARN COMPONENTS state.
356349
#[derive(Debug, Clone, FromBytes, IntoBytes, Immutable, PartialEq)]
357350
#[repr(C, packed)]
@@ -403,9 +396,10 @@ pub struct GetMetaDataResponse<'a> {
403396

404397
/// The UA should select the amount of data to return such that the byte length for this field, except
405398
/// when TransferFlag = End or StartAndEnd, is equal to or between the values of the firmware update
406-
/// baseline transfer size and MaximumTransferSize from the [RequestUpdate] or
407-
/// [RequestDownstreamDeviceUpdate] command. When TransferFlag = End or StartAndEnd, the
408-
/// variable size of this field can also be less than the firmware update baseline transfer size.
399+
/// baseline transfer size and MaximumTransferSize from the RequestUpdate or
400+
/// [crate::message::firmware_update::query_downstream::RequestDownstreamDeviceUpdateRequest] command.
401+
/// When TransferFlag = End or StartAndEnd, the variable size of this field can also be less than
402+
/// the firmware update baseline transfer size.
409403
pub portion_of_device_metadata: &'a [u8],
410404
}
411405

@@ -457,7 +451,7 @@ impl<'a> PldmCodecWithLifetime<'a> for GetMetaDataResponse<'a> {
457451
buffer[offset..offset + self.portion_of_device_metadata.len()]
458452
.copy_from_slice(self.portion_of_device_metadata);
459453

460-
Ok(size)
454+
Ok(offset + self.portion_of_device_metadata.len())
461455
}
462456

463457
fn decode(buffer: &'a [u8]) -> Result<Self, PldmCodecError> {

src/message/firmware_update/query_downstream.rs

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -282,12 +282,13 @@ impl<'a> Iterator for QueryDownstreamIdentifiersResponse<'a> {
282282

283283
impl<'a> PldmCodecWithLifetime<'a> for QueryDownstreamIdentifiersResponse<'a> {
284284
fn encode(&self, buffer: &mut [u8]) -> Result<usize, crate::codec::PldmCodecError> {
285-
let max_size = size_of::<PldmMsgHeader<[u8; PLDM_MSG_HEADER_LEN]>>()
285+
let size = size_of::<PldmMsgHeader<[u8; PLDM_MSG_HEADER_LEN]>>()
286286
+ size_of::<u8>()
287287
+ size_of::<u32>()
288288
+ size_of::<u8>()
289289
+ self.portion.len();
290-
if buffer.len() < max_size {
290+
291+
if buffer.len() < size {
291292
return Err(crate::codec::PldmCodecError::BufferTooShort);
292293
}
293294

@@ -307,42 +308,41 @@ impl<'a> PldmCodecWithLifetime<'a> for QueryDownstreamIdentifiersResponse<'a> {
307308

308309
offset += size_of::<u8>();
309310
buffer[offset..offset + self.portion.len()].copy_from_slice(self.portion);
310-
offset += self.portion.len();
311311

312-
Ok(offset)
312+
Ok(offset + self.portion.len())
313313
}
314314

315-
fn decode(_buffer: &'a [u8]) -> Result<Self, crate::codec::PldmCodecError> {
315+
fn decode(buffer: &'a [u8]) -> Result<Self, crate::codec::PldmCodecError> {
316316
let min_size = size_of::<PldmMsgHeader<[u8; PLDM_MSG_HEADER_LEN]>>()
317317
+ size_of::<u8>()
318318
+ size_of::<u32>()
319319
+ size_of::<u8>();
320320

321-
if _buffer.len() < min_size {
321+
if buffer.len() < min_size {
322322
return Err(crate::codec::PldmCodecError::BufferTooShort);
323323
}
324324

325325
let mut offset = 0;
326326
let hdr = PldmMsgHeader::<[u8; PLDM_MSG_HEADER_LEN]>::read_from_bytes(
327-
&_buffer[offset..offset + PLDM_MSG_HEADER_LEN],
327+
&buffer[offset..offset + PLDM_MSG_HEADER_LEN],
328328
)
329329
.map_err(|_| crate::codec::PldmCodecError::BufferTooShort)?;
330330
offset += PLDM_MSG_HEADER_LEN;
331331

332-
let completion_code = _buffer[offset];
332+
let completion_code = buffer[offset];
333333
offset += size_of::<u8>();
334334

335335
let next_data_transfer_handle = u32::from_le_bytes(
336-
_buffer[offset..offset + size_of::<u32>()]
336+
buffer[offset..offset + size_of::<u32>()]
337337
.try_into()
338338
.map_err(|_| crate::codec::PldmCodecError::BufferTooShort)?,
339339
);
340340
offset += size_of::<u32>();
341341

342-
let transfer_flag = _buffer[offset];
342+
let transfer_flag = buffer[offset];
343343
offset += size_of::<u8>();
344344

345-
let portion = &_buffer[offset..];
345+
let portion = &buffer[offset..];
346346

347347
Ok(QueryDownstreamIdentifiersResponse {
348348
hdr,
@@ -438,7 +438,6 @@ impl Iterator for DownstreamDevice<'_> {
438438
self._iter_offset += descriptor_size;
439439
self._iter_dev_count += 1;
440440

441-
// println!("{descriptor:?}");
442441
Some(descriptor)
443442
}
444443
}
@@ -885,18 +884,22 @@ impl PldmCodec for DownstreamDeviceParameterTable {
885884
let capabilities_during_update = CapabilitiesDuringUpdate::decode(&buffer[offset..])?;
886885
offset += size_of::<CapabilitiesDuringUpdate>();
887886

888-
let mut active_component_version_string = PldmFirmwareString::default();
889-
active_component_version_string.str_type = active_component_version_string_type;
890-
active_component_version_string.str_len = active_component_version_string_length;
887+
let mut active_component_version_string = PldmFirmwareString {
888+
str_type: active_component_version_string_type,
889+
str_len: active_component_version_string_length,
890+
str_data: [0u8; 32],
891+
};
891892
active_component_version_string.str_data[..active_component_version_string_length as usize]
892893
.copy_from_slice(
893894
&buffer[offset..offset + active_component_version_string_length as usize],
894895
);
895896
offset += active_component_version_string_length as usize;
896897

897-
let mut pending_component_version_string = PldmFirmwareString::default();
898-
pending_component_version_string.str_type = pending_component_version_string_type;
899-
pending_component_version_string.str_len = pending_component_version_string_length;
898+
let mut pending_component_version_string = PldmFirmwareString {
899+
str_type: pending_component_version_string_type,
900+
str_len: pending_component_version_string_length,
901+
str_data: [0u8; 32],
902+
};
900903
pending_component_version_string.str_data
901904
[..pending_component_version_string_length as usize]
902905
.copy_from_slice(
@@ -948,9 +951,6 @@ impl PldmCodec for GetDownstreamFirmwareParametersResponse {
948951
+ size_of::<u8>()
949952
+ self.portion.size();
950953

951-
println!("DownstreamDeviceParameterTable encode size: {}", size);
952-
println!("Buffer length: {}", buffer.len());
953-
954954
if buffer.len() < size {
955955
return Err(crate::codec::PldmCodecError::BufferTooShort);
956956
}
@@ -972,9 +972,8 @@ impl PldmCodec for GetDownstreamFirmwareParametersResponse {
972972
offset += size_of::<u8>();
973973

974974
let bytes_written = self.portion.encode(&mut buffer[offset..])?;
975-
offset += bytes_written;
976975

977-
Ok(offset)
976+
Ok(offset + bytes_written)
978977
}
979978

980979
fn decode(buffer: &[u8]) -> Result<Self, crate::codec::PldmCodecError> {
@@ -1257,8 +1256,6 @@ mod tests {
12571256
+ size_of::<ComponentActivationMethods>()
12581257
+ size_of::<CapabilitiesDuringUpdate>();
12591258

1260-
dbg!(STR_DATA_OFFSET);
1261-
12621259
let mut buffer = [0u8; STR_DATA_OFFSET + 4 + 4];
12631260
let bytes_written = table.encode(&mut buffer).unwrap();
12641261

@@ -1292,8 +1289,6 @@ mod tests {
12921289
)
12931290
.unwrap();
12941291

1295-
dbg!(size_of_val(&downstream_device_parameter_table));
1296-
12971292
let portion = GetDownstreamFirmwareParametersPortion {
12981293
get_downstream_firmware_parameters_capability: FirmwareDeviceCapability(0u32),
12991294
downstream_device_count: 1,
@@ -1310,7 +1305,6 @@ mod tests {
13101305

13111306
#[test]
13121307
fn test_get_downstream_firmware_parameters_response_codec() {
1313-
// todo!();
13141308
let instance_id: InstanceId = 0x01;
13151309
let downstream_device_index = DownstreamDeviceIndex::try_from(1).unwrap();
13161310
let cap: FirmwareDeviceCapability = FirmwareDeviceCapability(0u32);

src/message/firmware_update/request_fw_data.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// Licensed under the Apache-2.0 license
2-
3-
use crate::codec::{PldmCodec, PldmCodecError, PldmCodecWithLifetime};
2+
use crate::codec::{PldmCodecError, PldmCodecWithLifetime};
43
use crate::protocol::base::{
54
InstanceId, PldmMsgHeader, PldmMsgType, PldmSupportedType, PLDM_MSG_HEADER_LEN,
65
};
@@ -106,15 +105,19 @@ impl<'a> PldmCodecWithLifetime<'a> for RequestFirmwareDataResponse<'a> {
106105
return Err(PldmCodecError::BufferTooShort);
107106
}
108107

109-
let (fixed, data) =
108+
let (fixed, _) =
110109
RequestFirmwareDataResponseFixed::read_from_prefix(&buffer[..size]).unwrap();
111-
Ok(RequestFirmwareDataResponse { fixed, data })
110+
Ok(RequestFirmwareDataResponse {
111+
fixed,
112+
data: &buffer[size..],
113+
})
112114
}
113115
}
114116

115117
#[cfg(test)]
116118
mod test {
117119
use super::*;
120+
use crate::codec::PldmCodec;
118121

119122
#[test]
120123
fn test_request_firmware_data_request_codec() {

src/protocol/base.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ impl PldmFailureResponse {
259259
/// Macro to define PLDM completion code enum with base codes and custom codes.
260260
/// By default, the entire [PldmBaseCompletionCode] is included as a
261261
/// variant named `BaseCodes`. The additional custom completion codes can be
262-
/// specified as variants, e.g. [FwUpdateCompletionCode].
262+
/// specified as variants of [FwUpdateCompletionCode].
263263
///
264264
/// This macro is useful for the completion codes for the command responses, to ensure
265265
/// type safety while still allowing the use of base completion codes and an

src/protocol/firmware_update.rs

Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -333,65 +333,6 @@ impl Descriptor {
333333
}
334334
}
335335

336-
// impl PldmCodec for Descriptor {
337-
// fn encode(&self, buffer: &mut [u8]) -> Result<usize, PldmCodecError> {
338-
// if buffer.len() < self.codec_size_in_bytes() {
339-
// return Err(PldmCodecError::BufferTooShort);
340-
// }
341-
// let mut offset = 0;
342-
343-
// self.descriptor_type
344-
// .write_to(&mut buffer[offset..offset + core::mem::size_of::<u16>()])
345-
// .unwrap();
346-
// offset += core::mem::size_of::<u16>();
347-
348-
// self.descriptor_length
349-
// .write_to(&mut buffer[offset..offset + core::mem::size_of::<u16>()])
350-
// .unwrap();
351-
// offset += core::mem::size_of::<u16>();
352-
353-
// self.descriptor_data[..self.descriptor_length as usize]
354-
// .write_to(&mut buffer[offset..offset + self.descriptor_length as usize])
355-
// .unwrap();
356-
// offset += self.descriptor_length as usize;
357-
358-
// Ok(offset)
359-
// }
360-
361-
// fn decode(buffer: &[u8]) -> Result<Self, PldmCodecError> {
362-
// let mut offset = 0;
363-
364-
// let descriptor_type = u16::read_from_bytes(
365-
// buffer
366-
// .get(offset..offset + core::mem::size_of::<u16>())
367-
// .ok_or(PldmCodecError::BufferTooShort)?,
368-
// )
369-
// .unwrap();
370-
// offset += core::mem::size_of::<u16>();
371-
372-
// let descriptor_length = u16::read_from_bytes(
373-
// buffer
374-
// .get(offset..offset + core::mem::size_of::<u16>())
375-
// .ok_or(PldmCodecError::BufferTooShort)?,
376-
// )
377-
// .unwrap();
378-
// offset += core::mem::size_of::<u16>();
379-
380-
// let mut descriptor_data = [0u8; DESCRIPTOR_DATA_MAX_LEN];
381-
// descriptor_data[..descriptor_length as usize].copy_from_slice(
382-
// buffer
383-
// .get(offset..offset + descriptor_length as usize)
384-
// .ok_or(PldmCodecError::BufferTooShort)?,
385-
// );
386-
387-
// Ok(Descriptor {
388-
// descriptor_type,
389-
// descriptor_length,
390-
// descriptor_data,
391-
// })
392-
// }
393-
// }
394-
395336
bitfield! {
396337
/// FDPCapabilitiesDuringUpdate
397338
///
@@ -541,9 +482,8 @@ impl PldmCodec for PldmFirmwareString {
541482
self.str_data[..self.str_len as usize]
542483
.write_to(&mut buffer[offset..offset + self.str_len as usize])
543484
.unwrap();
544-
offset += self.str_len as usize;
545485

546-
Ok(offset)
486+
Ok(offset + self.str_len as usize)
547487
}
548488

549489
fn decode(buffer: &[u8]) -> Result<Self, PldmCodecError> {

0 commit comments

Comments
 (0)