xref: /openbsd-src/gnu/usr.bin/cvs/lib/valloc.c (revision 13571821e83933f3c1d7fd1ab5ff9cd54f0eea7f)
11e72d8d2Sderaadt /* valloc -- return memory aligned to the page size.  */
21e72d8d2Sderaadt 
3*13571821Stholo #ifdef HAVE_CONFIG_H
4*13571821Stholo #include "config.h"
5*13571821Stholo #endif
6*13571821Stholo 
7*13571821Stholo #include "system.h"
8*13571821Stholo 
91e72d8d2Sderaadt #ifndef HAVE_GETPAGESIZE
101e72d8d2Sderaadt #define getpagesize() 4096
111e72d8d2Sderaadt #endif
121e72d8d2Sderaadt 
13*13571821Stholo void *
valloc(bytes)141e72d8d2Sderaadt valloc (bytes)
15*13571821Stholo      size_t bytes;
161e72d8d2Sderaadt {
171e72d8d2Sderaadt   long pagesize;
181e72d8d2Sderaadt   char *ret;
191e72d8d2Sderaadt 
201e72d8d2Sderaadt   pagesize = getpagesize ();
211e72d8d2Sderaadt   ret = (char *) malloc (bytes + pagesize - 1);
221e72d8d2Sderaadt   if (ret)
231e72d8d2Sderaadt     ret = (char *) ((long) (ret + pagesize - 1) &~ (pagesize - 1));
241e72d8d2Sderaadt   return ret;
251e72d8d2Sderaadt }
26