* tried to fix x86-64 signal handling

This commit is contained in:
florian 2004-04-27 20:47:00 +00:00
parent 2553988d5a
commit d531e303f9
3 changed files with 31 additions and 17 deletions

View File

@ -515,13 +515,13 @@ begin
FillChar(act, sizeof(SigActionRec),0);
{ initialize handler }
act.sa_handler := signalhandler(@SignalToRunError);
{$ifdef CPUARM}
{$ifdef RTSIGACTION}
act.sa_flags:=4;
{$endif CPUARM}
FpSigAction(SIGFPE,@act,@oldact);
FpSigAction(SIGSEGV,@act,@oldact);
FpSigAction(SIGBUS,@act,@oldact);
FpSigAction(SIGILL,@act,@oldact);
{$endif RTSIGACTION}
FpSigAction(SIGFPE,@act,nil);
FpSigAction(SIGSEGV,@act,nil);
FpSigAction(SIGBUS,@act,nil);
FpSigAction(SIGILL,@act,nil);
end;
procedure SetupCmdLine;
@ -584,7 +584,10 @@ end;
{
$Log$
Revision 1.15 2004-04-22 21:16:35 peter
Revision 1.16 2004-04-27 20:47:00 florian
* tried to fix x86-64 signal handling
Revision 1.15 2004/04/22 21:16:35 peter
* do_write/do_read fix
Revision 1.14 2004/03/27 14:33:45 florian

View File

@ -475,7 +475,7 @@ CONST
MAP_ANONYMOUS =$20;
{Constansts Termios/Ioctl (used in Do_IsDevice) }
{$ifdef PowerPc}
{$ifdef PowerPC}
IOCtl_TCGETS=$402c7413;
{$else}
IOCtl_TCGETS=$5401; // TCGETS is also in termios.inc, but the sysunix needs only this
@ -509,7 +509,10 @@ end;
{
$Log$
Revision 1.22 2004-04-25 07:18:49 florian
Revision 1.23 2004-04-27 20:47:00 florian
* tried to fix x86-64 signal handling
Revision 1.22 2004/04/25 07:18:49 florian
* mmap for x86-64 fixed
Revision 1.21 2004/04/20 20:27:01 florian
@ -579,6 +582,4 @@ end;
Revision 1.1 2002/11/12 14:40:18 marco
* The syscall core of the new system unit.
}

View File

@ -88,7 +88,7 @@ type
status: cardinal;
end;
SigSet = array[0..wordsinsigset-1] of Longint;
SigSet = array[0..wordsinsigset-1] of cint;
sigset_t= SigSet;
PSigSet = ^SigSet;
psigset_t=psigset;
@ -343,6 +343,13 @@ type
TSigAction = procedure(Sig: Longint; SigContext: SigContextRec);cdecl;
{$ifdef CPUARM}
{$define NEWSIGNAL}
{$endif CPUARM}
{$ifdef CPUx86_64}
{$define NEWSIGNAL}
{$endif CPUx86_64}
SigActionRec = packed record // this is temporary for the migration
{$ifdef posixworkaround}
@ -354,22 +361,25 @@ type
1: (Sa: TSigAction);
end;
{$endif}
{$ifdef CPUARM}
Sa_Flags : Longint;
{$ifdef NEWSIGNAL}
Sa_Flags : cuint;
Sa_restorer : SignalRestorer; { Obsolete - Don't use }
Sa_Mask : SigSet;
{$else CPUARM}
{$else NEWSIGNAL}
Sa_Mask : SigSet;
Sa_Flags : Longint;
Sa_restorer : SignalRestorer; { Obsolete - Don't use }
{$endif CPUARM}
{$endif NEWSIGNAL}
end;
TSigActionRec = SigActionRec;
PSigActionRec = ^SigActionRec;
{
$Log$
Revision 1.17 2004-03-27 14:35:13 florian
Revision 1.18 2004-04-27 20:47:00 florian
* tried to fix x86-64 signal handling
Revision 1.17 2004/03/27 14:35:13 florian
* structs for arm adapted
Revision 1.16 2004/02/05 01:16:12 florian