*** empty log message ***

This commit is contained in:
keie 1985-01-01 22:27:02 +00:00
parent d16efbab98
commit c235c1a93d
63 changed files with 992 additions and 0 deletions

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $_exit
pro $_exit,0
lol 0
loc 1
mon
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $access
pro $access,0
lal 0
loi EM_WSIZE+EM_PSIZE
loc 33
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

16
lang/cem/libcc/mon/acct.e Normal file
View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $acct
pro $acct,0
lal 0
loi EM_PSIZE
loc 51
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,9 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $alarm
pro $alarm,0
lol 0
loc 27
mon
ret EM_WSIZE
end

10
lang/cem/libcc/mon/brk.e Normal file
View file

@ -0,0 +1,10 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $brk
pro $brk,0
lal 0
loi EM_PSIZE
str 2 ; The - possibly - occurring traps should be caught
loc 0
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $chdir
pro $chdir,0
lal 0
loi EM_PSIZE
loc 12
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $chmod
pro $chmod,0
lal 0
loi EM_WSIZE+EM_PSIZE
loc 15
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $chown
pro $chown,0
lal 0
loi EM_PSIZE+2*EM_WSIZE
loc 16
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $chroot
pro $chroot,0
lal 0
loi EM_PSIZE
loc 61
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1 @@
_cleanup(){}

View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $close
pro $close,0
lol 0
loc 6
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,14 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $creat
pro $creat,0
lal 0
loi EM_WSIZE+EM_PSIZE
loc 8
mon
zeq *1
ste errno ; since e==r0
loc -1
1
ret EM_WSIZE
end

14
lang/cem/libcc/mon/dup.e Normal file
View file

@ -0,0 +1,14 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $dup
pro $dup,0
lol 0
dup EM_WSIZE
loc 41
mon
zeq *1
ste errno
loc -1
1
ret EM_WSIZE
end

16
lang/cem/libcc/mon/dup2.e Normal file
View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $dup2
pro $dup2,0
lal 0
loi 2*EM_WSIZE
loc 64
ior EM_WSIZE
loc 41
mon
zeq *1
ste errno
loc -1
1
ret EM_WSIZE
end

View file

@ -0,0 +1,6 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exa errno
errno
bss EM_WSIZE,0,0

View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $execl
pro $execl,0
lae _penvp
loi EM_PSIZE
lal EM_PSIZE
lal 0
loi EM_PSIZE
loc 59
mon
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,25 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $execle
pro $execle,0
lal EM_PSIZE
1
dup EM_PSIZE
loi EM_PSIZE
zer EM_PSIZE
cmp
zeq *2
adp EM_PSIZE
bra *1
2
adp EM_PSIZE
loi EM_PSIZE
lal EM_PSIZE
lal 0
loi EM_PSIZE
loc 59
mon
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,14 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $execv
pro $execv,0
lae _penvp
loi EM_PSIZE
lal 0
loi 2*EM_PSIZE
loc 59
mon
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,12 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $execve
pro $execve,0
lal 0
loi 3*EM_PSIZE
loc 59
mon
ste errno
loc -1
ret EM_WSIZE
end

24
lang/cem/libcc/mon/exit.c Normal file
View file

@ -0,0 +1,24 @@
/*
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
*
* This product is part of the Amsterdam Compiler Kit
* developed by Andrew S. Tanenbaum, Johan W. Stevenson,
* Ed Keizer and Hans van Staveren of the Vrije Universiteit.
*
* Permission to use, sell, duplicate or disclose this software must be
* obtained in writing. Requests for such permissions may be sent to
*
* Dr. Andrew S. Tanenbaum
* Wiskundig Seminarium
* Vrije Universiteit
* Postbox 7161
* 1007 MC Amsterdam
* The Netherlands
*
*/
exit(code)
{
_cleanup() ;
_exit(code) ;
}

21
lang/cem/libcc/mon/fork.e Normal file
View file

