return sysinfo;
}
+bool system_info_network_available(void)
+{
+ unsigned int i;
+
+ for (i = 0; i < sysinfo->n_interfaces; i++)
+ if (sysinfo->interfaces[i]->address)
+ return true;
+ return false;
+}
void system_info_set_interface_address(unsigned int hwaddr_size,
uint8_t *hwaddr, const char *address)
{
struct interface_info *if_info;
unsigned int i;
+ char mac[20];
for (i = 0; i < sysinfo->n_interfaces; i++) {
if_info = sysinfo->interfaces[i];
}
}
- pb_log("Couldn't find interface matching %s\n", "foo");
+ mac_str(hwaddr, hwaddr_size, mac, sizeof(mac));
+ pb_log("Couldn't find interface matching %s\n", mac);
}
void system_info_register_interface(unsigned int hwaddr_size, uint8_t *hwaddr,
sysinfo = talloc_zero(server, struct system_info);
platform_get_sysinfo(sysinfo);
}
+
+/* Only reset device information. Platform information is static */
+void system_info_reinit(void)
+{
+ unsigned int i;
+
+ for (i = 0; i < sysinfo->n_blockdevs; i++)
+ talloc_free(sysinfo->blockdevs[i]);
+ talloc_free(sysinfo->blockdevs);
+ sysinfo->blockdevs = NULL;
+ sysinfo->n_blockdevs = 0;
+
+ for (i = 0; i < sysinfo->n_interfaces; i++)
+ talloc_free(sysinfo->interfaces[i]);
+ talloc_free(sysinfo->interfaces);
+ sysinfo->interfaces = NULL;
+ sysinfo->n_interfaces = 0;
+}