summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2013-05-20 14:34:56 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-06-10 10:04:07 -0500
commit857112a56dc57b18b1feacf948b87875dc4aea45 (patch)
treef0ee915b3e37f9134a9268ea0c2a7e32c56a17ee /src/lib
parente3d115c541291493888f533b215e28b890776e50 (diff)
downloadtalos-hostboot-857112a56dc57b18b1feacf948b87875dc4aea45.tar.gz
talos-hostboot-857112a56dc57b18b1feacf948b87875dc4aea45.zip
New mm_block_map syscall.
RTC: 71081 Change-Id: Ic5531fbba92cfc7aad7d303f043d6a350483d63d Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4607 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/syscall_mm.C15
-rw-r--r--src/lib/syscall_mmio.C6
2 files changed, 18 insertions, 3 deletions
diff --git a/src/lib/syscall_mm.C b/src/lib/syscall_mm.C
index 98a4aa0a6..b39c23894 100644
--- a/src/lib/syscall_mm.C
+++ b/src/lib/syscall_mm.C
@@ -128,5 +128,20 @@ void mm_tolerate_ue(uint64_t i_state)
// that all preceeding instructions have completed, so there
// are no visible effects of instruction reordering with respect
// to this state change.
+}
+/**
+ * System call to map an arbitrary physical address into the VMM.
+ */
+void* mm_block_map(void* i_paddr, uint64_t i_size)
+{
+ return _syscall3(DEV_MAP, i_paddr, (void*)i_size, (void*)1);
+}
+
+/**
+ * System call to unmap a previous mm_block_map.
+ */
+int mm_block_unmap(void* i_vaddr)
+{
+ return (int64_t) _syscall1(DEV_UNMAP, i_vaddr);
}
diff --git a/src/lib/syscall_mmio.C b/src/lib/syscall_mmio.C
index e1e71121e..7d593c27e 100644
--- a/src/lib/syscall_mmio.C
+++ b/src/lib/syscall_mmio.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2010,2012 */
+/* COPYRIGHT International Business Machines Corp. 2010,2013 */
/* */
/* p1 */
/* */
@@ -29,9 +29,9 @@
using namespace Systemcalls;
-void* mmio_dev_map(void *ra, SEG_DATA_SIZES i_devDataSize)
+void* mmio_dev_map(void *ra, uint64_t i_devDataSize)
{
- return _syscall2(DEV_MAP, ra, (void*)i_devDataSize);
+ return _syscall3(DEV_MAP, ra, (void*)i_devDataSize, (void*)0);
}
int mmio_dev_unmap(void *ea)
OpenPOWER on IntegriCloud