diff --git a/acpi_tables/src/sdt.rs b/acpi_tables/src/sdt.rs index e055f44d1..d3bf65b26 100644 --- a/acpi_tables/src/sdt.rs +++ b/acpi_tables/src/sdt.rs @@ -77,6 +77,14 @@ impl SDT { self.write(orig_length, value); } + pub fn append_slice(&mut self, data: &[u8]) { + let orig_length = self.data.len(); + let new_length = orig_length + data.len(); + self.write_u32(4, new_length as u32); + self.data.extend_from_slice(data); + self.update_checksum(); + } + /// Write a value at the given offset pub fn write(&mut self, offset: usize, value: T) { assert!((offset + (std::mem::size_of::() - 1)) < self.data.len());