Merging upstream version 1.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
34cf2bc5f8
commit
ae07fb4ed6
803 changed files with 4523 additions and 1325 deletions
|
@ -40,11 +40,11 @@ executable(
|
|||
include_directories: [incdir, internal_incdir]
|
||||
)
|
||||
|
||||
if libsystemd_dep.found()
|
||||
if libdbus_dep.found()
|
||||
executable(
|
||||
'mi-conf',
|
||||
['mi-conf.c'],
|
||||
dependencies: [libnvme_mi_dep, libsystemd_dep],
|
||||
dependencies: [libnvme_mi_dep, libdbus_dep],
|
||||
include_directories: [incdir, internal_incdir]
|
||||
)
|
||||
endif
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include <ccan/array_size/array_size.h>
|
||||
#include <ccan/endian/endian.h>
|
||||
|
||||
#include <systemd/sd-bus.h>
|
||||
#include <dbus/dbus.h>
|
||||
|
||||
#define MCTP_DBUS_NAME "xyz.openbmc_project.MCTP"
|
||||
#define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp"
|
||||
|
@ -79,10 +79,11 @@ int find_port(nvme_mi_ep_t ep, uint8_t *portp, uint16_t *mtup)
|
|||
return found ? 0 : 1;
|
||||
}
|
||||
|
||||
int set_local_mtu(sd_bus *bus, unsigned int net, uint8_t eid, uint32_t mtu)
|
||||
int set_local_mtu(DBusConnection *bus, unsigned int net, uint8_t eid,
|
||||
uint32_t mtu)
|
||||
{
|
||||
sd_bus_error err = SD_BUS_ERROR_NULL;
|
||||
sd_bus_message *resp;
|
||||
DBusMessage *msg, *resp;
|
||||
DBusError berr;
|
||||
char *ep_path;
|
||||
int rc;
|
||||
|
||||
|
@ -99,26 +100,50 @@ int set_local_mtu(sd_bus *bus, unsigned int net, uint8_t eid, uint32_t mtu)
|
|||
*/
|
||||
mtu += 4;
|
||||
|
||||
rc = sd_bus_call_method(bus, MCTP_DBUS_NAME, ep_path,
|
||||
MCTP_DBUS_EP_IFACE, "SetMTU", &err, &resp,
|
||||
"u", mtu);
|
||||
if (rc < 0) {
|
||||
warnx("Failed to set local MTU: %s", strerror(-rc));
|
||||
return -1;
|
||||
rc = -1;
|
||||
dbus_error_init(&berr);
|
||||
msg = dbus_message_new_method_call(MCTP_DBUS_NAME, ep_path,
|
||||
MCTP_DBUS_EP_IFACE, "SetMTU");
|
||||
if (!msg) {
|
||||
warnx("Can't create D-Bus message");
|
||||
goto out;
|
||||
}
|
||||
|
||||
return 0;
|
||||
rc = dbus_message_append_args(msg,
|
||||
DBUS_TYPE_UINT32, &mtu,
|
||||
DBUS_TYPE_INVALID);
|
||||
if (!rc) {
|
||||
warnx("Can't construct D-Bus message arguments");
|
||||
goto out_free_msg;
|
||||
}
|
||||
|
||||
resp = dbus_connection_send_with_reply_and_block(bus, msg,
|
||||
2000, &berr);
|
||||
if (!resp) {
|
||||
warnx("Failed to set local MTU: %s (%s)", berr.message,
|
||||
berr.name);
|
||||
} else {
|
||||
dbus_message_unref(resp);
|
||||
rc = 0;
|
||||
}
|
||||
|
||||
out_free_msg:
|
||||
dbus_message_unref(msg);
|
||||
out:
|
||||
dbus_error_free(&berr);
|
||||
return rc;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
uint16_t cur_mtu, mtu;
|
||||
DBusConnection *bus;
|
||||
const char *devstr;
|
||||
uint8_t eid, port;
|
||||
nvme_root_t root;
|
||||
unsigned int net;
|
||||
nvme_mi_ep_t ep;
|
||||
sd_bus *bus;
|
||||
DBusError berr;
|
||||
int rc;
|
||||
|
||||
if (argc != 2) {
|
||||
|
@ -141,10 +166,13 @@ int main(int argc, char **argv)
|
|||
goto out_free_root;
|
||||
}
|
||||
|
||||
rc = sd_bus_default_system(&bus);
|
||||
if (rc < 0) {
|
||||
dbus_error_init(&berr);
|
||||
bus = dbus_bus_get(DBUS_BUS_SYSTEM, &berr);
|
||||
if (!bus) {
|
||||
warnx("Failed opening D-Bus: %s (%s)\n",
|
||||
berr.message, berr.name);
|
||||
rc = -1;
|
||||
goto out_close_ep;
|
||||
warnx("Failed opening D-Bus: %s\n", strerror(-rc));
|
||||
}
|
||||
|
||||
rc = find_port(ep, &port, &mtu);
|
||||
|
@ -185,8 +213,9 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
out_close_bus:
|
||||
sd_bus_close(bus);
|
||||
dbus_connection_unref(bus);
|
||||
out_close_ep:
|
||||
dbus_error_free(&berr);
|
||||
nvme_mi_close(ep);
|
||||
out_free_root:
|
||||
nvme_mi_free_root(root);
|
||||
|
|
|
@ -347,14 +347,14 @@ int do_admin_raw(nvme_mi_ep_t ep, int argc, char **argv)
|
|||
}
|
||||
|
||||
tmp = atoi(argv[1]);
|
||||
if (tmp < 0 || tmp > 0xffff) {
|
||||
if (tmp > 0xffff) {
|
||||
fprintf(stderr, "invalid controller ID\n");
|
||||
return -1;
|
||||
}
|
||||
ctrl_id = tmp & 0xffff;
|
||||
|
||||
tmp = atoi(argv[2]);
|
||||
if (tmp < 0 || tmp > 0xff) {
|
||||
if (tmp > 0xff) {
|
||||
fprintf(stderr, "invalid opcode\n");
|
||||
return -1;
|
||||
}
|
||||
|
@ -461,7 +461,7 @@ int do_security_info(nvme_mi_ep_t ep, int argc, char **argv)
|
|||
}
|
||||
|
||||
tmp = atoi(argv[1]);
|
||||
if (tmp < 0 || tmp > 0xffff) {
|
||||
if (tmp > 0xffff) {
|
||||
fprintf(stderr, "invalid controller ID\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue