]> git.eshelyaron.com Git - emacs.git/commitdiff
(posix_memalign): New function.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Thu, 9 Aug 2007 03:08:25 +0000 (03:08 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Thu, 9 Aug 2007 03:08:25 +0000 (03:08 +0000)
src/ChangeLog
src/gmalloc.c

index adef925992cdfac383d2349affcce2e41f5305f2..20469ca12e318c77a343c3e91be7d3bbb4deb1be 100644 (file)
@@ -1,3 +1,7 @@
+2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * gmalloc.c (posix_memalign): New function.
+
 2007-08-08  Glenn Morris  <rgm@gnu.org>
 
        * Replace `iff' in doc-strings and comments.
@@ -31,8 +35,8 @@
        Call malloc_enable_thread on interactive startup.
 
        * gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
-       [USE_PTHREAD] (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS)
-       (UNLOCK_ALIGNED_BLOCKS): Conditionalize with it.
+       (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
+       [USE_PTHREAD]: Conditionalize with it.
        (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
        (malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
        New functions.
index ea6ccc4bf1f1d954bda190f35c6965bb6f4ea3d1..ccc08e1ff68fe632a0b4fae997bcfbc9fd2280c9 100644 (file)
@@ -129,6 +129,8 @@ extern FREE_RETURN_TYPE free PP ((__ptr_t __ptr));
 #if ! (defined (_MALLOC_INTERNAL) && __DJGPP__ - 0 == 1) /* Avoid conflict.  */
 extern __ptr_t memalign PP ((__malloc_size_t __alignment,
                             __malloc_size_t __size));
+extern int posix_memalign PP ((__ptr_t *, __malloc_size_t,
+                              __malloc_size_t size));
 #endif
 
 /* Allocate SIZE bytes on a page boundary.  */
@@ -1857,6 +1859,36 @@ memalign (alignment, size)
   return result;
 }
 
+#ifndef ENOMEM
+#define ENOMEM 12
+#endif
+
+#ifndef EINVAL
+#define EINVAL 22
+#endif
+
+int
+posix_memalign (memptr, alignment, size)
+     __ptr_t *memptr;
+     __malloc_size_t alignment;
+     __malloc_size_t size;
+{
+  __ptr_t mem;
+
+  if (alignment == 0
+      || alignment % sizeof (__ptr_t) != 0
+      || (alignment & (alignment - 1)) != 0)
+    return EINVAL;
+
+  mem = memalign (alignment, size);
+  if (mem == NULL)
+    return ENOMEM;
+
+  *memptr = mem;
+
+  return 0;
+}
+
 #endif /* Not DJGPP v1 */
 /* Allocate memory on a page boundary.
    Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc.