Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    7575 */
    7676
    77 #define IP_UDP_HDR_SIZE                 (IP_HDR_SIZE + UDP_HDR_SIZE)
    78 #define IF_IP_UDP_HDR_SIZE              (IF_IP_HDR_SIZE + UDP_HDR_SIZE)
    79 #define IF_IP_UDP_HDR_OFFSET            (IF_IP_HDR_SIZE)
    80 
    8177#define GET_UDP_HDR(nbuf,uhoff)         ((T_UDP_HDR*)((uint8_t*)((nbuf)->buf) + uhoff))
     78#define GET_UDP_HDR_OFFSET(nbuf)        (GET_IF_IP_HDR_SIZE(nbuf))
    8279#define GET_UDP_SDU(nbuf,uhoff)         ((uint8_t*)((nbuf)->buf) + uhoff+ UDP_HDR_SIZE)
    8380
    84 #define GET_UDP_HDR_OFFSET(nbuf)        (GET_IF_IP_HDR_SIZE(nbuf))
    85 
    86 #define GET_IP_UDP_HDR_SIZE(nbuf)       (GET_IP_HDR_SIZE(GET_IP_HDR(nbuf)) + UDP_HDR_SIZE)
    87 #define GET_IF_IP_UDP_HDR_SIZE(nbuf)    (IF_HDR_SIZE + GET_IP_UDP_HDR_SIZE(nbuf))
     81#define IF_IP_UDP_HDR_SIZE(nbuf)        (IF_IP_HDR_SIZE(nbuf) + UDP_HDR_SIZE)
     82#define IF_IP_UDP_HDR_OFFSET(nbuf)      (IF_IP_HDR_SIZE(nbuf))
    8883
    8984/*
     
    9186 */
    9287
    93 #if defined(SUPPORT_INET4)
     88#if defined(_IP4_CFG)
    9489
    9590#define IP4_UDP_HDR_SIZE                IP_UDP_HDR_SIZE
     
    9893#define GET_IF_IP4_UDP_HDR_SIZE(nbuf)   GET_IF_IP_UDP_HDR_SIZE(nbuf)
    9994
    100 #endif  /* of #if defined(SUPPORT_INET4) */
     95#endif  /* of #if defined(_IP4_CFG) */
    10196
    10297/*
     
    110105 */
    111106
    112 
    113 /*
    114  *  IPv4 UDP 通信端点
    115  */
    116 typedef struct t_udp4_cep {
     107/* IPv6 用 UDP 通信端点 */
     108
     109typedef struct t_udp6_cep {
    117110
    118111        /*
     
    120113         */
    121114        ATR             cepatr;         /* UDP 通信端点属性           */
    122         T_IPV4EP        myaddr;         /* 自分のアドレス              */
     115        T_IPV6EP        myaddr;         /* 自分のアドレス              */
    123116        t_udp_callback  callback;       /* コールバック関数             */
    124117
     
    135128#ifdef UDP_CFG_NON_BLOCKING
    136129
    137         T_IPV4EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
    138         T_IPV4EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
     130        T_IPV6EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
     131        T_IPV6EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
    139132        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
    140133        int_t           snd_len;        /* 送信データ領域の長さ           */
     
    148141#endif
    149142
    150         } T_UDP4_CEP;
    151 
    152 #if defined(SUPPORT_INET4)
    153 #define T_UDP_CEP       T_UDP4_CEP
    154 #endif
    155 
    156 /*
    157  *  IPv6 UDP 通信端点
    158  */
    159 
    160 typedef struct t_udp6_cep {
     143        } T_UDP6_CEP;
     144
     145/* IPv4 用 UDP 通信端点 */
     146
     147typedef struct t_udp4_cep {
    161148
    162149        /*
     
    164151         */
    165152        ATR             cepatr;         /* UDP 通信端点属性           */
    166         T_IPV6EP        myaddr;         /* 自分のアドレス              */
     153        T_IPV4EP        myaddr;         /* 自分のアドレス              */
    167154        t_udp_callback  callback;       /* コールバック関数             */
    168155
     
    179166#ifdef UDP_CFG_NON_BLOCKING
    180167
    181         T_IPV6EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
    182         T_IPV6EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
     168        T_IPV4EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
     169        T_IPV4EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
    183170        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
    184171        int_t           snd_len;        /* 送信データ領域の長さ           */
     
    191178        ER              error;          /* 待ち中に発生したエラー  */
    192179#endif
    193 
    194         } T_UDP6_CEP;
    195 
    196 #if defined(SUPPORT_INET6)
     180#ifdef SUPPORT_IGMP
     181        bool_t igmp_loopback;
     182        uint8_t igmp_ttl;
     183        T_IN4_ADDR      igmp_mcaddr;    /*  */
     184#endif
     185        } T_UDP4_CEP;
     186
     187#if defined(_IP6_CFG)
     188
    197189#define T_UDP_CEP       T_UDP6_CEP
    198 #endif
     190
     191#else   /* of #if defined(_IP6_CFG) */
     192
     193#if defined(_IP4_CFG)
     194
     195#define T_UDP_CEP       T_UDP4_CEP
     196
     197#endif  /* of #if defined(_IP4_CFG) */
     198
     199#endif  /* of #if defined(_IP6_CFG) */
    199200
    200201/*
     
    210211 */
    211212
    212 #define TMIN_UDP_CEPID          1       /* UDP 通信端点 ID の最小値 */
    213 
    214 #ifdef SUPPORT_MIB
     213#define TMIN_UDP_CEPID          1                       /* UDP      通信端点 ID の最小値 */
     214#define TMIN_UDP6_CEPID         1                       /* UDP/IPv6 通信端点 ID の最小値 */
     215#define TMIN_UDP4_CEPID         (TNUM_UDP6_CEPID+1)     /* UDP/IPv4 通信端点 ID の最小値 */
    215216
    216217/*
     
    225226} T_UDP_STATS;
    226227
    227 #endif  /* of #ifdef SUPPORT_MIB */
    228 
    229228/*
    230229 *  関数シミュレーションマクロ
    231230 */
    232231
    233 #define VALID_UDP_CEPID(id)     (TMIN_UDP_CEPID<=(id)&&(id)<=tmax_udp_cepid)
    234 
    235 #define INDEX_UDP_CEP(id)       ((id)-TMIN_UDP_CEPID)
    236 
    237 #define GET_UDP_CEP(id)         (&(udp_cep[INDEX_UDP_CEP(id)]))
    238 
    239 #define GET_UDP_CEPID(cep)      ((ID)(((cep)-udp_cep)+TMIN_UDP_CEPID))
     232#define VALID_UDP6_CEPID(id)    (TMIN_UDP6_CEPID<=(id)&&(id)<=tmax_udp6_cepid)
     233#define VALID_UDP4_CEPID(id)    (TMIN_UDP4_CEPID<=(id)&&(id)<=tmax_udp4_cepid)
     234
     235#define INDEX_UDP6_CEP(id)      ((id)-TMIN_UDP6_CEPID)
     236#define INDEX_UDP4_CEP(id)      ((id)-TMIN_UDP4_CEPID)
     237
     238#define GET_UDP6_CEP(id)        (&(udp6_cep[INDEX_UDP6_CEP(id)]))
     239#define GET_UDP4_CEP(id)        (&(udp4_cep[INDEX_UDP4_CEP(id)]))
     240
     241#define GET_UDP6_CEPID(cep)     ((ID)(((cep)-udp6_cep)+TMIN_UDP6_CEPID))
     242#define GET_UDP4_CEPID(cep)     ((ID)(((cep)-udp4_cep)+TMIN_UDP4_CEPID))
    240243
    241244#define VALID_TFN_UDP_CAN(t)    ((t)==TFN_UDP_SND_DAT||(t)==TFN_UDP_RCV_DAT||\
     
    249252 */
    250253
    251 extern T_UDP_CEP udp_cep[];
     254extern T_UDP_STATS udp_stats;
     255
     256/* UDP 通信端点 */
     257
     258extern T_UDP6_CEP udp6_cep[];
     259extern T_UDP4_CEP udp4_cep[];
     260
     261#if defined(SUPPORT_INET6)
     262#define udp_cep udp6_cep
     263#elif defined(SUPPORT_INET4)
     264#define udp_cep udp4_cep
     265#endif
     266
    252267extern const ID tmax_udp_cepid;
    253268
    254 #ifdef SUPPORT_MIB
    255 
    256 extern T_UDP_STATS udp_stats;
    257 
    258 #endif  /* of #ifdef SUPPORT_MIB */
     269#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
     270extern const ID tmax_udp6_cepid;
     271extern const ID tmax_udp4_cepid;
     272#else
     273#define tmax_udp6_cepid tmax_udp_cepid
     274#define tmax_udp4_cepid tmax_udp_cepid
     275#endif
    259276
    260277/*
     
    269286 */
    270287
    271 extern uint_t udp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
    272 extern ER_UINT udp_send_data (T_UDP_CEP *cep, T_IPEP *p_dstaddr,
    273                               void *data, int_t len, TMO tmout);
    274 extern ER udp_can_snd (T_UDP_CEP *cep, ER error);
    275 extern ER udp_can_rcv (T_UDP_CEP *cep, ER error);
    276 extern ER udp_alloc_auto_port (T_UDP_CEP *cep);
    277 extern ER udp_alloc_port (T_UDP_CEP *cep, uint16_t portno);
     288/* IPv6 */
     289
     290extern uint_t udp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
     291extern ER_UINT udp6_send_data (T_UDP6_CEP *cep, T_IPV6EP *p_dstaddr,
     292                               void *data, int_t len, TMO tmout);
     293extern ER udp6_can_snd (T_UDP6_CEP *cep, ER error);
     294extern ER udp6_can_rcv (T_UDP6_CEP *cep, ER error);
     295extern ER udp6_alloc_auto_port (T_UDP6_CEP *cep);
     296extern ER udp6_alloc_port (T_UDP6_CEP *cep, uint16_t portno);
     297extern T_UDP6_CEP*udp6_find_cep (T_NET_BUF *input, uint_t off);
     298extern void udp6_notify (T_NET_BUF *input, ER error);
     299extern void udp6_input_select (T_UDP6_CEP *cep, T_NET_BUF *input, uint_t off);
     300
     301/* IPv4 */
     302
     303extern uint_t udp4_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
     304extern ER_UINT udp4_send_data (T_UDP4_CEP *cep, T_IPV4EP *p_dstaddr,
     305                               void *data, int_t len, TMO tmout);
     306extern ER udp4_can_snd (T_UDP4_CEP *cep, ER error);
     307extern ER udp4_can_rcv (T_UDP4_CEP *cep, ER error);
     308extern ER udp4_alloc_auto_port (T_UDP4_CEP *cep);
     309extern ER udp4_alloc_port (T_UDP4_CEP *cep, uint16_t portno);
     310extern T_UDP4_CEP*udp4_find_cep (T_NET_BUF *input, uint_t off);
     311extern void udp4_notify (T_NET_BUF *input, ER error);
     312extern void udp4_input_select (T_UDP4_CEP *cep, T_NET_BUF *input, uint_t off);
    278313
    279314/* ノンブロッキングコールを行う場合に組み込むタスク */
Note: See TracChangeset for help on using the changeset viewer.