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 */

Defined macros

BREAK defined in line 358; used 1 times
CKCNET_H defined in line 2; used 1 times
  • in line 1
DO defined in line 346; used 1 times
DONT defined in line 343; used 1 times
ENAMETOOLONG defined in line 273; used 3 times
ENOTEMPTY defined in line 275; used 3 times
IAC defined in line 340; used 1 times
INADDRX defined in line 289; used 1 times
INVALID_PAD_PARM defined in line 68; used 1 times
MAXIX25 defined in line 91; used 2 times
NET_NONE defined in line 6; used 1 times
NET_TCPA defined in line 8; used 3 times
NET_VPSI defined in line 11; never used
NP_CTERM defined in line 22; used 2 times
NP_LAT defined in line 23; used 2 times
NP_VTP defined in line 18; never used
NP_X28 defined in line 20; never used
NP_X29 defined in line 21; never used
NTELOPTS defined in line 377; used 1 times
ORG_NEMPTY defined in line 269; used 1 times
ORG_NLONG defined in line 267; used 1 times
SB defined in line 355; used 1 times
SE defined in line 361; used 1 times
TELOPT_ECHO defined in line 365; used 1 times
TELOPT_SGA defined in line 368; used 1 times
TELOPT_STATUS defined in line 371; used 1 times
TELOPT_TTYPE defined in line 374; used 1 times
TGVORWIN defined in line 165; used 2 times
VMSTCPIP defined in line 162; used 11 times
WILL defined in line 352; used 1 times
WONT defined in line 349; used 1 times
X29PID defined in line 57; used 1 times
X29PIDLEN defined in line 58; used 2 times
X29_ERROR defined in line 66; used 1 times
X29_INDICATION_OF_BREAK defined in line 65; used 2 times
X29_INVITATION_TO_CLEAR defined in line 63; never used
X29_PARAMETER_INDICATION defined in line 64; used 1 times
X29_READ_PARMS defined in line 61; never used
X29_SET_AND_READ_PARMS defined in line 62; never used
X29_SET_PARMS defined in line 60; never used
bcopy defined in line 323; used 1 times
minor defined in line 238; used 1 times
socket_close defined in line 327; used 1 times
socket_errno defined in line 321; used 11 times
socket_ioctl defined in line 326; used 3 times
socket_read defined in line 324; used 4 times
socket_write defined in line 325; used 2 times

Usage of this include

Last modified: 1992-11-24
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1089
Valid CSS Valid XHTML 1.0 Strict