summaryrefslogtreecommitdiffstats
path: root/src/kernel/syscall.C
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2011-08-10 11:22:49 -0500
committerMATTHEW S. BARTH <msbarth@us.ibm.com>2011-08-10 17:30:34 -0500
commitb977bf9b78b1d7d57cefa3f8a2b7ebd0b7de4563 (patch)
treee15e50c0e9a80096c4a26db97d7c8686223a80d3 /src/kernel/syscall.C
parent2a7a99c1e088b8b87e4b019d24550c047fb86e0d (diff)
downloadtalos-hostboot-b977bf9b78b1d7d57cefa3f8a2b7ebd0b7de4563.tar.gz
talos-hostboot-b977bf9b78b1d7d57cefa3f8a2b7ebd0b7de4563.zip
Allocate block system call stub
Change-Id: Ief3476b5306bc231c9d3044b2736fcd195e840b1 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/243 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/syscall.C')
-rw-r--r--src/kernel/syscall.C30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index 639845224..51009195d 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -54,6 +54,7 @@ namespace Systemcalls
void Shutdown(task_t *t);
void CpuCoreType(task_t *t);
void CpuDDLevel(task_t *t);
+ void MmAllocBlock(task_t *t);
syscall syscalls[] =
{
@@ -73,18 +74,20 @@ namespace Systemcalls
&MmioMap, // MMIO_MAP
&MmioUnmap, // MMIO_UNMAP
- &DevMap,
- &DevUnmap,
+ &DevMap, // DEV_MAP
+ &DevUnmap, // DEV_UNMAP
&TimeNanosleep, // TIME_NANOSLEEP
- &FutexWait, // FUTEX_WAIT
- &FutexWake, // FUTEX_WAKE
+ &FutexWait, // FUTEX_WAIT
+ &FutexWake, // FUTEX_WAKE
- &Shutdown, // MISC_SHUTDOWN
+ &Shutdown, // MISC_SHUTDOWN
- &CpuCoreType, // MISC_CPUCORETYPE
- &CpuDDLevel, // MISC_CPUDDLEVEL
+ &CpuCoreType, // MISC_CPUCORETYPE
+ &CpuDDLevel, // MISC_CPUDDLEVEL
+
+ &MmAllocBlock, // MM_ALLOC_BLOCK
};
};
@@ -398,4 +401,17 @@ namespace Systemcalls
TASK_SETRTN(t, CpuID::getCpuDD());
}
+ /**
+ * Allocate a block of virtual memory within the base segment
+ * @param[in] t: The task used to allocate a block in the base segment
+ */
+ void MmAllocBlock(task_t* t)
+ {
+ MessageQueue* mq = (MessageQueue*)TASK_GETARG0(t);
+ void* va = (void*)TASK_GETARG1(t);
+ uint64_t size = (uint64_t)TASK_GETARG2(t);
+
+ TASK_SETRTN(t, VmmManager::mmAllocBlock(mq,va,size));
+ }
+
};
OpenPOWER on IntegriCloud