1eda03319SPekka Enberg #include "kvm/interrupt.h" 2eda03319SPekka Enberg 3*f3150089SPekka Enberg #include "kvm/util.h" 4b1b71cd9SCyrill Gorcunov 506f82371SPekka Enberg #include <string.h> 606f82371SPekka Enberg 7da8883c1SPekka Enberg void interrupt_table__copy(struct interrupt_table *self, void *dst, unsigned int size) 8b1b71cd9SCyrill Gorcunov { 9da8883c1SPekka Enberg if (size < sizeof(self->entries)) 10b1b71cd9SCyrill Gorcunov die("An attempt to overwrite host memory"); 11da8883c1SPekka Enberg 12da8883c1SPekka Enberg memcpy(dst, self->entries, sizeof(self->entries)); 13b1b71cd9SCyrill Gorcunov } 14b1b71cd9SCyrill Gorcunov 154b62331fSPekka Enberg void interrupt_table__setup(struct interrupt_table *self, struct ivt_entry *entry) 16ea684828SCyrill Gorcunov { 17ea684828SCyrill Gorcunov unsigned int i; 18ea684828SCyrill Gorcunov 19ea684828SCyrill Gorcunov for (i = 0; i < IVT_VECTORS; i++) 204b62331fSPekka Enberg self->entries[i] = *entry; 21ea684828SCyrill Gorcunov } 22