[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
Hallo William!
Thank you for your mail with the detailed explanations.
Thomas Manzke answered you already. But we are not shure whether you got
the mail because the US - connection is down the most time.
So I will repeat his question (slightly changed) at the beginning of this mail
and include the signal-file, belonging to the question, at the end of the
file.
------------------------------------------------------------------------
Hallo William,
we have just booted our new MIPS-machine (TARGON 4400P, a Pyramid-machine).
below you can see the listing of the file /usr/include/signal.h of our
TARGON. Could you please comment on the difficulties to get this work
with CMU-LISP?
------------------------------------------------------------------------
In the meantime some other questions came up.
1) We don't have a suitable Lisp to run genesis.
So we are trying to use the kernel.core directly. Later on we want
to run genesis in this first system.
We are now analyzing the core file.
We "relocated" the objects due to the space problems of our swapping
system.
We disassembled the code vectors and found out, that only assembler routines
are addressed by the J and JAl instructions.
There are quiet a lot of BREAK instructions inside the code. For which pur-
pose are they used ? Are they used for error exits ? Can you tell us some-
thing about the memory word immediately following such a BREAK instruction?
Do you see any problem (beside those you already wrote about) to get the
kernel.core running ?
2)
> So if you are staying with a processor that we already have a compiler
> backend for, almost all of the work is in fixing ldb to work with your
> operating system. The exceptions are the few places operating system
> dependencies actually exist in the lisp code. I can only think of one
> off hand, and it would take about 15 minutes to fix.
Can you give us some hints for the "few places of operating system
dependencies" ?
3) We want to give you some more details about our question concerning the
scope of declarations (see CLtL2, 9.1 Declaration Syntax, page 219):
... An important change from the first edition is that "initialization"
forms are specifically not included as part of the body ...
Did you already change it ?
4) Scott Fahlman wrote , PCL would be ported to the Phyton-compiler.
Is this work done and what PCL - version do you take? (We have some
experience with the may-day - version.)
Thank you for your efforts, with best regards
Thekla
-------------------------------------------------------------------------
Now the file /usr/include/signal.h (TARGON) follows:
/* Copyright (c) 1988 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ifndef _SIGNAL_H
#define _SIGNAL_H
#ident "@(#)head:signal.h PTrev: 1.5 5/16/90 18:26:34"
typedef int sig_atomic_t;
extern char *_sys_siglist[];
extern int _sys_nsig;
#include <sys/signal.h>
#if defined(__STDC__)
extern void (*signal(int, void (*)(int)))(int);
extern int raise(int);
#if __STDC__ == 0 || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE)
#include <sys/types.h>
extern int kill(pid_t, int);
extern int sigaction(int, const struct sigaction *, struct sigaction *);
extern int sigaddset(sigset_t *, int);
extern int sigdelset(sigset_t *, int);
extern int sigemptyset(sigset_t *);
extern int sigfillset(sigset_t *);
extern int sigismember(const sigset_t *, int);
extern int sigpending(sigset_t *);
extern int sigprocmask(int, const sigset_t *, sigset_t *);
extern int sigsuspend(sigset_t *);
#endif
#if __STDC__ == 0 && !defined(_POSIX_SOURCE)
#include <sys/procset.h>
extern int gsignal(int);
extern void (*sigset(int, void (*)(int)))(int);
extern int sighold(int);
extern int sigrelse(int);
extern int sigignore(int);
extern int sigpause(int);
extern int (*ssignal(int, int (*)(int)))(int);
extern int sigaltstack(const stack_t *, stack_t *);
extern int sigsend(idtype_t, id_t, int);
extern int sigsendset(const procset_t *, int);
#endif
#else
extern void (*sigset())();
extern void (*signal())();
#endif /* __STDC__ */
#endif /* _SIGNAL_H */
;-----------------------------------------------------------------------
And at the end the file /usr/include/sys/signal.h (TARGON)
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ifndef _SYS_SIGNAL_H
#define _SYS_SIGNAL_H
#ident "@(#)head.sys:signal.h 1.3.8.1"
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt (rubout) */
#define SIGQUIT 3 /* quit (ASCII FS) */
#define SIGILL 4 /* illegal instruction (not reset when caught) */
#define SIGTRAP 5 /* trace trap (not reset when caught) */
#define SIGIOT 6 /* IOT instruction */
#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */
#define SIGEMT 7 /* EMT instruction */
#define SIGFPE 8 /* floating point exception */
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* segmentation violation */
#define SIGSYS 12 /* bad argument to system call */
#define SIGPIPE 13 /* write on a pipe with no one to read it */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal from kill */
#define SIGUSR1 16 /* user defined signal 1 */
#define SIGUSR2 17 /* user defined signal 2 */
#define SIGCLD 18 /* child status change */
#define SIGCHLD 18 /* child status change alias (POSIX) */
#define SIGPWR 19 /* power-fail restart */
#define SIGWINCH 20 /* window size change */
#define SIGURG 21 /* urgent socket condition */
#define SIGPOLL 22 /* pollable event occured */
#define SIGIO 22 /* socket I/O possible (SIGPOLL alias) */
#define SIGSTOP 23 /* stop (cannot be caught or ignored) */
#define SIGTSTP 24 /* user stop requested from tty */
#define SIGCONT 25 /* stopped process has been continued */
#define SIGTTIN 26 /* background tty read attempted */
#define SIGTTOU 27 /* background tty write attempted */
#define SIGVTALRM 28 /* virtual timer expired */
#define SIGPROF 29 /* profiling timer expired */
#define SIGXCPU 30 /* exceeded cpu limit */
#define SIGXFSZ 31 /* exceeded file size limit */
#if !defined(mips) || defined(LANGUAGE_C)
#define SIG_DFL (void(*)())0
#if defined(lint)
#define SIG_ERR (void(*)())0
#define SIG_IGN (void (*)())0
#define SIG_HOLD (void(*)())0
#else
#define SIG_ERR (void(*)())-1
#define SIG_IGN (void (*)())1
#define SIG_HOLD (void(*)())2
#endif
#if (__STDC__ - 0 == 0) || defined(_POSIX_SOURCE)
typedef struct { /* signal set type */
unsigned long sigbits[4];
} sigset_t;
struct sigaction {
int sa_flags;
void (*sa_handler)();
sigset_t sa_mask;
int sa_resv[2];
};
/* these are only valid for SIGCLD */
#define SA_NOCLDSTOP 0x00020000 /* don't send job control SIGCLD's */
#endif
#endif /* !defined(mips) || defined(LANGUAGE_C) */
#define SIG_BLOCK 1
#define SIG_UNBLOCK 2
#define SIG_SETMASK 3
#define SIGNO_MASK 0xFF
#define SIGDEFER 0x100
#define SIGHOLD 0x200
#define SIGRELSE 0x400
#define SIGIGNORE 0x800
#define SIGPAUSE 0x1000
#if (__STDC__ - 0 == 0) && !defined(_POSIX_SOURCE)
/* non-comformant ANSI compilation */
/* definitions for the sa_flags field */
#define SA_ONSTACK 0x00000001
#define SA_RESETHAND 0x00000002
#define SA_RESTART 0x00000004
#define SA_SIGINFO 0x00000008
#define SA_NODEFER 0x00000010
/* these are only valid for SIGCLD */
#define SA_NOCLDWAIT 0x00010000 /* don't save zombie children */
#define NSIG 32 /* valid signals range from 1 to NSIG-1 */
#define MAXSIG 32 /* size of u_signal[], NSIG-1 <= MAXSIG */
#define S_SIGNAL 1
#define S_SIGSET 2
#define S_SIGACTION 3
#define S_NONE 4
#define MINSIGSTKSZ 512
#define SIGSTKSZ 8192
#define SS_ONSTACK 0x00000001
#define SS_DISABLE 0x00000002
#if !defined(mips) || defined(LANGUAGE_C)
struct sigaltstack {
char *ss_sp;
int ss_size;
int ss_flags;
};
typedef struct sigaltstack stack_t;
#endif /* !defined(mips) || defined(LANGUAGE_C) */
#endif
#ifdef _KERNEL
extern k_sigset_t
fillset, /* valid signals, guaranteed contiguous */
holdvfork, /* held while doing vfork */
cantmask, /* cannot be caught or ignored */
cantreset, /* cannot be reset after catching */
ignoredefault, /* ignored by default */
stopdefault, /* stop by default */
coredefault; /* dumps core by default */
#define sigmask(n) ((unsigned long)1 << ((n) - 1))
#define sigemptyset(s) (*(s) = 0)
#define sigfillset(s) (*(s) = fillset)
#define sigaddset(s,n) (*(s) |= sigmask(n))
#define sigdelset(s,n) (*(s) &= ~sigmask(n))
#define sigismember(s,n) (sigmask(n) & *(s))
#if !defined(_POSIX_SOURCE)
#define sigisempty(s) (*(s) == 0)
#define sigorset(s1,s2) (*(s1) |= *(s2))
#define sigandset(s1,s2) (*(s1) &= *(s2))
#define sigdiffset(s1,s2) (*(s1) &= ~(*(s2)))
#define sigutok(us,ks) (*(ks) = (us)->sigbits[0])
#define sigktou(ks,us) ((us)->sigbits[0] = *(ks), \
(us)->sigbits[1] = 0, \
(us)->sigbits[2] = 0, \
(us)->sigbits[3] = 0)
#endif /* !defined(_POSIX_SOURCE) */
typedef struct {
int sig;
int perm;
int checkperm;
} sigsend_t;
#if !defined(_POSIX_SOURCE)
#if defined(__STDC__)
extern void setsigact(int, void (*)(), k_sigset_t, int);
#else
extern void setsigact();
#endif /* __STDC__ */
#endif /* !defined(_POSIX_SOURCE) */
#endif /* _KERNEL */
#endif /* _SYS_SIGNAL_H */
- Follow-Ups:
- Re:
- From: William.Lott@CS.CMU.EDU