Changeset 389 for azure_iot_hub/trunk/asp3_dcre/tinet/net/net_buf.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tinet/net/net_buf.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 48 36 49 37 /* 50 * ãããã¯ã¼ã¯ãããã¡38 * ネットワークバッファ 51 39 * 52 * 4 ãªã¯ãããã§ã¢ã©ã¤ã³ããå¿ 53 è¦ã®ããããã»ããµãèæ 54 ®ãã¦ã 55 * IF ããããµã¤ãºã 4 ãªã¯ãããå¢çã§ãªãã®å ´åã 56 * IP ããã以éã 4 ãªã¯ãããå¢çã«èª¿æ´ããã 40 * 4 オクテットでアラインする必要のあるプロセッサを考慮して、 41 * IF ヘッダサイズが 4 オクテット境界でないの場合、 42 * IP ヘッダ以降を 4 オクテット境界に調整する。 57 43 */ 58 44 … … 62 48 63 49 /* 64 * ãã³ãã¬ã¼ã50 * テンプレート 65 51 */ 66 52 67 53 struct t_net_buf { 68 uint16_t len; /* ãã¼ã¿ã®é·ã*/69 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/70 uint8_t flags; /* ãã©ã°*/71 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 72 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 73 #endif 74 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 75 uint8_t halign[4 - IF_HDR_ALIGN]; 76 #endif 77 uint8_t buf[IF_MIN_LEN]; /* ãããã¡æ¬ä½*/54 uint16_t len; /* データの長さ */ 55 uint8_t idix; /* mpfid のインデックス */ 56 uint8_t flags; /* フラグ */ 57 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 58 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 59 #endif 60 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 61 uint8_t halign[4 - IF_HDR_ALIGN]; 62 #endif 63 uint8_t buf[IF_MIN_LEN]; /* バッファ本体 */ 78 64 }; 79 65 … … 87 73 88 74 /* 89 * 64 ãªã¯ããã75 * 64 オクテット 90 76 */ 91 77 92 78 typedef struct t_net_buf_64 { 93 uint16_t len; /* ãã¼ã¿ã®é·ã*/94 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/95 uint8_t flags; /* ãã©ã°*/96 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 97 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 98 #endif 99 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 100 uint8_t halign[4 - IF_HDR_ALIGN]; 101 #endif 102 uint8_t buf[64]; /* ãããã¡æ¬ä½*/79 uint16_t len; /* データの長さ */ 80 uint8_t idix; /* mpfid のインデックス */ 81 uint8_t flags; /* フラグ */ 82 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 83 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 84 #endif 85 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 86 uint8_t halign[4 - IF_HDR_ALIGN]; 87 #endif 88 uint8_t buf[64]; /* バッファ本体 */ 103 89 } T_NET_BUF_64; 104 90 105 91 /* 106 * 128 ãªã¯ããã92 * 128 オクテット 107 93 */ 108 94 109 95 typedef struct t_net_buf_128 { 110 uint16_t len; /* ãã¼ã¿ã®é·ã*/111 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/112 uint8_t flags; /* ãã©ã°*/113 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 114 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 115 #endif 116 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 117 uint8_t halign[4 - IF_HDR_ALIGN]; 118 #endif 119 uint8_t buf[128]; /* ãããã¡æ¬ä½*/96 uint16_t len; /* データの長さ */ 97 uint8_t idix; /* mpfid のインデックス */ 98 uint8_t flags; /* フラグ */ 99 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 100 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 101 #endif 102 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 103 uint8_t halign[4 - IF_HDR_ALIGN]; 104 #endif 105 uint8_t buf[128]; /* バッファ本体 */ 120 106 } T_NET_BUF_128; 121 107 122 108 /* 123 * 256 ãªã¯ããã109 * 256 オクテット 124 110 */ 125 111 126 112 typedef struct t_net_buf_256 { 127 uint16_t len; /* ãã¼ã¿ã®é·ã*/128 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/129 uint8_t flags; /* ãã©ã°*/130 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 131 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 132 #endif 133 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 134 uint8_t halign[4 - IF_HDR_ALIGN]; 135 #endif 136 uint8_t buf[256]; /* ãããã¡æ¬ä½*/113 uint16_t len; /* データの長さ */ 114 uint8_t idix; /* mpfid のインデックス */ 115 uint8_t flags; /* フラグ */ 116 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 117 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 118 #endif 119 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 120 uint8_t halign[4 - IF_HDR_ALIGN]; 121 #endif 122 uint8_t buf[256]; /* バッファ本体 */ 137 123 } T_NET_BUF_256; 138 124 139 125 /* 140 * 512 ãªã¯ããã126 * 512 オクテット 141 127 */ 142 128 143 129 typedef struct t_net_buf_512 { 144 uint16_t len; /* ãã¼ã¿ã®é·ã*/145 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/146 uint8_t flags; /* ãã©ã°*/147 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 148 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 149 #endif 150 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 151 uint8_t halign[4 - IF_HDR_ALIGN]; 152 #endif 153 uint8_t buf[512];/* ãããã¡æ¬ä½*/130 uint16_t len; /* データの長さ */ 131 uint8_t idix; /* mpfid のインデックス */ 132 uint8_t flags; /* フラグ */ 133 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 134 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 135 #endif 136 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 137 uint8_t halign[4 - IF_HDR_ALIGN]; 138 #endif 139 uint8_t buf[512];/* バッファ本体 */ 154 140 } T_NET_BUF_512; 155 141 156 142 /* 157 * 1024 ãªã¯ããã143 * 1024 オクテット 158 144 */ 159 145 160 146 typedef struct t_net_buf_1024 { 161 uint16_t len; /* ãã¼ã¿ã®é·ã*/162 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/163 uint8_t flags; /* ãã©ã°*/164 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 165 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 166 #endif 167 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 168 uint8_t halign[4 - IF_HDR_ALIGN]; 169 #endif 170 uint8_t buf[1024]; /* ãããã¡æ¬ä½*/147 uint16_t len; /* データの長さ */ 148 uint8_t idix; /* mpfid のインデックス */ 149 uint8_t flags; /* フラグ */ 150 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 151 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; 152 #endif 153 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4 154 uint8_t halign[4 - IF_HDR_ALIGN]; 155 #endif 156 uint8_t buf[1024]; /* バッファ本体 */ 171 157 } T_NET_BUF_1024; 172 158 173 159 /* 174 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ大 PDU ãµã¤ãº160 * ネットワークインタフェースの最大 PDU サイズ 175 161 */ 176 162 … … 178 164 179 165 typedef struct t_net_buf_if_pdu { 180 uint16_t len; /* ãã¼ã¿ã®é·ã*/181 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/182 uint8_t flags; /* ãã©ã°*/166 uint16_t len; /* データの長さ */ 167 uint8_t idix; /* mpfid のインデックス */ 168 uint8_t flags; /* フラグ */ 183 169 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 184 170 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 188 174 #endif 189 175 uint8_t buf[IF_PDU_SIZE]; 190 /* ãããã¡æ¬ä½*/176 /* バッファ本体 */ 191 177 #if defined(IF_PDU_HDR_PADDING) 192 178 uint8_t padding[IF_PDU_HDR_PADDING]; 193 #endif /* ãããã®ä½å*/179 #endif /* ヘッダの余分 */ 194 180 } T_NET_BUF_IF_PDU; 195 181 … … 197 183 198 184 /* 199 * ãããã¯ã¼ã¯ãããã¡è¡¨185 * ネットワークバッファ表 200 186 */ 201 187 … … 218 204 219 205 /* 220 * ãããã¯ã¼ã¯ãããã¡ã»ãã©ã°221 */ 222 223 /* 224 * ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹åºåå¾ã«ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªãã225 * 注æ: åºåå¾ã«ãã®ãã©ã°ã¯ã¯ãªã¢ãããã206 * ネットワークバッファ・フラグ 207 */ 208 209 /* 210 * ネットワークインタフェース出力後にネットワークバッファを開放しない。 211 * 注意: 出力後にこのフラグはクリアされる。 226 212 */ 227 213 #define NB_FLG_NOREL_IFOUT UINT_C(0x80) 228 214 229 215 /* 230 * ESP ç¨ãã©ã°216 * ESP 用フラグ 231 217 */ 232 218 #define NB_FLG_DECRYPED UINT_C(0x40) 233 219 234 220 /* 235 * ãããã¯ã¼ã¯ãããã¡ç²å¾å±æ§236 */ 237 238 /* æ¢ç´¢å±æ§*/239 240 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/241 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã*/242 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP ç¨ã«ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/243 #define NBA_ID_MASK UINT_C(0x0fff) /* éä¿¡ç«¯ç¹ ID ã渡ãå ´åã®ãã¹ã¯å¤*/244 245 /* 246 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã221 * ネットワークバッファ獲得属性 222 */ 223 224 /* 探索属性 */ 225 226 #define NBA_SEARCH_ASCENT UINT_C(0x1000) /* 大きなサイズの方向に探索する。 */ 227 #define NBA_SEARCH_DESCENT UINT_C(0x2000) /* 小さなサイズの方向に探索する。 */ 228 #define NBA_RESERVE_TCP UINT_C(0x4000) /* TCP 用にネットワークバッファを予約する。*/ 229 #define NBA_ID_MASK UINT_C(0x0fff) /* 通信端点 ID を渡す場合のマスク値 */ 230 231 /* 232 * 関数シミュレーションマクロ 247 233 */ 248 234 … … 250 236 251 237 /* 252 * é¢æ°238 * 関数 253 239 */ 254 240
Note:
See TracChangeset
for help on using the changeset viewer.