Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalwareutils.git;a=commitdiff;h=87d2ad7de86e9da7a2ed1691ff693eae2c57193b

commit 87d2ad7de86e9da7a2ed1691ff693eae2c57193b
Author: Miklos Vajna <vmik...@frugalware.org>
Date:   Sun Aug 16 00:42:23 2009 +0200

libfwgrubconfig: add get_swap_dev()

diff --git a/libfwgrubconfig/libfwgrubconfig.c 
b/libfwgrubconfig/libfwgrubconfig.c
index 5c44012..fadccc3 100644
--- a/libfwgrubconfig/libfwgrubconfig.c
+++ b/libfwgrubconfig/libfwgrubconfig.c
@@ -257,6 +257,31 @@ static char *get_mbr_dev()
return(g_strdup_printf("/dev/%s", str));
}

+static char *get_swap_dev()
+{
+       char line[PATH_MAX], *ptr;
+       int i = 0;
+       FILE *fp = fopen("/proc/swaps", "r");
+
+       if (!fp)
+               return NULL;
+       while (fgets(line, PATH_MAX, fp))
+       {
+               if (!i++)
+                       continue;
+               else
+                       break;
+       }
+       if (i == 1)
+               return NULL;
+       fclose(fp);
+       ptr = strchr(line, ' ');
+       if (ptr)
+               *ptr = '\0';
+       return g_strdup(line);
+}
+
+
/** Installs grub to a given target
* @param mode 0: mbr, 1: floppy, 2: root
* @return 0 on succcess, 1 on error
@@ -608,6 +633,7 @@ void fwgrub_create_menu(FILE *fp)
{
char *ptr;
char *bootdev;
+       char *swapdev;
struct stat buf;
struct fwgrub_entry_t entry;
char path[PATH_MAX];
@@ -649,7 +675,11 @@ void fwgrub_create_menu(FILE *fp)
if(!stat(path, &buf))
fprintf(fp, "gfxmenu %s%s/grub/message\n\n", entry.grubbootdev, entry.bootstr);
entry.kernel = strdup("/vmlinuz");
-       entry.opts = strdup("ro quiet vga=791 resume=swap");
+       swapdev = get_swap_dev();
+       if (swapdev)
+               entry.opts = g_strdup_printf("ro quiet vga=791 resume=%s", 
swapdev);
+       else
+               entry.opts = strdup("ro quiet vga=791");
write_entry(&entry);

if(!(stat("/boot/memtest.bin", &buf)))
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to