mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.2 KiB
152 lines
4.2 KiB
/*
|
|
* Program DECnet/MS-DOS Module - socket.h
|
|
*
|
|
* Copyright (C) 1985,1991 All Rights Reserved, by
|
|
* Digital Equipment Corporation, Maynard, Mass.
|
|
*
|
|
* This software is furnished under a license and may be used and copied
|
|
* only in accordance with the terms of such license and with the
|
|
* inclusion of the above copyright notice. This software or any other
|
|
* copies thereof may not be provided or otherwise made available to any
|
|
* other person. No title to and ownership of the software is hereby
|
|
* transferred.
|
|
*
|
|
* The information in this software is subject to change without notice
|
|
* and should not be construed as a commitment by Digital Equipment
|
|
* Corporation.
|
|
*
|
|
* Digital assumes no responsibility for the use or reliability of its
|
|
* software on equipment which is not supplied by Digital.
|
|
*
|
|
*
|
|
* MODULE DESCRIPTION:
|
|
*
|
|
* Program DECnet/MS-DOS Module - socket.h
|
|
*
|
|
* Definitions related to sockets: types, address families, options.
|
|
* (Borrowed from 4.2bsd DECnet Ultrix)
|
|
*
|
|
* Networks & Communications Software Engineering
|
|
*
|
|
* IDENT HISTORY:
|
|
*
|
|
* X1.00 09-Sep-84 WCA
|
|
* Creation Date
|
|
* (socket.h 6.1 83/07/29)
|
|
*
|
|
* X1.01 21-Sep-84 WCA
|
|
* Cleaned out bad AF_ and PF_ symbol names for MSDOS
|
|
*
|
|
* X1.02 12-Nov-84 DJM
|
|
* Added inter module AF_ and DLX PF_ symbols
|
|
*
|
|
* 6-Jan-85 TC
|
|
* Changed AF_NTM to AF_NMH
|
|
*
|
|
* 16-Sep-85 TVC
|
|
* added MSG_ASYNC and AF_SES for new asynchronous SES layer
|
|
*
|
|
* 14-May-87 DJM
|
|
* added MSG_NIOCB and MSG_USRBUF for new NIOCB and user buffering
|
|
* 08-Jul-87 DJM
|
|
* added MSG_USRWAIT bit
|
|
* 16-Dec-87 DJM
|
|
* added SO_RCVUSRBUF option bit
|
|
*/
|
|
|
|
#ifndef SOCKET_H
|
|
#define SOCKET_H
|
|
|
|
/*
|
|
* Define macros for select mask manipulation. A sad shame
|
|
* that this absolutely necessary piece of the interface is
|
|
* left out of this piece of TTTT.
|
|
*/
|
|
|
|
typedef unsigned long fd_set;
|
|
#define FD_SET(n,p) ( *(p) |= (1 << n))
|
|
#define FD_CLR(n,p) ( *(p) &= ~(1 << n))
|
|
#define FD_ISSET(n,p) ( *(p) & (1 << n))
|
|
#define FD_ZERO(p) ( *(p) = 0L )
|
|
|
|
/*
|
|
* Types
|
|
*/
|
|
|
|
#define SOCK_STREAM 1 /* stream socket */
|
|
#define SOCK_DGRAM 2 /* datagram socket */
|
|
#define SOCK_RAW 3 /* raw-protocol interface */
|
|
#define SOCK_RDM 4 /* reliably-delivered message */
|
|
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
|
|
|
|
/*
|
|
* Option flags per-socket.
|
|
*/
|
|
|
|
#define SO_DEBUG 0x01 /* turn on debugging info recording */
|
|
#define SO_ACCEPTCONN 0x02 /* socket has had listen() */
|
|
#define SO_REUSEADDR 0x04 /* allow local address reuse */
|
|
#define SO_KEEPALIVE 0x08 /* keep connections alive */
|
|
#define SO_DONTROUTE 0x10 /* just use interface addresses */
|
|
/* 0x20 was SO_NEWFDONCONN */
|
|
#define SO_USELOOPBACK 0x40 /* bypass hardware when possible */
|
|
#define SO_LINGER 0x80 /* linger on close if data present */
|
|
#define SO_DONTLINGER ~SO_LINGER /* don't linger on close if data */
|
|
|
|
#define SO_RCVUSRBUF 0x0100 /* select ready on partial msg */
|
|
|
|
/*
|
|
* Address families.
|
|
*/
|
|
|
|
#define AF_DECnet 1 /* DECnet */
|
|
#define AF_NSP AF_DECnet
|
|
#define AF_NMH 2
|
|
#define AF_DLX 3
|
|
#define AF_ROU 4 /* inter module */
|
|
#define AF_DCP 5
|
|
#define AF_SES 6
|
|
|
|
#define AF_MAX 6
|
|
|
|
#define MAX_SOCKETS 32
|
|
#define MAXHOSTNAMELEN 6
|
|
|
|
/*
|
|
* Protocol types.
|
|
*/
|
|
|
|
#define PF_RAW 1 /* DLX data */
|
|
#define PF_MOP 2 /* DLX MOP data */
|
|
|
|
#define PF_MAX 2
|
|
|
|
/*
|
|
* Level number for (get/set)sockopt() to apply to socket itself.
|
|
*/
|
|
|
|
#define SOL_SOCKET 0xffff /* options for socket level */
|
|
|
|
/*
|
|
* Maximum queue length specifiable by listen.
|
|
*/
|
|
|
|
#define SOMAXCONN 5
|
|
|
|
#define MSG_OOB 0x0001 /* process out-of-band data */
|
|
#define MSG_PEEK 0x0002 /* peek at incoming message */
|
|
#define MSG_DONTROUTE 0x0004 /* send without using routing tables */
|
|
#define MSG_ASYNC 0x0008 /* perform function asynchronously */
|
|
#define MSG_CALLBACK 0x0010 /* perform callback */
|
|
#define MSG_NEOM 0x0020 /* don't do to End of Message */
|
|
#define MSG_NBOM 0x0040 /* don't set Beginning of Message */
|
|
#define MSG_NIOCB 0x0080 /* new IOCB format */
|
|
#define MSG_USRBUF 0x0100 /* use user buffer for data */
|
|
#define MSG_USRWAIT 0x0200 /* don't spin in DNP */
|
|
|
|
#define MSG_MAXIOVLEN 16
|
|
|
|
#endif /* SOCKET_H */
|
|
|
|
|
|
|