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

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

文字コードを設定

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 6.2 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2017 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
15 * の無保証規定を掲載すること.
16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
18 * と.
19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
20 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
22 * 報告すること.
23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27 * 免責すること.
28 *
29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33 * の責任を負わない.
34 *
35 * @(#) $Id$
36 */
37#ifndef SOCKET_STUB_H
38#define SOCKET_STUB_H
39
40typedef unsigned socklen_t;
41typedef unsigned short sa_family_t;
42
43struct sockaddr {
44 sa_family_t sa_family;
45 char sa_data[14];
46};
47
48struct addrinfo {
49 int ai_flags;
50 int ai_family;
51 int ai_socktype;
52 int ai_protocol;
53 socklen_t ai_addrlen;
54 struct sockaddr *ai_addr;
55 char *ai_canonname;
56 struct addrinfo *ai_next;
57};
58
59#define AF_INET 2
60#define AF_INET6 10
61
62#define SOCK_STREAM 1
63#define SOCK_DGRAM 2
64
65typedef uint16_t in_port_t;
66typedef uint32_t in_addr_t;
67struct in_addr { in_addr_t s_addr; };
68
69struct sockaddr_in {
70 sa_family_t sin_family;
71 in_port_t sin_port;
72 struct in_addr sin_addr;
73 uint8_t sin_zero[8];
74};
75
76struct in6_addr
77{
78 union {
79 uint8_t __s6_addr[16];
80 uint16_t __s6_addr16[8];
81 uint32_t __s6_addr32[4];
82 } __in6_union;
83};
84#define s6_addr __in6_union.__s6_addr
85#define s6_addr16 __in6_union.__s6_addr16
86#define s6_addr32 __in6_union.__s6_addr32
87
88struct sockaddr_in6
89{
90 sa_family_t sin6_family;
91 in_port_t sin6_port;
92 uint32_t sin6_flowinfo;
93 struct in6_addr sin6_addr;
94 uint32_t sin6_scope_id;
95};
96
97#define MSG_OOB 0x0001
98
99typedef struct socket_t {
100 int family;
101 int type;
102 int protocol;
103 int cepid;
104 int repid;
105 int backlog;
106 unsigned int flags;
107 union {
108 struct sockaddr_in laddr4;
109 struct sockaddr_in6 laddr6;
110 };
111 union {
112 struct sockaddr_in raddr4;
113 struct sockaddr_in6 raddr6;
114 };
115 int buf_size;
116 unsigned char *buf;
117} socket_t;
118
119struct _IO_FILE {
120 int fd;
121 int type;
122 int handle;
123 int (*close)(struct _IO_FILE *);
124 size_t (*read)(struct _IO_FILE *, unsigned char *, size_t);
125 size_t (*write)(struct _IO_FILE *, const unsigned char *, size_t);
126 int readevt_r;
127 int readevt_w;
128 int writeevt_r;
129 int writeevt_w;
130 int errorevt_r;
131 int errorevt_w;
132 union {
133 FIL file;
134 socket_t socket;
135 };
136};
137
138#ifndef bool
139#define bool int
140#endif
141#ifndef true
142#define true 1
143#endif
144#ifndef false
145#define false 0
146#endif
147
148extern int stdio_close(struct _IO_FILE *fp);
149extern size_t stdio_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
150extern size_t stdio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
151extern size_t stdin_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
152extern size_t stdout_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
153extern size_t stderr_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
154
155extern int sio_close(struct _IO_FILE *fp);
156extern size_t sio_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
157extern size_t sio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
158
159extern int file_close(struct _IO_FILE *fp);
160extern size_t file_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
161extern size_t file_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
162
163extern int tcp_fd_close(struct _IO_FILE *fp);
164extern size_t tcp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
165extern size_t tcp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
166
167extern int udp_fd_close(struct _IO_FILE *fp);
168extern size_t udp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len);
169extern size_t udp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len);
170
171struct _IO_FILE *fd_to_fp(int fd);
172
173struct _IO_FILE *new_sio_fd(int sioid);
174int delete_sio_fd(int sioid);
175struct _IO_FILE *sioid_to_fd(int sioid);
176
177struct _IO_FILE *new_file_fd(int fileid);
178int delete_file_fd(int fileid);
179struct _IO_FILE *fileid_to_fd(int fileid);
180
181struct _IO_FILE *new_tcp_fd(int tcpid);
182int delete_tcp_fd(int tcpid);
183struct _IO_FILE *tcpid_to_fd(int tcpid);
184
185struct _IO_FILE *new_udp_fd(int udpid);
186int delete_udp_fd(int udpid);
187struct _IO_FILE *udpid_to_fd(int udpid);
188
189int delete_tcp_rep(int repid);
190void clean_fd();
191
192ER socket_tcp_callback(ID cepid, FN fncd, void *p_parblk);
193ER socket_udp_callback(ID cepid, FN fncd, void *p_parblk);
194
195#endif // !SOCKET_STUB_H
Note: See TracBrowser for help on using the repository browser.