home *** CD-ROM | disk | FTP | other *** search
- /*
- * This source file is Copyright 1995 by Evan Scott.
- * All rights reserved.
- * Permission is granted to distribute this file provided no
- * fees beyond distribution costs are levied.
- */
-
-
- typedef union {
- struct {
- b8 a;
- b8 b;
- b8 c;
- b8 d;
- } dot;
- b32 l;
- } ipnum;
-
- typedef union {
- struct {
- b8 a;
- b8 b;
- } dot;
- b16 w;
- } portnum;
-
- /* something like an iorequest ... probably a real exec device
- implementation would be good, but for now just DIY */
-
- typedef struct tcpm {
- struct Message header;
-
- magic_verify;
-
- b32 command;
- void *ident; /* stores pointer to context information */
-
- ipnum address;
- portnum port;
-
- void *data;
- struct tcpm *interrupt;
- b32 length;
-
- b32 result;
- b32 error;
- b32 flags;
- b32 userid;
- void *userdata;
- } tcpmessage;
-
- typedef struct {
- magic_verify;
-
- sb32 fd;
- void *connecting_port;
- boolean eof;
- } tcpident;
-
- #define V_tcpmessage 4159
- #define V_tcpident 7592
-
- /* commands */
- #define TCP_NOOP 0
- #define TCP_CONNECT 1
- #define TCP_LISTEN 2
- #define TCP_READ 3
- #define TCP_WRITE 4
- #define TCP_CLOSE 5
- #define TCP_INTERRUPT 6
-
- /* hmmm, keep these??? */
- #define TCP_NEWMESSAGE 7
- #define TCP_DISPOSE 8
-
- /* internal */
- #define TCP_CONNECTED 9 /* CONNECT reply */
- #define TCP_ACCEPTED 10 /* Async ACCEPT */
- #define TCP_WRITTEN 11 /* WRITE reply (not used) */
- #define TCP_GOT 12 /* READ reply (not used) */
- #define TCP_STARTUP 13 /* STARTUP was successful/unsuccessful */
-
- #define TCP_DIE 14
-
- /* info */
- #define TCP_PEERNAME 15
- #define TCP_SERVICE 16
-
- /* errors */
- #define NO_ERROR 0
- #define ERROR_OOM 1
- #define ERROR_UNKNOWN_COMMAND 2
- #define ERROR_NO_CONNECTION 3
- #define ERROR_LOST_CONNECTION 4
- #define ERROR_ALREADY_CONNECTED 5
- #define ERROR_ACCESS_DENIED 6
- #define ERROR_EOF 7
- #define ERROR_INTERRUPTED 8
- #define ERROR_UNKNOWN_HOST 9
- #define ERROR_CANT_CONNECT 10
- #define ERROR_UNREACHABLE 11
- #define ERROR_CONNECT_REFUSED 12
-
- /* flags */
- #define FLAG_READLINE 1
-
- void __saveds __asm tcp_handler(register __a0 b8 *parent_port);
- void unique_name(void *, b8 *, b8 *);
-
-