source: EcnlProtoTool/trunk/ntshell/src/socket_stub.h@ 279

Last change on this file since 279 was 279, checked in by coas-nagasima, 7 years ago

ファイルを追加、更新。

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 3.8 KB
Line 
1
2#ifndef SOCKET_STUB_H
3#define SOCKET_STUB_H
4
5typedef unsigned socklen_t;
6typedef unsigned short sa_family_t;
7
8struct sockaddr {
9 sa_family_t sa_family;
10 char sa_data[14];
11};
12
13struct addrinfo {
14 int ai_flags;
15 int ai_family;
16 int ai_socktype;
17 int ai_protocol;
18 socklen_t ai_addrlen;
19 struct sockaddr *ai_addr;
20 char *ai_canonname;
21 struct addrinfo *ai_next;
22};
23
24#define AF_INET 2
25#define AF_INET6 10
26
27#define SOCK_STREAM 1
28#define SOCK_DGRAM 2
29
30typedef uint16_t in_port_t;
31typedef uint32_t in_addr_t;
32struct in_addr { in_addr_t s_addr; };
33
34struct sockaddr_in {
35 sa_family_t sin_family;
36 in_port_t sin_port;
37 struct in_addr sin_addr;
38 uint8_t sin_zero[8];
39};
40
41struct in6_addr
42{
43 union {
44 uint8_t __s6_addr[16];
45 uint16_t __s6_addr16[8];
46 uint32_t __s6_addr32[4];
47 } __in6_union;
48};
49#define s6_addr __in6_union.__s6_addr
50#define s6_addr16 __in6_union.__s6_addr16
51#define s6_addr32 __in6_union.__s6_addr32
52
53struct sockaddr_in6
54{
55 sa_family_t sin6_family;
56 in_port_t sin6_port;
57 uint32_t sin6_flowinfo;
58 struct in6_addr sin6_addr;
59 uint32_t sin6_scope_id;
60};
61
62#define MSG_OOB 0x0001
63
64typedef struct socket_t {
65 int family;
66 int type;
67 int protocol;
68 int cepid;
69 int repid;
70 int backlog;
71 unsigned int flags;
72 union {
73 struct sockaddr_in laddr4;
74 struct sockaddr_in6 laddr6;
75 };
76 union {
77 struct sockaddr_in raddr4;
78 struct sockaddr_in6 raddr6;
79 };
80 int buf_size;
81 unsigned char *buf;
82} socket_t;
83
84struct _IO_FILE {
85 int fd;
86 int type;
87 int handle;
88 int (*close)(struct _IO_FILE *);
89 size_t (*read)(struct _IO_FILE *, unsigned char *, size_t);
90 size_t (*write)(struct _IO_FILE *, const unsigned char *, size_t);
91 int readevt_r;
92 int readevt_w;
93 int writeevt_r;
94 int writeevt_w;
95 int errorevt_r;
96 int errorevt_w;
97 union {
98 FIL file;
99 socket_t socket;
100 };
101};
102
103#ifndef bool
104#define bool int
105#endif
106#ifndef true
107#define true 1
108#endif
109#ifndef false
110#define false 0
111#endif
112
113extern int stdio_close(struct _IO_FILE *fp);
114extern size_t stdio_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
115extern size_t stdio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
116extern size_t stdin_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
117extern size_t stdout_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
118extern size_t stderr_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
119
120extern int sio_close(struct _IO_FILE *fp);
121extern size_t sio_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
122extern size_t sio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
123
124extern int file_close(struct _IO_FILE *fp);
125extern size_t file_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
126extern size_t file_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
127
128extern int tcp_fd_close(struct _IO_FILE *fp);
129extern size_t tcp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
130extern size_t tcp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
131
132extern int udp_fd_close(struct _IO_FILE *fp);
133extern size_t udp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
134extern size_t udp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
135
136struct _IO_FILE *fd_to_fp(int fd);
137
138struct _IO_FILE *new_sio_fd(int sioid);
139int delete_sio_fd(int sioid);
140struct _IO_FILE *sioid_to_fd(int sioid);
141
142struct _IO_FILE *new_file_fd(int fileid);
143int delete_file_fd(int fileid);
144struct _IO_FILE *fileid_to_fd(int fileid);
145
146struct _IO_FILE *new_tcp_fd(int tcpid);
147int delete_tcp_fd(int tcpid);
148struct _IO_FILE *tcpid_to_fd(int tcpid);
149
150struct _IO_FILE *new_udp_fd(int udpid);
151int delete_udp_fd(int udpid);
152struct _IO_FILE *udpid_to_fd(int udpid);
153
154int delete_tcp_rep(int repid);
155void clean_fd();
156
157ER socket_tcp_callback(ID cepid, FN fncd, void *p_parblk);
158ER socket_udp_callback(ID cepid, FN fncd, void *p_parblk);
159
160#endif // !SOCKET_STUB_H
Note: See TracBrowser for help on using the repository browser.