From: Peter Dinda Date: Fri, 16 May 2008 18:23:50 +0000 (+0000) Subject: First cut at a keyboard device (partially done) X-Git-Tag: CUTPOINT_BEFORE_FULL_EMULATION X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=d16ef42bba84c7fe88352e5dc23e5e70a5207e29 First cut at a keyboard device (partially done) --- diff --git a/palacios/build/Makefile b/palacios/build/Makefile index 861ca0b..d1bfc67 100644 --- a/palacios/build/Makefile +++ b/palacios/build/Makefile @@ -1,6 +1,6 @@ # Makefile for GeekOS kernel, userspace, and tools # Copyright (c) 2004,2005 David H. Hovemeyer -# $Revision: 1.32 $ +# $Revision: 1.33 $ # This is free software. You are permitted to use, # redistribute, and modify it as specified in the file "COPYING". @@ -134,7 +134,7 @@ VMM_C_OBJS := $(VMM_C_SRCS:%.c=palacios/%.o) VMM_OBJS := $(VMM_C_OBJS) $(VMM_ASM_OBJS) -DEVICE_C_SRCS := nvram.c timer.c simple_pic.c 8259a.c +DEVICE_C_SRCS := keyboard.c nvram.c timer.c simple_pic.c 8259a.c DEVICE_C_OBJS := $(DEVICE_C_SRCS:%.c=devices/%.o) diff --git a/palacios/build/depend.mak b/palacios/build/depend.mak index 7f12c48..0d20b9b 100644 --- a/palacios/build/depend.mak +++ b/palacios/build/depend.mak @@ -1,58 +1,58 @@ geekos/idt.o: ../src/geekos/idt.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/idt.h \ ../include/geekos/int.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/geekos/debug.h geekos/int.o: ../src/geekos/int.c ../include/geekos/idt.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/geekos/debug.h \ ../include/geekos/cpu.h geekos/trap.o: ../src/geekos/trap.c ../include/geekos/idt.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/kthread.h \ ../include/geekos/list.h ../include/geekos/trap.h \ ../include/geekos/serial.h ../include/geekos/irq.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/geekos/debug.h geekos/irq.o: ../src/geekos/irq.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/idt.h ../include/geekos/int.h \ ../include/geekos/defs.h ../include/geekos/io.h ../include/geekos/irq.h \ ../include/geekos/debug.h ../include/geekos/serial.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h geekos/io.o: ../src/geekos/io.c ../include/geekos/io.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h geekos/blockdev.o: ../src/geekos/blockdev.c ../include/geekos/errno.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/malloc.h ../include/geekos/int.h \ ../include/geekos/kassert.h ../include/geekos/defs.h \ ../include/geekos/kthread.h ../include/geekos/list.h \ @@ -62,12 +62,12 @@ geekos/ide.o: ../src/geekos/ide.c ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/int.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/geekos/errno.h \ ../include/geekos/malloc.h ../include/geekos/timer.h \ ../include/geekos/kthread.h ../include/geekos/list.h \ @@ -75,133 +75,133 @@ geekos/ide.o: ../src/geekos/ide.c ../include/geekos/serial.h \ ../include/geekos/ide.h geekos/keyboard.o: ../src/geekos/keyboard.c ../include/geekos/kthread.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/list.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/fmtout.h \ ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/irq.h ../include/geekos/int.h \ ../include/geekos/defs.h ../include/geekos/io.h \ ../include/geekos/keyboard.h geekos/screen.o: ../src/geekos/screen.c \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ ../include/geekos/io.h ../include/geekos/int.h ../include/geekos/defs.h \ ../include/geekos/debug.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h geekos/timer.o: ../src/geekos/timer.c \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/limits.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/limits.h \ ../include/geekos/io.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/fmtout.h \ ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/irq.h \ ../include/geekos/kthread.h ../include/geekos/list.h \ ../include/geekos/timer.h ../include/geekos/serial.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/debug.h geekos/mem.o: ../src/geekos/mem.c ../include/geekos/defs.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/bootinfo.h ../include/geekos/gdt.h \ ../include/geekos/int.h ../include/geekos/malloc.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/mem.h ../include/geekos/list.h \ ../include/geekos/paging.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/io.h \ ../include/geekos/debug.h geekos/crc32.o: ../src/geekos/crc32.c ../include/geekos/crc32.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/serial.h ../include/geekos/irq.h \ ../include/geekos/int.h ../include/geekos/defs.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ ../include/geekos/io.h ../include/geekos/debug.h geekos/gdt.o: ../src/geekos/gdt.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/segment.h ../include/geekos/int.h \ ../include/geekos/defs.h ../include/geekos/tss.h \ ../include/geekos/gdt.h ../include/libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/debug.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h ../include/geekos/io.h geekos/tss.o: ../src/geekos/tss.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/gdt.h \ ../include/geekos/segment.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/tss.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/int.h ../include/geekos/io.h \ ../include/geekos/debug.h geekos/segment.o: ../src/geekos/segment.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/tss.h ../include/geekos/segment.h geekos/bget.o: ../src/geekos/bget.c ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/bget.h geekos/malloc.o: ../src/geekos/malloc.c ../include/geekos/screen.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/defs.h ../include/geekos/bget.h \ ../include/geekos/malloc.h geekos/synch.o: ../src/geekos/synch.c ../include/geekos/kthread.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/list.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/fmtout.h \ ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/int.h ../include/geekos/defs.h \ ../include/geekos/synch.h geekos/kthread.o: ../src/geekos/kthread.c ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/int.h \ ../include/geekos/mem.h ../include/geekos/list.h \ ../include/geekos/paging.h ../include/geekos/bootinfo.h \ ../include/geekos/symbol.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/kthread.h ../include/geekos/malloc.h \ ../include/geekos/serial.h ../include/geekos/irq.h \ ../include/geekos/io.h ../include/geekos/debug.h @@ -209,25 +209,25 @@ geekos/serial.o: ../src/geekos/serial.c ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/int.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/geekos/reboot.h \ ../include/geekos/gdt.h ../include/geekos/idt.h geekos/reboot.o: ../src/geekos/reboot.c ../include/geekos/reboot.h \ ../include/libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h geekos/paging.o: ../src/geekos/paging.c ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/idt.h \ ../include/geekos/kthread.h ../include/geekos/list.h \ ../include/geekos/mem.h ../include/geekos/paging.h \ @@ -240,25 +240,25 @@ geekos/debug.o: ../src/geekos/debug.c ../include/geekos/debug.h \ ../include/geekos/serial.h ../include/geekos/irq.h \ ../include/geekos/int.h ../include/geekos/kassert.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/defs.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h geekos/vmm_stubs.o: ../src/geekos/vmm_stubs.c ../include/geekos/vmm_stubs.h \ ../include/geekos/mem.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/defs.h ../include/geekos/list.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/paging.h ../include/geekos/bootinfo.h \ ../include/geekos/malloc.h ../include/geekos/serial.h \ ../include/geekos/irq.h ../include/geekos/int.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/io.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_types.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ @@ -268,11 +268,11 @@ geekos/vmm_stubs.o: ../src/geekos/vmm_stubs.c ../include/geekos/vmm_stubs.h \ ../include/palacios/vmm_string.h ../include/palacios/vmm_irq.h geekos/vm.o: ../src/geekos/vm.c ../include/geekos/vmm_stubs.h \ ../include/geekos/mem.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/defs.h ../include/geekos/list.h \ ../include/geekos/kassert.h ../include/geekos/screen.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/paging.h ../include/geekos/bootinfo.h \ ../include/geekos/malloc.h ../include/palacios/vmm.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ @@ -281,21 +281,22 @@ geekos/vm.o: ../src/geekos/vm.c ../include/geekos/vmm_stubs.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/geekos/debug.h \ ../include/geekos/serial.h ../include/geekos/irq.h \ ../include/geekos/int.h ../include/geekos/string.h \ ../include/geekos/../libc/string.h ../include/geekos/io.h \ ../include/geekos/vm.h ../include/devices/nvram.h \ ../include/palacios/vm_dev.h ../include/devices/timer.h \ - ../include/devices/simple_pic.h ../include/devices/8259a.h + ../include/devices/simple_pic.h ../include/devices/8259a.h \ + ../include/devices/keyboard.h geekos/main.o: ../src/geekos/main.c ../include/geekos/bootinfo.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/screen.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/geekos/mem.h ../include/geekos/defs.h \ ../include/geekos/list.h ../include/geekos/kassert.h \ ../include/geekos/paging.h ../include/geekos/crc32.h \ @@ -308,118 +309,133 @@ geekos/main.o: ../src/geekos/main.c ../include/geekos/bootinfo.h \ ../include/geekos/debug.h ../include/geekos/vm.h \ ../include/geekos/gdt.h ../include/geekos/vmm_stubs.h common/fmtout.o: ../src/common/fmtout.c \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/geekos/string.h ../include/geekos/../libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/limits.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/limits.h \ ../include/geekos/fmtout.h ../include/geekos/../libc/fmtout.h common/string.o: ../src/common/string.c ../include/libc/fmtout.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdarg.h \ ../include/libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h common/memmove.o: ../src/common/memmove.c ../include/libc/string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h palacios/vm_guest.o: ../src/palacios/vm_guest.c ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h palacios/svm.o: ../src/palacios/svm.c ../include/palacios/svm.h \ ../include/palacios/vmm_util.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmcb.h \ ../include/palacios/svm_handler.h ../include/palacios/vmm_debug.h \ ../include/palacios/vm_guest_mem.h ../include/palacios/vmm_emulate.h +palacios/svm_handler.o: ../src/palacios/svm_handler.c \ + ../include/palacios/svm_handler.h ../include/palacios/svm.h \ + ../include/palacios/vmm_util.h ../include/palacios/vmm_types.h \ + ../include/geekos/ktypes.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ + ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ + ../include/palacios/vmm_shadow_paging.h \ + ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ + ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ + ../include/palacios/vmm_string.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + ../include/palacios/vmm_irq.h ../include/palacios/vmcb.h \ + ../include/palacios/vm_guest_mem.h ../include/palacios/vmm_emulate.h \ + ../include/palacios/vmm_ctrl_regs.h ../include/palacios/svm_io.h palacios/vmm.o: ../src/palacios/vmm.c ../include/palacios/vmm.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/svm.h \ ../include/palacios/vmcb.h ../include/palacios/vmx.h \ ../include/palacios/vmcs.h ../include/palacios/vmcs_gen.h palacios/vmm_util.o: ../src/palacios/vmm_util.c ../include/palacios/vmm_util.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h palacios/vmm_ctrl_regs.o: ../src/palacios/vmm_ctrl_regs.c \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmcb.h \ ../include/palacios/vmm_emulate.h ../include/palacios/vm_guest_mem.h \ ../include/palacios/vmm_ctrl_regs.h palacios/vmcb.o: ../src/palacios/vmcb.c ../include/palacios/vmcb.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmm.h palacios/vmm_mem.o: ../src/palacios/vmm_mem.c ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h palacios/vmm_paging.o: ../src/palacios/vmm_paging.c \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_intr.h ../include/palacios/vmm_dev_mgr.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vm_guest_mem.h palacios/vmm_io.o: ../src/palacios/vmm_io.c ../include/palacios/vmm_io.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_util.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ @@ -429,66 +445,66 @@ palacios/vmm_debug.o: ../src/palacios/vmm_debug.c ../include/palacios/vmm_debug. ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h palacios/svm_io.o: ../src/palacios/svm_io.c ../include/palacios/svm_io.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmcb.h \ ../include/palacios/vmm.h ../include/palacios/vmm_ctrl_regs.h \ ../include/palacios/vmm_emulate.h ../include/palacios/vm_guest_mem.h palacios/vmm_intr.o: ../src/palacios/vmm_intr.c ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ ../include/palacios/vmm_util.h ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_dev_mgr.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h palacios/vmm_irq.o: ../src/palacios/vmm_irq.c palacios/vmm_shadow_paging.o: ../src/palacios/vmm_shadow_paging.c \ ../include/palacios/vmm_shadow_paging.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vm_guest_mem.h palacios/vm_guest_mem.o: ../src/palacios/vm_guest_mem.c \ ../include/palacios/vm_guest_mem.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_list.h \ ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmm.h palacios/vm_dev.o: ../src/palacios/vm_dev.c ../include/palacios/vm_dev.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ @@ -497,20 +513,32 @@ palacios/vm_dev.o: ../src/palacios/vm_dev.c ../include/palacios/vm_dev.h \ ../include/palacios/vmm_irq.h palacios/vmm_dev_mgr.o: ../src/palacios/vmm_dev_mgr.c ../include/palacios/vm_dev.h \ ../include/palacios/vmm_types.h ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ ../include/palacios/vmm_util.h ../include/palacios/vmm_shadow_paging.h \ ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm_irq.h ../include/palacios/vmm.h +devices/keyboard.o: ../src/devices/keyboard.c ../include/devices/keyboard.h \ + ../include/palacios/vm_dev.h ../include/palacios/vmm_types.h \ + ../include/geekos/ktypes.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + ../include/palacios/vmm_dev_mgr.h ../include/geekos/io.h \ + ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ + ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ + ../include/palacios/vmm_util.h ../include/palacios/vmm_shadow_paging.h \ + ../include/palacios/vmm_paging.h ../include/palacios/vmm_intr.h \ + ../include/palacios/vmm_irq.h devices/nvram.o: ../src/devices/nvram.c ../include/devices/nvram.h \ ../include/palacios/vm_dev.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ @@ -520,9 +548,9 @@ devices/nvram.o: ../src/devices/nvram.c ../include/devices/nvram.h \ devices/timer.o: ../src/devices/timer.c ../include/devices/timer.h \ ../include/palacios/vm_dev.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm.h \ ../include/palacios/vm_guest.h ../include/palacios/vmm_mem.h \ ../include/palacios/vmm_io.h ../include/palacios/vmm_util.h \ @@ -532,9 +560,9 @@ devices/timer.o: ../src/devices/timer.c ../include/devices/timer.h \ devices/simple_pic.o: ../src/devices/simple_pic.c ../include/devices/simple_pic.h \ ../include/palacios/vm_dev.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ @@ -543,9 +571,9 @@ devices/simple_pic.o: ../src/devices/simple_pic.c ../include/devices/simple_pic. devices/8259a.o: ../src/devices/8259a.c ../include/devices/8259a.h \ ../include/palacios/vm_dev.h ../include/palacios/vmm_types.h \ ../include/geekos/ktypes.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stdbool.h \ ../include/palacios/vmm_list.h ../include/palacios/vmm_string.h \ - /home/jarusl/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ + /home/pdinda/vmm-dev/devtools/i386/lib/gcc/i386-elf/3.4.6/include/stddef.h \ ../include/palacios/vmm_dev_mgr.h ../include/palacios/vmm_intr.h \ ../include/palacios/vmm.h ../include/palacios/vm_guest.h \ ../include/palacios/vmm_mem.h ../include/palacios/vmm_io.h \ diff --git a/palacios/include/devices/keyboard.h b/palacios/include/devices/keyboard.h new file mode 100644 index 0000000..da4c085 --- /dev/null +++ b/palacios/include/devices/keyboard.h @@ -0,0 +1,10 @@ +#ifndef __KEYBOARD_H +#define __KEYBOARD_H + +#include + + + +struct vm_device *create_keyboard(); + +#endif diff --git a/palacios/src/devices/keyboard.c b/palacios/src/devices/keyboard.c new file mode 100644 index 0000000..6c71667 --- /dev/null +++ b/palacios/src/devices/keyboard.c @@ -0,0 +1,202 @@ +#include +#include +#include +#include + +extern struct vmm_os_hooks *os_hooks; + +extern void SerialPrint(const char *format, ...); + + + +#define KEYBOARD_DATA_REG 0x60 +#define KEYBOARD_CONTROL_REG 0x64 + +#define KEYBOARD_IRQ 0x1 + + + +struct keyboard_internal { + int x; + // figure this out later - it should be the internal state of the keyboard buffer and + // the emulated status, etc. + // which should be fed from the underlying OS and drained via this interface +}; + + + + +int keyboard_reset_device(struct vm_device * dev) +{ + // struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + SerialPrint("keyboard: reset device\n"); + + + return 0; + +} + + + + + +int keyboard_start_device(struct vm_device *dev) +{ + SerialPrint("keyboard: start device\n"); + return 0; +} + + +int keyboard_stop_device(struct vm_device *dev) +{ + SerialPrint("keyboard: stop device\n"); + return 0; +} + + + + +int keyboard_write_control_port(ushort_t port, + void * src, + uint_t length, + struct vm_device * dev) +{ + //struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + if (length==1) { + uchar_t data = *((uchar_t*)src); + PrintDebug("keyboard: write of 0x%x to control port\n",data); + Out_Byte(KEYBOARD_CONTROL_REG,data); + return 1; + } else { + PrintDebug("keyboard: unknown size write to control port!\n"); + return -1; + } +} + +int keyboard_read_control_port(ushort_t port, + void * dest, + uint_t length, + struct vm_device * dev) +{ + //struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + if (length==1) { + uchar_t data; + PrintDebug("keyboard: read from control port: "); + data=In_Byte(KEYBOARD_CONTROL_REG); + PrintDebug("0x%x\n",data); + memcpy(dest,&data,1); + return 1; + } else { + PrintDebug("keyboard: unknown size read from control port!\n"); + return -1; + } +} + +int keyboard_write_data_port(ushort_t port, + void * src, + uint_t length, + struct vm_device * dev) +{ + //struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + if (length==1) { + uchar_t data = *((uchar_t*)src); + PrintDebug("keyboard: write of 0x%x to data port\n",data); + Out_Byte(KEYBOARD_DATA_REG,data); + return 1; + } else { + PrintDebug("keyboard: unknown size write to data port!\n"); + return -1; + } +} + +int keyboard_read_data_port(ushort_t port, + void * dest, + uint_t length, + struct vm_device * dev) +{ + //struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + if (length==1) { + uchar_t data; + PrintDebug("keyboard: read from data port: "); + data=In_Byte(KEYBOARD_DATA_REG); + PrintDebug("0x%x\n",data); + memcpy(dest,&data,1); + return 1; + } else { + PrintDebug("keyboard: unknown size read from data port!\n"); + return -1; + } +} + + +int keyboard_interrupt(uint_t irq, + struct vm_device * dev) +{ + PrintDebug("keyboard: interrupt\n"); + return 0; + // Inject ? +} + + +int keyboard_init_device(struct vm_device * dev) +{ + + // struct keyboard_internal *data = (struct keyboard_internal *) dev->private_data; + + SerialPrint("keyboard: init_device\n"); + + // Would read state here + + keyboard_reset_device(dev); + + // hook ports + dev_hook_io(dev, KEYBOARD_DATA_REG, &keyboard_read_data_port, &keyboard_write_data_port); + dev_hook_io(dev, KEYBOARD_CONTROL_REG, &keyboard_read_control_port, &keyboard_write_control_port); + + // hook irq + // currently assume this is done in vm.c? + //dev_hook_irq(dev,KEYBOARD_IRQ,&keyboard_interrupt); + + + return 0; +} + +int keyboard_deinit_device(struct vm_device *dev) +{ + + + //dev_unhook_irq(dev,KEYBOARD_IRQ); + dev_unhook_io(dev, KEYBOARD_DATA_REG); + dev_unhook_io(dev, KEYBOARD_CONTROL_REG); + + keyboard_reset_device(dev); + return 0; +} + + + + + +static struct vm_device_ops dev_ops = { + .init = keyboard_init_device, + .deinit = keyboard_deinit_device, + .reset = keyboard_reset_device, + .start = keyboard_start_device, + .stop = keyboard_stop_device, +}; + + + + +struct vm_device *create_keyboard() { + struct keyboard_internal * keyboard_state = os_hooks->malloc(sizeof(struct keyboard_internal)); + + struct vm_device *device = create_device("KEYBOARD", &dev_ops, keyboard_state); + + return device; +} diff --git a/palacios/src/geekos/keyboard.c b/palacios/src/geekos/keyboard.c index 409d9a4..28e0ff3 100644 --- a/palacios/src/geekos/keyboard.c +++ b/palacios/src/geekos/keyboard.c @@ -1,7 +1,7 @@ /* * Keyboard driver * Copyright (c) 2001,2004 David H. Hovemeyer - * $Revision: 1.1 $ + * $Revision: 1.2 $ * * This is free software. You are permitted to use, * redistribute, and modify it as specified in the file "COPYING". @@ -166,6 +166,8 @@ static void Keyboard_Interrupt_Handler(struct Interrupt_State* state) Begin_IRQ(state); + Print("Keybaord\n"); + status = In_Byte(KB_CMD); IO_Delay(); diff --git a/palacios/src/geekos/vm.c b/palacios/src/geekos/vm.c index adef732..fe50c29 100644 --- a/palacios/src/geekos/vm.c +++ b/palacios/src/geekos/vm.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -315,16 +316,26 @@ int RunVMM(struct Boot_Info * bootInfo) { struct vm_device * nvram = create_nvram(); //struct vm_device * timer = create_timer(); struct vm_device * pic = create_pic(); + struct vm_device * keyboard = create_keyboard(); attach_device(&(vm_info), nvram); //attach_device(&(vm_info), timer); attach_device(&(vm_info), pic); + attach_device(&(vm_info), keyboard); PrintDebugDevMgr(&(vm_info.dev_mgr)); } + // give keyboard interrupts to vm + //hook_irq(&vm_info, 1); + + // give floppy controller to vm hook_irq(&vm_info, 6); + + // primary ide hook_irq(&vm_info, 14); + + // secondary ide hook_irq(&vm_info, 15); diff --git a/palacios/src/palacios/vmm_dev_mgr.c b/palacios/src/palacios/vmm_dev_mgr.c index bce853b..04d7448 100644 --- a/palacios/src/palacios/vmm_dev_mgr.c +++ b/palacios/src/palacios/vmm_dev_mgr.c @@ -135,6 +135,7 @@ int dev_hook_io(struct vm_device *dev, dev_mgr_add_io_hook(&(dev->vm->dev_mgr), hook); dev_add_io_hook(dev, hook); } else { + return -1; } diff --git a/palacios/src/palacios/vmm_io.c b/palacios/src/palacios/vmm_io.c index 9a9629f..d6431b7 100644 --- a/palacios/src/palacios/vmm_io.c +++ b/palacios/src/palacios/vmm_io.c @@ -40,7 +40,6 @@ int add_io_hook(vmm_io_map_t * io_map, vmm_io_hook_t * io_hook) { if (tmp_hook->port == io_hook->port) { //tmp_hook->read = io_hook->read; //tmp_hook->write = io_hook->write; - //V3_Free(io_hook); return -1; } else {