make lintian happy
[debian/elilo] / tools / eliloalt.c
index e370e0abe0469963f51ee4ba53520fec58911773..1c9709a11f950f55b491778723bbbb3ba0158e3c 100644 (file)
@@ -32,7 +32,6 @@
  * be run by root.
  */
 #include <sys/types.h>
-#include <sys/stat.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -48,9 +47,8 @@
 #define ELILOALT_VERSION       "0.02"
 
 #define ELILO_ALT_NAME "EliloAlt"
-#define OLDEFIVAR_DIR  "/proc/efi/vars"
-#define NEWEFIVAR_DIR  "/sys/firmware/efi/vars"
-#define ELILO_ALTVAR   ELILO_ALT_NAME"-00000000-0000-0000-0000-000000000000"
+#define EFIVAR_DIR     "/proc/efi/vars"
+#define ELILO_ALTVAR   EFIVAR_DIR"/"ELILO_ALT_NAME"-00000000-0000-0000-0000-000000000000"
 
 #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
@@ -83,11 +81,6 @@ typedef struct _efi_variable_t {
 } __attribute__((packed)) efi_variable_t;
 
 static char *elilo_alt_name = ELILO_ALT_NAME;
-static char *efi_vars_dir = NULL;
-static char *elilo_altvar = NULL;
-static char *elilo_newvar = NULL;
-static char *elilo_delvar = NULL;
-unsigned char efivars_version = -1; 
 
 static struct option cmd_options[]={
        { "version", 0, 0, 1},
@@ -136,9 +129,9 @@ check_proc_efi(int find_entry)
        if (getuid() != 0) {
                fatal_error("This program must be run as root\n");
        }
-       efi_vars = opendir(efi_vars_dir);
+       efi_vars = opendir(EFIVAR_DIR);
        if (efi_vars == NULL) {
-               fatal_error("Cannot access %s\n", efi_vars_dir);
+               fatal_error("Cannot access %s\n", EFIVAR_DIR);
        }
        if (!find_entry) {
                closedir(efi_vars);
@@ -150,9 +143,9 @@ check_proc_efi(int find_entry)
                        break;
        }
        if (entry == NULL) {
-               fatal_error("Cannot find entry in %s\n", efi_vars_dir);
+               fatal_error("Cannot find entry in %s\n", EFIVAR_DIR);
        }
-       sprintf(name, "%s/%s", efi_vars_dir, entry->d_name);
+       sprintf(name, "%s/%s", EFIVAR_DIR, entry->d_name);
        closedir(efi_vars);
        return name;
 }
@@ -164,17 +157,10 @@ delete_var(void)
        int fd, r, i;
 
        check_proc_efi(0);
-       
-       if (efivars_version == 1) {
-               fd = open(elilo_altvar, O_WRONLY);
-               if (fd == -1) {
-                       fatal_error("variable not defined\n");
-               }
-        } else {
-               fd = open(elilo_delvar, O_WRONLY);
-               if (fd == -1) {
-                       fatal_error("can't open %s\n", elilo_delvar);
-               }
+
+       fd = open(ELILO_ALTVAR, O_WRONLY);
+       if (fd == -1) {
+               fatal_error("variable not defined\n");
        }
 
        memset(&var, 0, sizeof(var));
@@ -190,7 +176,7 @@ delete_var(void)
        
        r = write(fd, &var, sizeof(var));
        if (r != sizeof(var)) {
-               fatal_error("Variable %s defined but invalid content\n", elilo_altvar);
+               fatal_error("Variable %s defined but invalid content\n", ELILO_ALTVAR);
        }
        close(fd);
 }
@@ -205,7 +191,7 @@ print_var(void)
 
        check_proc_efi(0);
 
-       fd = open(elilo_altvar, O_RDONLY);
+       fd = open(ELILO_ALTVAR, O_RDONLY);
        if (fd == -1) {
                fatal_error("variable not defined\n");
        }
@@ -214,7 +200,7 @@ print_var(void)
 
        r = read(fd, &var, sizeof(var));
        if (r != sizeof(var)) {
-               fatal_error("Variable %s defined but invalid content\n", elilo_altvar);
+               fatal_error("Variable %s defined but invalid content\n", ELILO_ALTVAR);
        }
        printf("EliloAlt=\"");
        for(i=0; i < var.datasize; i+=1){
@@ -243,19 +229,11 @@ set_var(char *cmdline)
                fatal_error("Variable content is too long, must be <= 512 characters\n");
        }
 
-       if (efivars_version == 1) {
-               fd = open(name, O_WRONLY);
-               if (fd == -1) {
-                       fatal_error("can't open %s: %s\n", name,
-                                   strerror(errno));
-                }
-        } else {
-               fd = open(elilo_newvar, O_WRONLY);
-               if (fd == -1) {
-                       fatal_error("can't open %s: %s\n", elilo_newvar,
-                                   strerror(errno));
-                }
+       fd = open(name, O_WRONLY);
+       if (fd == -1) {
+               fatal_error("can't open %s: %s\n", ELILO_ALTVAR, strerror(errno));
        }
+
        memset(&var, 0, sizeof(var));
 
        for (i=0; i < sizeof(elilo_alt_name); i++) {
@@ -278,7 +256,7 @@ set_var(char *cmdline)
        
        r = write(fd, &var, sizeof(var));
        if (r != sizeof(var)) {
-               fatal_error("Variable %s defined but invalid content %d\n", elilo_altvar, r);
+               fatal_error("Variable %s defined but invalid content %d\n", ELILO_ALTVAR, r);
        }
        close(fd);
 
@@ -288,26 +266,6 @@ int
 main(int argc, char **argv)
 {
        int c;
-       struct stat statbuf;
-
-       if (stat(OLDEFIVAR_DIR, &statbuf) == 0) {
-               efi_vars_dir = strdup(OLDEFIVAR_DIR);
-               efivars_version = 1;
-        } else if (stat(NEWEFIVAR_DIR, &statbuf) == 0) {
-               efi_vars_dir = strdup(NEWEFIVAR_DIR);
-               elilo_newvar = malloc(strlen(efi_vars_dir) +
-                                     strlen("new_var") + 2);
-               sprintf(elilo_newvar, "%s/%s", efi_vars_dir, "new_var");
-               elilo_delvar = malloc(strlen(efi_vars_dir) +
-                                     strlen("del_var") + 2);
-               sprintf(elilo_delvar, "%s/%s", efi_vars_dir, "del_var");
-               efivars_version = 2;
-       } else {
-               fatal_error("No EFI vars dir found\n\ttried:\n\t%s\n\t%s",
-                           OLDEFIVAR_DIR, NEWEFIVAR_DIR);
-       }
-       elilo_altvar = malloc(strlen(efi_vars_dir)+strlen(ELILO_ALTVAR)+2);
-       sprintf(elilo_altvar, "%s/%s", efi_vars_dir, ELILO_ALTVAR);
 
        while ((c=getopt_long(argc, argv,"hdps:", cmd_options, 0)) != -1) {
                switch(c) {