1*b8f6afcdSPekka Enberg #include "kvm/cpu.h" 2*b8f6afcdSPekka Enberg 3*b8f6afcdSPekka Enberg #include <stdlib.h> 4*b8f6afcdSPekka Enberg #include <fcntl.h> 5*b8f6afcdSPekka Enberg 6*b8f6afcdSPekka Enberg static void die(const char *s) 7*b8f6afcdSPekka Enberg { 8*b8f6afcdSPekka Enberg perror(s); 9*b8f6afcdSPekka Enberg exit(1); 10*b8f6afcdSPekka Enberg } 11*b8f6afcdSPekka Enberg 12*b8f6afcdSPekka Enberg static void cpu__reset(struct cpu *self) 13*b8f6afcdSPekka Enberg { 14*b8f6afcdSPekka Enberg self->regs.eip = 0x000fff0UL; 15*b8f6afcdSPekka Enberg self->regs.eflags = 0x0000002UL; 16*b8f6afcdSPekka Enberg } 17*b8f6afcdSPekka Enberg 18*b8f6afcdSPekka Enberg static struct cpu *cpu__new(void) 19*b8f6afcdSPekka Enberg { 20*b8f6afcdSPekka Enberg return calloc(1, sizeof(struct cpu)); 21*b8f6afcdSPekka Enberg } 22*b8f6afcdSPekka Enberg 23*b8f6afcdSPekka Enberg int main(int argc, char *argv[]) 24*b8f6afcdSPekka Enberg { 25*b8f6afcdSPekka Enberg struct cpu *cpu; 26*b8f6afcdSPekka Enberg int fd; 27*b8f6afcdSPekka Enberg 28*b8f6afcdSPekka Enberg fd = open("/dev/kvm", O_RDWR); 29*b8f6afcdSPekka Enberg if (fd < 0) 30*b8f6afcdSPekka Enberg die("open"); 31*b8f6afcdSPekka Enberg 32*b8f6afcdSPekka Enberg cpu = cpu__new(); 33*b8f6afcdSPekka Enberg 34*b8f6afcdSPekka Enberg cpu__reset(cpu); 35*b8f6afcdSPekka Enberg 36*b8f6afcdSPekka Enberg return 0; 37*b8f6afcdSPekka Enberg } 38