60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
|
/*
|
||
|
emu.h - bsd sockets lookalike interface
|
||
|
*/
|
||
|
|
||
|
#ifndef __EMU_H__
|
||
|
#define __EMU_H__
|
||
|
|
||
|
typedef int socklen_t;
|
||
|
typedef int sa_family_t;
|
||
|
typedef int in_port_t;
|
||
|
typedef unsigned long sin_addr_t;
|
||
|
typedef unsigned long in_addr_t;
|
||
|
|
||
|
/* generic socket address */
|
||
|
struct sockaddr {
|
||
|
unsigned char sa_len; /* total address size */
|
||
|
sa_family_t sa_family; /* address type (family) */
|
||
|
char sa_data[14]; /* family-dependent addr (may be longer) */
|
||
|
};
|
||
|
|
||
|
struct in_addr {
|
||
|
in_addr_t s_addr;
|
||
|
};
|
||
|
|
||
|
/* internet-domain (AF_INET) socket address */
|
||
|
struct sockaddr_in {
|
||
|
unsigned char sin_len;
|
||
|
sa_family_t sin_family;
|
||
|
in_port_t sin_port;
|
||
|
struct in_addr sin_addr;
|
||
|
char sin_zero[8];
|
||
|
};
|
||
|
|
||
|
/* type argument to socket() */
|
||
|
#define SOCK_STREAM 2
|
||
|
#define SOCK_DGRAM 3
|
||
|
|
||
|
/* protocol argument to socket() */
|
||
|
#define IPPROTO_ICMP 1
|
||
|
#define IPPROTO_TCP 6
|
||
|
#define IPPROTO_UDP 17
|
||
|
|
||
|
/* 2nd args to shutdown() */
|
||
|
#define SHUT_RD 0
|
||
|
#define SHUT_WR 1
|
||
|
#define SHUT_RDWR 2
|
||
|
|
||
|
/* bsd-lookalike functions */
|
||
|
int socket(int, int, int);
|
||
|
int bind(int, struct sockaddr *, socklen_t);
|
||
|
int listen(int, int);
|
||
|
int shutdown(int, int);
|
||
|
int connect(int, struct sockaddr *, socklen_t);
|
||
|
|
||
|
int recv(int s, void *buf, size_t len, int flags);
|
||
|
int send(int s, void *buf, size_t len, int flags);
|
||
|
|
||
|
#endif /* __EMU_H__ */
|
||
|
|