;Call bsdsocket.library functions with SocketBase in TCB->tc_UserData _LVOFindTask = -$126 tc_UserData = $58 _LVOsocket = -$1e _LVObind = -$24 _LVOlisten = -$2a _LVOaccept = -$30 _LVOconnect = -$36 _LVOsend = -$42 _LVOrecv = -$4e _LVOshutdown = -$54 _LVOsetsockopt = -$5a _LVOCloseSocket = -$78 _LVOObtainSocket = -$90 _LVOReleaseSocket = -$96 _LVOReleaseCopyOfSocket = -$9c _LVOgethostbyaddr = -$d8 _LVOgetprotobyname = -$f6 _LVOgethostname = -$11a xdef _socket xdef _bind xdef _listen xdef _accept xdef _connect xdef _send xdef _recv xdef _shutdown xdef _setsockopt xdef _CloseSocket xdef _ObtainSocket xdef _ReleaseSocket xdef _ReleaseCopyOfSocket xdef _gethostbyaddr xdef _getprotobyname xdef _gethostname _socket: movem.l d2/a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 8+4(a7),d0 move.l 8+8(a7),d1 move.l 8+12(a7),d2 jsr _LVOsocket(a6) movem.l (a7)+,d2/a6 rts _bind: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),a0 move.l 4+12(a7),d1 jsr _LVObind(a6) move.l (a7)+,a6 rts _listen: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),d1 jsr _LVOlisten(a6) move.l (a7)+,a6 rts _accept: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),a0 move.l 4+12(a7),a1 jsr _LVOaccept(a6) move.l (a7)+,a6 rts _connect: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),a0 move.l 4+12(a7),d1 jsr _LVOconnect(a6) move.l (a7)+,a6 rts _send: movem.l d2/a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 8+4(a7),d0 move.l 8+8(a7),a0 move.l 8+12(a7),d1 move.l 8+16(a7),d2 jsr _LVOsend(a6) movem.l (a7)+,d2/a6 rts _recv: movem.l d2/a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 8+4(a7),d0 move.l 8+8(a7),a0 move.l 8+12(a7),d1 move.l 8+16(a7),d2 jsr _LVOrecv(a6) movem.l (a7)+,d2/a6 rts _shutdown: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),d1 jsr _LVOshutdown(a6) move.l (a7)+,a6 rts _setsockopt: movem.l d2-d3/a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 12+4(a7),d0 move.l 12+8(a7),d1 move.l 12+12(a7),d2 move.l 12+16(a7),a0 move.l 12+20(a7),d3 jsr _LVOsetsockopt(a6) movem.l (a7)+,d2-d3/a6 rts _CloseSocket: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 jsr _LVOCloseSocket(a6) move.l (a7)+,a6 rts _ObtainSocket: movem.l d2-d3/a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 12+4(a7),d0 move.l 12+8(a7),d1 move.l 12+12(a7),d2 move.l 12+16(a7),d3 jsr _LVOObtainSocket(a6) movem.l (a7)+,d2-d3/a6 rts _ReleaseSocket: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),d1 jsr _LVOReleaseSocket(a6) move.l (a7)+,a6 rts _ReleaseCopyOfSocket: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),d0 move.l 4+8(a7),d1 jsr _LVOReleaseCopyOfSocket(a6) move.l (a7)+,a6 rts _gethostbyaddr: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),a0 move.l 4+8(a7),d0 move.l 4+12(a7),d1 jsr _LVOgethostbyaddr(a6) move.l (a7)+,a6 rts _getprotobyname: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),a0 jsr _LVOgetprotobyname(a6) move.l (a7)+,a6 rts _gethostname: move.l a6,-(a7) move.l 4,a6 sub.l a1,a1 jsr _LVOFindTask(a6) move.l d0,a0 move.l tc_UserData(a0),a0 move.l (a0),a6 move.l 4+4(a7),a0 move.l 4+8(a7),d0 jsr _LVOgethostname(a6) move.l (a7)+,a6 rts