Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

nvo_cmd.c 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include <stdint.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <errno.h>
  6. #include <getopt.h>
  7. #include <gpxe/settings.h>
  8. #include <gpxe/command.h>
  9. FILE_LICENCE ( GPL2_OR_LATER );
  10. static int show_exec ( int argc, char **argv ) {
  11. char buf[256];
  12. int rc;
  13. if ( argc != 2 ) {
  14. printf ( "Syntax: %s <identifier>\n", argv[0] );
  15. return 1;
  16. }
  17. if ( ( rc = fetchf_named_setting ( argv[1], buf,
  18. sizeof ( buf ) ) ) < 0 ){
  19. printf ( "Could not find \"%s\": %s\n",
  20. argv[1], strerror ( rc ) );
  21. return 1;
  22. }
  23. printf ( "%s = %s\n", argv[1], buf );
  24. return 0;
  25. }
  26. static int set_exec ( int argc, char **argv ) {
  27. int rc;
  28. if ( argc != 3 ) {
  29. printf ( "Syntax: %s <identifier> <value>\n", argv[0] );
  30. return 1;
  31. }
  32. if ( ( rc = storef_named_setting ( argv[1], argv[2] ) ) != 0 ) {
  33. printf ( "Could not set \"%s\"=\"%s\": %s\n",
  34. argv[1], argv[2], strerror ( rc ) );
  35. return 1;
  36. }
  37. return 0;
  38. }
  39. static int clear_exec ( int argc, char **argv ) {
  40. int rc;
  41. if ( argc != 2 ) {
  42. printf ( "Syntax: %s <identifier>\n", argv[0] );
  43. return 1;
  44. }
  45. if ( ( rc = delete_named_setting ( argv[1] ) ) != 0 ) {
  46. printf ( "Could not clear \"%s\": %s\n",
  47. argv[1], strerror ( rc ) );
  48. return 1;
  49. }
  50. return 0;
  51. }
  52. struct command nvo_commands[] __command = {
  53. {
  54. .name = "show",
  55. .exec = show_exec,
  56. },
  57. {
  58. .name = "set",
  59. .exec = set_exec,
  60. },
  61. {
  62. .name = "clear",
  63. .exec = clear_exec,
  64. },
  65. };