mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 22:48:07 +02:00
195 lines
5.5 KiB
PHP
195 lines
5.5 KiB
PHP
{
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 2011 by Free Pascal development team
|
|
|
|
This file implements all the types/constants related
|
|
to signals for AIX.
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
const
|
|
{************************ signals *****************************}
|
|
{ more can be provided. Herein are only included the required }
|
|
{ values. }
|
|
{**************************************************************}
|
|
SIGHUP = 1; { Hangup }
|
|
SIGINT = 2; { Interactive attention signal }
|
|
SIGQUIT = 3; { Interactive termination signal }
|
|
SIGILL = 4; { Illegal instruction }
|
|
SIGABRT = 6; { abnormal termination }
|
|
SIGFPE = 8; { illegal arithmetic operation }
|
|
SIGKILL = 9; { Kill, cannot be caught }
|
|
SIGBUS = 10; { Access to undefined memory }
|
|
SIGSEGV = 11; { Detection of invalid memory reference }
|
|
SIGPIPE = 13; { Broken pipe signal }
|
|
SIGALRM = 14; { alarm clock (used with alarm() }
|
|
SIGTERM = 15; { Termination request }
|
|
SIGUSR1 = 30;
|
|
SIGUSR2 = 31;
|
|
SIGSTOP = 17; { Stop signal. cannot be cuaght }
|
|
SIGSTP = 18; { Interactive stop signal }
|
|
SIGCONT = 19; { Continue if stopped }
|
|
SIGCHLD = 20; { Child process terminated / stopped }
|
|
SIGTSTP = SIGSTP; { AIX name for SIGSTP }
|
|
SIGTTIN = 21; { Background read from TTY }
|
|
SIGTTOU = 22; { Background write to TTY }
|
|
|
|
{ AIX specific signals }
|
|
|
|
SIGTRAP = 5; { trace trap (not reset when caught) }
|
|
SIGIOT = SIGABRT; { IOT instruction }
|
|
SIGLOST = SIGIOT; { resource lost (eg, record-lock lost) }
|
|
SIGEMT = 7; { EMT instruction }
|
|
SIGSYS = 12; { bad argument to system call }
|
|
SIGCLD = SIGCHLD; { child status change }
|
|
SIGURG = 16; { (+) urgent contition on I/O channel }
|
|
SIGPOLL = 23; { pollable event occurred }
|
|
SIGXCPU = 24; { exceeded cpu limit }
|
|
SIGXFSZ = 25;
|
|
SIGMSG = 27;
|
|
SIGWINCH = 28; { window size change }
|
|
SIGPWR = 29; { power-fail restart }
|
|
SIGIO = SIGPOLL; { socket I/O possible (SIGPOLL alias) }
|
|
SIGAIO = SIGIO;
|
|
SIGPTY = SIGIO;
|
|
SIGPROF = 32; { profiling timer expired }
|
|
SIGVTALRM = 34; { virtual timer expired }
|
|
SIGMIGRATE = 35; { exceeded file size limit }
|
|
SIGPRE = 36;
|
|
SIGVIRT = 37;
|
|
SIGALARM1 = 38;
|
|
SIGWAITING = 39; { process's lwps are blocked }
|
|
SIGRECONFIG = 58;
|
|
SIGCPUFAIL = 59;
|
|
SIGKAP = 60;
|
|
SIGGRANT = SIGKAP;
|
|
SIGRETRACT = 61;
|
|
SIGSOUND = 62;
|
|
SIGSAK = 63;
|
|
|
|
SIG_BLOCK = 1;
|
|
SIG_UNBLOCK = 2;
|
|
SIG_SETMASK = 3;
|
|
|
|
SIG_DFL = pointer(0) ;
|
|
SIG_IGN = pointer(1) ;
|
|
SIG_ERR = pointer(-1) ;
|
|
|
|
{ definitions for the sa_flags field }
|
|
SA_ONSTACK = $00000001;
|
|
SA_RESETHAND = $00000002;
|
|
SA_RESTART = $00000008;
|
|
SA_SIGINFO = $00000100;
|
|
SA_NODEFER = $00000200;
|
|
SA_NOCLDWAIT = $00000400;
|
|
|
|
SI_USER = 0;
|
|
SI_UNDEFINED = 8;
|
|
SI_EMPTY = 9;
|
|
{ SIGBUS }
|
|
BUS_ADRALN = 1;
|
|
BUS_ADRERR = 2;
|
|
BUS_OBJERR = 3;
|
|
BUS_UEGARD = 4;
|
|
{ SIGCHLD }
|
|
CLD_EXITED = 10;
|
|
CLD_KILLED = 11;
|
|
CLD_DUMPED = 12;
|
|
CLD_TRAPPED = 13;
|
|
CLD_STOPPED = 14;
|
|
CLD_CONTINUED = 15;
|
|
{ SIGFPE }
|
|
FPE_INTDIV = 20;
|
|
FPE_INTOVF = 21;
|
|
FPE_FLTDIV = 22;
|
|
FPE_FLTOVF = 23;
|
|
FPE_FLTUND = 24;
|
|
FPE_FLTRES = 25;
|
|
FPE_FLTINV = 26;
|
|
FPE_FLTSUB = 27;
|
|
{ SIGILL }
|
|
ILL_ILLOPC = 30;
|
|
ILL_ILLOPN = 31;
|
|
ILL_ILLADR = 32;
|
|
ILL_ILLTRP = 33;
|
|
ILL_PRVOPC = 34;
|
|
ILL_PRVREG = 35;
|
|
ILL_COPROC = 36;
|
|
ILL_BADSTK = 37;
|
|
{ SIGPOLL }
|
|
POLL_IN = 40;
|
|
POLL_OUT = 41;
|
|
POLL_MSG = -3;
|
|
POLL_ERR = 43;
|
|
POLL_PRI = 44;
|
|
POLL_HUP = 45;
|
|
{ SIGSEGV }
|
|
SEGV_MAPERR = 50;
|
|
SEGV_ACCERR = 51;
|
|
SEGV_KEYERR = 52;
|
|
{ SIGTRAP }
|
|
TRAP_BRKPT = 60;
|
|
TRAP_TRACE = 61;
|
|
{ GENERAL }
|
|
SI_QUEUE = 71;
|
|
SI_TIMER = 72;
|
|
SI_ASYNCIO = 73;
|
|
SI_MESGQ = 74;
|
|
|
|
|
|
type
|
|
SigSet = array[0..wordsinsigset-1] of clong;
|
|
sigset_t= SigSet;
|
|
PSigSet = ^SigSet;
|
|
psigset_t=psigset;
|
|
TSigSet = SigSet;
|
|
|
|
psiginfo = ^tsiginfo;
|
|
tsiginfo = record
|
|
si_signo : cint;
|
|
si_errno : cint;
|
|
si_code : cint;
|
|
si_pid : pid_t;
|
|
si_uid : uid_t;
|
|
{$ifdef cpu64}
|
|
si_status: cint;
|
|
si_addr : pointer;
|
|
{$else cpu64}
|
|
si_addr : pointer;
|
|
si_status: cint;
|
|
{$endif cpu64}
|
|
si_band : clong;
|
|
__si_flags: cint;
|
|
{$ifdef cpu64}
|
|
__pad: array[0..2] of cint;
|
|
{$else cpu64}
|
|
__pad: array[0..5] of cint;
|
|
{$endif cpu64}
|
|
end;
|
|
|
|
{ CPU dependent TSigContext }
|
|
{$i sighndh.inc}
|
|
|
|
type
|
|
SignalHandler = Procedure(Sig : Longint);cdecl;
|
|
PSignalHandler = ^SignalHandler;
|
|
SignalRestorer = Procedure;cdecl;
|
|
PSignalRestorer = ^SignalRestorer;
|
|
SigActionHandler = procedure(sig : longint; SigInfo: PSigInfo; SigContext: PSigContext);cdecl;
|
|
|
|
SigActionRec = record // this needs correct 8-byte alignment for hander
|
|
sa_handler : SigActionHandler;
|
|
Sa_Mask : SigSet;
|
|
Sa_Flags : cint;
|
|
end;
|
|
TSigActionRec = SigActionRec;
|
|
PSigActionRec = ^SigActionRec;
|
|
|