ncsi_util: rename Command to NetlinkCommand
The Command class represents an operation to be performed over the
netlink interface, rather than an NSCI command. We'll want to introduce
a representation for NCSI commands soon, so rename to clarify.
In doing so, split the command constructors from the applyCmd
invocations.
Change-Id: Ida9efefbd155468cb7722783dec1fbfeb6a4d1bb
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
diff --git a/src/ncsi_util.cpp b/src/ncsi_util.cpp
index 7a13590..13c41f6 100644
--- a/src/ncsi_util.cpp
+++ b/src/ncsi_util.cpp
@@ -33,16 +33,16 @@
uint32_t rsvd[2];
};
-class Command
+class NetlinkCommand
{
public:
- Command() = delete;
- ~Command() = default;
- Command(const Command&) = delete;
- Command& operator=(const Command&) = delete;
- Command(Command&&) = default;
- Command& operator=(Command&&) = default;
- Command(
+ NetlinkCommand() = delete;
+ ~NetlinkCommand() = default;
+ NetlinkCommand(const NetlinkCommand&) = delete;
+ NetlinkCommand& operator=(const NetlinkCommand&) = delete;
+ NetlinkCommand(NetlinkCommand&&) = default;
+ NetlinkCommand& operator=(NetlinkCommand&&) = default;
+ NetlinkCommand(
int ncsiCmd, int operation = DEFAULT_VALUE,
std::span<const unsigned char> p = std::span<const unsigned char>()) :
ncsi_cmd(ncsiCmd), operation(operation), payload(p)
@@ -246,7 +246,7 @@
return static_cast<int>(NL_STOP);
};
-int applyCmd(Interface& interface, const Command& cmd,
+int applyCmd(Interface& interface, const NetlinkCommand& cmd,
int package = DEFAULT_VALUE, int channel = DEFAULT_VALUE,
int flags = NONE, CallBack function = nullptr, void* arg = nullptr)
{
@@ -410,11 +410,11 @@
internal::sendCallBackContext ctx{};
- int rc = internal::applyCmd(
- *this,
- internal::Command(ncsi_nl_commands::NCSI_CMD_SEND_CMD, operation,
- payload),
- package, channel, NONE, internal::sendCallBack, &ctx);
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_SEND_CMD, operation,
+ payload);
+
+ int rc = internal::applyCmd(*this, cmd, package, channel, NONE,
+ internal::sendCallBack, &ctx);
if (rc < 0)
{
@@ -430,16 +430,18 @@
"{INTERFACE}",
"CHANNEL", lg2::hex, channel, "PACKAGE", lg2::hex, package,
"INTERFACE", this);
- return internal::applyCmd(
- *this, internal::Command(ncsi_nl_commands::NCSI_CMD_SET_INTERFACE),
- package, channel);
+
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_SET_INTERFACE);
+
+ return internal::applyCmd(*this, cmd, package, channel);
}
int Interface::clearInterface()
{
lg2::debug("ClearInterface , INTERFACE : {INTERFACE}", "INTERFACE", this);
- return internal::applyCmd(
- *this, internal::Command(ncsi_nl_commands::NCSI_CMD_CLEAR_INTERFACE));
+
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_CLEAR_INTERFACE);
+ return internal::applyCmd(*this, cmd);
}
std::optional<InterfaceInfo> Interface::getInfo(int package)
@@ -454,9 +456,10 @@
.info = &info,
};
- rc = internal::applyCmd(
- *this, internal::Command(ncsi_nl_commands::NCSI_CMD_PKG_INFO), package,
- DEFAULT_VALUE, flags, internal::infoCallBack, &ctx);
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_PKG_INFO);
+
+ rc = internal::applyCmd(*this, cmd, package, DEFAULT_VALUE, flags,
+ internal::infoCallBack, &ctx);
if (rc < 0)
{
@@ -473,9 +476,10 @@
auto payload = std::span<const unsigned char>(
reinterpret_cast<const unsigned char*>(&mask),
reinterpret_cast<const unsigned char*>(&mask) + sizeof(decltype(mask)));
- return internal::applyCmd(
- *this, internal::Command(ncsi_nl_commands::NCSI_CMD_SET_PACKAGE_MASK, 0,
- payload));
+
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_SET_PACKAGE_MASK, 0,
+ payload);
+ return internal::applyCmd(*this, cmd);
}
int Interface::setChannelMask(int package, unsigned int mask)
@@ -487,12 +491,10 @@
auto payload = std::span<const unsigned char>(
reinterpret_cast<const unsigned char*>(&mask),
reinterpret_cast<const unsigned char*>(&mask) + sizeof(decltype(mask)));
- return internal::applyCmd(
- *this,
- internal::Command(ncsi_nl_commands::NCSI_CMD_SET_CHANNEL_MASK, 0,
- payload),
- package);
- return 0;
+
+ internal::NetlinkCommand cmd(ncsi_nl_commands::NCSI_CMD_SET_CHANNEL_MASK, 0,
+ payload);
+ return internal::applyCmd(*this, cmd);
}
} // namespace ncsi