@ -0,0 +1,21 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exa par_uid
par_uid
bss EM_WSIZE,0,0
exp $fork
pro $fork,0
loc 2
mon
zeq *1
ste errno
loc -1
ret EM_WSIZE
1
zeq *2
ste par_uid
loc 0
2
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $fstat
pro $fstat,0
lal 0
loi EM_WSIZE+EM_PSIZE
loc 28
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,10 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $ftime
pro $ftime,0
lal 0
loi EM_PSIZE
loc 35
mon
ret 0
end

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $getegid
pro $getegid,0
loc 47
mon
ret EM_WSIZE
end

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $geteuid
pro $geteuid,0
loc 24
mon
ret EM_WSIZE
end

View file

@ -0,0 +1,9 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $getgid
pro $getgid,0
loc 47
mon
asp EM_WSIZE
ret EM_WSIZE
end

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $getpid
pro $getpid,0
loc 20
mon
ret EM_WSIZE
end

View file

@ -0,0 +1,9 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $getuid
pro $getuid,0
loc 24
mon
asp EM_WSIZE
ret EM_WSIZE
end

View file

@ -0,0 +1,4 @@
#include <sgtty.h>
int gtty(fildes,argp) int fildes ; struct sgttyb *argp ; {
return ioctl(fildes,TIOCGETP,argp) ;
}

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $ioctl
pro $ioctl,0
lal 0
loi EM_PSIZE+2*EM_WSIZE
loc 54
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

15
lang/cem/libcc/mon/kill.e Normal file
View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $kill
pro $kill,0
ldl 0
loc 37
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

16
lang/cem/libcc/mon/link.e Normal file
View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $link
pro $link,0
lal 0
loi 2*EM_PSIZE
loc 9
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

15
lang/cem/libcc/mon/lock.e Normal file
View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $lock
pro $lock,0
lol 0
loc 53
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,25 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $lseek
pro $lseek,0
lal 0
loi 4*EM_WSIZE
loc 19
mon
zeq *1
ste errno
#if EM_WSIZE==1
ldc -1
loc 2
loc 4
cii
#endif
#if EM_WSIZE==2
ldc -1
#endif
#if EM_WSIZE==4
loc -1
#endif
1
ret 2*EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $mknod
pro $mknod,0
lal 0
loi EM_PSIZE+2*EM_WSIZE
loc 14
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $mount
pro $mount,0
lal 0
loi EM_WSIZE+2*EM_PSIZE
loc 21
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $mpxcall
pro $mpxcall,0
lal 0
loi EM_PSIZE+EM_WSIZE
loc 56
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,9 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $nice
pro $nice,0
lol 0
loc 34
mon
ret 0
end

14
lang/cem/libcc/mon/open.e Normal file
View file

@ -0,0 +1,14 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $open
pro $open,0
lal 0
loi EM_WSIZE+EM_PSIZE
loc 5
mon
zeq *1
ste errno
loc -1
1
ret EM_WSIZE
end

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $pause
pro $pause,0
loc 29
mon
ret 0
end

18
lang/cem/libcc/mon/pipe.e Normal file
View file

@ -0,0 +1,18 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $pipe
pro $pipe,0
loc 42
mon
zeq *1
ste errno
loc -1
ret EM_WSIZE
1
lal 0
loi EM_PSIZE
stf EM_WSIZE
sil 0
loc 0
ret EM_WSIZE
end

10
lang/cem/libcc/mon/prof.e Normal file
View file

@ -0,0 +1,10 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $profil
pro $profil,0
lal 0
loi 4*EM_PSIZE
loc 44
mon
ret 0
end

View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $ptrace
pro $ptrace,0
zre errno
lal 0
loi EM_PSIZE+3*EM_WSIZE
loc 26
mon
zeq *1
ste errno
loc -1
1
ret EM_WSIZE
end

23
lang/cem/libcc/mon/read.e Normal file
View file

