fpc/packages/base/libc/siginfoh.inc
michael 8a3268cddb + Last Borland Compatibility fixes
git-svn-id: trunk@847 -
2005-08-11 17:28:04 +00:00

167 lines
3.3 KiB
PHP

const
__SI_MAX_SIZE = 128;
__SI_PAD_SIZE = (__SI_MAX_SIZE div sizeof (Integer)) - 3;
type
Psigval = ^sigval;
sigval = record
case longint of
0 : ( sival_int : longint );
1 : ( sival_ptr : pointer );
end;
sigval_t = sigval;
Psigval_t = ^sigval_t;
// Borland compatibility types moved here, needed for siginfo
_si_sigchld = record
si_pid: __pid_t;
si_uid: __uid_t;
si_status: Integer;
si_utime: __clock_t;
si_stime: __clock_t;
end;
_si_kill = record
si_pid: __pid_t;
si_uid: __uid_t;
end;
_si_pad = packed array[0..__SI_PAD_SIZE-1] of Integer;
_si_sigfault = record
si_addr: Pointer;
end;
_si_sigpoll = record
si_band: Longint;
si_fd: Integer;
end;
_si_timer = record
_timer1: Cardinal;
_timer2: Cardinal;
end;
_si_rt = record
si_pid: __pid_t;
si_uid: __uid_t;
si_sigval: sigval_t;
end;
type
Psiginfo = ^siginfo;
siginfo = record
si_signo : longint;
si_errno : longint;
si_code : longint;
Case integer of
0: (_pad: _si_pad);
1: (_kill: _si_kill);
2: (_timer: _si_timer);
3: (_rt: _si_rt);
4: (_sigchld: _si_sigchld);
5: (_sigfault: _si_sigfault);
6: (_sigpoll: _si_sigpoll);
end;
siginfo_t = siginfo;
Psiginfo_t = ^siginfo_t;
Tsiginfo_t = siginfo_t;
Const
SI_ASYNCNL = -(6);
SI_SIGIO = (-(6))+1;
SI_ASYNCIO = (-(6))+2;
SI_MESGQ = (-(6))+3;
SI_TIMER = (-(6))+4;
SI_QUEUE = (-(6))+5;
SI_USER = (-(6))+6;
SI_KERNEL = $80;
ILL_ILLOPC = 1;
ILL_ILLOPN = 2;
ILL_ILLADR = 3;
ILL_ILLTRP = 4;
ILL_PRVOPC = 5;
ILL_PRVREG = 6;
ILL_COPROC = 7;
ILL_BADSTK = 8;
FPE_INTDIV = 1;
FPE_INTOVF = 2;
FPE_FLTDIV = 3;
FPE_FLTOVF = 4;
FPE_FLTUND = 5;
FPE_FLTRES = 6;
FPE_FLTINV = 7;
FPE_FLTSUB = 8;
SEGV_MAPERR = 1;
SEGV_ACCERR = 2;
BUS_ADRALN = 1;
BUS_ADRERR = 2;
BUS_OBJERR = 3;
TRAP_BRKPT = 1;
TRAP_TRACE = 2;
CLD_EXITED = 1;
CLD_KILLED = 2;
CLD_DUMPED = 3;
CLD_TRAPPED = 4;
CLD_STOPPED = 5;
CLD_CONTINUED = 6;
POLL_IN = 1;
POLL_OUT = 2;
POLL_MSG = 3;
POLL_ERR = 4;
POLL_PRI = 5;
POLL_HUP = 6;
__SIGEV_MAX_SIZE = 64;
__SIGEV_PAD_SIZE = (__SIGEV_MAX_SIZE div SizeOf(Integer)) - 3;
type
// Glue structures.
_se_pad = packed array[0..__SIGEV_PAD_SIZE-1] of Integer;
TSignalEventStartProc = procedure(Param: sigval_t); cdecl;
_se_sigev_thread = {packed} record
_function: TSignalEventStartProc; { Function to start. }
_attribute: Pointer; { Really pthread_attr_t. }
end;
Psigevent = ^sigevent;
sigevent = record
sigev_value : sigval_t;
sigev_signo : longint;
sigev_notify : longint;
_sigev_un : record
case longint of
0 : ( _pad : array[0..(__SIGEV_PAD_SIZE)-1] of longint );
1 : ( _sigev_thread :_se_sigev_thread;);
end;
end;
sigevent_t = sigevent;
Psigevent_t = ^sigevent_t;
Const
SIGEV_SIGNAL = 0;
SIGEV_NONE = 1;
SIGEV_THREAD = 2;
{ ---------------------------------------------------------------------
Borland compatibility types
---------------------------------------------------------------------}
Type
TSigval = sigval_t;
TSigInfo = siginfo;
TSigEvent = sigevent;