diff --git a/include/kvm/interrupt.h b/include/kvm/interrupt.h index f6c1949..d60ccdb 100644 --- a/include/kvm/interrupt.h +++ b/include/kvm/interrupt.h @@ -26,5 +26,6 @@ struct interrupt_table { void interrupt_table__copy(struct interrupt_table *self, void *dst, unsigned int size); void interrupt_table__setup(struct interrupt_table *self, struct real_intr_desc *entry); +void interrupt_table__set(struct interrupt_table *self, struct real_intr_desc *entry, unsigned int num); #endif /* KVM__INTERRUPT_H */ diff --git a/interrupt.c b/interrupt.c index 77319cd..fbf4ecd 100644 --- a/interrupt.c +++ b/interrupt.c @@ -19,3 +19,9 @@ void interrupt_table__setup(struct interrupt_table *self, struct real_intr_desc for (i = 0; i < REAL_INTR_VECTORS; i++) self->entries[i] = *entry; } + +void interrupt_table__set(struct interrupt_table *self, struct real_intr_desc *entry, unsigned int num) +{ + if (num < REAL_INTR_VECTORS) + self->entries[num] = *entry; +}