memguard.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*-
  2. * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
  3. *
  4. * Copyright (c) 2005,
  5. * Bosko Milekic <bmilekic@FreeBSD.org>. All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice unmodified, this list of conditions, and the following
  12. * disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above copyright
  14. * notice, this list of conditions and the following disclaimer in the
  15. * documentation and/or other materials provided with the distribution.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  18. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  19. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  20. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  21. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  24. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. *
  28. * $FreeBSD$
  29. */
  30. #ifndef _VM_MEMGUARD_H_
  31. #define _VM_MEMGUARD_H_
  32. #include "opt_vm.h"
  33. struct malloc_type;
  34. struct vm_map;
  35. struct vmem;
  36. #ifdef DEBUG_MEMGUARD
  37. unsigned long memguard_fudge(unsigned long, const struct vm_map *);
  38. void memguard_init(struct vmem *);
  39. void *memguard_alloc(unsigned long, int);
  40. void *memguard_realloc(void *, unsigned long, struct malloc_type *, int);
  41. void memguard_free(void *);
  42. unsigned long memguard_get_req_size(const void *);
  43. int memguard_cmp_mtp(struct malloc_type *, unsigned long);
  44. int memguard_cmp_zone(uma_zone_t);
  45. int is_memguard_addr(void *);
  46. #else
  47. #define memguard_fudge(size, xxx) (size)
  48. #define memguard_init(map) do { } while (0)
  49. #define memguard_alloc(size, flags) NULL
  50. #define memguard_realloc(a, s, mtp, f) NULL
  51. #define memguard_free(addr) do { } while (0)
  52. #define memguard_get_req_size(addr) 0
  53. #define memguard_cmp_mtp(mtp, size) 0
  54. #define memguard_cmp_zone(zone) 0
  55. #define is_memguard_addr(addr) 0
  56. #endif
  57. #endif /* _VM_MEMGUARD_H_ */