Tenok
A Linux-like Real-Time Operating System for Robotics and Internet of Things
socket.h
Go to the documentation of this file.
1 
6 #ifndef _TENOK_SYS_SOCKET_H
7 #define _TENOK_SYS_SOCKET_H
8 
9 #include <sys/types.h>
10 
11 #define AF_UNSPEC 0
12 #define AF_UNIX 1
13 #define AF_INET 2
14 #define AF_INET6 10
15 #define PF_UNSPEC AF_UNSPEC
16 #define PF_INET AF_INET
17 #define PF_INET6 AF_INET6
18 
19 #define SOCK_STREAM 1
20 #define SOCK_DGRAM 2
21 #define SOCK_RAW 3
22 #define SOCK_RDM 4
23 #define SOCK_SEQPACKET 5
24 
25 #define SOL_SOCKET 1
26 #define SHUT_RD 0
27 #define SHUT_WR 1
28 #define SHUT_RDWR 2
29 
30 typedef unsigned short sa_family_t;
31 
32 struct sockaddr {
33  sa_family_t sa_family;
34  char sa_data[14];
35 };
36 
38  sa_family_t ss_family;
39  char __ss_padding[126];
40 };
41 
42 struct in_addr {
43  unsigned int s_addr;
44 };
45 
46 struct sockaddr_in {
47  sa_family_t sin_family;
48  unsigned short sin_port;
49  struct in_addr sin_addr;
50  char sin_zero[8];
51 };
52 
53 struct in6_addr {
54  unsigned char s6_addr[16];
55 };
56 
57 struct sockaddr_in6 {
58  sa_family_t sin6_family;
59  unsigned short sin6_port;
60  unsigned int sin6_flowinfo;
61  struct in6_addr sin6_addr;
62  unsigned int sin6_scope_id;
63 };
64 
65 struct msghdr {
66  void *msg_name;
67  socklen_t msg_namelen;
68  struct iovec *msg_iov;
69  int msg_iovlen;
70  void *msg_control;
71  socklen_t msg_controllen;
72  int msg_flags;
73 };
74 
75 /* Tenok carries no network, so a program that asks for one is told there is
76  * none rather than being left to find out
77  */
78 
86 int socket(int domain, int type, int protocol);
87 
95 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
96 
103 int listen(int sockfd, int backlog);
104 
115 ssize_t sendto(int sockfd,
116  const void *buf,
117  size_t len,
118  int flags,
119  const struct sockaddr *dest_addr,
120  socklen_t addrlen);
121 
122 #endif
int listen(int sockfd, int backlog)
Let the endpoint take the connections that arrive.
Definition: socket.c:21
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
Give the endpoint the address it answers on.
Definition: socket.c:15
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
Send a message to the address given.
Definition: socket.c:27
int socket(int domain, int type, int protocol)
Create an endpoint for communication.
Definition: socket.c:9
Definition: socket.h:53
Definition: socket.h:42
Definition: socket.h:65
Definition: socket.h:57
Definition: socket.h:46
Definition: socket.h:37
Definition: socket.h:32