\ ***************************************************************************** \ * Copyright (c) 2011 IBM Corporation \ * All rights reserved. \ * This program and the accompanying materials \ * are made available under the terms of the BSD License \ * which accompanies this distribution, and is available at \ * http://www.opensource.org/licenses/bsd-license.php \ * \ * Contributors: \ * IBM Corporation - initial implementation \ ****************************************************************************/ defer set-boot-device defer add-boot-device 8 CONSTANT MAX-ALIAS : add-boot-aliases ( str -- ) 2dup add-boot-device ( $str ) MAX-ALIAS 1 DO 2dup i $cathex 2dup ( $str $strN $strN ) find-alias 0 > IF ( $str $strN false | $result ) drop strdup add-boot-device ( $str ) ELSE 2drop THEN LOOP 2drop ; : qemu-read-bootlist ( -- ) \ See if QEMU has set exact boot device list " qemu,boot-list" get-chosen IF s" boot-device" $setenv EXIT THEN 0 0 set-boot-device " qemu,boot-device" get-chosen not IF \ No boot list set from qemu, so check nvram " boot-device" evaluate swap drop 0= IF \ Not set in nvram too, set default disk/cdrom alias " disk" add-boot-aliases " cdrom" add-boot-aliases " net" add-boot-aliases THEN EXIT THEN 0 ?DO dup i + c@ CASE 0 OF ENDOF [char] a OF ENDOF [char] b OF ENDOF [char] c OF " disk" add-boot-aliases ENDOF [char] d OF " cdrom" add-boot-aliases ENDOF [char] n OF " net" add-boot-aliases ENDOF ENDCASE cr LOOP drop ; ' qemu-read-bootlist to read-bootlist