diff options
Diffstat (limited to 'contrib/syslinux-4.02/gpxe/src/hci/commands/nvo_cmd.c')
-rw-r--r-- | contrib/syslinux-4.02/gpxe/src/hci/commands/nvo_cmd.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/gpxe/src/hci/commands/nvo_cmd.c b/contrib/syslinux-4.02/gpxe/src/hci/commands/nvo_cmd.c new file mode 100644 index 0000000..5eb2f06 --- /dev/null +++ b/contrib/syslinux-4.02/gpxe/src/hci/commands/nvo_cmd.c @@ -0,0 +1,79 @@ +#include <stdint.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <getopt.h> +#include <gpxe/settings.h> +#include <gpxe/command.h> + +FILE_LICENCE ( GPL2_OR_LATER ); + +static int show_exec ( int argc, char **argv ) { + char buf[256]; + int rc; + + if ( argc != 2 ) { + printf ( "Syntax: %s <identifier>\n", argv[0] ); + return 1; + } + + if ( ( rc = fetchf_named_setting ( argv[1], buf, + sizeof ( buf ) ) ) < 0 ){ + printf ( "Could not find \"%s\": %s\n", + argv[1], strerror ( rc ) ); + return 1; + } + + printf ( "%s = %s\n", argv[1], buf ); + return 0; +} + +static int set_exec ( int argc, char **argv ) { + int rc; + + if ( argc != 3 ) { + printf ( "Syntax: %s <identifier> <value>\n", argv[0] ); + return 1; + } + + if ( ( rc = storef_named_setting ( argv[1], argv[2] ) ) != 0 ) { + printf ( "Could not set \"%s\"=\"%s\": %s\n", + argv[1], argv[2], strerror ( rc ) ); + return 1; + } + + return 0; +} + +static int clear_exec ( int argc, char **argv ) { + int rc; + + if ( argc != 2 ) { + printf ( "Syntax: %s <identifier>\n", argv[0] ); + return 1; + } + + if ( ( rc = delete_named_setting ( argv[1] ) ) != 0 ) { + printf ( "Could not clear \"%s\": %s\n", + argv[1], strerror ( rc ) ); + return 1; + } + + return 0; +} + +struct command nvo_commands[] __command = { + { + .name = "show", + .exec = show_exec, + }, + { + .name = "set", + .exec = set_exec, + }, + { + .name = "clear", + .exec = clear_exec, + }, +}; |