]> git.ozlabs.org Git - petitboot/blobdiff - ui/test/discover-test.c
Add system info messages
[petitboot] / ui / test / discover-test.c
index 45a4c7489719adc3f26fc106e7bef34096540e16..576f293f6b92881f2944baca4681cbcfc288a307 100644 (file)
@@ -3,6 +3,21 @@
 
 #include "ui/common/discover-client.h"
 
+static const char *device_type_string(enum device_type type)
+{
+       switch (type) {
+       case DEVICE_TYPE_DISK:
+               return "disk";
+       case DEVICE_TYPE_NETWORK:
+               return "network";
+       case DEVICE_TYPE_OPTICAL:
+               return "optical";
+       case DEVICE_TYPE_UNKNOWN:
+               return "unknown";
+       }
+       return "invalid";
+}
+
 static int print_device_add(struct device *device,
        void __attribute__((unused)) *arg)
 {
@@ -10,6 +25,7 @@ static int print_device_add(struct device *device,
 
        printf("new device:\n");
        printf("\tid:   %s\n", device->id);
+       printf("\ttype: %s\n", device_type_string(device->type));
        printf("\tname: %s\n", device->name);
        printf("\tdesc: %s\n", device->description);
        printf("\ticon: %s\n", device->icon_file);
@@ -66,11 +82,41 @@ static void print_status(struct boot_status *status,
 
 }
 
+static void print_sysinfo(struct system_info *sysinfo,
+       void __attribute__((unused)) *arg)
+{
+       unsigned int i;
+
+       printf("sysinfo:\n");
+       printf("\ttype:     %s\n", sysinfo->type);
+       printf("\tid:       %s\n", sysinfo->identifier);
+
+       if (sysinfo->n_interfaces == 0)
+               printf("\tno interfaces.\n");
+       else
+               printf("\tinterfaces:\n");
+
+       for (i = 0; i < sysinfo->n_interfaces; i++) {
+               struct interface_info *if_info = sysinfo->interfaces[i];
+               uint8_t *m = if_info->hwaddr;
+
+               printf("\t\tname:   %s\n", if_info->name);
+
+               if (if_info->hwaddr_size == 6)
+                       printf("\t\tmac:    %02x:%02x:%02x:%02x:%02x:%02x\n",
+                                       m[0], m[1], m[2], m[3], m[4], m[5]);
+               else
+                       printf("\t\tmac:    unknown hwaddr size %d\n",
+                                       if_info->hwaddr_size);
+       }
+}
+
 static struct discover_client_ops client_ops = {
        .device_add = print_device_add,
        .boot_option_add = print_boot_option_add,
        .device_remove = print_device_remove,
        .update_status = print_status,
+       .update_sysinfo = print_sysinfo,
 };
 
 int main(void)