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

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