1 /* $OpenBSD: kvm86.h,v 1.1 2006/06/13 03:01:04 gwk Exp $ */ 2 /* 3 * Copyright (c) 2006 Gordon Willem Klok <gwk@openbsd.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 #ifndef _I386_KVM86_H_ 18 #define _I386_KVM86_H_ 19 20 struct kvm86regs { 21 uint32_t eax; 22 uint32_t ebx; 23 uint32_t ecx; 24 uint32_t edx; 25 uint32_t esi; 26 uint32_t edi; 27 uint32_t eflags; 28 uint32_t es; 29 }; 30 31 extern int kvm86_incall; 32 33 void kvm86_init(void); 34 void kvm86_gpfault(struct trapframe *); 35 36 void *kvm86_bios_addpage(uint32_t); 37 void kvm86_bios_delpage(uint32_t, void *); 38 size_t kvm86_bios_read(uint32_t, char *, size_t); 39 40 int kvm86_bioscall(int, struct trapframe *); 41 int kvm86_simplecall(int, struct kvm86regs *); 42 43 #endif