diff --git a/src/biccommands.cpp b/src/biccommands.cpp
index 2220dfe..6da886e 100644
--- a/src/biccommands.cpp
+++ b/src/biccommands.cpp
@@ -154,10 +154,9 @@
 // netfn=0x38 and cmd=0x08 or 0x33 send the response back to the sender.
 //----------------------------------------------------------------------
 
-ipmi::RspType<IanaType> ipmiOemPostCodeHandler(ipmi::Context::ptr ctx,
-                                               IanaType reqIana,
-                                               uint8_t dataLen,
-                                               std::vector<uint8_t> data)
+ipmi::RspType<IanaType>
+    ipmiOemPostCodeHandler(ipmi::Context::ptr ctx, IanaType reqIana,
+                           uint8_t dataLen, std::vector<uint8_t> data)
 {
     // creating bus connection
     auto conn = getSdBus();
@@ -248,9 +247,8 @@
 // send the response back to the sender.
 //----------------------------------------------------------------------
 
-ipmi::RspType<IanaType> ipmiOemSetHostPowerState(ipmi::Context::ptr ctx,
-                                                 IanaType reqIana,
-                                                 uint8_t status)
+ipmi::RspType<IanaType> ipmiOemSetHostPowerState(
+    ipmi::Context::ptr ctx, IanaType reqIana, uint8_t status)
 {
     std::string targetUnit;
 
@@ -298,9 +296,8 @@
 // netfn=0x38 and cmd=0x19 send the response back to the sender.
 //----------------------------------------------------------------------
 
-ipmi::RspType<IanaType, flashSize>
-    ipmiOemGetBiosFlashSize(ipmi::Context::ptr ctx, IanaType ianaReq,
-                            uint8_t target)
+ipmi::RspType<IanaType, flashSize> ipmiOemGetBiosFlashSize(
+    ipmi::Context::ptr ctx, IanaType ianaReq, uint8_t target)
 {
     if (iana != ianaReq)
     {
