* 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); FillChar(act, sizeof(SigActionRec),0);
{ initialize handler } { initialize handler }
act.sa_handler := signalhandler(@SignalToRunError); act.sa_handler := signalhandler(@SignalToRunError);
{$ifdef CPUARM} {$ifdef RTSIGACTION}
act.sa_flags:=4; act.sa_flags:=4;
{$endif CPUARM} {$endif RTSIGACTION}
FpSigAction(SIGFPE,@act,@oldact); FpSigAction(SIGFPE,@act,nil);
FpSigAction(SIGSEGV,@act,@oldact); FpSigAction(SIGSEGV,@act,nil);
FpSigAction(SIGBUS,@act,@oldact); FpSigAction(SIGBUS,@act,nil);
FpSigAction(SIGILL,@act,@oldact); FpSigAction(SIGILL,@act,nil);
end; end;
procedure SetupCmdLine; procedure SetupCmdLine;
@ -584,7 +584,10 @@ end;
{ {
$Log$ $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 * do_write/do_read fix
Revision 1.14 2004/03/27 14:33:45 florian Revision 1.14 2004/03/27 14:33:45 florian

View File

@ -475,7 +475,7 @@ CONST
MAP_ANONYMOUS =$20; MAP_ANONYMOUS =$20;
{Constansts Termios/Ioctl (used in Do_IsDevice) } {Constansts Termios/Ioctl (used in Do_IsDevice) }
{$ifdef PowerPc} {$ifdef PowerPC}
IOCtl_TCGETS=$402c7413; IOCtl_TCGETS=$402c7413;
{$else} {$else}
IOCtl_TCGETS=$5401; // TCGETS is also in termios.inc, but the sysunix needs only this IOCtl_TCGETS=$5401; // TCGETS is also in termios.inc, but the sysunix needs only this
@ -509,7 +509,10 @@ end;
{ {
$Log$ $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 * mmap for x86-64 fixed
Revision 1.21 2004/04/20 20:27:01 florian 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 Revision 1.1 2002/11/12 14:40:18 marco
* The syscall core of the new system unit. * The syscall core of the new system unit.
} }

View File

@ -88,7 +88,7 @@ type
status: cardinal; status: cardinal;
end; end;
SigSet = array[0..wordsinsigset-1] of Longint; SigSet = array[0..wordsinsigset-1] of cint;
sigset_t= SigSet; sigset_t= SigSet;
PSigSet = ^SigSet; PSigSet = ^SigSet;
psigset_t=psigset; psigset_t=psigset;
@ -343,6 +343,13 @@ type
TSigAction = procedure(Sig: Longint; SigContext: SigContextRec);cdecl; 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 SigActionRec = packed record // this is temporary for the migration
{$ifdef posixworkaround} {$ifdef posixworkaround}
@ -354,22 +361,25 @@ type
1: (Sa: TSigAction); 1: (Sa: TSigAction);
end; end;
{$endif} {$endif}
{$ifdef CPUARM} {$ifdef NEWSIGNAL}
Sa_Flags : Longint; Sa_Flags : cuint;
Sa_restorer : SignalRestorer; { Obsolete - Don't use } Sa_restorer : SignalRestorer; { Obsolete - Don't use }
Sa_Mask : SigSet; Sa_Mask : SigSet;
{$else CPUARM} {$else NEWSIGNAL}
Sa_Mask : SigSet; Sa_Mask : SigSet;
Sa_Flags : Longint; Sa_Flags : Longint;
Sa_restorer : SignalRestorer; { Obsolete - Don't use } Sa_restorer : SignalRestorer; { Obsolete - Don't use }
{$endif CPUARM} {$endif NEWSIGNAL}
end; end;
TSigActionRec = SigActionRec; TSigActionRec = SigActionRec;
PSigActionRec = ^SigActionRec; PSigActionRec = ^SigActionRec;
{ {
$Log$ $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 * structs for arm adapted
Revision 1.16 2004/02/05 01:16:12 florian Revision 1.16 2004/02/05 01:16:12 florian