hdt: print bootloader name (menu)
authorPierre-Alexandre Meyer <pierre@mouraf.org>
Sun, 23 Aug 2009 17:45:01 +0000 (10:45 -0700)
committerPierre-Alexandre Meyer <pierre@mouraf.org>
Sun, 23 Aug 2009 17:45:01 +0000 (10:45 -0700)
Add bootloader information in the disk menu.

Misc.: fix compilation warning by refactoring the compute_disks interface
(remove unneeded hardware->disk_info argument).

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
com32/hdt/hdt-menu-disk.c
com32/hdt/hdt-menu.c
com32/hdt/hdt-menu.h

index bd33bdf..49a4b4a 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <stdlib.h>
 #include <disk/errno_disk.h>
+#include <disk/bootloaders.h>
 #include <disk/geom.h>
 #include <disk/read.h>
 #include <disk/partition.h>
@@ -157,10 +158,12 @@ static void compute_partition_information(struct driveinfo *drive_info,
 
 /* Compute the disk submenu */
 static int compute_disk_module(struct s_my_menu *menu, int nb_sub_disk_menu,
-                              struct driveinfo *d, int disk_number)
+                              const struct s_hardware *hardware, int disk_number)
 {
   char buffer[MENULEN + 1];
   char statbuffer[STATLEN + 1];
+       char bootloader_name[50];
+       struct driveinfo *d = (struct driveinfo*) hardware->disk_info;
 
   snprintf(buffer, sizeof buffer, " Disk <0x%X> (EDD %X)", d[disk_number].disk,
                  d[disk_number].edd_version);
@@ -207,6 +210,16 @@ static int compute_disk_module(struct s_my_menu *menu, int nb_sub_disk_menu,
   add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
   menu[nb_sub_disk_menu].items_count++;
 
+       get_bootloader_string(hardware->bootloader_ids[disk_number],
+                             &bootloader_name, 50);
+
+       snprintf(buffer, sizeof buffer, "Bootloader          : %s (id 0x%X)",
+                bootloader_name, hardware->bootloader_ids[disk_number]);
+       snprintf(statbuffer, sizeof statbuffer, "Bootloader: %s (id 0x%X)",
+                bootloader_name, hardware->bootloader_ids[disk_number]);
+       add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0);
+       menu[nb_sub_disk_menu].items_count++;
+
   dn=disk_number;
 
   parse_partition_table(&d[disk_number], &show_partition_information);
@@ -219,7 +232,7 @@ static int compute_disk_module(struct s_my_menu *menu, int nb_sub_disk_menu,
 }
 
 /* Compute the Disks menu */
-void compute_disks(struct s_hdt_menu *menu, struct driveinfo *disk_info, struct s_hardware *hardware)
+void compute_disks(struct s_hdt_menu *menu, struct s_hardware *hardware)
 {
   char buffer[MENULEN + 1];
   int nb_sub_disk_menu = 0;
@@ -232,8 +245,8 @@ void compute_disks(struct s_hdt_menu *menu, struct driveinfo *disk_info, struct
     if (!hardware->disk_info[i].cbios)
       continue; /* Invalid geometry */
     compute_disk_module
-        ((struct s_my_menu*) &(menu->disk_sub_menu), nb_sub_disk_menu, disk_info,
-         i);
+        ((struct s_my_menu*) &(menu->disk_sub_menu), nb_sub_disk_menu,
+        hardware, i);
     nb_sub_disk_menu++;
   }
 
index c37fd41..53afefc 100644 (file)
@@ -154,7 +154,7 @@ void compute_submenus(struct s_hdt_menu *hdt_menu, struct s_hardware *hardware)
 
   compute_processor(&(hdt_menu->cpu_menu), hardware);
   compute_vpd(&(hdt_menu->vpd_menu), hardware);
-  compute_disks(hdt_menu, hardware->disk_info, hardware);
+  compute_disks(hdt_menu, hardware);
 
 #ifdef WITH_PCI
   compute_PCI(hdt_menu, hardware);
index 1cd2c12..6ac688f 100644 (file)
@@ -91,7 +91,7 @@ int compute_PCI(struct s_hdt_menu *hdt_menu, struct s_hardware *hardware);
 void compute_kernel(struct s_my_menu *menu, struct s_hardware *hardware);
 
 // Disk Stuff
-void compute_disks(struct s_hdt_menu *menu, struct driveinfo *disk_info, struct s_hardware *hardware);
+void compute_disks(struct s_hdt_menu *menu, struct s_hardware *hardware);
 
 // DMI Stuff
 void compute_motherboard(struct s_my_menu *menu, s_dmi * dmi);