Ignore:
Timestamp:
Jul 10, 2020, 9:09:25 PM (4 years ago)
Author:
coas-nagasima
Message:

NTShellタスクを更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/ntshell/src/fdtable.h

    r439 r441  
    3535 *  @(#) $Id$
    3636 */
    37 #ifndef SOCKET_STUB_H
    38 #define SOCKET_STUB_H
     37#ifndef _FDTABLE_H_
     38#define _FDTABLE_H_
    3939
    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 };
     40typedef const struct io_type_s IO_TYPE;
    5041
    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 {
     42struct SHELL_FILE {
    10443        int fd;
    105         int type;
     44        IO_TYPE *type;
    10645        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 *);
    11246        int readevt_r;
    11347        int readevt_w;
    11448        int writeevt_r;
    11549        int writeevt_w;
     50        int writable;
    11651        int errorevt_r;
    11752        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
     56struct 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 *);
    12665};
    12766
     
    13675#endif
    13776
    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);
     77struct SHELL_FILE *new_fp(IO_TYPE *type, int id, int writable);
     78int delete_fd_by_id(IO_TYPE *type, int id);
     79struct SHELL_FILE *fd_to_fp(int fd);
     80struct SHELL_FILE *id_to_fd(IO_TYPE *type, int id);
    14481
    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);
     82int delete_fp(struct SHELL_FILE *fp);
    19883void clean_fd();
    19984
    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.