summaryrefslogtreecommitdiffstats
path: root/mbbsd/stuff.c
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-03-26 18:22:42 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-03-26 18:22:42 +0800
commit29c15f61e0b5b58b39d499bc3526333a0b06e373 (patch)
treefdb63e0733ab531e077e93111cff7c6bc6bf6fc2 /mbbsd/stuff.c
parent67278caff081fa2e2047d807023f5ebb51afa574 (diff)
downloadpttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar.gz
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar.bz2
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar.lz
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar.xz
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.tar.zst
pttbbs-29c15f61e0b5b58b39d499bc3526333a0b06e373.zip
CRITICAL_MEMORY
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@712 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/stuff.c')
-rw-r--r--mbbsd/stuff.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/mbbsd/stuff.c b/mbbsd/stuff.c
index 41d5d93e..f79ec1ae 100644
--- a/mbbsd/stuff.c
+++ b/mbbsd/stuff.c
@@ -1,4 +1,4 @@
-/* $Id: stuff.c,v 1.10 2003/01/16 11:58:04 kcwu Exp $ */
+/* $Id: stuff.c,v 1.11 2003/03/26 10:22:42 in2 Exp $ */
#include "bbs.h"
/* ----------------------------------------------------- */
@@ -613,3 +613,28 @@ show_help(char *helptext[])
}
pressanykey();
}
+
+/* ----------------------------------------------------- */
+/* use mmap() to malloc large memory in CRITICAL_MEMORY */
+/* ----------------------------------------------------- */
+#ifdef CRITICAL_MEMORY
+void *MALLOC(int size)
+{
+ int *p;
+ p = (int *)mmap(NULL, (size + 4), PROT_READ | PROT_WRITE, MAP_ANON, -1, 0);
+ p[0] = size;
+#ifdef DEBUG
+ vmsg("critical malloc %d bytes", size);
+#endif
+ return (void *)&p[1];
+}
+
+void FREE(void *ptr)
+{
+ int size = ((int *)ptr)[-1];
+ munmap((void *)(&(((int *)ptr)[-1])), size);
+#ifdef DEBUG
+ vmsg("critical free %d bytes", size);
+#endif
+}
+#endif