1e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# 2e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# Check for the ability to mmap a file. 3e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# 4e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei LiaoAC_DEFUN([AC_FUNC_MMAP_FILE], 5e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao[AC_CACHE_CHECK(for mmap of files, 6e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoac_cv_func_mmap_file, 7e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao[ AC_LANG_PUSH([C]) 8e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao AC_RUN_IFELSE([ 9e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao AC_LANG_PROGRAM([[ 10e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao#include <sys/types.h> 11e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao#include <sys/mman.h> 12e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao#include <fcntl.h> 13e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao]],[[ 14e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao int fd; 15e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao fd = creat ("foo",0777); 16e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0); 17e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao unlink ("foo"); 18e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao return (fd != (int) MAP_FAILED);]])], 19e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao [ac_cv_func_mmap_file=yes],[ac_cv_func_mmap_file=no],[ac_cv_func_mmap_file=no]) 20e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao AC_LANG_POP([C]) 21e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao]) 22e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoif test "$ac_cv_func_mmap_file" = yes; then 23e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao AC_DEFINE([HAVE_MMAP_FILE],[],[Define if mmap() can map files into memory]) 24e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao AC_SUBST(MMAP_FILE,[yes]) 25e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaofi 26e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao]) 27