KVM: s390: add and extend interrupt information data structs
With the currently available struct kvm_s390_interrupt it is not possible to inject every kind of interrupt as defined in the z/Architecture. Add additional interruption parameters to the structures and move it to kvm.h Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
		
					parent
					
						
							
								c760f5e29d
							
						
					
				
			
			
				commit
				
					
						81aa8efe01
					
				
			
		
					 2 changed files with 64 additions and 33 deletions
				
			
		|  | @ -434,6 +434,69 @@ struct kvm_s390_interrupt { | |||
| 	__u64 parm64; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_io_info { | ||||
| 	__u16 subchannel_id; | ||||
| 	__u16 subchannel_nr; | ||||
| 	__u32 io_int_parm; | ||||
| 	__u32 io_int_word; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_ext_info { | ||||
| 	__u32 ext_params; | ||||
| 	__u32 pad; | ||||
| 	__u64 ext_params2; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_pgm_info { | ||||
| 	__u64 trans_exc_code; | ||||
| 	__u64 mon_code; | ||||
| 	__u64 per_address; | ||||
| 	__u32 data_exc_code; | ||||
| 	__u16 code; | ||||
| 	__u16 mon_class_nr; | ||||
| 	__u8 per_code; | ||||
| 	__u8 per_atmid; | ||||
| 	__u8 exc_access_id; | ||||
| 	__u8 per_access_id; | ||||
| 	__u8 op_access_id; | ||||
| 	__u8 pad[3]; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_prefix_info { | ||||
| 	__u32 address; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_extcall_info { | ||||
| 	__u16 code; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_emerg_info { | ||||
| 	__u16 code; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_mchk_info { | ||||
| 	__u64 cr14; | ||||
| 	__u64 mcic; | ||||
| 	__u64 failing_storage_address; | ||||
| 	__u32 ext_damage_code; | ||||
| 	__u32 pad; | ||||
| 	__u8 fixed_logout[16]; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_s390_irq { | ||||
| 	__u64 type; | ||||
| 	union { | ||||
| 		struct kvm_s390_io_info io; | ||||
| 		struct kvm_s390_ext_info ext; | ||||
| 		struct kvm_s390_pgm_info pgm; | ||||
| 		struct kvm_s390_emerg_info emerg; | ||||
| 		struct kvm_s390_extcall_info extcall; | ||||
| 		struct kvm_s390_prefix_info prefix; | ||||
| 		struct kvm_s390_mchk_info mchk; | ||||
| 		char reserved[64]; | ||||
| 	} u; | ||||
| }; | ||||
| 
 | ||||
| /* for KVM_SET_GUEST_DEBUG */ | ||||
| 
 | ||||
| #define KVM_GUESTDBG_ENABLE		0x00000001 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jens Freimann
				Jens Freimann