diff options
Diffstat (limited to 'src/arch')
| -rw-r--r-- | src/arch/i386/Makefile | 1 | ||||
| -rw-r--r-- | src/arch/i386/hci/commands/pxe_cmd.c | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile index 1ca77347f..8f6c97e61 100644 --- a/src/arch/i386/Makefile +++ b/src/arch/i386/Makefile @@ -81,6 +81,7 @@ SRCDIRS += arch/i386/drivers/net SRCDIRS += arch/i386/interface/pcbios SRCDIRS += arch/i386/interface/pxe SRCDIRS += arch/i386/interface/syslinux +SRCDIRS += arch/i386/hci/commands # The various xxx_loader.c files are #included into core/loader.c and # should not be compiled directly. diff --git a/src/arch/i386/hci/commands/pxe_cmd.c b/src/arch/i386/hci/commands/pxe_cmd.c new file mode 100644 index 000000000..b5df2d1b0 --- /dev/null +++ b/src/arch/i386/hci/commands/pxe_cmd.c @@ -0,0 +1,33 @@ +#include <gpxe/netdevice.h> +#include <gpxe/command.h> +#include <hci/ifmgmt_cmd.h> +#include <pxe_call.h> + +FILE_LICENCE ( GPL2_OR_LATER ); + +static int startpxe_payload ( struct net_device *netdev ) { + if ( netdev->state & NETDEV_OPEN ) + pxe_activate ( netdev ); + return 0; +} + +static int startpxe_exec ( int argc, char **argv ) { + return ifcommon_exec ( argc, argv, startpxe_payload, + "Activate PXE on" ); +} + +static int stoppxe_exec ( int argc __unused, char **argv __unused ) { + pxe_deactivate(); + return 0; +} + +struct command pxe_commands[] __command = { + { + .name = "startpxe", + .exec = startpxe_exec, + }, + { + .name = "stoppxe", + .exec = stoppxe_exec, + }, +}; |
