source: bootcd/isolinux/syslinux-6.03/com32/hdt/hdt-cli-pxe.c

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/* ----------------------------------------------------------------------- *
2 *
3 *   Copyright 2009 Erwan Velu - 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 <stdio.h>
30#include <string.h>
31#include <stdlib.h>
32#include <errno.h>
33#include <syslinux/pxe.h>
34#include <syslinux/config.h>
35#include <sys/gpxe.h>
36
37#include "hdt-cli.h"
38#include "hdt-common.h"
39
40void main_show_pxe(int argc __unused, char **argv __unused,
41                   struct s_hardware *hardware)
42{
43    char buffer[81];
44    memset(buffer, 0, sizeof(81));
45    reset_more_printf();
46    if (hardware->sv->filesystem != SYSLINUX_FS_PXELINUX) {
47        more_printf("You are not currently using PXELINUX\n");
48        return;
49    }
50
51    more_printf("PXE\n");
52    if (hardware->is_pxe_valid == false) {
53        more_printf(" No valid PXE ROM found\n");
54        return;
55    }
56
57    struct s_pxe *p = &hardware->pxe;
58    more_printf(" PCI device no: %d \n", p->pci_device_pos);
59
60    if (hardware->pci_ids_return_code == -ENOPCIIDS || (p->pci_device == NULL)) {
61        snprintf(buffer, sizeof(buffer),
62                 " PCI ID       : %04x:%04x[%04x:%04X] rev(%02x)\n",
63                 p->vendor_id, p->product_id, p->subvendor_id,
64                 p->subproduct_id, p->rev);
65        snprintf(buffer, sizeof(buffer),
66                 " PCI Bus pos. : %02x:%02x.%02x\n", p->pci_bus,
67                 p->pci_dev, p->pci_func);
68        more_printf("%s", buffer);
69    } else {
70        snprintf(buffer, sizeof(buffer), " Manufacturer : %s \n",
71                 p->pci_device->dev_info->vendor_name);
72        more_printf("%s", buffer);
73        snprintf(buffer, sizeof(buffer), " Product      : %s \n",
74                 p->pci_device->dev_info->product_name);
75        more_printf("%s", buffer);
76    }
77    more_printf(" Addresses    : %d.%d.%d.%d @ %s\n", p->ip_addr[0],
78                p->ip_addr[1], p->ip_addr[2], p->ip_addr[3], p->mac_addr);
79
80    if (is_gpxe())
81        more_printf(" gPXE Detected: Yes\n")
82    else
83        more_printf(" gPXE Detected: No\n");
84}
85
86struct cli_module_descr pxe_show_modules = {
87    .modules = NULL,
88    .default_callback = main_show_pxe,
89};
90
91struct cli_mode_descr pxe_mode = {
92    .mode = PXE_MODE,
93    .name = CLI_PXE,
94    .default_modules = NULL,
95    .show_modules = &pxe_show_modules,
96    .set_modules = NULL,
97};
Note: See TracBrowser for help on using the repository browser.