X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=mmalloc%2Fmvalloc.c;fp=mmalloc%2Fmvalloc.c;h=e44942f5bb595b3aa7c4bcd970aef410f8ddeb7f;hb=d70485fb7a2776fbfeccdabc568aa98ab3a80225;hp=0000000000000000000000000000000000000000;hpb=70ed84c05dfe890425592cc207f7a866f0afb04e;p=ocaml-ancient.git diff --git a/mmalloc/mvalloc.c b/mmalloc/mvalloc.c new file mode 100644 index 0000000..e44942f --- /dev/null +++ b/mmalloc/mvalloc.c @@ -0,0 +1,50 @@ +/* Allocate memory on a page boundary. + Copyright (C) 1991 Free Software Foundation, Inc. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "mmprivate.h" + +/* Cache the pagesize for the current host machine. Note that if the host + does not readily provide a getpagesize() function, we need to emulate it + elsewhere, not clutter up this file with lots of kluges to try to figure + it out. */ + +static size_t cache_pagesize; +#if NEED_DECLARATION_GETPAGESIZE +extern int getpagesize PARAMS ((void)); +#endif + +PTR +mvalloc (md, size) + PTR md; + size_t size; +{ + if (cache_pagesize == 0) + { + cache_pagesize = getpagesize (); + } + + return (mmemalign (md, cache_pagesize, size)); +} + + +PTR +valloc (size) + size_t size; +{ + return mvalloc ((PTR) NULL, size); +}