AUSAM/source/libc/connect.s
/ C library -- connection
/ types of connection
tdisconnect = 0
tconlog = 1
tconview = 2
tcongrab = 3
tconshare = 4
/ disconnect(fd) where fd is either master-fd or slave-fd
/
/ disconnect == 0 means success
/ disconnect == -1 means error
.globl _disconnect, cerror
_disconnect:
mov r5,-(sp)
mov sp,r5
mov 4(r5),r0
mov r0,r1 / same fd (it will be checked)
clr 0f / indicate disconnect
sys 0; 9f
bec 1f
jmp cerror
1:
clr r0
mov (sp)+,r5
rts pc
/ connect(master-fd, slave-fd, master-cntrl-char);
/
/ connect == 0 means success
/ connect == -1 means error
.globl _connect
_connect:
mov $tconlog,0f
jbr 2f
/ ttyview(master-fd, slave-fd, master-cntrl-char);
/
/ ttyview == 0 means success
/ ttyview == -1 means error
/
.globl _ttyview
_ttyview:
mov $tconview,0f
jbr 2f
/ ttygrab(master-fd, slave-fd, master-cntrl-char);
/
/ ttygrab == 0 means success
/ ttygrab == -1 means error
/
.globl _ttygrab
_ttygrab:
mov $tcongrab,0f
jbr 2f
/ ttyshare(master-fd, slave-fd, master-cntrl-char);
/
/ ttyshare == 0 means success
/ ttygrab == -1 means error
/
.globl _ttyshare
_ttyshare:
mov $tconshare,0f
jbr 2f
/ common code for log, view, grab, share
/
2:
mov r5,-(sp)
mov sp,r5
mov 4(r5),r0
mov 6(r5),r1
mov 8(r5),0f+2
sys 0; 9f
bec 1f
jmp cerror
1:
clr r0
mov (sp)+,r5
rts pc
.data
9:
sys 59.; 0: 0; 0