[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 09/27] s390-ccw: print zipl boot menu
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL v2 09/27] s390-ccw: print zipl boot menu |
Date: |
Thu, 1 Mar 2018 14:01:43 +0100 |
From: "Collin L. Walling" <address@hidden>
When the boot menu options are present and the guest's
disk has been configured by the zipl tool, then the user
will be presented with an interactive boot menu with
labeled entries. An example of what the menu might look
like:
zIPL v1.37.1-build-20170714 interactive boot menu.
0. default (linux-4.13.0)
1. linux-4.13.0
2. performance
3. kvm
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
---
pc-bios/s390-ccw/menu.c | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/pc-bios/s390-ccw/menu.c b/pc-bios/s390-ccw/menu.c
index c1d242fed1..730d44e36b 100644
--- a/pc-bios/s390-ccw/menu.c
+++ b/pc-bios/s390-ccw/menu.c
@@ -15,11 +15,42 @@
static uint8_t flag;
static uint64_t timeout;
-int menu_get_zipl_boot_index(const char *menu_data)
+static int get_boot_index(int entries)
{
return 0; /* implemented next patch */
}
+static void zipl_println(const char *data, size_t len)
+{
+ char buf[len + 2];
+
+ ebcdic_to_ascii(data, buf, len);
+ buf[len] = '\n';
+ buf[len + 1] = '\0';
+
+ sclp_print(buf);
+}
+
+int menu_get_zipl_boot_index(const char *menu_data)
+{
+ size_t len;
+ int entries;
+
+ /* Print and count all menu items, including the banner */
+ for (entries = 0; *menu_data; entries++) {
+ len = strlen(menu_data);
+ zipl_println(menu_data, len);
+ menu_data += len + 1;
+
+ if (entries < 2) {
+ sclp_print("\n");
+ }
+ }
+
+ sclp_print("\n");
+ return get_boot_index(entries - 1); /* subtract 1 to exclude banner */
+}
+
void menu_set_parms(uint8_t boot_menu_flag, uint32_t boot_menu_timeout)
{
flag = boot_menu_flag;
--
2.13.6
- [Qemu-devel] [PULL v2 22/27] qemu-doc: deprecate query-cpus, (continued)
- [Qemu-devel] [PULL v2 22/27] qemu-doc: deprecate query-cpus, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 00/27] s390x updates (and friends), Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 01/27] s390-ccw: refactor boot map table code, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 02/27] s390-ccw: refactor eckd_block_num to use CHS, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 03/27] s390-ccw: refactor IPL structs, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 06/27] s390-ccw: parse and set boot menu options, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 04/27] s390-ccw: update libc, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 05/27] s390-ccw: move auxiliary IPL data to separate location, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 07/27] s390-ccw: set up interactive boot menu parameters, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 08/27] s390-ccw: read stage2 boot loader data to find menu, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 09/27] s390-ccw: print zipl boot menu,
Cornelia Huck <=
- [Qemu-devel] [PULL v2 10/27] s390-ccw: read user input for boot index via the SCLP console, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 11/27] s390-ccw: set cp_receive mask only when needed and consume pending service irqs, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 12/27] s390-ccw: use zipl values when no boot menu options are present, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 13/27] s390-ccw: interactive boot menu for scsi, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 16/27] s390/stattrib: Make SaveVMHandlers data static, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 15/27] s390x/cpu: expose the guest crash information, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 17/27] s390x/tcg: fix disabling/enabling DAT, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 18/27] s390x/tcg: add various alignment checks, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 19/27] qmp: expose s390-specific CPU info, Cornelia Huck, 2018/03/01
- [Qemu-devel] [PULL v2 20/27] qmp: add query-cpus-fast, Cornelia Huck, 2018/03/01