Initial revision

This commit is contained in:
ceriel
1988-04-19 10:19:15 +00:00
parent cac49c513c
commit 709fee14c6
11 changed files with 266 additions and 0 deletions

7
mach/minix/libsys/.distr Normal file
View File

@@ -0,0 +1,7 @@
LIST
Makefile
compmodule
head_em.s
end.s
lib.h
libsys_s.a

56
mach/minix/libsys/LIST Normal file
View File

@@ -0,0 +1,56 @@
libsys_s.a
stty.c
gtty.c
access.c
alarm.c
brk.c
call.c
chdir.c
chmod.c
chown.c
chroot.c
close.c
creat.c
dup.c
dup2.c
exec.c
exit.c
cleanup.c
fork.c
fstat.c
getegid.c
geteuid.c
getgid.c
getpid.c
getuid.c
ioctl.c
kill.c
link.c
lseek.c
message.c
mknod.c
mktemp.c
mount.c
open.c
pause.c
pipe.c
read.c
setgid.c
setuid.c
signal.c
stat.c
stderr.c
stime.c
sync.c
syslib.c
time.c
times.c
umask.c
umount.c
unlink.c
utime.c
wait.c
write.c
brksize.s
sendrec.s
catchsig.s

View File

@@ -0,0 +1,40 @@
# $Header$
MACH=minix
all: libsys_o.a end.o head_em.o
install: all
../../install libsys_o.a tail_mon
../../install head_em.o head_em
../../install end.o end_em
cmp: all
-../../compare libsys_o.a tail_mon
-../../compare head_em.o head_em
-../../compare end.o end_em
end.o: end.s
$(MACH) -I../../../h -O -c end.s
head_em.o: head_em.s
$(MACH) -I../../../h -O -c head_em.s
libsys.a: libsys_s.a
ASAR=aal ; export ASAR ;\
march . libsys.a
libsys_o.a: libsys.a ../../../lib/i86/tail_em
mkdir X; cd X; aal x ../libsys.a; aal x ../../../../lib/i86/tail_em; aal rv ../libsys_o.a *.o
rm -rf X
clean:
rm -f *.o libsys_o.a libsys.a
opr :
make pr | opr
pr:
@pr `pwd`/head_em.s
@arch pv libsys.a | pr -h `pwd`/libsys.a
@pr `pwd`/end.s

View File

@@ -0,0 +1,4 @@
.define _brksize
.globl endbss, _brksize
.data
_brksize: .word endbss

View File

@@ -0,0 +1,40 @@
.define _begsig
.globl _begsig
.globl _vectab, _M
mtype = 2 | M+mtype = &M.m_type
_begsig:
push ax | after interrupt, save all regs
push bx
push cx
push dx
push si
push di
push bp
push ds
push es
mov bx,sp
mov bx,18(bx) | bx = signal number
mov ax,bx | ax = signal number
dec bx | vectab[0] is for sig 1
add bx,bx | pointers are two bytes on 8088
mov bx,_vectab(bx) | bx = address of routine to call
push _M+mtype | push status of last system call
push ax | func called with signal number as arg
call (bx)
back:
pop ax | get signal number off stack
pop _M+mtype | restore status of previous system call
pop es | signal handling finished
pop ds
pop bp
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop dummy | remove signal number from stack
iret
.data
dummy: .word 0

4
mach/minix/libsys/compmodule Executable file
View File

@@ -0,0 +1,4 @@
if minix -c -L -LIB $1 1>&2
then echo `basename $1 $2`.o
else exit 1
fi

10
mach/minix/libsys/end.s Normal file
View File

@@ -0,0 +1,10 @@
.define endtext, enddata, endbss, _end, _edata
.globl endtext, enddata, endbss, _end, _edata
.text
endtext:
.data
enddata:
_edata:
.bss
endbss:
_end:

View File

@@ -0,0 +1,52 @@
.sect .text; .sect .rom; .sect .data; .sect .bss
.define begtext,begdata,begbss
.define hol0,.reghp,.limhp,.trppc,.ignmask
.define ERANGE,ESET,EHEAP,ECASE,EILLINS,EIDIVZ,EODDZ
.extern _end
ERANGE = 1
ESET = 2
EIDIVZ = 6
EHEAP = 17
EILLINS = 18
EODDZ = 19
ECASE = 20
.sect .text
begtext:
mov bx,sp
mov cx,(bx)
add bx,2
mov ax,cx
inc ax
shl ax,1
add ax,bx
push ax
push bx
push cx
xor bp,bp
call _m_a_i_n
call _exit
.sect .data
begdata:
hol0:
.data2 0,0
.data2 0,0
argv:
.data2 3f
envp:
.data2 0
3:
.asciz "PROGRAM"
.reghp:
.data2 endbss
.limhp:
.data2 endbss
.ignmask:
.data2 0
.trppc:
.data2 0
.sect .bss
begbss:

View File

@@ -0,0 +1,32 @@
.define _send, _receive, _sendrec
.globl _send, _receive, _sendrec
| See ../h/com.h for C definitions
SEND = 1
RECEIVE = 2
BOTH = 3
SYSVEC = 32
|*========================================================================*
| send and receive *
|*========================================================================*
| send(), receive(), sendrec() all save bp, but destroy ax, bx, and cx.
_send: mov cx,*SEND | send(dest, ptr)
jmp L0
_receive:
mov cx,*RECEIVE | receive(src, ptr)
jmp L0
_sendrec:
mov cx,*BOTH | sendrec(srcdest, ptr)
jmp L0
L0: push bp | save bp
mov bp,sp | can't index off sp
mov ax,4(bp) | ax = dest-src
mov bx,6(bp) | bx = message pointer
int SYSVEC | trap to the kernel
pop bp | restore bp
ret | return