usb-dbg: C++ise panel
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ib4671a3598d61f903f868846196cd8e645b11fb7
diff --git a/src/usb-dbg.cpp b/src/usb-dbg.cpp
index d47a0a1..c8f5a94 100644
--- a/src/usb-dbg.cpp
+++ b/src/usb-dbg.cpp
@@ -948,35 +948,35 @@
}
}
-static uint8_t panel_main(uint8_t item)
+static panel panel_main(size_t item)
{
// Update item list when select item 0
switch (item)
{
case 1:
- return panels[PANEL_BOOT_ORDER].select(0);
+ return panels[std::to_underlying(panel::BOOT_ORDER)].select(0);
case 2:
- return panels[PANEL_POWER_POLICY].select(0);
+ return panels[std::to_underlying(panel::POWER_POLICY)].select(0);
default:
- return PANEL_MAIN;
+ return panel::MAIN;
}
}
-static uint8_t panel_boot_order(uint8_t selectedItemIndex)
+static panel panel_boot_order(size_t selectedItemIndex)
{
static constexpr size_t sizeBootOrder = 6;
static constexpr size_t bootValid = 0x80;
std::vector<uint8_t> bootSeq;
- ctrl_panel& bootOrderPanel = panels[PANEL_BOOT_ORDER];
+ ctrl_panel& bootOrderPanel = panels[std::to_underlying(panel::BOOT_ORDER)];
size_t pos = plat_get_fru_sel();
if (pos == FRU_ALL)
{
bootOrderPanel.item_num = 0;
- return PANEL_BOOT_ORDER;
+ return panel::BOOT_ORDER;
}
auto [bootObjPath, hostName] = ipmi::boot::objPath(pos);
@@ -1033,10 +1033,10 @@
}
bootOrderPanel.item_num = validItem;
- return PANEL_BOOT_ORDER;
+ return panel::BOOT_ORDER;
}
-static uint8_t panel_power_policy(uint8_t)
+static panel panel_power_policy(size_t)
{
/* To be cleaned */
#if 0
@@ -1069,18 +1069,18 @@
panels[PANEL_POWER_POLICY].item_num = 0;
}
#endif
- return PANEL_POWER_POLICY;
+ return panel::POWER_POLICY;
}
-ipmi_ret_t plat_udbg_control_panel(uint8_t panel, uint8_t operation,
+ipmi_ret_t plat_udbg_control_panel(uint8_t cur_panel, uint8_t operation,
uint8_t item, uint8_t* count,
uint8_t* buffer)
{
- if (panel > panelNum || panel < PANEL_MAIN)
+ if (cur_panel > panelNum || cur_panel < std::to_underlying(panel::MAIN))
return IPMI_CC_PARM_OUT_OF_RANGE;
// No more item; End of item list
- if (item > panels[panel].item_num)
+ if (item > panels[cur_panel].item_num)
return IPMI_CC_PARM_OUT_OF_RANGE;
switch (operation)
@@ -1088,24 +1088,24 @@
case 0: // Get Description
break;
case 1: // Select item
- panel = panels[panel].select(item);
+ cur_panel = std::to_underlying(panels[cur_panel].select(item));
item = 0;
break;
case 2: // Back
- panel = panels[panel].parent;
+ cur_panel = std::to_underlying(panels[cur_panel].parent);
item = 0;
break;
default:
return IPMI_CC_PARM_OUT_OF_RANGE;
}
- buffer[0] = panel;
+ buffer[0] = cur_panel;
buffer[1] = item;
- buffer[2] = std::size(panels[panel].item_str[item]);
+ buffer[2] = std::size(panels[cur_panel].item_str[item]);
if (buffer[2] > 0 && (buffer[2] + 3) < FRAME_PAGE_BUF_SIZE)
{
- std::memcpy(&buffer[3], (panels[panel].item_str[item]).c_str(),
+ std::memcpy(&buffer[3], (panels[cur_panel].item_str[item]).c_str(),
buffer[2]);
}
*count = buffer[2] + 3;