Changeset 441 for EcnlProtoTool/trunk/ntshell/src/fdtable.h
- Timestamp:
- Jul 10, 2020, 9:09:25 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/ntshell/src/fdtable.h
r439 r441 35 35 * @(#) $Id$ 36 36 */ 37 #ifndef SOCKET_STUB_H38 #define SOCKET_STUB_H37 #ifndef _FDTABLE_H_ 38 #define _FDTABLE_H_ 39 39 40 struct addrinfo { 41 int ai_flags; 42 int ai_family; 43 int ai_socktype; 44 int ai_protocol; 45 socklen_t ai_addrlen; 46 struct sockaddr *ai_addr; 47 char *ai_canonname; 48 struct addrinfo *ai_next; 49 }; 40 typedef const struct io_type_s IO_TYPE; 50 41 51 typedef uint16_t in_port_t; 52 typedef uint32_t in_addr_t; 53 struct in_addr { in_addr_t s_addr; }; 54 55 struct sockaddr_in { 56 sa_family_t sin_family; 57 in_port_t sin_port; 58 struct in_addr sin_addr; 59 uint8_t sin_zero[8]; 60 }; 61 62 struct in6_addr 63 { 64 union { 65 uint8_t __s6_addr[16]; 66 uint16_t __s6_addr16[8]; 67 uint32_t __s6_addr32[4]; 68 } __in6_union; 69 }; 70 //#define s6_addr __in6_union.__s6_addr 71 //#define s6_addr16 __in6_union.__s6_addr16 72 //#define s6_addr32 __in6_union.__s6_addr32 73 74 struct sockaddr_in6 75 { 76 sa_family_t sin6_family; 77 in_port_t sin6_port; 78 uint32_t sin6_flowinfo; 79 struct in6_addr sin6_addr; 80 uint32_t sin6_scope_id; 81 }; 82 83 typedef struct socket_t { 84 int family; 85 int type; 86 int protocol; 87 int cepid; 88 int repid; 89 int backlog; 90 unsigned int flags; 91 union { 92 struct sockaddr_in laddr4; 93 struct sockaddr_in6 laddr6; 94 }; 95 union { 96 struct sockaddr_in raddr4; 97 struct sockaddr_in6 raddr6; 98 }; 99 int buf_size; 100 unsigned char *buf; 101 } socket_t; 102 103 struct _IO_FILE { 42 struct SHELL_FILE { 104 43 int fd; 105 inttype;44 IO_TYPE *type; 106 45 int handle; 107 int (*close)(struct _IO_FILE *);108 size_t (*read)(struct _IO_FILE *, unsigned char *, size_t);109 size_t (*write)(struct _IO_FILE *, const unsigned char *, size_t);110 off_t (*seek)(struct _IO_FILE *, off_t, int);111 int (*ioctl)(struct _IO_FILE *, int, void *);112 46 int readevt_r; 113 47 int readevt_w; 114 48 int writeevt_r; 115 49 int writeevt_w; 50 int writable; 116 51 int errorevt_r; 117 52 int errorevt_w; 118 union { 119 FIL file; 120 struct { 121 FATFS_DIR dir; 122 struct dirent dirent; 123 }; 124 socket_t socket; 125 }; 53 void *exinf; 54 }; 55 56 struct io_type_s { 57 const int (*close)(struct SHELL_FILE *); 58 const size_t (*read)(struct SHELL_FILE *, unsigned char *, size_t); 59 const size_t (*write)(struct SHELL_FILE *, const unsigned char *, size_t); 60 const off_t (*seek)(struct SHELL_FILE *, off_t, int); 61 const int (*ioctl)(struct SHELL_FILE *, int, void *); 62 const bool_t (*readable)(struct SHELL_FILE *); 63 const bool_t (*writable)(struct SHELL_FILE *); 64 const void (*delete)(struct SHELL_FILE *); 126 65 }; 127 66 … … 136 75 #endif 137 76 138 extern int stdio_close(struct _IO_FILE *fp); 139 extern size_t stdio_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 140 extern size_t stdio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 141 extern size_t stdin_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 142 extern size_t stdout_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 143 extern size_t stderr_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 77 struct SHELL_FILE *new_fp(IO_TYPE *type, int id, int writable); 78 int delete_fd_by_id(IO_TYPE *type, int id); 79 struct SHELL_FILE *fd_to_fp(int fd); 80 struct SHELL_FILE *id_to_fd(IO_TYPE *type, int id); 144 81 145 extern int sio_close(struct _IO_FILE *fp); 146 extern size_t sio_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 147 extern size_t sio_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 148 extern off_t sio_seek(struct _IO_FILE *fp, off_t ofs, int org); 149 extern int sio_ioctl(struct _IO_FILE *fp, int req, void *arg); 150 151 extern int file_close(struct _IO_FILE *fp); 152 extern size_t file_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 153 extern size_t file_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 154 extern off_t file_seek(struct _IO_FILE *fp, off_t ofs, int org); 155 extern int file_ioctl(struct _IO_FILE *fp, int req, void *arg); 156 157 extern int dir_close(struct _IO_FILE *fp); 158 extern size_t dir_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 159 extern size_t dir_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 160 extern off_t dir_seek(struct _IO_FILE *fp, off_t ofs, int org); 161 extern int dir_ioctl(struct _IO_FILE *fp, int req, void *arg); 162 163 extern int tcp_fd_close(struct _IO_FILE *fp); 164 extern size_t tcp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 165 extern size_t tcp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 166 extern off_t tcp_fd_seek(struct _IO_FILE *fp, off_t ofs, int org); 167 extern int tcp_fd_ioctl(struct _IO_FILE *fp, int req, void *arg); 168 169 extern int udp_fd_close(struct _IO_FILE *fp); 170 extern size_t udp_fd_read(struct _IO_FILE *fp, unsigned char *data, size_t len); 171 extern size_t udp_fd_write(struct _IO_FILE *fp, const unsigned char *data, size_t len); 172 extern off_t udp_fd_seek(struct _IO_FILE *fp, off_t ofs, int org); 173 extern int udp_fd_ioctl(struct _IO_FILE *fp, int req, void *arg); 174 175 struct _IO_FILE *fd_to_fp(int fd); 176 177 struct _IO_FILE *new_sio_fd(int sioid); 178 int delete_sio_fd(int sioid); 179 struct _IO_FILE *sioid_to_fd(int sioid); 180 181 struct _IO_FILE *new_file_fd(int fileid); 182 int delete_file_fd(int fileid); 183 struct _IO_FILE *fileid_to_fd(int fileid); 184 185 struct _IO_FILE *new_dir_fd(int dirid); 186 int delete_dir_fd(int dirid); 187 struct _IO_FILE *dirid_to_fd(int dirid); 188 189 struct _IO_FILE *new_tcp_fd(int tcpid); 190 int delete_tcp_fd(int tcpid); 191 struct _IO_FILE *tcpid_to_fd(int tcpid); 192 193 struct _IO_FILE *new_udp_fd(int udpid); 194 int delete_udp_fd(int udpid); 195 struct _IO_FILE *udpid_to_fd(int udpid); 196 197 int delete_tcp_rep(int repid); 82 int delete_fp(struct SHELL_FILE *fp); 198 83 void clean_fd(); 199 84 200 ER socket_tcp_callback(ID cepid, FN fncd, void *p_parblk); 201 ER socket_udp_callback(ID cepid, FN fncd, void *p_parblk); 202 203 #endif // !SOCKET_STUB_H 85 #endif /* _FDTABLE_H_ */
Note:
See TracChangeset
for help on using the changeset viewer.