/contrib/cvs/lib/valloc.c

https://bitbucket.org/freebsd/freebsd-head/ · C · 25 lines · 19 code · 5 blank · 1 comment · 1 complexity · 0bbea233a4a712c9c1810aabda4e9592 MD5 · raw file

  1. /* valloc -- return memory aligned to the page size. */
  2. #ifdef HAVE_CONFIG_H
  3. #include "config.h"
  4. #endif
  5. #include "system.h"
  6. #ifndef HAVE_GETPAGESIZE
  7. # include "getpagesize.h"
  8. #endif
  9. void *
  10. valloc (bytes)
  11. size_t bytes;
  12. {
  13. long pagesize;
  14. char *ret;
  15. pagesize = getpagesize ();
  16. ret = (char *) malloc (bytes + pagesize - 1);
  17. if (ret)
  18. ret = (char *) ((long) (ret + pagesize - 1) &~ (pagesize - 1));
  19. return ret;
  20. }