@@ -340,8 +340,25 @@ pub struct InterruptDescriptorTable {
340
340
/// vector nr. 20
341
341
pub virtualization : Entry < HandlerFunc > ,
342
342
343
- /// vector nr. 21-28
344
- reserved_2 : [ Entry < HandlerFunc > ; 8 ] ,
343
+ /// vector nr. 21-27
344
+ reserved_2 : [ Entry < HandlerFunc > ; 7 ] ,
345
+
346
+ /// The Hypervisor Injection Exception (`#HV`) is injected by a hypervisor
347
+ /// as a doorbell to inform an `SEV-SNP` enabled guest running with the
348
+ /// `Restricted Injection` feature of events to be processed.
349
+ ///
350
+ /// `SEV-SNP` stands for the _"Secure Nested Paging"_ feature of the _"AMD
351
+ /// Secure Encrypted Virtualization"_ technology. The `Restricted
352
+ /// Injection` feature disables all hypervisor-based interrupt queuing
353
+ /// and event injection of all vectors except #HV.
354
+ ///
355
+ /// The `#HV` exception is a benign exception and can only be injected as
356
+ /// an exception and without an error code. `SEV-SNP` enabled guests are
357
+ /// expected to communicate with the hypervisor about events via a
358
+ /// software-managed para-virtualization interface.
359
+ ///
360
+ /// The vector number of the ``#HV`` exception is 28.
361
+ pub hv_injection_exception : Entry < HandlerFunc > ,
345
362
346
363
/// The VMM Communication Exception (`#VC`) is always generated by hardware when an `SEV-ES`
347
364
/// enabled guest is running and an `NAE` event occurs.
@@ -436,7 +453,8 @@ impl InterruptDescriptorTable {
436
453
machine_check : Entry :: missing ( ) ,
437
454
simd_floating_point : Entry :: missing ( ) ,
438
455
virtualization : Entry :: missing ( ) ,
439
- reserved_2 : [ Entry :: missing ( ) ; 8 ] ,
456
+ reserved_2 : [ Entry :: missing ( ) ; 7 ] ,
457
+ hv_injection_exception : Entry :: missing ( ) ,
440
458
vmm_communication_exception : Entry :: missing ( ) ,
441
459
security_exception : Entry :: missing ( ) ,
442
460
reserved_3 : Entry :: missing ( ) ,
0 commit comments