1 #include "kvm/interrupt.h"
2
3 #include "kvm/util.h"
4
5 #include <string.h>
6
interrupt_table__copy(struct interrupt_table * itable,void * dst,unsigned int size)7 void interrupt_table__copy(struct interrupt_table *itable, void *dst, unsigned int size)
8 {
9 if (size < sizeof(itable->entries))
10 die("An attempt to overwrite host memory");
11
12 memcpy(dst, itable->entries, sizeof(itable->entries));
13 }
14
interrupt_table__setup(struct interrupt_table * itable,struct real_intr_desc * entry)15 void interrupt_table__setup(struct interrupt_table *itable, struct real_intr_desc *entry)
16 {
17 unsigned int i;
18
19 for (i = 0; i < REAL_INTR_VECTORS; i++)
20 itable->entries[i] = *entry;
21 }
22
interrupt_table__set(struct interrupt_table * itable,struct real_intr_desc * entry,unsigned int num)23 void interrupt_table__set(struct interrupt_table *itable,
24 struct real_intr_desc *entry, unsigned int num)
25 {
26 if (num < REAL_INTR_VECTORS)
27 itable->entries[num] = *entry;
28 }
29