[BACK]Return to util.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / nm

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;