Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!agate!agate.berkeley.edu!cgd
From: cgd@thresher.CS.Berkeley.EDU (Chris G. Demetriou)
Newsgroups: comp.os.386bsd.misc
Subject: Re: mmap
Date: 16 May 93 22:11:00
Organization: Kernel Hackers 'r' Us
Lines: 55
Distribution: world
Message-ID: <CGD.93May16221100@thresher.CS.Berkeley.EDU>
References: <1t5p55$f1p@urmel.informatik.rwth-aachen.de>
NNTP-Posting-Host: thresher.cs.berkeley.edu
In-reply-to: kuku@acds.physik.rwth-aachen.de's message of 16 May 1993 16:12:21 GMT
In article <1t5p55$f1p@urmel.informatik.rwth-aachen.de> kuku@acds.physik.rwth-aachen.de (Christoph Kukulies) writes:
>I'm wondering whether mmap under 386BSD is broken or if it's just again
>my ignorance.
m-x sarcasm-mode
386BSD's mmap is perfect; you *must* be doing something wrong! 8-)
m-x normal-mode
X if((memory=mmap(0,1024,PROT_READ|PROT_WRITE,MAP_FILE,fd,0)) == -1){
X if((memory=mmap(0,1024,PROT_READ|PROT_WRITE,MAP_FILE,fd,0)) == (caddr_t)(-1)){
both of these use MAP_FILE for the flags, to map a normal file...
however, there are other bits of flags, too... all of the flags
bits are listed here:
(from /usr/include/sys/mman.h)
/*
* Flags contain mapping type, sharing type and options.
* Mapping type; choose one
*/
#define MAP_FILE 0x0001 /* mapped from a file or device */
#define MAP_ANON 0x0002 /* allocated from memory, swap space */
#define MAP_TYPE 0x000f /* mask for type field */
/*
* Sharing types; choose one
*/
#define MAP_COPY 0x0020 /* "copy" region at mmap time */
#define MAP_SHARED 0x0010 /* share changes */
#define MAP_PRIVATE 0x0000 /* changes are private */
/*
* Other flags
*/
#define MAP_FIXED 0x0100 /* map addr must be exactly as requested */
#define MAP_NOEXTEND 0x0200 /* for MAP_FILE, don't change file size */
#define MAP_HASSEMPHORE 0x0400 /* region may contain semaphores */
#define MAP_INHERIT 0x0800 /* region is retained after exec */
note that you didn't chose a sharing type, and it defaulted to
MAP_PRIVATE...
chris
--
Chris G. Demetriou cgd@cs.berkeley.edu
"386bsd as depth first search: whenever you go to fix something you
find that 3 more things are actually broken." -- Adam Glass