Annotation of src/usr.bin/nm/util.h, Revision 1.1
1.1 ! mickey 1: /* $OpenBSD$ */
! 2:
! 3: #define MMAP(ptr, len, prot, flags, fd, off) do { \
! 4: if ((ptr = mmap(NULL, len, prot, flags, fd, off)) == MAP_FAILED) { \
! 5: usemmap = 0; \
! 6: if (errno != EINVAL) \
! 7: warn("mmap"); \
! 8: else if ((ptr = malloc(len)) == NULL) { \
! 9: ptr = MAP_FAILED; \
! 10: warn("malloc"); \
! 11: } else if (pread(fd, ptr, len, off) != len) { \
! 12: free(ptr); \
! 13: ptr = MAP_FAILED; \
! 14: warn("pread"); \
! 15: } \
! 16: } \
! 17: } while (0)
! 18:
! 19: #define MUNMAP(addr, len) do { \
! 20: if (usemmap) \
! 21: munmap(addr, len); \
! 22: else \
! 23: free(addr); \
! 24: } while (0)
! 25:
! 26: extern int usemmap;