This patch makes default boot order machine specific instead of set globally. The default boot order can be set per machine in QEMUMachine boot_order. This also allows a machine to receive a NULL boot order when -boot isn't used and take an appropriate action accordingly. This helps machine boots from the devices as set in guest's non-volatile memory location in case no boot order is provided by the user. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avik Sil <aviksil@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Declarations for use by board files for creating devices.  */
 | 
						|
 | 
						|
#ifndef HW_BOARDS_H
 | 
						|
#define HW_BOARDS_H
 | 
						|
 | 
						|
#include "sysemu/blockdev.h"
 | 
						|
#include "qdev.h"
 | 
						|
 | 
						|
#define DEFAULT_MACHINE_OPTIONS \
 | 
						|
    .boot_order = "cad"
 | 
						|
 | 
						|
typedef struct QEMUMachineInitArgs {
 | 
						|
    ram_addr_t ram_size;
 | 
						|
    const char *boot_device;
 | 
						|
    const char *kernel_filename;
 | 
						|
    const char *kernel_cmdline;
 | 
						|
    const char *initrd_filename;
 | 
						|
    const char *cpu_model;
 | 
						|
} QEMUMachineInitArgs;
 | 
						|
 | 
						|
typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args);
 | 
						|
 | 
						|
typedef void QEMUMachineResetFunc(void);
 | 
						|
 | 
						|
typedef struct QEMUMachine {
 | 
						|
    const char *name;
 | 
						|
    const char *alias;
 | 
						|
    const char *desc;
 | 
						|
    QEMUMachineInitFunc *init;
 | 
						|
    QEMUMachineResetFunc *reset;
 | 
						|
    BlockInterfaceType block_default_type;
 | 
						|
    int max_cpus;
 | 
						|
    unsigned int no_serial:1,
 | 
						|
        no_parallel:1,
 | 
						|
        use_virtcon:1,
 | 
						|
        no_floppy:1,
 | 
						|
        no_cdrom:1,
 | 
						|
        no_sdcard:1;
 | 
						|
    int is_default;
 | 
						|
    const char *default_machine_opts;
 | 
						|
    const char *boot_order;
 | 
						|
    GlobalProperty *compat_props;
 | 
						|
    struct QEMUMachine *next;
 | 
						|
    const char *hw_version;
 | 
						|
} QEMUMachine;
 | 
						|
 | 
						|
int qemu_register_machine(QEMUMachine *m);
 | 
						|
QEMUMachine *find_default_machine(void);
 | 
						|
 | 
						|
extern QEMUMachine *current_machine;
 | 
						|
 | 
						|
#endif
 |