Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


build fixes
Jack Lange [Mon, 22 Sep 2008 19:05:20 +0000 (14:05 -0500)]
palacios/build/vgabios [changed from file to symlink]
palacios/build/vm_kernel
palacios/include/geekos/io_defs.h [new file with mode: 0644]
palacios/src/geekos/timer.c

deleted file mode 100644 (file)
index 24f5c8f..20e7107
Binary files a/palacios/build/vgabios and /dev/null differ
new file mode 120000 (symlink)
index 24f5c8f..20e7107
--- /dev/null
@@ -0,0 +1 @@
+../src/vmboot/vgabios/VGABIOS-lgpl-latest.bin
\ No newline at end of file
index 9a7dcf7..98e66f6 100755 (executable)
Binary files a/palacios/build/vm_kernel and b/palacios/build/vm_kernel differ
diff --git a/palacios/include/geekos/io_defs.h b/palacios/include/geekos/io_defs.h
new file mode 100644 (file)
index 0000000..d0bcff7
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef __IO_DEFS_H__
+#define __IO_DEFS_H__
+
+
+#define __SLOW_DOWN_IO "\noutb %%al,$0x80"
+
+#ifdef REALLY_SLOW_IO
+#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO
+#else
+#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO
+#endif
+
+
+
+#define __OUT1(s,x) \
+static inline void out##s(unsigned x value, unsigned short port) {
+
+#define __OUT2(s,s1,s2) \
+__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1"
+
+#define __OUT(s,s1,x) \
+__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "Nd" (port)); } \
+__OUT1(s##_p,x) __OUT2(s,s1,"w") __FULL_SLOW_DOWN_IO : : "a" (value), "Nd" (port));} \
+
+
+#define __IN1(s) \
+static inline RETURN_TYPE in##s(unsigned short port) { RETURN_TYPE _v;
+
+#define __IN2(s,s1,s2) \
+__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0"
+
+#define __IN(s,s1,i...) \
+__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \
+__IN1(s##_p) __IN2(s,s1,"w") __FULL_SLOW_DOWN_IO : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \
+
+
+#define RETURN_TYPE unsigned char
+__IN(b,"")
+#undef RETURN_TYPE
+#define RETURN_TYPE unsigned short
+__IN(w,"")
+#undef RETURN_TYPE
+#define RETURN_TYPE unsigned int
+__IN(l,"")
+#undef RETURN_TYPE
+
+
+
+__OUT(b,"b",char)
+__OUT(w,"w",short)
+
+
+
+#endif
index f9139bc..f9b3e9c 100644 (file)
@@ -18,7 +18,7 @@
 #include <geekos/serial.h>
 #include <geekos/debug.h>
 
-#include <geekos/io_crap.h>
+#include <geekos/io_defs.h>
 
 /* PAD this currently is in nvram.c */
 extern void deliver_timer_interrupt_to_vmm(uint_t period_us);