malloc.c 690 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * These are here mainly so that I can link against
  3. * debugmalloc.c instead and not recompile the world.
  4. */
  5. #include <u.h>
  6. #define NOPLAN9DEFINES
  7. #include <libc.h>
  8. static Lock malloclock;
  9. void*
  10. p9malloc(ulong n)
  11. {
  12. void *v;
  13. if(n == 0)
  14. n++;
  15. lock(&malloclock);
  16. v = malloc(n);
  17. unlock(&malloclock);
  18. return v;
  19. }
  20. void
  21. p9free(void *v)
  22. {
  23. if(v == nil)
  24. return;
  25. lock(&malloclock);
  26. free(v);
  27. unlock(&malloclock);
  28. }
  29. void*
  30. p9calloc(ulong a, ulong b)
  31. {
  32. void *v;
  33. if(a*b == 0)
  34. a = b = 1;
  35. lock(&malloclock);
  36. v = calloc(a*b, 1);
  37. unlock(&malloclock);
  38. return v;
  39. }
  40. void*
  41. p9realloc(void *v, ulong n)
  42. {
  43. lock(&malloclock);
  44. v = realloc(v, n);
  45. unlock(&malloclock);
  46. return v;
  47. }