@ -0,0 +1,23 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $read
pro $read,0
lol EM_WSIZE+EM_PSIZE
loc EM_WSIZE
loc EM_PSIZE
ciu
lal 0
loi EM_WSIZE+EM_PSIZE
loc 3
mon
zne *1
loc EM_PSIZE
loc EM_WSIZE
cui
bra *2
1
ste errno
loc -1
2
ret EM_WSIZE
end

11
lang/cem/libcc/mon/sbrk.e Normal file
View file

@ -0,0 +1,11 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $sbrk
pro $sbrk,0
lor 2
lor 2
lol 0
ads EM_WSIZE
str 2 ; The - possibly - occurring traps should be caught
ret EM_PSIZE
end

View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $setgid
pro $setgid,0
lol 0
loc 46
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,45 @@
#
mes 2,EM_WSIZE,EM_PSIZE
save
bss EM_PSIZE,0,0
trf
bss EM_PSIZE,0,0
exp $_setsig
pro $_setsig,0
lal 0
loi EM_PSIZE
lae trf
sti EM_PSIZE
inp $catchit
lpi $catchit ; trap to catchit
sig
lae save ; remember higher level trap
sti EM_PSIZE
ret 0
end
pro $catchit,0
lpi $catchit
sig
asp EM_PSIZE
lol 0 ; fetch trapno
lae trf
loi EM_PSIZE ; fetch procedure identifier
cai
lfr EM_WSIZE
zne *1
; trap not handled by trf function, trap through; trapno still on stack
lae save
loi EM_PSIZE
sig
asp EM_PSIZE
trp
lpi $catchit ; trap ignored, further traps to catchit
sig
asp EM_PSIZE
lae save ; remember higher level trap
sti EM_PSIZE
1
rtt
end

View file

@ -0,0 +1,15 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $setuid
pro $setuid,0
lol 0
loc 23
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,99 @@
#include <signal.h>
typedef int (*callvec)() ;
static callvec vector[16] = {
SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL,
SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL, SIG_DFL
} ;
static char mapvec[] = {
0, /* EARRAY */
0, /* ERANGE */
0, /* ESET */
0, /* EIOVFL */
SIGFPE, /* EFOVFL */
SIGFPE, /* EFUNDFL */
0, /* EIDIVZ */
SIGFPE, /* EFDIVZ */
0, /* EIUND, already ignored */
SIGFPE, /* EFUND */
0, /* ECONV */
0, /* 11 */
0, /* 12 */
0, /* 13 */
0, /* 14 */
0, /* 15 */
SIGSEGV, /* ESTACK */
SIGSEGV, /* EHEAP */
0, /* EILLINS */
0, /* EODDZ */
0, /* ECASE */
SIGSEGV, /* EBADMEM */
SIGBUS, /* EBADPTR */
0, /* EBADPC */
0, /* EBADLAE */
SIGSYS, /* EBADMON */
0, /* EBADLIN */
0, /* EBADGTO */
} ;
#define VECBASE 128
static firsttime = 1 ;
static int catchtrp() ;
static int procesig() ;
callvec signal(sig,func) int sig ; callvec func ; {
register index, i ;
callvec prev ;
index= sig-1 ;
if ( index<0 || index>=(sizeof vector/sizeof vector[0]) ) {
return (callvec) -1 ;
}
if ( firsttime ) {
firsttime= 0 ;
_setsig(catchtrp) ;
}
prev= vector[index] ;
if ( prev!=func ) {
register int mapval ;
vector[index]= func ;
if ( func==SIG_IGN ) {
mapval= -3;
} else if ( func==SIG_DFL ) {
mapval= -2;
} else {
mapval=VECBASE+sig;
}
if ( sigtrp(mapval,sig)== -1 ) return (callvec) -1;
}
return prev ;
}
static int catchtrp(trapno) int trapno ; {
if ( trapno>VECBASE &&
trapno<=VECBASE + (sizeof vector/sizeof vector[0]) ) {
return procesig(trapno-VECBASE) ;
}
if ( trapno>=0 && trapno< (sizeof mapvec/sizeof mapvec[0]) &&
mapvec[trapno] ) {
return procesig(mapvec[trapno]) ;
}
return 0 ; /* Failed to handle the trap */
}
static int procesig(sig) int sig ; {
register index ;
callvec trf ;
index= sig-1 ;
trf= vector[index] ;
if ( trf==SIG_IGN ) return 1 ;
if ( sig!=SIGILL && sig!=SIGTRAP ) vector[index]= SIG_IGN ;
if ( trf==SIG_DFL ) return 0 ;
(*trf)(sig) ;
return 1 ;
}

