bios_setting: Add a write handler
Tested:
```
// Test that it writes a new file if it doesn't exist
~# rm /run/oem_bios_setting
// Invalid command (no size / payload)
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x19
Unable to send RAW command (channel=0x0 netfn=0x2e lun=0x0 cmd=0x32 rsp=0xc7): Request data length invalid
// Invalid command (size doesn't match)
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x19 0x01 0x30 0x31
Unable to send RAW command (channel=0x0 netfn=0x2e lun=0x0 cmd=0x32 rsp=0xc7): Request data length invalid
// Command success
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x19 0x02 0x30 0x31
79 2b 00 19 02
// Read back
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x18
79 2b 00 18 02 30 31
~# cat /run/oem_bios_setting
01~#
// Verify overwrite works (truncates the previous bytes)
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x19 0x01 0x33
79 2b 00 19 01
~# cat /run/oem_bios_setting
3~#
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x18
79 2b 00 18 01 33
```
Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I84db782da9b2f121c0a81a855692b5ca25ffda54
diff --git a/bios_setting.hpp b/bios_setting.hpp
index 7445a7a..ced9dd8 100644
--- a/bios_setting.hpp
+++ b/bios_setting.hpp
@@ -33,6 +33,9 @@
Resp readBiosSetting(
std::span<const uint8_t> data, HandlerInterface* handler,
const std::string& biosSettingPath = "/run/oem_bios_setting");
+Resp writeBiosSetting(
+ std::span<const uint8_t> data, HandlerInterface* handler,
+ const std::string& biosSettingPath = "/run/oem_bios_setting");
} // namespace ipmi
} // namespace google