Annotation of coherent/e/bin/ckermit/ckcnet.h, revision 1.1.1.1

1.1       root        1: #ifndef CKCNET_H
                      2: #define CKCNET_H
                      3: 
                      4: /* Network types */
                      5: 
                      6: #define NET_NONE 0                     /* None */
                      7: #define NET_TCPB 1                     /* TCP/IP Berkeley (socket) */
                      8: #define NET_TCPA 2                     /* TCP/IP AT&T (streams) */
                      9: #define NET_SX25 3                     /* SUNOS SunLink X.25 */
                     10: #define NET_DEC  4                     /* DECnet */
                     11: #define NET_VPSI 5                     /* VAX PSI */
                     12: #define NET_PIPE 6                     /* LAN Manager Named Pipe */
                     13: 
                     14: /* Network virtual terminal protocols */
                     15: 
                     16: #define NP_NONE 0                      /* None (async) */
                     17: #define NP_TELNET 1                    /* TCP/IP telnet */
                     18: #define NP_VTP 2                       /* ISO Virtual Terminal Protocol */
                     19: #define NP_X3 3                                /* CCITT X.3 */
                     20: #define NP_X28 4                       /* CCITT X.28 */
                     21: #define NP_X29 5                       /* CCITT X.28 */
                     22: #define NP_CTERM 20                    /* DEC CTERM */
                     23: #define NP_LAT 21                      /* DEC LAT */
                     24: /* others here... */
                     25: 
                     26: /* Basic network function prototypes, common to all. */
                     27: 
                     28: _PROTOTYP( int netopen, (char *, int *, int) );
                     29: _PROTOTYP( int netclos, (void) );
                     30: _PROTOTYP( int netflui, (void) );
                     31: _PROTOTYP( int nettchk, (void) );
                     32: _PROTOTYP( int netbreak, (void) );
                     33: _PROTOTYP( int netinc, (int) );
                     34: _PROTOTYP( int nettol, (char *, int) );
                     35: _PROTOTYP( int nettoc, (char) );
                     36: 
                     37: /*
                     38:   SunLink X.25 support by Marcello Frutig, Catholic University,
                     39:   Rio de Janeiro, Brazil, 1990.
                     40: 
                     41:   Maybe this can be adapted to VAX PSI and other X.25 products too.
                     42: */
                     43: #ifndef SUNOS4                         /* Only valid for SUNOS4 */
                     44: #ifdef SUNX25
                     45: #undef SUNX25
                     46: #endif /* SUNX25 */
                     47: #endif /* SUNOS4 */
                     48: 
                     49: #ifdef SUNX25
                     50: 
                     51: #ifndef NETCONN                                /* SUNX25 implies NETCONN */
                     52: #define NETCONN
                     53: #endif /* NETCONN */
                     54: 
                     55: #define MAXPADPARMS                18  /* Number of PAD parameters */
                     56: #define MAXCUDATA                 12   /* Max length of X.25 call user data */
                     57: #define X29PID                     1   /* X.29 protocol ID */
                     58: #define X29PIDLEN                  4   /* X.29 protocol ID length */
                     59: 
                     60: #define X29_SET_PARMS               2
                     61: #define X29_READ_PARMS              4
                     62: #define X29_SET_AND_READ_PARMS      6
                     63: #define X29_INVITATION_TO_CLEAR     1
                     64: #define X29_PARAMETER_INDICATION    0
                     65: #define X29_INDICATION_OF_BREAK     3
                     66: #define X29_ERROR                   5
                     67: 
                     68: #define INVALID_PAD_PARM            1
                     69: 
                     70: #define PAD_BREAK_CHARACTER         0
                     71: 
                     72: #define PAD_ESCAPE                  1
                     73: #define PAD_ECHO                    2
                     74: #define PAD_DATA_FORWARD_CHAR       3
                     75: #define PAD_DATA_FORWARD_TIMEOUT    4
                     76: #define PAD_FLOW_CONTROL_BY_PAD     5
                     77: #define PAD_SUPPRESSION_OF_SIGNALS  6
                     78: #define PAD_BREAK_ACTION            7
                     79: #define PAD_SUPPRESSION_OF_DATA     8
                     80: #define PAD_PADDING_AFTER_CR        9
                     81: #define PAD_LINE_FOLDING           10
                     82: #define PAD_LINE_SPEED             11
                     83: #define PAD_FLOW_CONTROL_BY_USER   12
                     84: #define PAD_LF_AFTER_CR            13
                     85: #define PAD_PADDING_AFTER_LF       14
                     86: #define PAD_EDITING                15
                     87: #define PAD_CHAR_DELETE_CHAR       16
                     88: #define PAD_BUFFER_DELETE_CHAR     17
                     89: #define PAD_BUFFER_DISPLAY_CHAR    18
                     90: 
                     91: #define MAXIX25 MAX_USER_DATA*7
                     92: #define MAXOX25 MAX_USER_DATA
                     93: 
                     94: #include <sys/ioctl.h>                 /* X.25 includes */
                     95: #include <sys/param.h>
                     96: #include <sys/systm.h>
                     97: #include <sys/mbuf.h>
                     98: #include <sys/socket.h>
                     99: #include <sys/protosw.h>
                    100: #include <sys/domain.h>
                    101: #include <sys/socketvar.h>
                    102: #include <net/if.h>
                    103: #include <sundev/syncstat.h>
                    104: #include <netx25/x25_pk.h>
                    105: #include <netx25/x25_ctl.h>
                    106: #include <netx25/x25_ioctl.h>
                    107: 
                    108: /* C-Kermit X.3 / X.25 / X.29 / X.121 support functions */
                    109: 
                    110: _PROTOTYP( VOID shopad, (void) );
                    111: _PROTOTYP( VOID initpad, (void) );
                    112: _PROTOTYP( VOID setpad, (CHAR *, int) );
                    113: _PROTOTYP( VOID readpad, (CHAR *, int, CHAR *) );
                    114: _PROTOTYP( int qbitpkt, (CHAR *, int) );
                    115: _PROTOTYP( VOID setqbit, (void) );
                    116: _PROTOTYP( VOID resetqbit, (void) );
                    117: _PROTOTYP( VOID breakact, (void) );
                    118: _PROTOTYP( int pkx121, (char *, CHAR *) );
                    119: _PROTOTYP( VOID x25oobh, (void) );
                    120: _PROTOTYP( int x25diag, (void) );
                    121: _PROTOTYP( int x25intr, (char) );
                    122: _PROTOTYP( int x25reset, (char, char) );
                    123: _PROTOTYP( int x25clear, (void) );
                    124: _PROTOTYP( int x25stat, (void) );
                    125: _PROTOTYP( int x25in, (int, CHAR *) );
                    126: _PROTOTYP( int x25inl, (CHAR *, int, int, CHAR) );
                    127: 
                    128: #endif /* SUNX25 */
                    129: 
                    130: /* DEC TCP/IP for (Open)VMS, previously known as UCX */
                    131: 
                    132: #ifdef DEC_TCPIP                       /* DEC_TCPIP implies TCPSOCKET */
                    133: #ifndef TCPSOCKET
                    134: #define TCPSOCKET
                    135: #endif /* TCPSOCKET */
                    136: #ifndef VMSTCPIP
                    137: #define VMSTCPIP
                    138: #endif /* VMSTCPIP */
                    139: #endif /* DEC_TCPIP */
                    140: 
                    141: /* TGV/SRI MultiNet, TCP/IP for VAX/VMS */
                    142: 
                    143: #ifdef MULTINET                                /* MULTINET implies TCPSOCKET */
                    144: #ifndef TCPSOCKET
                    145: #define TCPSOCKET
                    146: #endif /* TCPSOCKET */
                    147: #ifndef VMSTCPIP
                    148: #define VMSTCPIP
                    149: #endif /* VMSTCPIP */
                    150: #ifndef TGVORWIN                       /* MULTINET and WINTCP */
                    151: #define TGVORWIN                       /* share a lot of code... */
                    152: #endif /* TGVORWIN */
                    153: #endif /* MULTINET */
                    154: 
                    155: /* Wollongong TCP/IP for VAX/VMS */
                    156: 
                    157: #ifdef WINTCP                          /* WINTCP implies TCPSOCKET */
                    158: #ifndef TCPSOCKET
                    159: #define TCPSOCKET
                    160: #endif /* TCPSOCKET */
                    161: #ifndef VMSTCPIP
                    162: #define VMSTCPIP
                    163: #endif /* VMSTCPIP */
                    164: #ifndef TGVORWIN                       /* WINTCP and MULTINET */
                    165: #define TGVORWIN                       /* share a lot of code... */
                    166: #endif /* TGVORWIN */
                    167: #endif /* WINTCP */
                    168: 
                    169: /* Wollongong TCP/IP for AT&T Sys V */
                    170: 
                    171: #ifdef WOLLONGONG                      /* WOLLONGONG implies TCPSOCKET */
                    172: #ifndef TCPSOCKET                      /* Don't confuse WOLLONGONG */
                    173: #define TCPSOCKET                      /* (which is for UNIX) with */
                    174: #endif /* TCPSOCKET */                 /* WINTCP, which is for VMS! */
                    175: #endif /* WOLLONGONG */
                    176: 
                    177: #ifdef EXCELAN                         /* EXCELAN implies TCPSOCKET */
                    178: #ifndef TCPSOCKET
                    179: #define TCPSOCKET
                    180: #endif /* TCPSOCKET */
                    181: #endif /* EXCELAN */
                    182: 
                    183: #ifdef INTERLAN                                /* INTERLAN implies TCPSOCKET */
                    184: #ifndef TCPSOCKET
                    185: #define TCPSOCKET
                    186: #endif /* TCPSOCKET */
                    187: #endif /* INTERLAN */
                    188: 
                    189: /* Telnet protocol */
                    190: 
                    191: #ifdef TCPSOCKET                       /* TCPSOCKET implies TNCODE */
                    192: #ifndef TNCODE                         /* Which means... */
                    193: #define TNCODE                         /* Compile in telnet code */
                    194: #endif /* TNCODE */
                    195: #endif /* TCPSOCKET */
                    196: 
                    197: #ifdef SUNX25                          /* SUNX25 implies TCPSOCKET */
                    198: #ifndef TCPSOCKET                      /* But doesn't imply TNCODE */
                    199: #define TCPSOCKET
                    200: #endif /* TCPSOCKET */
                    201: #endif /* SUNX25 */
                    202: 
                    203: /* This is the TCPSOCKET section... */
                    204: 
                    205: #ifdef TCPSOCKET
                    206: 
                    207: #ifndef NETCONN                                /* TCPSOCKET implies NETCONN */
                    208: #define NETCONN
                    209: #endif /* NETCONN */
                    210: 
                    211: /* BSD sockets library header files */
                    212: 
                    213: #ifdef UNIX                            /* UNIX section */
                    214: 
                    215: #ifdef INTERLAN                                /* Racal-Interlan TCP/IP */
                    216: #include <interlan/socket.h>
                    217: #include <interlan/il_types.h>
                    218: #include <interlan/telnet.h>
                    219: #include <interlan/il_errno.h>
                    220: #include <interlan/in.h>
                    221: #include <interlan/telnet.h>
                    222: #else                                  /* Normal BSD TCP/IP library */
                    223: #ifndef HPUX
                    224: #include <arpa/telnet.h>
                    225: #endif /* HPUX */
                    226: #include <sys/socket.h>
                    227: #ifdef WOLLONGONG
                    228: #include <sys/in.h>
                    229: #else
                    230: #include <netinet/in.h>
                    231: #endif /* WOLLONGONG */
                    232: #endif /* INTERLAN */
                    233: 
                    234: #ifndef EXCELAN
                    235: #include <netdb.h>
                    236: #ifndef INTERLAN
                    237: #ifdef WOLLONGONG
                    238: #define minor                          /* Do not include <sys/macros.h> */
                    239: #include <sys/inet.h>
                    240: #else
                    241: #ifndef OXOS
                    242: #ifndef HPUX
                    243: #include <arpa/inet.h>
                    244: #endif /* HPUX */
                    245: #else /* OXOS */
                    246: /* In too many releases of X/OS, <arpa/inet.h> declares inet_addr() as
                    247:  * ``struct in_addr''.  This is definitively wrong, and could cause
                    248:  * core dumps.  Instead of including that bad file, inet_addr() is
                    249:  * correctly declared here.  Of course, all the declarations done there
                    250:  * has been copied here.
                    251:  */
                    252: unsigned long inet_addr();
                    253: char   *inet_ntoa();
                    254: struct in_addr inet_makeaddr();
                    255: unsigned long inet_network();
                    256: #endif /* OXOS */
                    257: #endif /* WOLLONGONG */
                    258: #endif /* INTERLAN */
                    259: #endif /* EXCELAN */
                    260: 
                    261: #ifdef EXCELAN                         /* Excelan TCP/IP */
                    262: #include <ex_errno.h>
                    263: #endif /* EXCELAN */
                    264: 
                    265: #ifdef I386IX                          /* Interactive Sys V R3 network. */
                    266: /* #define TELOPTS */                  /* This might need defining. */
                    267: #define ORG_NLONG ENAMETOOLONG         /* Resolve conflicting symbols */
                    268: #undef ENAMETOOLONG                    /* in <errno.h> and <net/errno.h> */
                    269: #define ORG_NEMPTY ENOTEMPTY
                    270: #undef ENOTEMPTY
                    271: #include <net/errno.h>
                    272: #undef ENAMETOOLONG
                    273: #define ENAMETOOLONG ORG_NLONG
                    274: #undef ENOTEMPTY
                    275: #define ENOTEMPTY ORG_NEMPTY
                    276: #endif /* I386IX */
                    277: /*
                    278:   Data type of the inet_addr() function...
                    279:   We define INADDRX if it is of type struct inaddr.
                    280:   If it is undefined, unsigned long is assumed.
                    281:   Look at <arpa/inet.h> to find out.  The following known cases are
                    282:   handled here.  Other systems that need it can be added here, or else
                    283:   -DINADDRX can be included in the CFLAGS on the cc command line.
                    284: */
                    285: #ifdef DGUX540                         /* Data General UX 5.40 */
                    286: #define INADDRX
                    287: #endif /* DGUX540 */
                    288: #ifdef DU2                             /* DEC Ultrix 2.0 */
                    289: #define INADDRX
                    290: #endif /* DU2 */
                    291: 
                    292: #else /* Not UNIX */
                    293: 
                    294: #ifdef VMS                             /* VAX/VMS section */
                    295: 
                    296: #ifdef WINTCP                          /* TWG WIN/TCP for VMS */
                    297: #include <errno.h>
                    298: #include "twg$tcp:[netdist.include.sys]types.h"
                    299: #include "twg$tcp:[netdist.include.sys]socket.h"
                    300: #include "twg$tcp:[netdist.include]netdb.h"
                    301: #include "twg$tcp:[netdist.include.sys]domain.h"
                    302: #include "twg$tcp:[netdist.include.sys]protosw.h"
                    303: #include "twg$tcp:[netdist.include.netinet]in.h"
                    304: #include "twg$tcp:[netdist.include.sys]ioctl.h"
                    305: #endif /* WINTCP */
                    306: 
                    307: #ifdef MULTINET                                /* TGV MultiNet */
                    308: #include "multinet_root:[multinet.include]errno.h"
                    309: #include "multinet_root:[multinet.include.sys]types.h"
                    310: #include "multinet_root:[multinet.include.sys]socket.h"
                    311: #include "multinet_root:[multinet.include]netdb.h"
                    312: #include "multinet_root:[multinet.include.netinet]in.h"
                    313: #include "multinet_root:[multinet.include.sys]ioctl.h"
                    314: #endif /* MULTINET */
                    315: 
                    316: #ifdef DEC_TCPIP
                    317: #include <in.h>
                    318: #include <netdb.h>
                    319: #include <socket.h>
                    320: #include "ckvioc.h"
                    321: #define socket_errno errno
                    322: #define bzero(s,n) memset(s,0,n) 
                    323: #define bcopy(h,a,l) memmove(a,h,l)
                    324: #define socket_read    read
                    325: #define socket_write   write
                    326: #define socket_ioctl   ioctl
                    327: #define socket_close    close
                    328: #endif /* DEC_TCPIP */
                    329: 
                    330: #endif /* VMS */
                    331: #endif /* UNIX */
                    332: #endif /* TCPSOCKET */
                    333: 
                    334: #ifdef TNCODE                          /* If we're compiling telnet code... */
                    335: /*
                    336:   Make sure telnet symbols are defined; can't rely on library header files
                    337:   for any of them.
                    338: */
                    339: #ifndef IAC                            /* First the telnet commands */
                    340: #define IAC 255
                    341: #endif /* IAC */
                    342: #ifndef DONT
                    343: #define DONT 254
                    344: #endif /* DONT */
                    345: #ifndef DO
                    346: #define DO 253
                    347: #endif /* DO */
                    348: #ifndef WONT
                    349: #define WONT 252
                    350: #endif /* WONT */
                    351: #ifndef WILL
                    352: #define WILL 251
                    353: #endif /* WILL */
                    354: #ifndef SB
                    355: #define SB 250
                    356: #endif /* SB */
                    357: #ifndef BREAK
                    358: #define BREAK 243
                    359: #endif /* BREAK */
                    360: #ifndef SE
                    361: #define SE 240
                    362: #endif /* SE */
                    363: 
                    364: #ifndef TELOPT_ECHO                    /* Then the options */
                    365: #define TELOPT_ECHO 1
                    366: #endif /* TELOPT_ECHO */
                    367: #ifndef TELOPT_SGA
                    368: #define        TELOPT_SGA 3
                    369: #endif /* TELOPT_SGA */
                    370: #ifndef TELOPT_STATUS
                    371: #define        TELOPT_STATUS 5
                    372: #endif /* TELOPT_STATUS */
                    373: #ifndef TELOPT_TTYPE
                    374: #define        TELOPT_TTYPE 24
                    375: #endif /* TELOPT_TTYPE */
                    376: #ifndef NTELOPTS
                    377: #define        NTELOPTS 24
                    378: #endif /* NTELOPTS */
                    379: 
                    380: /* Telnet protocol functions defined in C-Kermit */
                    381: 
                    382: _PROTOTYP( int tn_ini, (void) );       /* Telnet protocol support */
                    383: _PROTOTYP( int tn_sopt, (int, int) );
                    384: _PROTOTYP( int tn_doop, (CHAR, int, int (*)(int) ) );
                    385: _PROTOTYP( int tn_sttyp, (void) );
                    386: _PROTOTYP( int tnsndbrk, (void) );
                    387: 
                    388: #endif /* TNCODE */
                    389: 
                    390: #endif /* CKCNET_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.