diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-03-02 10:50:59 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-03-02 10:50:59 +0000 |
commit | 6976b9a7c20dce349dccfb0eec658af5fa9af3c5 (patch) | |
tree | dbb16b8d0a9c693f4e6744bf95a75c3ad87df46c /extras/mini-os/include | |
parent | 8e3feb5145bbde1f01d001ce9574f67de87173f7 (diff) | |
download | xen-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.h | 33 | ||||
-rw-r--r-- | extras/mini-os/include/mm.h | 1 | ||||
-rw-r--r-- | extras/mini-os/include/x86/arch_mm.h | 5 |
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_ */ |