aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-03-02 10:50:59 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-03-02 10:50:59 +0000
commit6976b9a7c20dce349dccfb0eec658af5fa9af3c5 (patch)
treedbb16b8d0a9c693f4e6744bf95a75c3ad87df46c /extras/mini-os/include
parent8e3feb5145bbde1f01d001ce9574f67de87173f7 (diff)
downloadxen-6976b9a7c20dce349dccfb0eec658af5fa9af3c5.tar.gz
xen-6976b9a7c20dce349dccfb0eec658af5fa9af3c5.tar.bz2
xen-6976b9a7c20dce349dccfb0eec658af5fa9af3c5.zip
minios: add ioremap/iounmap
Add ioremap and iounmap functions to minios. Also move some unmapping code from and clean up mem_test. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@netronome.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'extras/mini-os/include')
-rw-r--r--extras/mini-os/include/ioremap.h33
-rw-r--r--extras/mini-os/include/mm.h1
-rw-r--r--extras/mini-os/include/x86/arch_mm.h5
3 files changed, 39 insertions, 0 deletions
diff --git a/extras/mini-os/include/ioremap.h b/extras/mini-os/include/ioremap.h
new file mode 100644
index 0000000000..7f246e3733
--- /dev/null
+++ b/extras/mini-os/include/ioremap.h
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2009 Netronome Systems, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifndef _IOREMAP_H_
+#define _IOREMAP_H_
+
+void *ioremap(unsigned long phys_addr, unsigned long size);
+void *ioremap_nocache(unsigned long phys_addr, unsigned long size);
+void iounmap(void *virt_addr, unsigned long size);
+
+#endif /* _IOREMAP_H_ */
+
+/* -*- Mode:C; c-basic-offset:4; tab-width:4 indent-tabs-mode:nil -*- */
diff --git a/extras/mini-os/include/mm.h b/extras/mini-os/include/mm.h
index 32ce7d93f6..c9636926ae 100644
--- a/extras/mini-os/include/mm.h
+++ b/extras/mini-os/include/mm.h
@@ -71,6 +71,7 @@ void *map_frames_ex(unsigned long *f, unsigned long n, unsigned long stride,
void do_map_frames(unsigned long addr,
unsigned long *f, unsigned long n, unsigned long stride,
unsigned long increment, domid_t id, int may_fail, unsigned long prot);
+int unmap_frames(unsigned long va, unsigned long num_frames);
#ifdef HAVE_LIBC
extern unsigned long heap, brk, heap_mapped, heap_end;
#endif
diff --git a/extras/mini-os/include/x86/arch_mm.h b/extras/mini-os/include/x86/arch_mm.h
index 4a04812891..36b81f2f2e 100644
--- a/extras/mini-os/include/x86/arch_mm.h
+++ b/extras/mini-os/include/x86/arch_mm.h
@@ -133,6 +133,10 @@ typedef unsigned long pgentry_t;
#define L4_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER)
#endif /* __i386__ || __x86_64__ */
+/* flags for ioremap */
+#define IO_PROT (L1_PROT)
+#define IO_PROT_NOCACHE (L1_PROT | _PAGE_PCD)
+
#include "arch_limits.h"
#define PAGE_SIZE __PAGE_SIZE
#define PAGE_SHIFT __PAGE_SHIFT
@@ -222,5 +226,6 @@ static __inline__ paddr_t machine_to_phys(maddr_t machine)
#define do_map_zero(start, n) do_map_frames(start, &mfn_zero, n, 0, 0, DOMID_SELF, 0, L1_PROT_RO)
pgentry_t *need_pgt(unsigned long addr);
+int mfn_is_ram(unsigned long mfn);
#endif /* _ARCH_MM_H_ */