Windows NT 4.0 source code leak
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
6.8 KiB

/* COPYRIGHT, (c) HEWLETT PACKARD CO. 1990,1991 */
/* All rights reserved. No part of this program */
/* may be copied or used without the express */
/* written consent of HEWLETT PACKARD Corp. */
/*
/* WSOCKDEF.H
*/
/* Traditional sockets implementations rely on using static
** memory in the sockets library. Since this sockets implementation
** is a DLL not a static library, memory areas are provided in
** this header file and transparently added to the sockets calls
** via macros. Note that even if you include this header file multiple
** times only 1 set of variables will be declared.
*/
#ifndef SOCK_MEMORY_AREAS
#define SOCK_MEMORY_AREAS
#define HOST_INFO_SIZE 420
#define NET_INFO_SIZE 200
#define PROTO_INFO_SIZE 200
#define SERV_INFO_SIZE 200
#define IPADDR_STR_LEN 20
#define ASCII_DB_PATH_LEN 100
/* variable definitions for static memory areas */
/* int errno; */
char host_buff[HOST_INFO_SIZE];
char net_buff[NET_INFO_SIZE];
char proto_buff[PROTO_INFO_SIZE];
char serv_buff[SERV_INFO_SIZE];
char ntoa_buff[IPADDR_STR_LEN];
#endif
/*
**
** Macros are necessary to map standard sockets calls, which set the
** errno global variable as a side effect of the call, to our
** implementation-specific library entry points which expect to receive
** a pointer to the errno variable. This is required since (1) the
** custom memory model sockets library can't set a global variable
** in the user's application without receiving a pointer to it (which
** would require a sockets-interface change), and (2) global variables
** are not available between dynamic link libraries and user applications.
**
** These macros transparently provide full errno functionality without
** requiring sockets source code changes.
*/
#define accept(a,b,c) w_accept(a,b,c, (int far *) &errno )
#define bind(a,b,c) w_bind(a,b,c, (int far *) &errno )
#define close_socket(a) w_close_socket(a, (int far *) &errno )
#define connect(a,b,c) w_connect(a,b,c, (int far *) &errno )
#define gethostname(a,b) w_gethostname(a,b, (int far *) &errno )
#define getpeername(a,b,c) w_getpeername(a,b,c, (int far *) &errno )
#define getsockname(a,b,c) w_getsockname(a,b,c, (int far *) &errno )
#define getsockopt(a,b,c,d,e) w_getsockopt(a,b,c,d,e, (int far *) &errno )
#define ioctl(a,b,c) w_ioctl(a,b,c, (int far *) &errno )
#define listen(a,b) w_listen(a,b, (int far *) &errno )
#define recv(a,b,c,d) w_recv(a,b,c,d, (int far *) &errno )
#define recvfrom(a,b,c,d,e,f) w_recvfrom(a,b,c,d,e,f, (int far *) &errno )
#define select(a,b,c,d,e) w_select(a,b,c,d,e, (int far *) &errno )
#define send(a,b,c,d) w_send(a,b,c,d, (int far *) &errno )
#define sendto(a,b,c,d,e,f) w_sendto(a,b,c,d,e,f, (int far *) &errno )
#define setsockopt(a,b,c,d,e) w_setsockopt(a,b,c,d,e, (int far *) &errno )
#define socket(a,b,c) w_socket(a,b,c, (int far *) &errno )
/*
** Macros are also necessary to map standard sockets file access calls.
** In unix these calls depend on using static memory in the library.
** Since this sockets implementation is a DLL not a static library
** macros are provided to pass buffer to be used for the file access
** information to the DLL.
*/
#define gethostbyname(a) w_gethostbyname(a,host_buff)
#define gethostbyaddr(a,b,c) w_gethostbyaddr(a,b,c,host_buff)
#define getnetbyname(a) w_getnetbyname(a,net_buff)
#define getnetbyaddr(a,b) w_getnetbyaddr(a,b,net_buff)
#define getprotobyname(a) w_getprotobyname(a,proto_buff)
#define getprotobynumber(a) w_getprotobynumber(a,proto_buff)
#define getservbyname(a,b) w_getservbyname(a,b,serv_buff)
#define getservbyport(a,b) w_getservbyport(a,b,serv_buff)
#define inet_ntoa(a) w_inet_ntoa(a, ntoa_buff)
/*
** System calls
*/
int pascal far w_accept( int, struct sockaddr far *, int far *, int far * );
int pascal far w_bind( int, struct sockaddr far *, int , int far * );
int pascal far w_close_socket( int , int far * );
int pascal far w_connect( int, struct sockaddr far *, int , int far * );
int pascal far w_gethostname( char far *, int , int far * );
int pascal far w_getpeername( int, struct sockaddr far *, int far * , int far * );
int pascal far w_getsockname( int, struct sockaddr far *, int far * , int far * );
int pascal far w_getsockopt( int, int, int, char far *, int far * , int far * );
int pascal far w_ioctl( int, int, char far * , int far * );
int pascal far w_listen( int, int , int far * );
int pascal far w_recv( int, char far *, int, int , int far * );
int pascal far w_recvfrom( int, char far *, int, int, struct sockaddr far *,
int far * , int far * );
int pascal far w_select( int, fd_set far *, fd_set far *, fd_set far *,
struct timeval far * , int far * );
int pascal far w_send( int, char far *, int, int , int far * );
int pascal far w_sendto( int, char far *, int, int, struct sockaddr far *, int,
int far * );
int pascal far w_setsockopt( int, int, int, char far *, int , int far * );
int pascal far w_socket( int, int, int , int far * );
int pascal far sock_strerror( int, char far * );
/*
** inet_*, byte swapping routines
*/
unsigned long pascal far inet_addr( char far * );
unsigned long pascal far inet_lnaof( struct in_addr );
struct in_addr pascal far inet_makeaddr( unsigned long, unsigned long );
unsigned long pascal far inet_netof( struct in_addr );
unsigned long pascal far inet_network( char far * );
char far *pascal far w_inet_ntoa( struct in_addr, char far * );
unsigned short pascal far htons( unsigned short );
unsigned short pascal far ntohs( unsigned short );
unsigned long pascal far htonl( unsigned long );
unsigned long pascal far ntohl( unsigned long );
/*
** library calls
*/
struct hostent far * pascal far w_gethostbyname( char far *, char far * );
struct hostent far * pascal far w_gethostbyaddr( struct in_addr far *, int,
int, char far * );
struct netent far * pascal far w_getnetbyname( char far * , char far *);
struct netent far * pascal far w_getnetbyaddr( unsigned long, int, char far * );
struct protoent far * pascal far w_getprotobyname( char far *, char far * );
struct protoent far * pascal far w_getprotobynumber( int, char far * );
struct servent far * pascal far w_getservbyname( char far *, char far *, char far * );
struct servent far * pascal far w_getservbyport( int, char far *, char far * );
int far pascal getasciidbpath(char far *);