Home | History | Annotate | Download | only in hdt
      1 /* ----------------------------------------------------------------------- *
      2  *
      3  *   Copyright 2009 Pierre-Alexandre Meyer - All Rights Reserved
      4  *
      5  *   Permission is hereby granted, free of charge, to any person
      6  *   obtaining a copy of this software and associated documentation
      7  *   files (the "Software"), to deal in the Software without
      8  *   restriction, including without limitation the rights to use,
      9  *   copy, modify, merge, publish, distribute, sublicense, and/or
     10  *   sell copies of the Software, and to permit persons to whom
     11  *   the Software is furnished to do so, subject to the following
     12  *   conditions:
     13  *
     14  *   The above copyright notice and this permission notice shall
     15  *   be included in all copies or substantial portions of the Software.
     16  *
     17  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     19  *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     20  *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
     21  *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     22  *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     23  *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     24  *   OTHER DEALINGS IN THE SOFTWARE.
     25  *
     26  * -----------------------------------------------------------------------
     27  */
     28 
     29 #include <string.h>
     30 #include <vpd/vpd.h>
     31 
     32 #include "hdt-cli.h"
     33 #include "hdt-common.h"
     34 
     35 void main_show_vpd(int argc __unused, char **argv __unused,
     36 		   struct s_hardware *hardware)
     37 {
     38     reset_more_printf();
     39 
     40     if (!hardware->is_vpd_valid) {
     41 	more_printf("No VPD structure detected.\n");
     42 	return;
     43     }
     44 
     45     more_printf("VPD present at address : %s\n", hardware->vpd.base_address);
     46     if (strlen(hardware->vpd.bios_build_id) > 0)
     47 	more_printf("Bios Build ID                 : %s\n",
     48 		    hardware->vpd.bios_build_id);
     49     if (strlen(hardware->vpd.bios_release_date) > 0)
     50 	more_printf("Bios Release Date             : %s\n",
     51 		    hardware->vpd.bios_release_date);
     52     if (strlen(hardware->vpd.bios_version) > 0)
     53 	more_printf("Bios Version                  : %s\n",
     54 		    hardware->vpd.bios_version);
     55     if (strlen(hardware->vpd.default_flash_filename) > 0)
     56 	more_printf("Default Flash Filename        : %s\n",
     57 		    hardware->vpd.default_flash_filename);
     58     if (strlen(hardware->vpd.box_serial_number) > 0)
     59 	more_printf("Box Serial Number             : %s\n",
     60 		    hardware->vpd.box_serial_number);
     61     if (strlen(hardware->vpd.motherboard_serial_number) > 0)
     62 	more_printf("Motherboard Serial Number     : %s\n",
     63 		    hardware->vpd.motherboard_serial_number);
     64     if (strlen(hardware->vpd.machine_type_model) > 0)
     65 	more_printf("Machine Type/Model            : %s\n",
     66 		    hardware->vpd.machine_type_model);
     67 }
     68 
     69 struct cli_module_descr vpd_show_modules = {
     70     .modules = NULL,
     71     .default_callback = main_show_vpd,
     72 };
     73 
     74 struct cli_mode_descr vpd_mode = {
     75     .mode = VPD_MODE,
     76     .name = CLI_VPD,
     77     .default_modules = NULL,
     78     .show_modules = &vpd_show_modules,
     79     .set_modules = NULL,
     80 };
     81