diff --git a/arch/x64/apic.hh b/arch/x64/apic.hh
index fc958dc111365235a040e3a339b18f81d7cff600..39414881be734d8a1253e08da744ff931c871dfc 100644
--- a/arch/x64/apic.hh
+++ b/arch/x64/apic.hh
@@ -1,7 +1,7 @@
 #ifndef APIC_HH_
 #define APIC_HH_
 
-#include "types.hh"
+#include <osv/types.h>
 
 namespace processor {
 
diff --git a/arch/x64/arch-setup.cc b/arch/x64/arch-setup.cc
index fe40d1a09e0f264c6a1635ed6e47bce50c603781..0e79196b496bb39f1f62fd4cdb53a7bad01dbf85 100644
--- a/arch/x64/arch-setup.cc
+++ b/arch/x64/arch-setup.cc
@@ -2,7 +2,7 @@
 #include "mempool.hh"
 #include "mmu.hh"
 #include "processor.hh"
-#include "types.hh"
+#include <osv/types.h>
 #include <alloca.h>
 #include <string.h>
 
diff --git a/arch/x64/exceptions.hh b/arch/x64/exceptions.hh
index f3c6c9e7eb7ab979fa4117a9819c1ca8b415a211..72f4c8f9971339dfd9ee3283957f5f5a02472cfb 100644
--- a/arch/x64/exceptions.hh
+++ b/arch/x64/exceptions.hh
@@ -3,7 +3,7 @@
 
 #include <stdint.h>
 #include <functional>
-#include <types.hh>
+#include <osv/types.h>
 
 struct exception_frame {
     ulong r15;
diff --git a/arch/x64/math.cc b/arch/x64/math.cc
index 6449a4ebec3dc2f52c93fab7c4cc9bc9f1c0bbf4..0697b247e0e80499985d5ee2d47d75a9d7eeccd2 100644
--- a/arch/x64/math.cc
+++ b/arch/x64/math.cc
@@ -1,5 +1,5 @@
 #include <math.h>
-#include "types.hh"
+#include <osv/types.h>
 
 // FIXME: check for sse4.1
 
diff --git a/arch/x64/processor.hh b/arch/x64/processor.hh
index 86ca5a81245a83b94e24b067926a335e800ea8ca..a1dd5e9ebe9306272b9b37ef06c3541dd59ee329 100644
--- a/arch/x64/processor.hh
+++ b/arch/x64/processor.hh
@@ -1,7 +1,7 @@
 #ifndef ARCH_X86_PROCESSOR_H
 #define ARCH_X86_PROCESSOR_H
 
-#include "types.hh"
+#include <osv/types.h>
 
 namespace processor {
 
diff --git a/core/mmio.cc b/core/mmio.cc
index 224b95dca721ef69a62d31c973b623f03127ac43..a77b29113cf4472ce45184aa422b14f9b4a59a61 100644
--- a/core/mmio.cc
+++ b/core/mmio.cc
@@ -1,4 +1,4 @@
-#include "types.hh"
+#include <osv/types.h>
 #include "mmu.hh"
 #include "mmio.hh"
 
diff --git a/drivers/clock.hh b/drivers/clock.hh
index fcac69489b27557b3cf9719ecaeb4e52d80eb8ff..e69de36775d7a84d977ae73858b29529f662c3d2 100644
--- a/drivers/clock.hh
+++ b/drivers/clock.hh
@@ -1,7 +1,7 @@
 #ifndef CLOCK_HH_
 #define CLOCK_HH_
 
-#include "types.hh"
+#include <osv/types.h>
 
 class clock {
 public:
diff --git a/drivers/clockevent.hh b/drivers/clockevent.hh
index dd5d54778191d2d08f21d681945749e9e4f19a14..8e59f715cf1c45320d5010b1b6ab3258d88796aa 100644
--- a/drivers/clockevent.hh
+++ b/drivers/clockevent.hh
@@ -1,7 +1,7 @@
 #ifndef CLOCKEVENT_HH_
 #define CLOCKEVENT_HH_
 
-#include "types.hh"
+#include <osv/types.h>
 
 class clock_event_callback {
 public:
diff --git a/drivers/device.hh b/drivers/device.hh
index 4fd75662feb3bc42476459ee1e40fcc8b1cba4f6..3b7c24d78f77dce9512427ae9e16fcdfe8fb7ae7 100644
--- a/drivers/device.hh
+++ b/drivers/device.hh
@@ -4,7 +4,7 @@
 #include <functional>
 #include <map>
 
-#include "types.hh"
+#include <osv/types.h>
 
 namespace hw {
 
diff --git a/drivers/kvmclock.cc b/drivers/kvmclock.cc
index 7b72db0616a28306a341361b84255bff17cf5761..128e8c856f52647732e4eb3159fef9471a65101b 100644
--- a/drivers/kvmclock.cc
+++ b/drivers/kvmclock.cc
@@ -1,6 +1,6 @@
 #include "clock.hh"
 #include "msr.hh"
-#include "types.hh"
+#include <osv/types.h>
 #include "mmu.hh"
 #include "string.h"
 
diff --git a/drivers/pci-device.hh b/drivers/pci-device.hh
index e6b698bb7ee3de34bf6106dfe2bce5db1364fc15..0aebbc2859d2b1d4adb26f16b002c6b49603426e 100644
--- a/drivers/pci-device.hh
+++ b/drivers/pci-device.hh
@@ -1,7 +1,7 @@
 #ifndef PCI_DEVICE_H
 #define PCI_DEVICE_H
 
-#include "types.hh"
+#include <osv/types.h>
 #include "pci.hh"
 #include "pci-function.hh"
 
diff --git a/drivers/pci-function.hh b/drivers/pci-function.hh
index efc5db985279e8660a7352c89093a5853f911676..9163175ec1593a29270b40d3823a2d9b7f1dbb36 100644
--- a/drivers/pci-function.hh
+++ b/drivers/pci-function.hh
@@ -5,7 +5,7 @@
 #include <ostream>
 
 #include "mmio.hh"
-#include "types.hh"
+#include <osv/types.h>
 #include "processor.hh"
 #include "debug.hh"
 #include "device.hh"
diff --git a/drivers/pci.hh b/drivers/pci.hh
index 9acdce381dc92dc01854a9b113764ff1d8577442..9e202cbd507e51088a770e9f67bd87ca79917afd 100644
--- a/drivers/pci.hh
+++ b/drivers/pci.hh
@@ -30,7 +30,7 @@
 #include <stdint.h>
 #include "pci-function.hh"
 #include "processor.hh"
-#include "types.hh"
+#include <osv/types.h>
 
 class Driver;
 
diff --git a/include/align.hh b/include/align.hh
index 5f29e971126d87482bcf59ea12d5f2f6304cc444..d5013a30fee1bd9be664c0667cecc9612a4ccc3d 100644
--- a/include/align.hh
+++ b/include/align.hh
@@ -1,7 +1,7 @@
 #ifndef ALIGN_HH_
 #define ALIGN_HH_
 
-#include "types.hh"
+#include <osv/types.h>
 
 template <typename T>
 T align_down(T n, T alignment)
diff --git a/include/elf.hh b/include/elf.hh
index 93b45220a7ac05fa9f1c3741a77587031230cd79..7534ccc10f370eb627a66fc118ab36538606092e 100644
--- a/include/elf.hh
+++ b/include/elf.hh
@@ -5,7 +5,7 @@
 #include <vector>
 #include <map>
 #include <memory>
-#include <types.hh>
+#include <osv/types.h>
 
 namespace elf {
     typedef u64 Elf64_Addr;
diff --git a/include/interrupt.hh b/include/interrupt.hh
index 40b6822e7a353455e7447e69d763a28a68dd5aac..cb14fc754906ff9371b90c4025e058a8fb1df497 100644
--- a/include/interrupt.hh
+++ b/include/interrupt.hh
@@ -8,7 +8,7 @@
 #include "sched.hh"
 #include "drivers/pci.hh"
 #include "drivers/pci-function.hh"
-#include "types.hh"
+#include <osv/types.h>
 
 using namespace pci;
 
diff --git a/include/mmio.hh b/include/mmio.hh
index 0cf535eccb4c90998415b00b104ab88b573df284..8be510fb69c0717a3ab044474be0cc924b6a2a6c 100644
--- a/include/mmio.hh
+++ b/include/mmio.hh
@@ -1,7 +1,7 @@
 #ifndef MMIO_HH
 #define MMIO_HH
 
-#include "types.hh"
+#include <osv/types.h>
 
 typedef volatile void* mmioaddr_t;
 
diff --git a/include/mmu.hh b/include/mmu.hh
index 80cd1869c85b50b901925af700eee977d84e26c8..fdfc8d7f11906c0af8792e2d3da620ed99660e6c 100644
--- a/include/mmu.hh
+++ b/include/mmu.hh
@@ -4,7 +4,7 @@
 #include "fs/fs.hh"
 #include <stdint.h>
 #include <boost/intrusive/set.hpp>
-#include <types.hh>
+#include <osv/types.h>
 
 namespace mmu {
     typedef uint64_t f_offset;
diff --git a/include/types.hh b/include/osv/types.h
similarity index 73%
rename from include/types.hh
rename to include/osv/types.h
index 0f7a3d523bff23a20b7b7a70ba8c19ede58d21e4..aa5111aecc56395459a8285a66959eb0c29fdfec 100644
--- a/include/types.hh
+++ b/include/osv/types.h
@@ -1,8 +1,7 @@
-#ifndef TYPES_HH_
-#define TYPES_HH_
+#ifndef _OSV_TYPES_H_
+#define _OSV_TYPES_H_ 1
 
 #include <stdint.h>
-#include <cstdint>
 
 typedef uint8_t u8;
 typedef uint16_t u16;
@@ -15,4 +14,4 @@ typedef int64_t s64;
 
 typedef unsigned long ulong;
 
-#endif /* TYPES_HH_ */
+#endif /* _OSV_TYPES_H_ */
diff --git a/include/sglist.hh b/include/sglist.hh
index 57a69b2621b7076b5f6f877a32b6eed40798a422..a9424599d54dbdbbe36d8824a0da9a71ff59f5a1 100644
--- a/include/sglist.hh
+++ b/include/sglist.hh
@@ -2,7 +2,7 @@
 #define SGLIST_H
 
 #include <list>
-#include "types.hh"
+#include <osv/types.h>
 
 class sglist {
 public: