From: Raymund Will <rw@suse.com>
Subject: Allow s390x-emu to telecontrolled by LOADPARM
References: bsc#892852, bsc#891946
Patch-Mainline: no

---
 util/grub.d/00_header.in |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

--- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in
@@ -54,6 +54,33 @@
 fi
 
 EOF
+if [ "`uname -m`" = "s390x" ]; then
+    cat <<EOF
+if [ ! "\$sys_loadparm" ]; then
+    set sys_loadparm=/sys/firmware/ipl/loadparm
+fi
+while [ -f "\$sys_loadparm" ]; do
+    unset loadparm
+    read_file "\$sys_loadparm" loadparm
+    if [ ! "\${loadparm}" ]; then break; fi
+    unset z_gp			# extract grub part
+    regexp -s 2:z_gp '^([^Gg]*)[Gg](.+)$' "\$loadparm"
+    if [ ! "\$z_gp" ]; then break; fi
+    while true; do
+        unset z_1
+        unset z_2	# remap zIPL-compatible "." to  grub's '>'
+        regexp -s 1:z_1 -s 2:z_2 '^([0-9][0-9>]*)\.([0-9][0-9.]*)$' "\$z_gp"
+        if [ ! "\$z_1" -o ! "\$z_2" ]; then break; fi
+        set z_gp="\$z_1>\$z_2"
+    done
+    if [ ! "\$z_gp" ]; then break; fi
+    set next_entry="\$z_gp"
+    unset z_gp
+    unset loadparm
+    break
+done
+EOF
+fi
 if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
     cat <<EOF
 if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
