* fix for 8801. mmap constants inconsistancy. Old constants are aliased for compat. non portable moved to OS specific units (merge)

git-svn-id: trunk@7265 -
This commit is contained in:
marco 2007-05-04 21:23:02 +00:00
parent b8c21889f9
commit fd6f6cf7e9
7 changed files with 56 additions and 33 deletions

View File

@ -322,7 +322,9 @@ Type
CONST
{ Constansts for MMAP }
{$ifdef FPC_IS_SYSTEM}
MAP_PRIVATE =2;
{$endif}
MAP_ANONYMOUS =$1000;
{*************************************************************************}

View File

@ -185,6 +185,19 @@ Type
function kse_release(timeout: PTimeSpec): cInt; extdecl;
function kse_switchin(tmbx: PKseThrMailBox; flags: cInt): cInt; extdecl;
Const
MAP_FILE = $0000; { map from file (default) }
MAP_ANON = $1000; { allocated from memory, swap space }
MAP_RENAME = $0020; { Sun: rename private pages to file }
MAP_NORESERVE = $0040; { Sun: don't reserve needed swap area }
// MAP_INHERIT = $0080; { region is retained after exec. not anymore in 5.x? }
// MAP_NOEXTEND = $0100; { for MAP_FILE, don't change file size. not anymore in 5.x? }
MAP_HASSEMAPHORE = $0200; { region may contain semaphores }
MAP_STACK = $0400; { region grows down, like a stack }
MAP_NOSYNC = $0800; { page to but do not sync underlying file}
MAP_NOCORE = $20000;{ dont include these pages in a coredump}
implementation
Uses

View File

@ -160,6 +160,12 @@ const
KD_TEXT0 = 2; {obsolete}
KD_TEXT1 = 3; {obsolete}
MAP_GROWSDOWN = $100; { stack-like segment }
MAP_DENYWRITE = $800; { ETXTBSY }
MAP_EXECUTABLE = $1000; { mark it as an executable }
MAP_LOCKED = $2000; { pages are locked }
MAP_NORESERVE = $4000; { don't check for reservations }
type
TCloneFunc = function(args:pointer):longint;cdecl;

View File

@ -236,7 +236,9 @@ CONST
S_IFSOCK= 49152; { socket }
{ Constansts for MMAP }
{$IFDEF FPC_IS_SYSTEM}
MAP_PRIVATE =2;
{$ENDIF}
MAP_ANONYMOUS =$20;

View File

@ -234,7 +234,9 @@ Const
Const
{ Constansts for MMAP }
{$ifdef FPC_IS_SYSTEM}
MAP_PRIVATE =2;
{$endif}
MAP_ANONYMOUS =$100;
type

View File

@ -47,6 +47,25 @@ Uses UnixType;
{$i genfunch.inc}
{ Fairly portable constants. I'm not going to waste time to duplicate and alias
them anywhere}
Const
MAP_FAILED = pointer(-1); { mmap() has failed }
MAP_SHARED = $1; { Share changes }
MAP_PRIVATE = $2; { Changes are private }
MAP_TYPE = $f; { Mask for type of mapping }
MAP_FIXED = $10; { Interpret addr exactly }
// MAP_ANON(YMOUS) is OS dependant but used in the RTL and in ostypes.inc
// Under BSD without -YMOUS, so alias it:
MAP_ANON = MAP_ANONYMOUS;
PROT_READ = $1; { page can be read }
PROT_WRITE = $2; { page can be written }
PROT_EXEC = $4; { page can be executed }
PROT_NONE = $0; { page can not be accessed }
implementation
{$ifdef hassysctl}

View File

@ -146,46 +146,25 @@ Function GetHostName:String;
Memory functions
***************************}
const
PROT_READ = $1; { page can be read }
PROT_WRITE = $2; { page can be written }
PROT_EXEC = $4; { page can be executed }
PROT_NONE = $0; { page can not be accessed }
Const
// The portable MAP_* and PROT_ constants are exported from unit Unix for compability.
MAP_FAILED = pointer(-1); { mmap() has failed }
MAP_SHARED = $1; { Share changes }
// MAP_PRIVATE = $2; { Changes are private }
MAP_TYPE = $f; { Mask for type of mapping }
MAP_FIXED = $10; { Interpret addr exactly }
// MAP_ANONYMOUS = $20; { don't use a file }
PROT_READ = baseunix.PROT_READ; { page can be read }
PROT_WRITE = baseunix.PROT_WRITE; { page can be written }
PROT_EXEC = baseunix.PROT_EXEC; { page can be executed }
PROT_NONE = baseunix.PROT_NONE; { page can not be accessed }
MAP_FAILED = baseunix.MAP_FAILED; { mmap() failed }
MAP_SHARED = baseunix.MAP_SHARED; { Share changes }
MAP_PRIVATE = baseunix.MAP_PRIVATE; { Changes are private }
MAP_TYPE = baseunix.MAP_TYPE; { Mask for type of mapping }
MAP_FIXED = baseunix.MAP_FIXED; { Interpret addr exactly }
{ Flags to `msync'. }
MS_ASYNC = 1; { Sync memory asynchronously. }
MS_SYNC = 4; { Synchronous memory sync. }
MS_INVALIDATE = 2; { Invalidate the caches. }
{$ifdef Linux}
MAP_GROWSDOWN = $100; { stack-like segment }
MAP_DENYWRITE = $800; { ETXTBSY }
MAP_EXECUTABLE = $1000; { mark it as an executable }
MAP_LOCKED = $2000; { pages are locked }
MAP_NORESERVE = $4000; { don't check for reservations }
{$else}
{$ifdef FreeBSD}
// FreeBSD defines MAP_COPY=MAP_PRIVATE=$2;
MAP_FILE = $0000; { map from file (default) }
MAP_ANON = $1000; { allocated from memory, swap space }
MAP_RENAME = $0020; { Sun: rename private pages to file }
MAP_NORESERVE = $0040; { Sun: don't reserve needed swap area }
MAP_INHERIT = $0080; { region is retained after exec }
MAP_NOEXTEND = $0100; { for MAP_FILE, don't change file size }
MAP_HASSEMAPHORE = $0200; { region may contain semaphores }
MAP_STACK = $0400; { region grows down, like a stack }
MAP_NOSYNC = $0800; { page to but do not sync underlying file}
MAP_NOCORE = $20000;{ dont include these pages in a coredump}
{$endif}
{$endif}
{**************************
Utility functions
***************************}