summaryrefslogtreecommitdiff
path: root/libddekit
diff options
context:
space:
mode:
Diffstat (limited to 'libddekit')
-rw-r--r--libddekit/Makefile2
-rw-r--r--libddekit/c_headers.h7
-rw-r--r--libddekit/include/ddekit/memory.h13
-rw-r--r--libddekit/include/ddekit/panic.h2
-rw-r--r--libddekit/include/ddekit/printf.h2
-rw-r--r--libddekit/malloc.c49
6 files changed, 61 insertions, 14 deletions
diff --git a/libddekit/Makefile b/libddekit/Makefile
index f2e52f25..018d67c9 100644
--- a/libddekit/Makefile
+++ b/libddekit/Makefile
@@ -19,7 +19,7 @@ dir := libddekit
makemode := library
libname = libddekit
-SRCS= condvar.c init.c interrupt.c lock.c memory.c \
+SRCS= condvar.c init.c interrupt.c lock.c malloc.c memory.c \
pci.c pgtab.c printf.c resources.c list.c \
thread.c timer.c kmem.c
LCLHDRS = include/ddekit/condvar.h include/ddekit/lock.h \
diff --git a/libddekit/c_headers.h b/libddekit/c_headers.h
new file mode 100644
index 00000000..6141e900
--- /dev/null
+++ b/libddekit/c_headers.h
@@ -0,0 +1,7 @@
+#ifndef __C_HEADERS_H__
+#define __C_HEADERS_H__
+
+#include <stdio.h>
+#include <stdarg.h>
+
+#endif
diff --git a/libddekit/include/ddekit/memory.h b/libddekit/include/ddekit/memory.h
index 2c573d8f..051a4d9e 100644
--- a/libddekit/include/ddekit/memory.h
+++ b/libddekit/include/ddekit/memory.h
@@ -123,9 +123,6 @@ void *ddekit_contig_malloc(
** Simple memory allocator **
*****************************/
-#include <stdlib.h>
-#include "ddekit/inline.h"
-
/**
* Allocate memory block via simple allocator
*
@@ -135,19 +132,13 @@ void *ddekit_contig_malloc(
* The blocks allocated via this allocator CANNOT be used for DMA or other
* device operations, i.e., there exists no virt->phys mapping.
*/
-static INLINE void *ddekit_simple_malloc(unsigned size)
-{
- return malloc (size);
-}
+void *ddekit_simple_malloc(unsigned size);
/**
* Free memory block via simple allocator
*
* \param p pointer to memory block
*/
-static INLINE void ddekit_simple_free(void *p)
-{
- free (p);
-}
+void ddekit_simple_free(void *p);
#endif
diff --git a/libddekit/include/ddekit/panic.h b/libddekit/include/ddekit/panic.h
index 11c46ebb..f036ab3e 100644
--- a/libddekit/include/ddekit/panic.h
+++ b/libddekit/include/ddekit/panic.h
@@ -3,7 +3,7 @@
/** \defgroup DDEKit_util */
-#include <stdio.h>
+#include "c_headers.h"
/** Panic - print error message and enter the kernel debugger.
* \ingroup DDEKit_util
diff --git a/libddekit/include/ddekit/printf.h b/libddekit/include/ddekit/printf.h
index 35b0dfa1..aa086c71 100644
--- a/libddekit/include/ddekit/printf.h
+++ b/libddekit/include/ddekit/printf.h
@@ -1,7 +1,7 @@
#ifndef _ddekit_print_h
#define _ddekit_print_h
-#include <stdarg.h>
+#include "c_headers.h"
/** Print message.
* \ingroup DDEKit_util
diff --git a/libddekit/malloc.c b/libddekit/malloc.c
new file mode 100644
index 00000000..a30cd7b7
--- /dev/null
+++ b/libddekit/malloc.c
@@ -0,0 +1,49 @@
+/*
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ Written by Zheng Da.
+
+ This file is part of the GNU Hurd.
+
+ The GNU Hurd is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ The GNU Hurd is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the GNU Hurd; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/**
+ * Allocate memory block via simple allocator
+ *
+ * \param size block size
+ * \return pointer to new memory block
+ *
+ * The blocks allocated via this allocator CANNOT be used for DMA or other
+ * device operations, i.e., there exists no virt->phys mapping.
+ *
+ * Each chunk stores its size in the first word for free() to work.
+ */
+
+#include <stdlib.h>
+
+void *ddekit_simple_malloc(unsigned size)
+{
+ return malloc (size);
+}
+
+
+/**
+ * Free memory block via simple allocator
+ *
+ * \param p pointer to memory block
+ */
+void ddekit_simple_free(void *p)
+{
+ free (p);
+}