NEW AUTO 3,1 */-------------------------------------- * # Socket * Create a new socket * ## C * `hFD socket(short int type, short int protocol);` * ## ASM * `>PUSHB type` * `>PUSHB protocol` * `>LIBCALL hLIBTCPIP,LIBTCPIP.socket` * ## RETURN VALUE * CC: A = hSOCKET * CS: A = EC *\-------------------------------------- SKT.Socket clc rts */-------------------------------------- * # Bind * bind a name to a socket * ## C * `int bind(hFD fd, const struct sockaddr *addr);` * ## ASM * `>PUSHB fd` * `>PUSHW addr` * `>LIBCALL hLIBTCPIP,LIBTCPIP.socket` * ## RETURN VALUE * CC: A = hSOCKET * CS: A = EC *\-------------------------------------- SKT.bind */-------------------------------------- * # Connect * Initiate a connection on a socket * ## C * `int connect(hFD fd, const struct sockaddr *addr);` * ## ASM * `>PUSHB fd` * `>PUSHW addr` * `>LIBCALL hLIBTCPIP,LIBTCPIP.socket` * ## RETURN VALUE * CC: A = hSOCKET * CS: A = EC *\-------------------------------------- SKT.connect */-------------------------------------- * # Listen * Listen for connections on a socket * ## C * `int listen(hFD fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.listen` * ## RETURN VALUE * CS: A = EC *\-------------------------------------- SKT.listen */-------------------------------------- * # Accept * Accept a connection on a socket * ## C * `hFD Accept(hFD fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.accept` * ## RETURN VALUE * A = hSocket *\-------------------------------------- SKT.Accept */-------------------------------------- * # Shutdown * Close socket * ## C * `int shutdown(int fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.shutdown` * ## RETURN VALUE *\-------------------------------------- SKT.shutdown */-------------------------------------- * # Read (STREAM) * ## C * `int skt.read(hFD fd, void *buf, int count);` * ## ASM * `>PUSHB fd` * `>PUSHW buf` * `>PUSHW count` * `>LIBCALL hLIBTCPIP,LIBTCPIP.read` * ## RETURN VALUE * CC: Y,A = bytes read * CS: A = EC *\-------------------------------------- SKT.Read */-------------------------------------- * # Write (STREAM) * ## C * `int skt.write(hFD fd, const void *buf, int count);` * ## ASM * `>PUSHB fd` * `>PUSHW buf` * `>PUSHW count` * `>LIBCALL hLIBTCPIP,LIBTCPIP.write` * ## RETURN VALUE * CC: Y,A = bytes written * CS: A = EC *\-------------------------------------- SKT.Write */-------------------------------------- * # RecvFrom (RAW,DGRAM) * ## C * `hMem recvfrom(hFD fd, struct sockaddr *addr);` * ## ASM * `>PUSHB fd` * `>PUSHW addr` (RecvFrom) * `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv` * ## RETURN VALUE * CC: A = hMem * CS: A = EC *\-------------------------------------- SKT.RecvFrom */-------------------------------------- * # Recv (RAW,DGRAM,SEQPKT) * ## C * `hMem recv(hFD fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv` * ## RETURN VALUE * CC: A = hMem * CS: A = EC *\-------------------------------------- SKT.Recv */-------------------------------------- * # SendTo (RAW,DGRAM,SEQPKT) * ## C * `int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);` * ## ASM * `>PUSHB fd` * `>PUSHW buf` * `>PUSHWI count` * `>PUSHW addr` * `>LIBCALL hLIBTCPIP,LIBTCPIP.sendto` * ## RETURN VALUE * CC: Y,A = bytes written * CS: A = EC *\-------------------------------------- SKT.SendTo */-------------------------------------- * # Send (RAW,DGRAM,SEQPKT) * ## C * `int skt.send(hFD fd, const void *buf, int count);` * ## ASM * `>PUSHB fd` * `>PUSHW buf` * `>PUSHWI count` * `>LIBCALL hLIBTCPIP,LIBTCPIP.send` * ## RETURN VALUE * CC: Y,A = bytes written * CS: A = EC *\-------------------------------------- SKT.Send */-------------------------------------- * # GetSockOpt * Set Socket Options * ## C * `int getsockopt(hFD fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.GetSockOpt` * ## RETURN VALUE *\-------------------------------------- SKT.getsockopt */-------------------------------------- * # SetSockOpt * Set Socket Options * ## C * `int setsockopt(hFD fd, short int opts);` * ## ASM * `>PUSHB fd` * `>PUSHB opts` * `>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt` * ## RETURN VALUE *\-------------------------------------- SKT.setsockopt */-------------------------------------- * # EOF * End Of File * ## C * `int eof(hFD fd);` * ## ASM * `lda fd` * `>LIBCALL hLIBTCPIP,LIBTCPIP.EOF` * ## RETURN VALUE * CC : A = 0 if some data, A = $ff if EOF * CS : A = Socket Error *\-------------------------------------- SKT.EOF *-------------------------------------- MAN SAVE usr/src/lib/libetalk.s.skt LOAD usr/src/lib/libetalk.s ASM