You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
3.3 KiB

#ifndef __EVIL_SYS_MMAN_H__
#define __EVIL_SYS_MMAN_H__
#include <sys/types.h>
* AUTHORS: * src/lib/Evil.h: * src/lib/Makefile.am: * src/lib/evil_inet.c: * src/lib/evil_mman.c: * src/lib/evil_stdio.c: * src/lib/evil_stdio.h: * src/lib/evil_stdlib.c: * src/lib/evil_util.c: * src/lib/sys/mman.h: * src/lib/evil_printa.c (added): * src/lib/evil_pformatw.c (added): * src/lib/evil_pformat.h (added): * src/lib/evil_printw.c (added): * src/lib/evil_print.h (added): * src/lib/evil_macro.h (added): * src/lib/evil_pformata.c (added): Add POSIX printf family. Code taken from the MinGW-w64 project and modified to be integrated into Evil. * src/bin/Makefile.am: * src/bin/evil_suite.c: * src/bin/evil_test_util.h (added): * src/bin/evil_test_print.c (added): * src/bin/evil_test_print.h (added): * src/bin/evil_test_util.c (added): Add util and printf unit tests * src/lib/evil_errno.c: * src/lib/errno.h (deleted): * src/lib/mingw32ce (added): * src/lib/mingw32ce/errno.h (added): Move errno.h for Windows CE in its own directory to suppress conflicts with standard errno.h when compiling for Windows XP. * src/lib/dlfcn/dlfcn.c: * src/lib/evil_link_ce.c: * src/lib/evil_main.c: * src/lib/evil_unistd.c: Define WIN32_LEAN_AND_MEAN only if it's not defined. * src/lib/evil_fcntl.c: Remove debug. * src/bin/evil_test_dlfcn.c: * src/bin/evil_test_environment.c: * src/bin/evil_test_gettimeofday.c: * src/bin/evil_test_link.c: * src/bin/evil_test_mkstemp.c: * src/bin/evil_test_pipe.c: * src/bin/evil_test_realpath.c: Remove warnings. * src/lib/evil_link_xp.cpp: Formatting. SVN revision: 68084
11 years ago
#include <evil_macro.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @def PROT_NONE
* Data can not be accessed.
*/
/**
* @def PROT_READ
* Data can be read.
*/
/**
* @def PROT_WRITE
* Data can be written.
*/
/**
* @def PROT_EXEC
* Data can be executed.
*/
#define PROT_NONE 0x00
#define PROT_READ 0x01
#define PROT_WRITE 0x02
#define PROT_EXEC 0x04
/**
* @def MAP_SHARED
* Changes are shared.
*/
/**
* @def MAP_PRIVATE
* Changes are private.
*/
/**
* @def MAP_FIXED
* Interpret the address (addr) exactly.
*/
/**
* @def MAP_FAILED
* Error return from mmap().
*/
#define MAP_SHARED 0x0001
#define MAP_PRIVATE 0x0002
#define MAP_FIXED 0x0010
#define MAP_FAILED ((void *)-1)
/**
* @file mman.h
* @brief The file that provides the memory map functions
* @defgroup Evil_Mman Functions that manage memory mappping.
* @ingroup Evil
*
* This header provides the meomry map functions mmap and munmap.
*
*/
/**
* Creates or opens a named or unnamed file mapping object for a
* specified file and maps a view of a file mapping into the
* address space of a calling process.
*
* @param addr Unused
* @param len Number of bytes to be mapped.
* @param prot Protections.
* @param flags Type of the mapped object.
* @param fd File descriptor that describes the object to map.
* @param offset Number of bytes from which to start the mapping.
* @return The starting address of the mapped view on success, -1 otherwise.
*
* Create or open an unnamed file mapping object for a specified
* file described by the file descriptor @p fd. The number of
* bytes that are mapped is given by @p len and start after
* @p offset bytes. The parameter @p addr is unused.
*
* The only type of the mapped object that is supported is
* @c MAP_SHARED. If another value if given, -1 is returned.
*
* @p prot specifies the protection of the mapped region. If
* PROT_EXEC is used, it set the execute access. If PROT_READ
* is used, it sets the read access. If PROT_WRITE is used, it
* sets the write access.
*
* If the map view of file can not be created, -1 is returned.
* If the mappping can not be done, -1 is returned.
*
* If no error occurred, the starting address of the mapped view
* is returned.
*
* Conformity: None.
*
* Supported OS: Windows Vista, Windows XP or Windows 2000
* Professional.
*
* @ingroup Evil_Mman
*/
EAPI void *mmap(void *addr,
size_t len,
int prot,
int flags,
int fd,
off_t offset);
/**
* Unmaps a mapped view of a file from the calling process's
* address space.
*
* @param addr Pointer to the base address.
* @param len Unused.
* @return 0 on success, -1 otherwise.
*
* Unmaps a mapped view of a file from the calling process's
* address space. @p addr is the pointer to the base address.
* This value must be identical to the value returned by a
* previous call to mmap(). The parameter @p len is unsed.
*
* Conformity: None.
*
* Supported OS: Windows Vista, Windows XP or Windows 2000
* Professional.
*
* @ingroup Evil_Mman
*/
EAPI int munmap(void *addr,
size_t len);
#ifdef __cplusplus
}
#endif
#endif /* __EVIL_SYS_MMAN_H__ */