aboutsummaryrefslogtreecommitdiff
path: root/system/include/sys/socket.h
blob: e9b6c7706bf87db3997ffb9d90798ec0202000c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef _SYS_SOCKET_H
#define _SYS_SOCKET_H

#include <netdb.h>
#include <sys/select.h>
#include <sys/uio.h>

#ifdef __cplusplus
extern "C" {
#endif

// Note that the values of these constants are mostly arbitrary numbers.
#define SOMAXCONN 128
#define PF_LOCAL 1
#define PF_UNIX PF_LOCAL
#define PF_INET 2
#define SO_BROADCAST 6
#define AF_UNIX PF_UNIX

#define AF_UNSPEC 100
#define SOCK_STREAM 200
#define SOL_SOCKET 50
#define SO_ERROR 10
#define SOCK_DGRAM 20
#define SO_REUSEADDR 30
#define SO_SNDBUF 40
#define SO_RCVBUF 60
#define SO_LINGER 70
#define SO_NOSIGPIPE 80
#define SO_KEEPALIVE 90
#define SO_OOBINLINE 100
#define SO_NO_CHECK 110
#define SO_PRIORITY 120
#define SO_LINGER 130
#define SO_BSDCOMPAT 140

#define SHUT_RD 1
#define SHUT_RDWR 2

typedef unsigned int sa_family_t;
#define AF_INET 1
#define AF_INET6 6

struct sockaddr {
  sa_family_t sa_family; 
  char        sa_data[];
};

struct sockaddr_storage {
  sa_family_t    ss_family;
  unsigned short ss_port;
  unsigned long  ss_addr;
  char           ss_zero[6];
};

ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len);
int getpeername(int socket, struct sockaddr *address, socklen_t *address_len);
int getsockname(int socket, struct sockaddr *address, socklen_t *address_len);
int socket(int domain, int type, int protocol); 
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
int listen(int sockfd, int backlog);
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); 
int shutdown(int sockfd, int how);
int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
ssize_t recv(int s, void *buf, size_t len, int flags);
ssize_t send(int s, const void *buf, size_t len, int flags);
int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);

struct msghdr
{
  void         *msg_name;
  socklen_t     msg_namelen;
  struct iovec *msg_iov;
  size_t        msg_iovlen;
  void *        msg_control;
  size_t        msg_controllen;
  int           msg_flags;
};

struct linger {
  int l_onoff;
  int l_linger;
};

#define SIOCATMARK 0x8905

#define SOCK_RAW 111
#define SOCK_SEQPACKET 555

#define PF_APPLETALK 5

#ifdef __cplusplus
}
#endif

#endif