Home | History | Annotate | Line # | Download | only in profile
      1  1.1  joerg /*===- WindowsMMap.h - Support library for PGO instrumentation ------------===*\
      2  1.1  joerg |*
      3  1.1  joerg |*                     The LLVM Compiler Infrastructure
      4  1.1  joerg |*
      5  1.1  joerg |* This file is distributed under the University of Illinois Open Source
      6  1.1  joerg |* License. See LICENSE.TXT for details.
      7  1.1  joerg |*
      8  1.1  joerg \*===----------------------------------------------------------------------===*/
      9  1.1  joerg 
     10  1.1  joerg #ifndef PROFILE_INSTRPROFILING_WINDOWS_MMAP_H
     11  1.1  joerg #define PROFILE_INSTRPROFILING_WINDOWS_MMAP_H
     12  1.1  joerg 
     13  1.1  joerg #if defined(_WIN32)
     14  1.1  joerg 
     15  1.1  joerg #include <BaseTsd.h>
     16  1.1  joerg #include <io.h>
     17  1.1  joerg #include <sys/types.h>
     18  1.1  joerg 
     19  1.1  joerg /*
     20  1.1  joerg  * mmap() flags
     21  1.1  joerg  */
     22  1.1  joerg #define PROT_READ     0x1
     23  1.1  joerg #define PROT_WRITE    0x2
     24  1.1  joerg /* This flag is only available in WinXP+ */
     25  1.1  joerg #ifdef FILE_MAP_EXECUTE
     26  1.1  joerg #define PROT_EXEC     0x4
     27  1.1  joerg #else
     28  1.1  joerg #define PROT_EXEC        0x0
     29  1.1  joerg #define FILE_MAP_EXECUTE 0
     30  1.1  joerg #endif
     31  1.1  joerg 
     32  1.1  joerg #define MAP_FILE      0x00
     33  1.1  joerg #define MAP_SHARED    0x01
     34  1.1  joerg #define MAP_PRIVATE   0x02
     35  1.1  joerg #define MAP_ANONYMOUS 0x20
     36  1.1  joerg #define MAP_ANON      MAP_ANONYMOUS
     37  1.1  joerg #define MAP_FAILED    ((void *) -1)
     38  1.1  joerg 
     39  1.1  joerg /*
     40  1.1  joerg  * msync() flags
     41  1.1  joerg  */
     42  1.1  joerg #define MS_ASYNC        0x0001  /* return immediately */
     43  1.1  joerg #define MS_INVALIDATE   0x0002  /* invalidate all cached data */
     44  1.1  joerg #define MS_SYNC         0x0010  /* msync synchronously */
     45  1.1  joerg 
     46  1.1  joerg /*
     47  1.1  joerg  * flock() operations
     48  1.1  joerg  */
     49  1.1  joerg #define   LOCK_SH   1    /* shared lock */
     50  1.1  joerg #define   LOCK_EX   2    /* exclusive lock */
     51  1.1  joerg #define   LOCK_NB   4    /* don't block when locking */
     52  1.1  joerg #define   LOCK_UN   8    /* unlock */
     53  1.1  joerg 
     54  1.1  joerg void *mmap(void *start, size_t length, int prot, int flags, int fd,
     55  1.1  joerg            off_t offset);
     56  1.1  joerg 
     57  1.1  joerg void munmap(void *addr, size_t length);
     58  1.1  joerg 
     59  1.1  joerg int msync(void *addr, size_t length, int flags);
     60  1.1  joerg 
     61  1.1  joerg int flock(int fd, int operation);
     62  1.1  joerg 
     63  1.1  joerg #endif /* _WIN32 */
     64  1.1  joerg 
     65  1.1  joerg #endif /* PROFILE_INSTRPROFILING_WINDOWS_MMAP_H */
     66