View file

@ -0,0 +1,13 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $sigtrp
pro $sigtrp,0
ldl 0
loc 48
mon
zeq *1
ste errno
loc -1
1
ret EM_WSIZE
end

16
lang/cem/libcc/mon/stat.e Normal file
View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $stat
pro $stat,0
lal 0
loi 2*EM_PSIZE
loc 18
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,20 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $stime
pro $stime,0
#if EM_WSIZE<4
lol 0
loi 4
#else
lil 0
#endif
loc 25
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,4 @@
#include <sgtty.h>
int stty(fildes,argp) int fildes ; struct sgttyb *argp ; {
return ioctl(fildes,TIOCSETP,argp) ;
}

View file

@ -0,0 +1,8 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $sync
pro $sync,0
loc 36
mon
ret 0
end

10
lang/cem/libcc/mon/tell.c Normal file
View file

@ -0,0 +1,10 @@
/*
* return offset in file.
*/
long lseek();
long tell(f)
{
return(lseek(f, 0L, 1));
}

View file

@ -0,0 +1,9 @@
#include <sys/types.h>
#include <sys/timeb.h>
time_t time(timpt) time_t *timpt ; {
struct timeb buf ;
ftime(&buf) ;
if ( timpt ) *timpt= buf.time ;
return buf.time ;
}

View file

@ -0,0 +1,10 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $times
pro $times,0
lal 0
loi EM_PSIZE
loc 43
mon
ret 0
end

View file

@ -0,0 +1,9 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $umask
pro $umask,0
lol 0
loc 60
mon
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $umount
pro $umount,0
lal 0
loi EM_PSIZE
loc 22
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $unlink
pro $unlink,0
lal 0
loi EM_PSIZE
loc 10
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,16 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $utime
pro $utime,0
lal 0
loi 2*EM_PSIZE
loc 30
mon
zne *1
loc 0
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

33
lang/cem/libcc/mon/wait.e Normal file
View file

@ -0,0 +1,33 @@
#
mes 2,EM_WSIZE,EM_PSIZE
#if EM_WSIZE<4
#define STATUS_SIZE 2
#else
#define STATUS_SIZE EM_WSIZE
#endif
exp $wait
pro $wait,0
loc 7
mon
zne *1
lal 0
loi EM_PSIZE
zer EM_PSIZE
cms EM_PSIZE
zeq *2
#if EM_WSIZE==1
lal 0
loi EM_PSIZE
sti 2 ; 2 bytes, not one int!
#else
sil 0
#endif
ret EM_WSIZE
2
asp STATUS_SIZE
ret EM_WSIZE
1
ste errno
loc -1
ret EM_WSIZE
end

View file

@ -0,0 +1,23 @@
#
mes 2,EM_WSIZE,EM_PSIZE
exp $write
pro $write,0
lol EM_WSIZE+EM_PSIZE
loc EM_WSIZE
loc EM_PSIZE
ciu
lal 0
loi EM_WSIZE+EM_PSIZE
loc 4
mon
zne *1
loc EM_PSIZE
loc EM_WSIZE
cui
bra *2
1
ste errno
loc -1
2
ret EM_WSIZE
end