/* String equality predicate. */
#define streq(a,b) (!strcmp((a),(b)))

#define Alloc(type) 	((type *) malloc(sizeof(type)))
#define Malloc(type,n)	((type *) malloc(sizeof(type)*(n)))
#define Free(p)		(free((char *)(p)))
#define Realloc(type,p,n) ((type *) realloc(p, (n)*sizeof(type)))


/* These are the interrupt numbers used by the S48/scsh VM.
** The first two are S48 interrupts. The rest were added for
** scsh to support Unix signals. Note that not all Unixes support
** all these signals.
**
** !!! The numbers have to match the enumeration low-interrupt !!!
*/
#define scshint_alarm (0)		/* S48 Unix SIGALRM signal */
#define scshint_keyboard (1)		/* S48 Unix SIGINT signal */
/* left out post-gc and i/o-completion */
#define scshint_chld (4)		/* Interrupts from here down are    */
#define scshint_cont (5)		/* Unix signals. The last ten are   */
#define scshint_hup (6)			/* non-Posix, hence not necessarily */
#define scshint_quit (7)		/* found on all Unixes.             */
#define scshint_term (8)
#define scshint_tstp (9)
#define scshint_usr1 (10)
#define scshint_usr2 (11)
#define scshint_info (12)		/* BSD        */
#define scshint_io (13)			/* BSD + SVR4 */
#define scshint_poll (14)		/*       SVR4 */
#define scshint_prof (15)		/* BSD + SVR4 */
#define scshint_pwr (16)		/*       SVR4 */
#define scshint_urg (17)		/* BSD + SVR4 */
#define scshint_vtalrm (18)		/* BSD + SVR4 */
#define scshint_winch (19)		/* BSD + SVR4 */
#define scshint_xcpu (20)		/* BSD + SVR4 */
#define scshint_xfsz (21)		/* BSD + SVR4 */