From a469ce05055c44fdca1ca094ff3a735cc059480d Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Wed, 31 Dec 2014 16:01:55 +0800
Subject: [PATCH] linux/syslinux: support ext2/3/4 device

* Support ext2/3/4 deivce.
* The open_ext2_fs() checks whether it is an ext2/3/4 device,
  do the ext2/3/4 installation (install_to_ext2()) if yes, otherwise go
  on to the fat/ntfs.
* The ext2/3/4 support doesn't require root privileges since it doesn't need
  mount (but write permission is required).

Upstream-Status: Submitted [https://www.syslinux.org/archives/2015-January/023039.html]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Tested-by: Du Dolpher <dolpher.du@intel.com>
---
 linux/syslinux.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/linux/syslinux.c b/linux/syslinux.c
index 46d5624..1cc276b 100755
--- a/linux/syslinux.c
+++ b/linux/syslinux.c
@@ -257,6 +257,23 @@ int do_open_file(char *name)
     return fd;
 }
 
+/*
+ * Check whether the device contains an ext2, ext3 or ext4 fs and open it if
+ * true.
+ * return value:
+ * 0: Everything is OK
+ * 1: Not an ext2, ext3 or ext4
+ * -1: unexpected error
+ */
+static int open_ext2_fs(const char *device, const char *subdir)
+{
+}
+
+/* The install func for ext2, ext3 and ext4 */
+static int install_to_ext2(const char *device, int dev_fd, const char *subdir)
+{
+}
+
 int main(int argc, char *argv[])
 {
     static unsigned char sectbuf[SECTOR_SIZE];
@@ -314,6 +331,24 @@ int main(int argc, char *argv[])
 	die("can't combine an offset with a block device");
     }
 
+    /*
+     * Check if it is an ext2, ext3 or ext4
+     */
+    rv = open_ext2_fs(opt.device, subdir);
+    if (rv == 0) {
+        if (install_to_ext2(opt.device, dev_fd, subdir)) {
+            fprintf(stderr, "%s: installation failed\n", opt.device);
+            exit(1);
+        }
+        return 0;
+    /* Unexpected errors */
+    } else if (rv == -1) {
+        exit(1);
+    }
+
+    /* Reset rv */
+    rv = 0;
+
     xpread(dev_fd, sectbuf, SECTOR_SIZE, opt.offset);
     fsync(dev_fd);
 
@@ -323,6 +358,7 @@ int main(int argc, char *argv[])
      */
     if ((errmsg = syslinux_check_bootsect(sectbuf, &fs_type))) {
 	fprintf(stderr, "%s: %s\n", opt.device, errmsg);
+	fprintf(stderr, "%s: supported fs: fat/ntfs/ext2/ex3/ext4\n", program);
 	exit(1);
     }
 
