* further ipc solaris fixes by Werner B. Mantis

git-svn-id: trunk@29395 -
This commit is contained in:
marco 2015-01-04 20:43:10 +00:00
parent fcade9d8b8
commit bda05fb028

View File

@ -112,7 +112,7 @@ type
mode : mode_t; { access mode (r/w permission) }
seq : uint_t; { slot usage sequence number }
key : key_t; { user specified msg/sem/shm key }
{$ifndef cpux86_64}
{$ifndef cpu64}
pad : array [0..3] of cint;
{$endif}
End;
@ -228,7 +228,7 @@ Type
shm_cpid : pid_t; // pid of creator
shm_nattch : shmatt_t; // number of attaches
shm_cnattch : culong; // number of ISM attaches
{$ifdef cpux86_64}
{$ifdef cpu64}
shm_atime : time_t; // last shmat time
shm_dtime : time_t; // last shmdt time
shm_ctime : time_t; // last change time
@ -340,7 +340,10 @@ Type
{$endif}
{$if defined(Solaris)}
// Shared memory control operations
SHM_SHARE_MMU = 4 shl 12;
SHM_PAGEABLE = 1 shl 15;
// Shared memory control operations
SHM_LOCK = 3;
SHM_UNLOCK = 4;
@ -411,6 +414,14 @@ Function shmctl(shmid:cint; cmd:cint; buf: pshmid_ds): cint; {$ifdef FPC_USE_LIB
const
MSG_NOERROR = 1 shl 12;
{$if defined(Solaris)}
MSG_R = 4 shl 6; // read permission
MSG_W = 2 shl 6; // write permission
MSG_RWAIT = 1 shl 9; // a reader is waiting for a message
MSG_WWAIT = 2 shl 9; // a writer is waiting to send
{$endif}
{$if defined(Linux)}
MSG_EXCEPT = 2 shl 12;
@ -478,7 +489,7 @@ type
msg_qbytes : msglen_t;
msg_lspid : pid_t;
msg_lrpid : pid_t;
{$ifndef cpux86_64}
{$ifdef cpu64}
msg_stime : time_t;
msg_rtime : time_t;
msg_ctime : time_t;
@ -492,7 +503,7 @@ type
{$endif}
msg_cv : cshort;
msg_qnum_cv: cshort;
msg_pad4 : array [0..3] of clong;
msg_pad4 : array [0..2] of clong;
end;
{$elseif defined(Linux)}
PMSQid_ds = ^TMSQid_ds;
@ -616,7 +627,7 @@ type
Function msgget(key: TKey; msgflg:cint):cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgget'; {$endif}
Function msgsnd(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgflg:cint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgsnd'; {$endif}
Function msgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:clong; msgflg:cint): {$if defined(Darwin) or defined(aix)}ssize_t;{$else}cint;{$endif} {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgrcv'; {$endif}
Function msgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:clong; msgflg:cint): {$if defined(Darwin) or defined(aix) or defined(Solaris)}ssize_t;{$else}cint;{$endif} {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgrcv'; {$endif}
Function msgctl(msqid:cint; cmd: cint; buf: PMSQid_ds): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgctl'; {$endif}
{ ----------------------------------------------------------------------
@ -641,7 +652,9 @@ const
SEM_SEMVMX = 32767;
{$else}
SEM_UNDO = 1 shl 12;
{$if not defined(Solaris)}
MAX_SOPS = 5;
{$endif}
{$if not defined(aix) and not defined(darwin)}
SEM_GETNCNT = 3; { Return the value of sempid (READ) }
@ -734,7 +747,7 @@ type
sem_otime: time_t;
sem_ctime: time_t;
end;
{$elseif defined(Solaris}
{$elseif defined(Solaris)}
PSEM = ^TSEM;
TSEM = record end; // opague
@ -743,7 +756,7 @@ type
sem_perm : tipc_perm;
sem_base : PSEM;
sem_nsems : cushort;
{$ifndef cpux86_64}
{$ifdef cpu64}
sem_otime : time_t;
sem_ctime : time_t;
{$else}