archie/tcl-dp/unix/dpPort.h
2024-05-27 16:13:40 +02:00

80 lines
1.8 KiB
C

/*
* unix/dpPort.h --
*
* This file is included by all of the Dp C files. It contains
* information that may be configuration-dependent, such as
* #includes for system include files and a few other things.
*
* Copyright (c) 1995-1996 The Regents of Cornell University.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
*/
#ifndef _DPUNIXPORT
#define _DPUNIXPORT
#include <stdlib.h>
#include <errno.h>
#ifndef DP_HAS_MULTICAST
# include "unix/compat/in.h"
#endif
#define NONBLOCKING(flags) (flags & O_NONBLOCK)
#define DP_SOCKET TCL_UNIX_FD
#define SERIAL_HANDLE TCL_UNIX_FD
#define DP_SOCKET_ERROR (-1)
#define DP_INADDR_NONE (-1)
#define ASYNC_CONNECT_ERROR EINPROGRESS
/*
* The following are abstract data types for sockets and internet addresses
*/
typedef int DpSocket;
typedef struct sockaddr DpSocketAddress;
typedef struct sockaddr_in DpSocketAddressIP;
typedef int SerialHandle;
#ifndef _TCL76
typedef ClientData FileHandle;
int SockGetFile _ANSI_ARGS_((ClientData instanceData, int direction,
FileHandle *handlePtr));
int SockClose _ANSI_ARGS_((ClientData instanceData,
Tcl_Interp *interp));
int SockBlockMode _ANSI_ARGS_((ClientData instanceData, int mode));
void SockWatch _ANSI_ARGS_((ClientData instanceData, int mask));
int UdpIpmOutput _ANSI_ARGS_((ClientData instanceData, char *buf,
int toWrite, int *errorCodePtr));
#endif
/*
* The flag for setting non-blocking I/O varies a bit from Unix to Unix
*/
#ifdef HPUX
# define NBIO_FLAG O_NONBLOCK
#else
# define NBIO_FLAG O_NDELAY
#endif
#define DP_INADDR_ANY INADDR_ANY
/*
* Serial Port stuff
*/
#if !defined(PARITY_NONE)
# define PARITY_NONE 0
# define PARITY_ODD 1
# define PARITY_EVEN 2
#endif
#endif /* _DPUNIXPORT */