XenevaOS
Loading...
Searching...
No Matches
socket.h
Go to the documentation of this file.
1
30#ifndef __SOCKET_H__
31#define __SOCKET_H__
32
33#include <stdint.h>
34#include <_xeneva.h>
35#include <stddef.h>
36
37#ifdef __cplusplus
39#endif
40
41
42#define AF_UNSPEC 0
43#define AF_INET 1
44#define AF_RAW 2
45
46#define SOCK_STREAM 1
47#define SOCK_DGRAM 2
48#define SOCK_RAW 3
49
50#define IPPROTOCOL_ICMP 1
51#define IPPROTOCOL_TCP 6
52#define IPPROTOCOL_UDP 17
53
54#define SOL_SOCKET 0
55
56#define SO_KEEPALIVE 1
57#define SO_REUSEADDR 2
58#define SO_BINDTODEVICE 3
59
60 typedef size_t socklen_t;
61
62#pragma pack(push,1)
63typedef struct _dns_entry_ {
64 int index;
67#pragma pack(pop)
68
69 typedef struct _sock_addr_ {
70 unsigned short sa_family; //address family
71 char sa_data[14];
73
74 typedef struct _addrinfo_ {
75 int ai_flags;
76 int ai_family;
77 int ai_socktype;
78 int ai_protocol;
81 char *ai_canonname;
82 struct _addinfo_* ai_next;
84
85 typedef struct _iovec_ {
86 void* iov_base;
87 size_t iov_len;
89
90 typedef struct _msghdr_ {
91 void* msg_name;
94 size_t msg_iovlen;
95 void* msg_control;
96 size_t msg_controllen;
97 int msg_flags;
99
100 /* Simple Route table entry structure */
101 typedef struct _route_entry_ {
102 char* ifname;
109
110 typedef struct _route_entry_info_ {
111 int index;
112 void* route_entry;
114
117
118 struct in_addr {
120 };
121
122 typedef struct _sockaddr_in_ {
123 short sin_family;
124 unsigned short sin_port;
125 struct in_addr sin_addr;
126 char sin_zero[8];
128
129 XE_LIB int socket(int domain, int type, int protocol);
130 XE_LIB int connect(int sockfd, sockaddr_* addr, socklen_t addrlen);
131 XE_LIB int send(int sockfd, msghdr* msg, int flags);
132 XE_LIB int receive(int sockfd, msghdr *msg, int flags);
133 XE_LIB int socket_setopt(int sockfd, int level, int optname, const void* optval, socklen_t optlen);
134 XE_LIB int bind(int sockfd, struct sockaddr *addr, socklen_t addrlen);
135 XE_LIB int accept(int sockfd, sockaddr *addr, socklen_t * addrlen);
136 XE_LIB int listen(int sockfd, int backlog);
137 XE_LIB ssize_t recvfrom(int sockfd, void* buf, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addrlen);
138 XE_LIB ssize_t sendto(int sockfd, const void* buf, size_t len, int flags, const struct sockaddr* dest_addr, socklen_t addrlen);
139#ifdef __cplusplus
140}
141#endif
142
143#endif
struct _iovec_ iovec
struct _sockaddr_in_ sockaddr_in
struct _addrinfo_ addrinfo
struct _msghdr_ msghdr
uint16_t in_port_t
Definition socket.h:114
uint32_t in_addr_t
Definition socket.h:113
size_t socklen_t
Definition socket.h:60
XE_LIB int listen(int sockfd, int backlog)
struct _route_entry_ XERouteEntry
XE_LIB int socket_setopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen)
struct _route_entry_info_ XERouteEntryInfo
XE_LIB ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
Definition xenet.cpp:80
XE_LIB int accept(int sockfd, sockaddr *addr, socklen_t *addrlen)
struct _dns_entry_ XEDNSEntry
XE_LIB ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen)
Definition xenet.cpp:60
struct _sock_addr_ sockaddr_
XE_LIB int bind(int sockfd, struct sockaddr *addr, socklen_t addrlen)
XE_LIB int receive(int sockfd, msghdr *msg, int flags)
XE_LIB int send(int sockfd, msghdr *msg, int flags)
XE_LIB int socket(int domain, int type, int protocol)
XE_LIB int connect(int sockfd, sockaddr_ *addr, socklen_t addrlen)
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
int ssize_t
Definition stddef.h:41
Definition socket.h:68
int ai_family
Definition socket.h:70
int ai_protocol
Definition socket.h:72
sockaddr_ * ai_addr
Definition socket.h:80
char * ai_canonname
Definition socket.h:75
int ai_flags
Definition socket.h:69
int ai_socktype
Definition socket.h:71
struct _addinfo_ * ai_next
Definition socket.h:76
socklen_t ai_addrlen
Definition socket.h:73
Definition socket.cpp:45
uint32_t address
Definition socket.cpp:47
int index
Definition socket.cpp:46
Definition socket.h:79
void * iov_base
Definition socket.h:80
size_t iov_len
Definition socket.h:81
Definition socket.h:84
void * msg_name
Definition socket.h:85
iovec * msg_iov
Definition socket.h:87
size_t msg_iovlen
Definition socket.h:88
int msg_flags
Definition socket.h:91
void * msg_control
Definition socket.h:89
size_t msg_controllen
Definition socket.h:90
socklen_t msg_namelen
Definition socket.h:86
Definition route.h:36
uint32_t gateway
Definition route.h:41
uint32_t netmask
Definition route.h:39
uint32_t ifaddress
Definition route.h:40
char * ifname
Definition route.h:37
uint32_t dest
Definition route.h:38
uint8_t flags
Definition route.h:42
Definition route.h:45
int index
Definition route.h:46
void * route_entry
Definition route.h:47
Definition socket.h:69
char sa_data[14]
Definition socket.h:71
unsigned short sa_family
Definition socket.h:70
Definition socket.h:63
Definition socket.h:120
unsigned short sin_port
Definition socket.h:122
struct in_addr sin_addr
Definition socket.h:123
char sin_zero[8]
Definition socket.h:124
short sin_family
Definition socket.h:121
Definition socket.h:116
in_addr_t s_addr
Definition socket.h:117