aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortcsadmin2010-10-13 16:47:42 +0000
committerNicolas Schodet2011-07-04 00:37:03 +0200
commit5b2218485038b329377c6a83bd36bf5df1c43549 (patch)
tree050e7d3fcdc6778231938417451d6cd36d32cdc6
parent87bea887659a34dec0fa01f87ed5b59e5ba701d7 (diff)
Added memory manager system call
git-svn-id: https://mindboards.svn.sourceforge.net/svnroot/mindboards/lms_nbcnxc_128/trunk@18 c9361245-7fe8-9947-84e8-057757c4e366
-rw-r--r--AT91SAM7S256/Source/c_cmd.c20
-rw-r--r--AT91SAM7S256/Source/c_cmd.h1
2 files changed, 20 insertions, 1 deletions
diff --git a/AT91SAM7S256/Source/c_cmd.c b/AT91SAM7S256/Source/c_cmd.c
index 41136b0..4b25362 100644
--- a/AT91SAM7S256/Source/c_cmd.c
+++ b/AT91SAM7S256/Source/c_cmd.c
@@ -255,7 +255,7 @@ static pSysCall SysCallFuncs[SYSCALL_COUNT] =
cCmdWrapDrawPolygon,
cCmdWrapDrawEllipse,
cCmdWrapDrawFont, // 95
- cCmdWrapUndefinedSysCall,
+ cCmdWrapMemoryManager,
cCmdWrapUndefinedSysCall,
cCmdWrapUndefinedSysCall,
cCmdWrapUndefinedSysCall // 99 --> 100 system call slots
@@ -9521,6 +9521,24 @@ NXT_STATUS cCmdWrapFileResize(UBYTE * ArgV[])
return (NO_ERR);
}
+//cCmdWrapMemoryManager
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: Compact?, UBYTE (true or false)
+//ArgV[2]: PoolSize, UWORD
+//ArgV[3]: DataspaceSize, UWORD
+NXT_STATUS cCmdWrapMemoryManager(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ *pReturnVal = NO_ERR;
+ if (*(ArgV[1])) {
+ *pReturnVal = cCmdDSCompact();
+ }
+ *(UWORD*)(ArgV[2]) = (UWORD)VarsCmd.PoolSize;
+ *(UWORD*)(ArgV[3]) = VarsCmd.DataspaceSize;
+
+ return (NO_ERR);
+}
+
NXT_STATUS cCmdWrapUndefinedSysCall(UBYTE * ArgV[])
{
return (NO_ERR);
diff --git a/AT91SAM7S256/Source/c_cmd.h b/AT91SAM7S256/Source/c_cmd.h
index 3af20cd..489e0cc 100644
--- a/AT91SAM7S256/Source/c_cmd.h
+++ b/AT91SAM7S256/Source/c_cmd.h
@@ -905,6 +905,7 @@ NXT_STATUS cCmdWrapDrawPictureArray(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapDrawPolygon(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapDrawEllipse(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapDrawFont(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapMemoryManager(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapUndefinedSysCall(UBYTE * ArgV[]);