1#ifndef _KSOCKET_INTERNAL_H
2
3#define _KSOCKET_INTERNAL_H
4
5#include <OS.h>
6
7struct ks_param_header
8{
9	port_id port;
10};
11
12struct ks_reply_header
13{
14	int error;
15};
16
17struct ks_socket_param
18{
19	struct ks_param_header header;
20	int family,type,proto;
21};
22
23struct ks_socket_reply
24{
25	struct ks_reply_header header;
26	int result;
27};
28
29struct ks_bind_param
30{
31	struct ks_param_header header;
32	int fd;
33	int size;
34	char addr[1];
35};
36
37struct ks_bind_reply
38{
39	struct ks_reply_header header;
40	int result;
41};
42
43struct ks_getsockname_param
44{
45	struct ks_param_header header;
46	int fd;
47	int size;
48};
49
50struct ks_getsockname_reply
51{
52	struct ks_reply_header header;
53	int result;
54	int size;
55	char addr[1];
56};
57
58struct ks_recvfrom_param
59{
60	struct ks_param_header header;
61	int fd;
62	size_t size;
63	int flags;
64	int fromlen;
65};
66
67struct ks_recvfrom_reply
68{
69	struct ks_reply_header header;
70	ssize_t result;
71	int fromlen;
72	char data[1];
73};
74
75struct ks_sendto_param
76{
77	struct ks_param_header header;
78	int fd;
79	size_t size;
80	int flags;
81	int tolen;
82	char data[1];
83};
84
85struct ks_sendto_reply
86{
87	struct ks_reply_header header;
88	ssize_t result;
89};
90
91struct ks_recv_param
92{
93	struct ks_param_header header;
94	int fd;
95	size_t size;
96	int flags;
97};
98
99struct ks_recv_reply
100{
101	struct ks_reply_header header;
102	ssize_t result;
103	char data[1];
104};
105
106struct ks_send_param
107{
108	struct ks_param_header header;
109	int fd;
110	size_t size;
111	int flags;
112	char data[1];
113};
114
115struct ks_send_reply
116{
117	struct ks_reply_header header;
118	ssize_t result;
119};
120
121struct ks_listen_param
122{
123	struct ks_param_header header;
124	int fd,backlog;
125};
126
127struct ks_listen_reply
128{
129	struct ks_reply_header header;
130	int result;
131};
132
133struct ks_closesocket_param
134{
135	struct ks_param_header header;
136	int fd;
137};
138
139struct ks_closesocket_reply
140{
141	struct ks_reply_header header;
142	int result;
143};
144
145enum
146{
147	KS_SOCKET,
148	KS_BIND,
149	KS_GETSOCKNAME,
150	KS_GETPEERNAME,
151	KS_CONNECT,
152	KS_ACCEPT,
153	KS_RECVFROM,
154	KS_SENDTO,
155	KS_RECV,
156	KS_SEND,
157	KS_LISTEN,
158	KS_CLOSESOCKET,
159	KS_MESSAGE,
160	KS_QUIT
161};
162
163#define KSOCKET_DAEMON_NAME "ksocket_daemon"
164#define KSOCKETD_SIGNATURE "application/x-vnd.BareCode-ksocketd"
165
166#endif
167