[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC] s390x: refactor reset/reipl handling
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH RFC] s390x: refactor reset/reipl handling |
Date: |
Wed, 18 Apr 2018 16:33:13 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
> static void s390_ipl_class_init(ObjectClass *klass, void *data)
> diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
> index 0570d0ad75..102f1ea7af 100644
> --- a/hw/s390x/ipl.h
> +++ b/hw/s390x/ipl.h
> @@ -87,7 +87,17 @@ int s390_ipl_set_loadparm(uint8_t *loadparm);
> void s390_ipl_update_diag308(IplParameterBlock *iplb);
> void s390_ipl_prepare_cpu(S390CPU *cpu);
> IplParameterBlock *s390_ipl_get_iplb(void);
> -void s390_reipl_request(void);
> +
> +enum s390_reset {
> + /* default is a reset not triggered by a CPU e.g. issued by QMP */
> + S390_RESET_EXTERNAL = 0,
> + S390_RESET_REIPL,
> + S390_RESET_MODIFIED_CLEAR,
> + S390_RESET_LOAD_NORMAL,
> +};
> +void s390_ipl_reset_request(CPUState *cs, enum s390_reset reset_type);
> +void s390_ipl_get_reset_request(CPUState **cs, enum s390_reset *reset_type);
> +void s390_ipl_clear_reset_request(void);
>
> #define QIPL_ADDRESS 0xcc
>
> @@ -129,9 +139,11 @@ struct S390IPLState {
> bool enforce_bios;
> IplParameterBlock iplb;
> bool iplb_valid;
> - bool reipl_requested;
> bool netboot;
> QemuIplParameters qipl;
> + /* reset related properties don't have to be migrated or reset */
> + enum s390_reset reset_type;
> + CPUState *reset_cpu;
Wondering if storing the cpu number would be nicer. Opinions?
--
Thanks,
David / dhildenb