e3885aacc4f26c817827173a754510807b6bc84cTim Reddehaseref -D_def_map_ast=1
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehasetst lib_mmap note{ standard mmap interface that works }end execute{
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase #define MAPSIZE (64*1024)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase #define BUFSIZE (8*1024)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase #define WRITE (64)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase #define Failed(file) (remove(file),1)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase main(int argc, char** argv)
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase main(argc,argv)
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase char *t, *u, *f;
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase int i, fd, okfixed;
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase char file[1024], buf[MAPSIZE];
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase struct tms stm, etm;
3da7bc412bbfe11a5fec5a93e938c7f9369dfd51Tim Reddehase clock_t rdtm, mmtm;
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase /* create data file in a local fs if possible */
ad0951c31d4cb89b36e3ada932a86de475cb68e4Tim Reddehase if (access(f = "/tmp", 0) == 0 ||
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase access(f = "/usr/tmp", 0) == 0)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase while (*t = *f++)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase while (*t = *f++)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase if (*t == '/')
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase else if (*t != '.')
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase *t++ = '.'; *t++ = 'D'; *t = 0;
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase if ((fd = open(file, O_CREAT|O_TRUNC|O_WRONLY, 0666)) < 0)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase for (i = 0; i < sizeof(buf); ++i)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase buf[i] = '0' + (i%10);
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase for (i = 0; i < WRITE; ++i)
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase if (write(fd,buf,sizeof(buf)) != sizeof(buf))
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase return Failed(file);
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase /* see if can overwrite fixed map */
e3885aacc4f26c817827173a754510807b6bc84cTim Reddehase #ifndef MAP_VARIABLE
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/mman.h>
tst mmap_devzero note{ use mmap on /dev/zero to get raw memory }end execute{
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/mman.h>
if((fd = open("/dev/zero", O_RDWR)) < 0)
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/times.h>
fact that functions like sfreserve/sfgetr do