add preinit modularization work by Daniel Dickinson (cshore)
[openwrt/staging/mkresin.git] / package / base-files / files / sbin / mount_root
index 86d4ef95fbb0f5f785f84d5a6a663e6bbcc8b05f..033dfda29f6424e3ddb2db3db86ed0e46039c1ff 100755 (executable)
@@ -1,25 +1,26 @@
 #!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
-. /etc/functions.sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
 
-jffs2_ready () {
-       mtdpart="$(find_mtd_part rootfs_data)"
-       magic=$(hexdump $mtdpart -n 4 -e '4/1 "%02x"')
-       [ "$magic" != "deadc0de" ]
-}
+# Initialize hook variables et by pulling in from preinit
+
+preinit_essential_hook=
+preinit_main_hook=
+failsafe_hook=
+initramfs_hook=
+preinit_mount_root=
+
+. /lib/functions/boot.sh
 
-grep rootfs_data /proc/mtd >/dev/null 2>/dev/null && {
-       . /sbin/firstboot
-       mtd unlock rootfs_data
-       jffs2_ready && {
-               echo "switching to jffs2"
-               mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2 && \
-                       fopivot /jffs /rom
-       } || {
-               echo "jffs2 not ready yet; using ramdisk"
-               ramoverlay
-       }
-} || {
-       mtd unlock rootfs
-       mount -o remount,rw /dev/root /
+for pi_source_file in /lib/preinit/*; do
+    . $pi_source_file
+done
+
+# Override function that doesn't apply to use of mount_root as a command rather
+# than as part of preinit
+
+preinit_echo() {
+    echo "$@"
 }
+
+boot_run_hook mount_root