ports/cad/tclspice/files/patch-src_frontend_resource.c
Pav Lucistnik b32dace1ce TclSpice is an improved version of Berkeley Spice designed to be used with
the Tcl/Tk scripting language. The project is open-source (BSD license)
and based upon the NG-Spice source code base with many improvements

Features and Improvements
 - Fully Tcl scriptable - installs with 'package require spice' statement
 - Hspice syntax (SpicePP).
 - GUI interfaces, various (Tk).
 - SpiceWish (BLT graph widget)
 - BLT (tcl compatible) vectors for storage, manipulation and arithmetic
	upon Spice waveforms.
 - Xspice additions (Georgia Tech).
 - Trigger upon waveform events.
 - Spice 'simulator state' save and restore for rapid 'what-if' simulations
	(no longer need to re-simulate from the beginning each time a
	device value is changed).

Author:	Stefan Jones <stefan.jones@multigig.com>
WWW:	http://tclspice.sourceforge.net/

PR:		ports/99399
Submitted by:	Stanislav Sedov <ssedov@mbsd.msk.ru>
2006-06-26 18:34:59 +00:00

41 lines
1.1 KiB
C

--- src/frontend/resource.c.orig Sat Jun 24 04:53:17 2006
+++ src/frontend/resource.c Sat Jun 24 04:55:41 2006
@@ -311,7 +311,7 @@
static RETSIGTYPE
fault(void)
{
- signal(SIGSEGV, (SIGNAL_FUNCTION) fault); /* SysV style */
+ signal(SIGBUS, (SIGNAL_FUNCTION) fault); /* SysV style */
siglongjmp(env, 1);
}
#if !defined(__MINGW32__) && !defined(__APPLE_CC__)
@@ -321,7 +321,8 @@
char *low, *high, *at;
/* char *sbrk(int); */
long x;
- RETSIGTYPE (*orig_signal)( );
+ RETSIGTYPE (*orig_sigsegv)( );
+ RETSIGTYPE (*orig_sigbus)( );
if (getenv("SPICE_NO_DATASEG_CHECK"))
return 0;
@@ -330,7 +331,8 @@
low = 0;
high = (char *) ((unsigned long) sbrk(0) & ~((1 << LOG2_PAGESIZE) - 1));
- orig_signal = signal(SIGSEGV, (SIGNAL_FUNCTION) fault);
+ orig_sigsegv = signal(SIGSEGV, (SIGNAL_FUNCTION) fault);
+ orig_sigbus = signal(SIGBUS, (SIGNAL_FUNCTION) fault);
do {
@@ -358,7 +360,8 @@
} while (1);
- (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_signal);
+ (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_sigsegv);
+ (void) signal(SIGBUS, (SIGNAL_FUNCTION) orig_sigbus);
return (void *) high;
}
#endif