Remove obsolete mechanism for including nvo_cmd.o
[people/dverkamp/gpxe.git] / src / hci / commands / nvo_cmd.c
1 #include <stdint.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <errno.h>
5 #include <vsprintf.h>
6 #include <getopt.h>
7 #include <gpxe/nvo.h>
8 #include <gpxe/dhcp.h>
9 #include <gpxe/settings.h>
10 #include <gpxe/command.h>
11
12 extern struct nvo_block *ugly_nvo_hack;
13
14 static int show_exec ( int argc, char **argv ) {
15         struct config_context dummy_context;
16         char buf[256];
17         int rc;
18
19         if ( ! ugly_nvo_hack ) {
20                 printf ( "No non-volatile option storage available\n" );
21                 return 1;
22         }
23
24         if ( argc != 2 ) {
25                 printf ( "Syntax: %s <identifier>\n", argv[0] );
26                 return 1;
27         }
28
29         dummy_context.options = ugly_nvo_hack->options;
30         if ( ( rc = show_setting ( &dummy_context, argv[1], buf,
31                                    sizeof ( buf ) ) ) != 0 ) {
32                 printf ( "Could not find \"%s\": %s\n",
33                          argv[1], strerror ( -rc ) );
34                 return 1;
35         }
36
37         printf ( "%s = %s\n", argv[1], buf );
38         return 0;
39 }
40
41 struct command show_command __command = {
42         .name = "show",
43         .exec = show_exec,
44 };
45
46 static int set_exec ( int argc, char **argv ) {
47         struct config_context dummy_context;
48         int rc;
49
50         if ( ! ugly_nvo_hack ) {
51                 printf ( "No non-volatile option storage available\n" );
52                 return 1;
53         }
54
55         if ( argc != 3 ) {
56                 printf ( "Syntax: %s <identifier> <value>\n",
57                          argv[0] );
58                 return 1;
59         }
60
61         dummy_context.options = ugly_nvo_hack->options;
62         if ( ( rc = set_setting ( &dummy_context, argv[1], argv[2] ) ) != 0 ) {
63                 printf ( "Could not set \"%s\"=\"%s\": %s\n",
64                          argv[1], argv[2], strerror ( -rc ) );
65                 return 1;
66         }
67         
68         if ( nvo_save ( ugly_nvo_hack ) != 0 ) {
69                 printf ( "Could not save options to non-volatile storage\n" );
70                 return 1;
71         }
72
73         return 0;
74 }
75
76 struct command set_command __command = {
77         .name = "set",
78         .exec = set_exec,
79 };
80
81 static int clear_exec ( int argc, char **argv ) {
82         struct config_context dummy_context;
83         int rc;
84
85         if ( ! ugly_nvo_hack ) {
86                 printf ( "No non-volatile option storage available\n" );
87                 return 1;
88         }
89
90         if ( argc != 2 ) {
91                 printf ( "Syntax: %s <identifier>\n",
92                          argv[0] );
93                 return 1;
94         }
95
96         dummy_context.options = ugly_nvo_hack->options;
97         if ( ( rc = clear_setting ( &dummy_context, argv[1] ) ) != 0 ) {
98                 printf ( "Could not clear \"%s\": %s\n",
99                          argv[1], strerror ( -rc ) );
100                 return 1;
101         }
102         
103         return 0;
104 }
105
106 struct command clear_command __command = {
107         .name = "clear",
108         .exec = clear_exec,
109 };