--- /dev/null
+cscope 15 $HOME/work/opnfv/samplevnf/common 0001447068
+ @VIL/acl/lib_acl.c
+
+16 \ 2
+ ~"lib_aþ.h
+"
+
+17 \ 2
+ ~"vnf_commÚ.h
+"
+
+18 \ 2
+ ~<¹e_pÜt.h
+>
+
+19 \ 1
+ #ACL_LIB_DEBUG
+ 0
+
+ )
+
+20 \18\19
+¹e_aþ_f\9bld_def
+
+ gf\9bld_fÜm©_\9dv4
+[] = {
+
+23 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+24 .
+ gsize
+ = \17(
+u\9at8_t
+),
+
+25 .
+ gf\9bld_\9adex
+ = 0,
+
+26 .
+ g\9aput_\9adex
+ = 0,
+
+27 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+28
+off£tof
+(\19
+\9dv4_hdr
+,
+Ãxt_´Ùo_id
+),
+
+33 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+34 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+35 .
+ gf\9bld_\9adex
+ = 1,
+
+36 .
+ g\9aput_\9adex
+ = 1,
+
+37 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+38
+off£tof
+(\19
+\9dv4_hdr
+,
+¤c_addr
+),
+
+43 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+44 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+45 .
+ gf\9bld_\9adex
+ = 2,
+
+46 .
+ g\9aput_\9adex
+ = 2,
+
+47 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+48
+off£tof
+(\19
+\9dv4_hdr
+,
+d¡_addr
+),
+
+53 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+54 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+55 .
+ gf\9bld_\9adex
+ = 3,
+
+56 .
+ g\9aput_\9adex
+ = 3,
+
+57 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+58 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+¤c_pÜt
+),
+
+63 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+64 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+65 .
+ gf\9bld_\9adex
+ = 4,
+
+66 .
+ g\9aput_\9adex
+ = 3,
+
+67 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+68 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+d¡_pÜt
+),
+
+72 \ 1
+ #SIZEOF_VLAN_HDR
+ 4
+
+ )
+
+74 \18\19
+¹e_aþ_f\9bld_def
+
+ gf\9bld_fÜm©_vÏn_\9dv4
+[] = {
+
+77 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+78 .
+ gsize
+ = \17(
+u\9at8_t
+),
+
+79 .
+ gf\9bld_\9adex
+ = 0,
+
+80 .
+ g\9aput_\9adex
+ = 0,
+
+81 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+82
+SIZEOF_VLAN_HDR
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+Ãxt_´Ùo_id
+),
+
+87 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+88 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+89 .
+ gf\9bld_\9adex
+ = 1,
+
+90 .
+ g\9aput_\9adex
+ = 1,
+
+91 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+92
+SIZEOF_VLAN_HDR
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+¤c_addr
+),
+
+97 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+98 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+99 .
+ gf\9bld_\9adex
+ = 2,
+
+100 .
+ g\9aput_\9adex
+ = 2,
+
+101 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+102
+SIZEOF_VLAN_HDR
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+d¡_addr
+),
+
+107 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+108 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+109 .
+ gf\9bld_\9adex
+ = 3,
+
+110 .
+ g\9aput_\9adex
+ = 3,
+
+111 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+112
+SIZEOF_VLAN_HDR
+ +
+
+113 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+¤c_pÜt
+),
+
+118 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+119 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+120 .
+ gf\9bld_\9adex
+ = 4,
+
+121 .
+ g\9aput_\9adex
+ = 4,
+
+122 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+123
+SIZEOF_VLAN_HDR
+ +
+
+124 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+d¡_pÜt
+),
+
+128 \ 1
+ #SIZEOF_QINQ_HEADER
+ 8
+
+ )
+
+130 \18\19
+¹e_aþ_f\9bld_def
+
+ gf\9bld_fÜm©_q\9aq_\9dv4
+[] = {
+
+133 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+134 .
+ gsize
+ = \17(
+u\9at8_t
+),
+
+135 .
+ gf\9bld_\9adex
+ = 0,
+
+136 .
+ g\9aput_\9adex
+ = 0,
+
+137 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+138
+SIZEOF_QINQ_HEADER
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+Ãxt_´Ùo_id
+),
+
+143 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+144 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+145 .
+ gf\9bld_\9adex
+ = 1,
+
+146 .
+ g\9aput_\9adex
+ = 1,
+
+147 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+148
+SIZEOF_QINQ_HEADER
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+¤c_addr
+),
+
+153 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+154 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+155 .
+ gf\9bld_\9adex
+ = 2,
+
+156 .
+ g\9aput_\9adex
+ = 2,
+
+157 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+158
+SIZEOF_QINQ_HEADER
+ +
+off£tof
+(\19
+\9dv4_hdr
+,
+d¡_addr
+),
+
+163 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+164 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+165 .
+ gf\9bld_\9adex
+ = 3,
+
+166 .
+ g\9aput_\9adex
+ = 3,
+
+167 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+168
+SIZEOF_QINQ_HEADER
+ +
+
+169 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+¤c_pÜt
+),
+
+174 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+175 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+176 .
+ gf\9bld_\9adex
+ = 4,
+
+177 .
+ g\9aput_\9adex
+ = 4,
+
+178 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+179
+SIZEOF_QINQ_HEADER
+ +
+
+180 \17(\19
+\9dv4_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+d¡_pÜt
+),
+
+184 \18\19
+¹e_aþ_f\9bld_def
+
+ gf\9bld_fÜm©_\9dv6
+[] = {
+
+187 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_BITMASK
+,
+
+188 .
+ gsize
+ = \17(
+u\9at8_t
+),
+
+189 .
+ gf\9bld_\9adex
+ = 0,
+
+190 .
+ g\9aput_\9adex
+ = 0,
+
+191 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+192
+off£tof
+(\19
+\9dv6_hdr
+,
+´Ùo
+),
+
+197 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+198 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+199 .
+ gf\9bld_\9adex
+ = 1,
+
+200 .
+ g\9aput_\9adex
+ = 1,
+
+201 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+202
+off£tof
+(\19
+\9dv6_hdr
+,
+¤c_addr
+),
+
+206 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+207 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+208 .
+ gf\9bld_\9adex
+ = 2,
+
+209 .
+ g\9aput_\9adex
+ = 2,
+
+210 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+211
+off£tof
+(\19
+\9dv6_hdr
+,
+¤c_addr
+è+ \17(
+ gu\9at32_t
+),
+
+215 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+216 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+217 .
+ gf\9bld_\9adex
+ = 3,
+
+218 .
+ g\9aput_\9adex
+ = 3,
+
+219 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+220
+off£tof
+(\19
+\9dv6_hdr
+,
+¤c_addr
+è+ 2 * \17(
+ gu\9at32_t
+),
+
+224 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+225 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+226 .
+ gf\9bld_\9adex
+ = 4,
+
+227 .
+ g\9aput_\9adex
+ = 4,
+
+228 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+229
+off£tof
+(\19
+\9dv6_hdr
+,
+¤c_addr
+è+ 3 * \17(
+ gu\9at32_t
+),
+
+234 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+235 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+236 .
+ gf\9bld_\9adex
+ = 5,
+
+237 .
+ g\9aput_\9adex
+ = 5,
+
+238 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+239
+off£tof
+(\19
+\9dv6_hdr
+,
+d¡_addr
+),
+
+243 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+244 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+245 .
+ gf\9bld_\9adex
+ = 6,
+
+246 .
+ g\9aput_\9adex
+ = 6,
+
+247 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+248
+off£tof
+(\19
+\9dv6_hdr
+,
+d¡_addr
+è+ \17(
+ gu\9at32_t
+),
+
+252 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+253 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+254 .
+ gf\9bld_\9adex
+ = 7,
+
+255 .
+ g\9aput_\9adex
+ = 7,
+
+256 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+257
+off£tof
+(\19
+\9dv6_hdr
+,
+d¡_addr
+è+ 2 * \17(
+ gu\9at32_t
+),
+
+261 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_MASK
+,
+
+262 .
+ gsize
+ = \17(
+u\9at32_t
+),
+
+263 .
+ gf\9bld_\9adex
+ = 8,
+
+264 .
+ g\9aput_\9adex
+ = 8,
+
+265 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+266
+off£tof
+(\19
+\9dv6_hdr
+,
+d¡_addr
+è+ 3 * \17(
+ gu\9at32_t
+),
+
+271 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+272 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+273 .
+ gf\9bld_\9adex
+ = 9,
+
+274 .
+ g\9aput_\9adex
+ = 9,
+
+275 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+276 \17(\19
+\9dv6_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+¤c_pÜt
+),
+
+281 .
+ty³
+ =
+RTE_ACL_FIELD_TYPE_RANGE
+,
+
+282 .
+ gsize
+ = \17(
+u\9at16_t
+),
+
+283 .
+ gf\9bld_\9adex
+ = 10,
+
+284 .
+ g\9aput_\9adex
+ = 9,
+
+285 .
+ goff£t
+ = \17(\19
+\91h\94_hdr
+) +
+
+286 \17(\19
+\9dv6_hdr
+è+
+off£tof
+(\19
+tý_hdr
+,
+d¡_pÜt
+),
+
+290 \1e*
+ $lib_aþ_ü\97\8b_aùive_¡ªdby_\8fbË_\9dv4
+(
+u\9at8_t
+
+\8fbË_num
+,
+
+291
+u\9at32_t
+ *
+libaþ_n_ruËs
+)
+
+293
+ `´\9atf
+("Create LIBACL\87ctive IPV4 Tables\84te_socket_id(): %i\n",
+
+294
+ `¹e_sock\91_id
+());
+
+297 \19
+¹e_\8fbË_aþ_·¿ms
+
+commÚ_\9dv4_\8fbË_libaþ_·¿ms
+ = {
+
+298 .
+Çme
+ = "LIBACLIPV4A",
+
+299 .
+n_ruËs
+ = *
+libaþ_n_ruËs
+,
+
+300 .
+n_ruË_f\9blds
+ =
+ `RTE_DIM
+(
+f\9bld_fÜm©_\9dv4
+),
+
+303
+ `memýy
+(
+commÚ_\9dv4_\8fbË_libaþ_·¿ms
+.
+f\9bld_fÜm©
+,
+
+304
+f\9bld_fÜm©_\9dv4
+, \17(field_format_ipv4));
+
+306
+u\9at32_t
+
+\9dv4_\92\8cy_size
+ = \17(\19
+lib_aþ_\8fbË_\92\8cy
+);
+
+308 ià(
+\8fbË_num
+ == 2)
+
+309
+commÚ_\9dv4_\8fbË_libaþ_·¿ms
+.
+Çme
+ = "LIBACLIPV4B";
+
+310 \15
+¹e_\8fbË_aþ_Ýs
+.
+ `f_ü\97\8b
+(&
+commÚ_\9dv4_\8fbË_libaþ_·¿ms
+,
+
+311
+ `¹e_sock\91_id
+(),
+
+312
+\9dv4_\92\8cy_size
+);
+
+315
+ }
+}
+
+317 \1e*
+ $lib_aþ_ü\97\8b_aùive_¡ªdby_\8fbË_\9dv6
+(
+u\9at8_t
+
+\8fbË_num
+,
+
+318
+u\9at32_t
+ *
+libaþ_n_ruËs
+)
+
+320
+ `´\9atf
+("Create LIBACL\87ctive IPV6 Tables\84te_socket_id(): %i\n",
+
+321
+ `¹e_sock\91_id
+());
+
+323 \19
+¹e_\8fbË_aþ_·¿ms
+
+commÚ_\9dv6_\8fbË_libaþ_·¿ms
+ = {
+
+324 .
+Çme
+ = "LIBACLIPV6A",
+
+325 .
+n_ruËs
+ = *
+libaþ_n_ruËs
+,
+
+326 .
+n_ruË_f\9blds
+ =
+ `RTE_DIM
+(
+f\9bld_fÜm©_\9dv6
+),
+
+329
+ `memýy
+(
+commÚ_\9dv6_\8fbË_libaþ_·¿ms
+.
+f\9bld_fÜm©
+,
+
+330
+f\9bld_fÜm©_\9dv6
+, \17(field_format_ipv6));
+
+332
+u\9at32_t
+
+\9dv6_\92\8cy_size
+ = \17(\19
+lib_aþ_\8fbË_\92\8cy
+);
+
+334 ià(
+\8fbË_num
+ == 2)
+
+335
+commÚ_\9dv6_\8fbË_libaþ_·¿ms
+.
+Çme
+ = "LIBACLIPV6B";
+
+336 \15
+¹e_\8fbË_aþ_Ýs
+.
+ `f_ü\97\8b
+(&
+commÚ_\9dv6_\8fbË_libaþ_·¿ms
+,
+
+337
+ `¹e_sock\91_id
+(),
+
+338
+\9dv6_\92\8cy_size
+);
+
+341
+ }
+}
+
+342 \12
+ $lib_aþ_·r£_cÚfig
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+343 \ 5*
+¬g_Çme
+, \ 5*
+¬g_v®ue
+,
+
+344
+u\9at32_t
+ *
+libaþ_n_ruËs
+)
+
+346
+u\9at32_t
+
+n_ruËs_´e£Á
+ = 0;
+
+347
+u\9at32_t
+
+pkt_ty³_´e£Á
+ = 0;
+
+349
+¶ib_aþ
+->
+n_ruËs
+ =
+DEFULT_NUM_RULE
+;
+
+350 *
+libaþ_n_ruËs
+ =
+DEFULT_NUM_RULE
+;
+
+351
+¶ib_aþ
+->
+n_ruË_f\9blds
+ =
+ `RTE_DIM
+(
+f\9bld_fÜm©_\9dv4
+);
+
+352
+¶ib_aþ
+->
+f\9bld_fÜm©
+ =
+f\9bld_fÜm©_\9dv4
+;
+
+353
+¶ib_aþ
+->
+f\9bld_fÜm©_size
+ = \17(
+f\9bld_fÜm©_\9dv4
+);
+
+354 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "n_rules") == 0) {
+
+355 ià(
+n_ruËs_´e£Á
+) {
+
+356
+ `´\9atf
+("n_rules_present");
+
+359
+n_ruËs_´e£Á
+ = 1;
+
+361
+¶ib_aþ
+->
+n_ruËs
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+362 *
+libaþ_n_ruËs
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+365 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "pkt_type") == 0) {
+
+366 ià(
+pkt_ty³_´e£Á
+) {
+
+367
+ `´\9atf
+("pkt_type");
+
+370
+pkt_ty³_´e£Á
+ = 1;
+
+373 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "ipv4") == 0) {
+
+374
+¶ib_aþ
+->
+n_ruË_f\9blds
+ =
+
+375
+ `RTE_DIM
+(
+f\9bld_fÜm©_\9dv4
+);
+
+376
+¶ib_aþ
+->
+f\9bld_fÜm©
+ =
+f\9bld_fÜm©_\9dv4
+;
+
+377
+¶ib_aþ
+->
+f\9bld_fÜm©_size
+ =
+
+378 \17(
+f\9bld_fÜm©_\9dv4
+);
+
+383 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "vlan_ipv4") == 0) {
+
+384
+¶ib_aþ
+->
+n_ruË_f\9blds
+ =
+
+385
+ `RTE_DIM
+(
+f\9bld_fÜm©_vÏn_\9dv4
+);
+
+386
+¶ib_aþ
+->
+f\9bld_fÜm©
+ =
+
+387
+f\9bld_fÜm©_vÏn_\9dv4
+;
+
+388
+¶ib_aþ
+->
+f\9bld_fÜm©_size
+ =
+
+389 \17(
+f\9bld_fÜm©_vÏn_\9dv4
+);
+
+394 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "qinq_ipv4") == 0) {
+
+395
+¶ib_aþ
+->
+n_ruË_f\9blds
+ =
+
+396
+ `RTE_DIM
+(
+f\9bld_fÜm©_q\9aq_\9dv4
+);
+
+397
+¶ib_aþ
+->
+f\9bld_fÜm©
+ =
+
+398
+f\9bld_fÜm©_q\9aq_\9dv4
+;
+
+399
+¶ib_aþ
+->
+f\9bld_fÜm©_size
+ =
+
+400 \17(
+f\9bld_fÜm©_q\9aq_\9dv4
+);
+
+405 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "ipv6") == 0) {
+
+406
+¶ib_aþ
+->
+n_ruË_f\9blds
+ =
+
+407
+ `RTE_DIM
+(
+f\9bld_fÜm©_\9dv6
+);
+
+408
+¶ib_aþ
+->
+f\9bld_fÜm©
+ =
+f\9bld_fÜm©_\9dv6
+;
+
+409
+¶ib_aþ
+->
+f\9bld_fÜm©_size
+ =
+
+410 \17(
+f\9bld_fÜm©_\9dv6
+);
+
+414
+ `´\9atf
+("other");
+
+419
+ }
+}
+
+444
+u\9at64_t
+
+
+445
+lib_aþ_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+446 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+447
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+448 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+449 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+450 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+451 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+452
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+453
+u\9at64_t
+ *
+cÚÃxi¡_mask
+,
+
+454 \12
+lib_aþ_\9dv4_\92abËd
+, \12
+lib_aþ_\9dv6_\92abËd
+)
+
+457
+u\9at64_t
+
+ glookup_h\99_mask
+ = 0;
+
+458
+u\9at64_t
+
+ glookup_h\99_mask_\9dv4
+ = 0;
+
+459
+u\9at64_t
+
+ glookup_h\99_mask_\9dv6
+ = 0;
+
+460
+u\9at64_t
+
+ glookup_miss_mask
+ = 0;
+
+461 \12
+ g¡©us
+;
+
+464 ià(
+ glib_aþ_\9dv4_\92abËd
+) {
+
+465 ià(
+ gACL_LIB_DEBUG
+)
+
+466
+´\9atf
+("ACL IPV4 Looku°Mask BefÜ\90ð0x%"
+PRIx64
+"\n",
+
+467
+pkts_mask
+);
+
+468
+ g¡©us
+ =
+¹e_\8fbË_aþ_Ýs
+.
+f_lookup
+(
+
+469
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+470
+pkts
+,
+pkts_mask
+, &
+lookup_h\99_mask_\9dv4
+,
+
+471 (\1e**è
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv4
+);
+
+472 ià(
+ g¡©us
+ < 0)
+
+473
+´\9atf
+("Lookup failed\n");
+
+474 ià(
+ gACL_LIB_DEBUG
+)
+
+475
+´\9atf
+("ACL IPV4 Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+476
+lookup_h\99_mask_\9dv4
+);
+
+479 ià(
+ glib_aþ_\9dv6_\92abËd
+) {
+
+480 ià(
+ gACL_LIB_DEBUG
+)
+
+481
+´\9atf
+("ACL IPV6 Looku°Mask BefÜ\90ð0x%"
+PRIx64
+"\n",
+
+482
+pkts_mask
+);
+
+483
+ g¡©us
+ =
+¹e_\8fbË_aþ_Ýs
+.
+f_lookup
+(
+
+484
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+485
+pkts
+,
+pkts_mask
+, &
+lookup_h\99_mask_\9dv6
+,
+
+486 (\1e**è
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv6
+);
+
+487 ià(
+ g¡©us
+ < 0)
+
+488
+´\9atf
+("Lookup Failed\n");
+
+489 ià(
+ gACL_LIB_DEBUG
+)
+
+490
+´\9atf
+("ACL IPV6 Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+491
+lookup_h\99_mask_\9dv6
+);
+
+495
+ glookup_h\99_mask
+ =
+lookup_h\99_mask_\9dv4
+ |
+lookup_h\99_mask_\9dv6
+;
+
+496 ià(
+ gACL_LIB_DEBUG
+)
+
+497
+´\9atf
+("ACL Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+498
+lookup_h\99_mask
+);
+
+500
+ glookup_miss_mask
+ =
+pkts_mask
+ & (~
+lookup_h\99_mask
+);
+
+501
+ gpkts_mask
+ =
+lookup_h\99_mask
+;
+
+502 *
+ gpkts_drÝ_w\99hout_ruË
+ +ð
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask
+);
+
+503 ià(
+ gACL_LIB_DEBUG
+)
+
+504
+´\9atf
+("pkt_wÜk_aþ_key\85kts_drÝ: %"
+PRIu64
+ "\82_pkts: %u\n",
+
+505 *
+pkts_drÝ_w\99hout_ruË
+,
+
+506
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask
+));
+
+508
+u\9at64_t
+
+ gpkts_to_´oûss
+ =
+lookup_h\99_mask
+;
+
+510 \ f;
+ gpkts_to_´oûss
+;) {
+
+511
+u\9at8_t
+
+ gpos
+ = (u\9at8_t)
+__bu\9et\9a_ùzÎ
+(
+pkts_to_´oûss
+);
+
+513
+u\9at64_t
+
+ gpkt_mask
+ = 1LLU <<
+pos
+;
+
+515
+ gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+516 \19
+¹e_mbuf
+ *
+ gpkt
+ =
+pkts
+[
+pos
+];
+
+518
+u\9at8_t
+
+ ghdr_chk
+ =
+RTE_MBUF_METADATA_UINT8
+(
+pkt
+,
+IP_START
+);
+
+520
+ ghdr_chk
+ =
+hdr_chk
+ >>
+IP_VERSION_CHECK
+;
+
+522 ià(
+ ghdr_chk
+ =ð
+IPv4_HDR_VERSION
+) {
+
+524 \19
+lib_aþ_\8fbË_\92\8cy
+ *
+\92\8cy
+ =
+
+525 (\19
+lib_aþ_\8fbË_\92\8cy
+ *)
+
+526
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv4
+[
+pos
+];
+
+527
+u\9at16_t
+
+ gphy_pÜt
+ =
+\92\8cy
+->
+h\97d
+.
+pÜt_id
+;
+
+528
+u\9at32_t
+
+ gaùiÚ_id
+ =
+\92\8cy
+->
+aùiÚ_id
+;
+
+530 ià(
+ gACL_LIB_DEBUG
+)
+
+531
+´\9atf
+("aùiÚ_id = %u\n",
+aùiÚ_id
+);
+
+533
+u\9at32_t
+
+ gdsý_off£t
+ =
+IP_START
+ +
+IP_HDR_DSCP_OFST
+;
+
+535 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+536
+ glib_aþ_aùiÚ_couÁ
+) {
+
+537
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+538 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+539 [
+aùiÚ_id
+].
+ g·ck\91CouÁ
+++;
+
+540
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+541 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+542 [
+aùiÚ_id
+].
+ gby\8bCouÁ
+ +=
+
+543
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+544 ià(
+ gACL_LIB_DEBUG
+)
+
+545
+´\9atf
+("Action Count Packet Count: %"
+
+546
+PRIu64
+ " Byte Count: %"
+
+547
+PRIu64
+ "\n"
+
+548 ,
+p_aùiÚ_couÁ\94_\8fbË
+
+
+549 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+550 [
+aùiÚ_id
+].
+·ck\91CouÁ
+,
+
+551
+p_aùiÚ_couÁ\94_\8fbË
+
+
+552 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+553 [
+aùiÚ_id
+].
+by\8bCouÁ
+);
+
+556 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+557
+ glib_aþ_aùiÚ_·ck\91_drÝ
+) {
+
+560 ià(
+ gACL_LIB_DEBUG
+)
+
+561
+´\9atf
+("ACL before drop\85kt_mask %"
+
+562
+PRIx64
+",\85kt_num %d\n",
+
+563
+pkts_mask
+,
+pos
+);
+
+564
+ gpkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+565 (*
+ gpkts_drÝ_w\99hout_ruË
+)++;
+
+566 ià(
+ gACL_LIB_DEBUG
+)
+
+567
+´\9atf
+("ACL\87á\94 drÝ\85kt_mask %"
+PRIx64
+
+
+569
+PRIu64
+"\n",
+pkts_mask
+,
+pos
+,
+
+570 *
+pkts_drÝ_w\99hout_ruË
+);
+
+573 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+574
+ glib_aþ_aùiÚ_fwd
+) {
+
+575
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+576
+fwd_pÜt
+;
+
+577
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+578 ià(
+ gACL_LIB_DEBUG
+)
+
+579
+´\9atf
+("Action FWD Port ID: %"
+
+580
+PRIu16
+"\n",
+phy_pÜt
+);
+
+583 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+584
+ glib_aþ_aùiÚ_Çt
+) {
+
+585
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+586
+Çt_pÜt
+;
+
+587
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+588 ià(
+ gACL_LIB_DEBUG
+)
+
+589
+´\9atf
+("Action NAT Port ID: %"
+
+590
+PRIu16
+"\n",
+phy_pÜt
+);
+
+593 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+594
+ glib_aþ_aùiÚ_dsý
+) {
+
+597
+u\9at8_t
+ *
+ gdsý
+ =
+RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+598
+dsý_off£t
+);
+
+599 *
+ gdsý
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+600
+dsý_´iÜ\99y
+ << 2;
+
+601 ià(
+ gACL_LIB_DEBUG
+)
+
+602
+´\9atf
+("Action DSCP DSCP Priority: %"
+
+603
+PRIu16
+ "\n", *
+dsý
+);
+
+606 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+607
+ glib_aþ_aùiÚ_·ck\91_acû±
+) {
+
+608 ià(
+ gACL_LIB_DEBUG
+)
+
+609
+´\9atf
+("Action Accept\n");
+
+611 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+612 &
+ glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+615 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+616 ià(
+ gACL_LIB_DEBUG
+)
+
+617
+´\9atf
+("ACL CT\83nabled: 0x%"
+
+618
+PRIx64
+"\85kt_mask: 0x%"
+
+619
+PRIx64
+"\n",
+
+620 *
+cÚÁ¿ck_mask
+,
+
+621
+pkt_mask
+);
+
+624 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+625 &
+ glib_aþ_aùiÚ_cÚÃxi¡
+) {
+
+628 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+634 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+635
+ g´iv©e_public
+ ==
+
+636
+lib_aþ_public_´iv©e
+)
+
+637 *
+cÚÃxi¡_mask
+ |ð
+pkt_mask
+;
+
+639 ià(
+ gACL_LIB_DEBUG
+)
+
+640
+´\9atf
+("Connexist ENB CT:0x%"
+
+641
+PRIx64
+" connexist: 0x%"
+
+642
+PRIx64
+"\85kt_mask: 0x%"
+
+643
+PRIx64
+"\n",
+
+644 *
+cÚÁ¿ck_mask
+,
+
+645 *
+cÚÃxi¡_mask
+,
+
+646
+pkt_mask
+);
+
+651 ià(
+ ghdr_chk
+ =ð
+IPv6_HDR_VERSION
+) {
+
+653 \19
+lib_aþ_\8fbË_\92\8cy
+ *
+\92\8cy
+ =
+
+654 (\19
+lib_aþ_\8fbË_\92\8cy
+ *)
+
+655
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv6
+[
+pos
+];
+
+656
+u\9at16_t
+
+ gphy_pÜt
+ =
+\92\8cy
+->
+h\97d
+.
+pÜt_id
+;
+
+657
+u\9at32_t
+
+ gaùiÚ_id
+ =
+\92\8cy
+->
+aùiÚ_id
+;
+
+659 ià(
+ gACL_LIB_DEBUG
+)
+
+660
+´\9atf
+("aùiÚ_id = %u\n",
+aùiÚ_id
+);
+
+662 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+663
+ glib_aþ_aùiÚ_couÁ
+) {
+
+664
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+665 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+666 [
+aùiÚ_id
+].
+ g·ck\91CouÁ
+++;
+
+667
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+668 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+669 [
+aùiÚ_id
+].
+ gby\8bCouÁ
+ +=
+
+670
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+671 ià(
+ gACL_LIB_DEBUG
+)
+
+672
+´\9atf
+("Action Count Packet Count: %"
+
+673
+PRIu64
+ " Byte Count: %"
+
+674
+PRIu64
+ "\n",
+
+675
+p_aùiÚ_couÁ\94_\8fbË
+
+
+676 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+677 [
+aùiÚ_id
+].
+·ck\91CouÁ
+,
+
+678
+p_aùiÚ_couÁ\94_\8fbË
+
+
+679 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+680 [
+aùiÚ_id
+].
+by\8bCouÁ
+);
+
+683 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+684
+ glib_aþ_aùiÚ_·ck\91_drÝ
+) {
+
+686 ià(
+ gACL_LIB_DEBUG
+)
+
+687
+´\9atf
+("ACL before drop\85kt_mask %"
+
+688
+PRIx64
+",\85kt_num %d\n",
+
+689
+pkts_mask
+,
+pos
+);
+
+690
+ gpkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+691 (*
+ gpkts_drÝ_w\99hout_ruË
+)++;
+
+692 ià(
+ gACL_LIB_DEBUG
+)
+
+693
+´\9atf
+("ACL\87á\94 drÝ\85kt_mask %"
+PRIx64
+
+
+695
+PRIu64
+ "\n",
+pkts_mask
+,
+pos
+,
+
+696 *
+pkts_drÝ_w\99hout_ruË
+);
+
+700 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+701
+ glib_aþ_aùiÚ_fwd
+) {
+
+702
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+703
+fwd_pÜt
+;
+
+704
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+705 ià(
+ gACL_LIB_DEBUG
+)
+
+706
+´\9atf
+("Action FWD Port ID: %"
+
+707
+PRIu16
+"\n",
+phy_pÜt
+);
+
+710 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+711
+ glib_aþ_aùiÚ_Çt
+) {
+
+712
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+713
+Çt_pÜt
+;
+
+714
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+715 ià(
+ gACL_LIB_DEBUG
+)
+
+716
+´\9atf
+("Action NAT Port ID: %"
+
+717
+PRIu16
+"\n",
+phy_pÜt
+);
+
+720 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+721
+ glib_aþ_aùiÚ_dsý
+) {
+
+724
+u\9at32_t
+
+ gdsý_off£t
+ =
+IP_START
+ +
+
+725
+IP_HDR_DSCP_OFST_IPV6
+;
+
+726
+u\9at16_t
+ *
+ gdsý
+ =
+RTE_MBUF_METADATA_UINT16_PTR
+(
+
+727
+pkt
+,
+dsý_off£t
+);
+
+728
+u\9at16_t
+
+ g\8bmp
+ = *
+dsý
+;
+
+729
+u\9at16_t
+
+ gdsý_v®ue
+ = (
+¹e_bsw16
+(
+\8bmp
+) &
+
+731
+u\9at8_t
+
+ gdsý_¡Üe
+ =
+
+732
+aùiÚ_¬¿y_aùive
+
+
+733 [
+aùiÚ_id
+].
+dsý_´iÜ\99y
+ << 2;
+
+734
+u\9at16_t
+
+ gdsý_\8bmp
+ =
+dsý_¡Üe
+;
+
+736
+ gdsý_\8bmp
+ =
+dsý_\8bmp
+ << 4;
+
+737 *
+ gdsý
+ =
+¹e_bsw16
+(
+dsý_\8bmp
+ |
+dsý_v®ue
+);
+
+738 ià(
+ gACL_LIB_DEBUG
+)
+
+739
+´\9atf
+("Action DSCP DSCP Priority: %"
+
+740
+PRIu16
+"\n", *
+dsý
+);
+
+743 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+744 &
+ glib_aþ_aùiÚ_·ck\91_acû±
+) {
+
+745 ià(
+ gACL_LIB_DEBUG
+)
+
+746
+´\9atf
+("Action Accept\n");
+
+748 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+749 &
+ glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+752 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+753 ià(
+ gACL_LIB_DEBUG
+)
+
+754
+´\9atf
+("ACL CT\83nabled: 0x%"
+
+755
+PRIx64
+"\85kt_mask: 0x%"
+
+756
+PRIx64
+"\n",
+
+757 *
+cÚÁ¿ck_mask
+,
+
+758
+pkt_mask
+);
+
+761 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+762 &
+ glib_aþ_aùiÚ_cÚÃxi¡
+) {
+
+765 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+771 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+772
+ g´iv©e_public
+ ==
+
+773
+lib_aþ_public_´iv©e
+)
+
+774 *
+cÚÃxi¡_mask
+ |ð
+pkt_mask
+;
+
+776 ià(
+ gACL_LIB_DEBUG
+)
+
+777
+´\9atf
+("Connexist ENB CT:0x%"
+
+778
+PRIx64
+" connexist: 0x%"
+
+779
+PRIx64
+"\85kt_mask: 0x%"
+
+780
+PRIx64
+"\n",
+
+781 *
+cÚÁ¿ck_mask
+,
+
+782 *
+cÚÃxi¡_mask
+,
+
+783
+pkt_mask
+);
+
+788 \15
+ gpkts_mask
+;
+
+813
+u\9at64_t
+
+
+814
+lib_aþ_\9dv4_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+815 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+816
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+817 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+818 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+819 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+820
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+821
+u\9at64_t
+ *
+cÚÃxi¡_mask
+)
+
+824
+u\9at64_t
+
+ glookup_h\99_mask_\9dv4
+ = 0;
+
+825
+u\9at64_t
+
+ glookup_miss_mask_\9dv4
+ = 0;
+
+826 \12
+ g¡©us
+;
+
+828 ià(
+ gACL_LIB_DEBUG
+)
+
+829
+´\9atf
+("ACL IPV4 Looku°Mask BefÜ\90ð0x%"
+PRIx64
+"\n",
+
+830
+pkts_mask
+);
+
+831
+ g¡©us
+ =
+¹e_\8fbË_aþ_Ýs
+.
+f_lookup
+(
+
+832
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+833
+pkts
+,
+pkts_mask
+, &
+lookup_h\99_mask_\9dv4
+,
+
+834 (\1e**è
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv4
+);
+
+835 ià(
+ g¡©us
+ < 0)
+
+836
+´\9atf
+("Lookup Failed\n");
+
+837 ià(
+ gACL_LIB_DEBUG
+)
+
+838
+´\9atf
+("ACL IPV4 Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+839
+lookup_h\99_mask_\9dv4
+);
+
+840 ià(
+ gACL_LIB_DEBUG
+)
+
+841
+´\9atf
+("ACL Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+842
+lookup_h\99_mask_\9dv4
+);
+
+844
+ glookup_miss_mask_\9dv4
+ =
+pkts_mask
+ & (~
+lookup_h\99_mask_\9dv4
+);
+
+845
+ gpkts_mask
+ =
+lookup_h\99_mask_\9dv4
+;
+
+846 *
+ gpkts_drÝ_w\99hout_ruË
+ +ð
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask_\9dv4
+);
+
+847 ià(
+ gACL_LIB_DEBUG
+)
+
+848
+´\9atf
+("pkt_wÜk_aþ_key\85kts_drÝ: %"
+PRIu64
+ "\82_pkts: %u\n",
+
+849 *
+pkts_drÝ_w\99hout_ruË
+,
+
+850
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask_\9dv4
+));
+
+852
+u\9at64_t
+
+ gpkts_to_´oûss
+ =
+lookup_h\99_mask_\9dv4
+;
+
+854 \ f;
+ gpkts_to_´oûss
+;) {
+
+855
+u\9at8_t
+
+ gpos
+ = (u\9at8_t)
+__bu\9et\9a_ùzÎ
+(
+pkts_to_´oûss
+);
+
+857
+u\9at64_t
+
+ gpkt_mask
+ = 1LLU <<
+pos
+;
+
+859
+ gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+860 \19
+¹e_mbuf
+ *
+ gpkt
+ =
+pkts
+[
+pos
+];
+
+864 \19
+lib_aþ_\8fbË_\92\8cy
+ *
+ g\92\8cy
+ =
+
+865 (\19
+lib_aþ_\8fbË_\92\8cy
+ *)
+
+866
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv4
+[
+pos
+];
+
+867
+u\9at16_t
+
+ gphy_pÜt
+ =
+\92\8cy
+->
+h\97d
+.
+pÜt_id
+;
+
+868
+u\9at32_t
+
+ gaùiÚ_id
+ =
+\92\8cy
+->
+aùiÚ_id
+;
+
+870 ià(
+ gACL_LIB_DEBUG
+)
+
+871
+´\9atf
+("aùiÚ_id = %u\n",
+aùiÚ_id
+);
+
+873
+u\9at32_t
+
+ gdsý_off£t
+ =
+IP_START
+ +
+IP_HDR_DSCP_OFST
+;
+
+875 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+876
+ glib_aþ_aùiÚ_couÁ
+) {
+
+877
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+878 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+879 [
+aùiÚ_id
+].
+ g·ck\91CouÁ
+++;
+
+880
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+881 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+882 [
+aùiÚ_id
+].
+ gby\8bCouÁ
+ +=
+
+883
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+884 ià(
+ gACL_LIB_DEBUG
+)
+
+885
+´\9atf
+("Action Count Packet Count: %"
+
+886
+PRIu64
+ " Byte Count: %"
+
+887
+PRIu64
+ "\n"
+
+888 ,
+p_aùiÚ_couÁ\94_\8fbË
+
+
+889 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+890 [
+aùiÚ_id
+].
+·ck\91CouÁ
+,
+
+891
+p_aùiÚ_couÁ\94_\8fbË
+
+
+892 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+893 [
+aùiÚ_id
+].
+by\8bCouÁ
+);
+
+896 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+897
+ glib_aþ_aùiÚ_·ck\91_drÝ
+) {
+
+900 ià(
+ gACL_LIB_DEBUG
+)
+
+901
+´\9atf
+("ACL before drop\85kt_mask %"
+
+902
+PRIx64
+",\85kt_num %d\n",
+
+903
+pkts_mask
+,
+pos
+);
+
+904
+ gpkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+905 (*
+ gpkts_drÝ_w\99hout_ruË
+)++;
+
+906 ià(
+ gACL_LIB_DEBUG
+)
+
+907
+´\9atf
+("ACL\87á\94 drÝ\85kt_mask %"
+PRIx64
+
+
+909
+PRIu64
+ "\n",
+pkts_mask
+,
+pos
+,
+
+910 *
+pkts_drÝ_w\99hout_ruË
+);
+
+913 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+914
+ glib_aþ_aùiÚ_fwd
+) {
+
+915
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+916
+fwd_pÜt
+;
+
+917
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+918 ià(
+ gACL_LIB_DEBUG
+)
+
+919
+´\9atf
+("Action FWD Port ID: %"
+
+920
+PRIu16
+"\n",
+phy_pÜt
+);
+
+923 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+924
+ glib_aþ_aùiÚ_Çt
+) {
+
+925
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+926
+Çt_pÜt
+;
+
+927
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+928 ià(
+ gACL_LIB_DEBUG
+)
+
+929
+´\9atf
+("Action NAT Port ID: %"
+
+930
+PRIu16
+"\n",
+phy_pÜt
+);
+
+933 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+934
+ glib_aþ_aùiÚ_dsý
+) {
+
+937
+u\9at8_t
+ *
+ gdsý
+ =
+RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+938
+dsý_off£t
+);
+
+939 *
+ gdsý
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+940
+dsý_´iÜ\99y
+ << 2;
+
+941 ià(
+ gACL_LIB_DEBUG
+)
+
+942
+´\9atf
+("Action DSCP DSCP Priority: %"
+
+943
+PRIu16
+ "\n", *
+dsý
+);
+
+946 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+947
+ glib_aþ_aùiÚ_·ck\91_acû±
+) {
+
+948 ià(
+ gACL_LIB_DEBUG
+)
+
+949
+´\9atf
+("Action Accept\n");
+
+951 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+952 &
+ glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+955 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+956 ià(
+ gACL_LIB_DEBUG
+)
+
+957
+´\9atf
+("ACL CT\83nabled: 0x%"
+
+958
+PRIx64
+"\85kt_mask: 0x%"
+
+959
+PRIx64
+"\n",
+
+960 *
+cÚÁ¿ck_mask
+,
+
+961
+pkt_mask
+);
+
+964 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+965 &
+ glib_aþ_aùiÚ_cÚÃxi¡
+) {
+
+968 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+974 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+975
+ g´iv©e_public
+ ==
+
+976
+lib_aþ_public_´iv©e
+)
+
+977 *
+cÚÃxi¡_mask
+ |ð
+pkt_mask
+;
+
+979 ià(
+ gACL_LIB_DEBUG
+)
+
+980
+´\9atf
+("ACL Connexist ENB CT:0x%"
+
+981
+PRIx64
+" connexist: 0x%"
+
+982
+PRIx64
+"\85kt_mask: 0x%"
+
+983
+PRIx64
+"\n",
+
+984 *
+cÚÁ¿ck_mask
+,
+
+985 *
+cÚÃxi¡_mask
+,
+
+986
+pkt_mask
+);
+
+991 \15
+ gpkts_mask
+;
+
+1016
+u\9at64_t
+
+
+1017
+lib_aþ_\9dv6_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+1018 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+1019
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+1020 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+1021 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+1022 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+1023
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+1024
+u\9at64_t
+ *
+cÚÃxi¡_mask
+)
+
+1027
+u\9at64_t
+
+ glookup_h\99_mask_\9dv6
+ = 0;
+
+1028
+u\9at64_t
+
+ glookup_miss_mask_\9dv6
+ = 0;
+
+1029 \12
+ g¡©us
+;
+
+1032 ià(
+ gACL_LIB_DEBUG
+)
+
+1033
+´\9atf
+("ACL IPV6 Looku°Mask BefÜ\90ð0x%"
+PRIx64
+"\n",
+
+1034
+pkts_mask
+);
+
+1035
+ g¡©us
+ =
+¹e_\8fbË_aþ_Ýs
+.
+f_lookup
+(
+
+1036
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+1037
+pkts
+,
+pkts_mask
+, &
+lookup_h\99_mask_\9dv6
+,
+
+1038 (\1e**è
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv6
+);
+
+1039 ià(
+ g¡©us
+ < 0)
+
+1040
+´\9atf
+("Lookup Failed\n");
+
+1041 ià(
+ gACL_LIB_DEBUG
+)
+
+1042
+´\9atf
+("ACL IPV6 Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+1043
+lookup_h\99_mask_\9dv6
+);
+
+1045 ià(
+ gACL_LIB_DEBUG
+)
+
+1046
+´\9atf
+("ACL Looku°Mask Aá\94 = 0x%"
+PRIx64
+"\n",
+
+1047
+lookup_h\99_mask_\9dv6
+);
+
+1049
+ glookup_miss_mask_\9dv6
+ =
+pkts_mask
+ & (~
+lookup_h\99_mask_\9dv6
+);
+
+1050
+ gpkts_mask
+ =
+lookup_h\99_mask_\9dv6
+;
+
+1051 *
+ gpkts_drÝ_w\99hout_ruË
+ +ð
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask_\9dv6
+);
+
+1052 ià(
+ gACL_LIB_DEBUG
+)
+
+1053
+´\9atf
+("pkt_wÜk_aþ_key\85kts_drÝ: %"
+PRIu64
+ "\82_pkts: %u\n",
+
+1054 *
+pkts_drÝ_w\99hout_ruË
+,
+
+1055
+__bu\9et\9a_pÝcouÁÎ
+(
+lookup_miss_mask_\9dv6
+));
+
+1057
+u\9at64_t
+
+ gpkts_to_´oûss
+ =
+lookup_h\99_mask_\9dv6
+;
+
+1059 \ f;
+ gpkts_to_´oûss
+;) {
+
+1060
+u\9at8_t
+
+ gpos
+ = (u\9at8_t)
+__bu\9et\9a_ùzÎ
+(
+pkts_to_´oûss
+);
+
+1062
+u\9at64_t
+
+ gpkt_mask
+ = 1LLU <<
+pos
+;
+
+1064
+ gpkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1065 \19
+¹e_mbuf
+ *
+ gpkt
+ =
+pkts
+[
+pos
+];
+
+1068 \19
+lib_aþ_\8fbË_\92\8cy
+ *
+ g\92\8cy
+ =
+
+1069 (\19
+lib_aþ_\8fbË_\92\8cy
+ *)
+
+1070
+¶ib_aþ
+->
+¶ib_aþ_\92\8c\9bs_\9dv6
+[
+pos
+];
+
+1071
+u\9at16_t
+
+ gphy_pÜt
+ =
+\92\8cy
+->
+h\97d
+.
+pÜt_id
+;
+
+1072
+u\9at32_t
+
+ gaùiÚ_id
+ =
+\92\8cy
+->
+aùiÚ_id
+;
+
+1074 ià(
+ gACL_LIB_DEBUG
+)
+
+1075
+´\9atf
+("aùiÚ_id = %u\n",
+aùiÚ_id
+);
+
+1077 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+1078
+ glib_aþ_aùiÚ_couÁ
+) {
+
+1079
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+1080 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+1081 [
+aùiÚ_id
+].
+ g·ck\91CouÁ
+++;
+
+1082
+ gp_aùiÚ_couÁ\94_\8fbË
+
+
+1083 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+1084 [
+aùiÚ_id
+].
+ gby\8bCouÁ
+ +=
+
+1085
+¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+1086 ià(
+ gACL_LIB_DEBUG
+)
+
+1087
+´\9atf
+("Action Count Packet Count: %"
+
+1088
+PRIu64
+ " Byte Count: %"
+
+1089
+PRIu64
+ "\n",
+
+1090
+p_aùiÚ_couÁ\94_\8fbË
+
+
+1091 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+1092 [
+aùiÚ_id
+].
+·ck\91CouÁ
+,
+
+1093
+p_aùiÚ_couÁ\94_\8fbË
+
+
+1094 [
+¶ib_aþ
+->
+aùiÚ_couÁ\94_\9adex
+]
+
+1095 [
+aùiÚ_id
+].
+by\8bCouÁ
+);
+
+1098 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+1099
+ glib_aþ_aùiÚ_·ck\91_drÝ
+) {
+
+1101 ià(
+ gACL_LIB_DEBUG
+)
+
+1102
+´\9atf
+("ACL before drop\85kt_mask %"
+
+1103
+PRIx64
+",\85kt_num %d\n",
+
+1104
+pkts_mask
+,
+pos
+);
+
+1105
+ gpkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+1106 (*
+ gpkts_drÝ_w\99hout_ruË
+)++;
+
+1107 ià(
+ gACL_LIB_DEBUG
+)
+
+1108
+´\9atf
+("ACL\87á\94 drÝ\85kt_mask %"
+PRIx64
+
+
+1110
+PRIu64
+ "\n",
+pkts_mask
+,
+pos
+,
+
+1111 *
+pkts_drÝ_w\99hout_ruË
+);
+
+1115 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+1116
+ glib_aþ_aùiÚ_fwd
+) {
+
+1117
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+1118
+fwd_pÜt
+;
+
+1119
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+1120 ià(
+ gACL_LIB_DEBUG
+)
+
+1121
+´\9atf
+("Action FWD Port ID: %"
+
+1122
+PRIu16
+"\n",
+phy_pÜt
+);
+
+1125 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+1126
+ glib_aþ_aùiÚ_Çt
+) {
+
+1127
+ gphy_pÜt
+ =
+aùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+1128
+Çt_pÜt
+;
+
+1129
+ g\92\8cy
+->
+ gh\97d
+.
+ gpÜt_id
+ =
+phy_pÜt
+;
+
+1130 ià(
+ gACL_LIB_DEBUG
+)
+
+1131
+´\9atf
+("Action NAT Port ID: %"
+
+1132
+PRIu16
+"\n",
+phy_pÜt
+);
+
+1135 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+ &
+
+1136
+ glib_aþ_aùiÚ_dsý
+) {
+
+1139
+u\9at32_t
+
+ gdsý_off£t
+ =
+IP_START
+ +
+
+1140
+IP_HDR_DSCP_OFST_IPV6
+;
+
+1141
+u\9at16_t
+ *
+ gdsý
+ =
+RTE_MBUF_METADATA_UINT16_PTR
+(
+
+1142
+pkt
+,
+dsý_off£t
+);
+
+1143
+u\9at16_t
+
+ g\8bmp
+ = *
+dsý
+;
+
+1144
+u\9at16_t
+
+ gdsý_v®ue
+ = (
+¹e_bsw16
+(
+\8bmp
+) &
+
+1146
+u\9at8_t
+
+ gdsý_¡Üe
+ =
+
+1147
+aùiÚ_¬¿y_aùive
+
+
+1148 [
+aùiÚ_id
+].
+dsý_´iÜ\99y
+ << 2;
+
+1149
+u\9at16_t
+
+ gdsý_\8bmp
+ =
+dsý_¡Üe
+;
+
+1151
+ gdsý_\8bmp
+ =
+dsý_\8bmp
+ << 4;
+
+1152 *
+ gdsý
+ =
+¹e_bsw16
+(
+dsý_\8bmp
+ |
+dsý_v®ue
+);
+
+1153 ià(
+ gACL_LIB_DEBUG
+)
+
+1154
+´\9atf
+("Action DSCP DSCP Priority: %"
+
+1155
+PRIu16
+"\n", *
+dsý
+);
+
+1158 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+1159 &
+ glib_aþ_aùiÚ_·ck\91_acû±
+) {
+
+1160 ià(
+ gACL_LIB_DEBUG
+)
+
+1161
+´\9atf
+("Action Accept\n");
+
+1163 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+1164 &
+ glib_aþ_aùiÚ_cÚÁ¿ck
+) {
+
+1167 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+1168 ià(
+ gACL_LIB_DEBUG
+)
+
+1169
+´\9atf
+("ACL CT\83nabled: 0x%"
+
+1170
+PRIx64
+"\85kt_mask: 0x%"
+
+1171
+PRIx64
+"\n",
+
+1172 *
+cÚÁ¿ck_mask
+,
+
+1173
+pkt_mask
+);
+
+1176 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+ gaùiÚ_b\99m
+
+
+1177 &
+ glib_aþ_aùiÚ_cÚÃxi¡
+) {
+
+1180 *
+ gcÚÁ¿ck_mask
+ |ð
+pkt_mask
+;
+
+1186 ià(
+ gaùiÚ_¬¿y_aùive
+[
+aùiÚ_id
+].
+
+1187
+ g´iv©e_public
+ ==
+
+1188
+lib_aþ_public_´iv©e
+)
+
+1189 *
+cÚÃxi¡_mask
+ |ð
+pkt_mask
+;
+
+1191 ià(
+ gACL_LIB_DEBUG
+)
+
+1192
+´\9atf
+("ACL Connexist ENB CT:0x%"
+
+1193
+PRIx64
+" connexist: 0x%"
+
+1194
+PRIx64
+"\85kt_mask: 0x%"
+
+1195
+PRIx64
+"\n",
+
+1196 *
+cÚÁ¿ck_mask
+,
+
+1197 *
+cÚÃxi¡_mask
+,
+
+1198
+pkt_mask
+);
+
+1202 \15
+ gpkts_mask
+;
+
+ @VIL/acl/lib_acl.h
+
+17 #iâdeà
+__INCLUDE_ACL_LIB_H__
+
+
+18 \ 1
+ #__INCLUDE_ACL_LIB_H__
+
+
+ )
+
+20 \ 2
+ ~<¡dlib.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<\9a\89y³s.h
+>
+
+23 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+24 \ 2
+ ~<¹e_\8fbË_aþ.h
+>
+
+25 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+26 \ 2
+ ~"¹e_ù_tý.h
+"
+
+28 \ 1
+ #lib_aþ_aùiÚ_·ck\91_drÝ
+ 1
+
+ )
+
+29 \ 1
+ #lib_aþ_aùiÚ_·ck\91_acû±
+ 2
+
+ )
+
+30 \ 1
+ #lib_aþ_aùiÚ_Çt
+ 4
+
+ )
+
+31 \ 1
+ #lib_aþ_aùiÚ_fwd
+ 8
+
+ )
+
+32 \ 1
+ #lib_aþ_aùiÚ_couÁ
+ 16
+
+ )
+
+33 \ 1
+ #lib_aþ_aùiÚ_dsý
+ 32
+
+ )
+
+34 \ 1
+ #lib_aþ_aùiÚ_cÚÁ¿ck
+ 64
+
+ )
+
+35 \ 1
+ #lib_aþ_aùiÚ_cÚÃxi¡
+ 128
+
+ )
+
+36 \ 1
+ #aùiÚ_¬¿y_max
+ 10000
+
+ )
+
+37 \ 1
+ #lib_aþ_´iv©e_public
+ 0
+
+ )
+
+38 \ 1
+ #lib_aþ_public_´iv©e
+ 1
+
+ )
+
+39 \ 1
+ #IP_HDR_DSCP_OFST
+ 1
+
+ )
+
+40 \ 1
+ #IPv4_HDR_VERSION
+ 4
+
+ )
+
+41 \ 1
+ #IPv6_HDR_VERSION
+ 6
+
+ )
+
+42 \ 1
+ #IP_HDR_DSCP_OFST_IPV6
+ 0
+
+ )
+
+43 \ 1
+ #IP_VERSION_CHECK
+ 4
+
+ )
+
+44 \ 1
+ #IP_START
+ (
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+45 \ 1
+ #DEFULT_NUM_RULE
+ (4*1024)
+
+ )
+
+49 \19
+ sp\9d\96\9ae_aùiÚ_key
+ {
+
+50
+u\9at32_t
+
+ maùiÚ_id
+;
+
+51
+u\9at32_t
+
+ maùiÚ_b\99m
+;
+
+52
+u\9at32_t
+
+ mÇt_pÜt
+;
+
+53
+u\9at32_t
+
+ mfwd_pÜt
+;
+
+54
+u\9at8_t
+
+ mdsý_´iÜ\99y
+;
+
+55
+u\9at8_t
+
+ m´iv©e_public
+;
+
+56 }
+ g__¹e_ÿche_®igÃd
+;
+
+62 \19
+ saùiÚ_couÁ\94_block
+ {
+
+63
+u\9at64_t
+
+ mby\8bCouÁ
+;
+
+64
+u\9at64_t
+
+ m·ck\91CouÁ
+;
+
+65 }
+ g__¹e_ÿche_®igÃd
+;
+
+70 \19
+ slib_aþ_\8fbË_\92\8cy
+ {
+
+71 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+ mh\97d
+;
+
+72
+u\9at32_t
+
+ maùiÚ_id
+;
+
+76 \19
+ slib_aþ
+ {
+
+77
+u\9at32_t
+
+ mn_ruËs
+;
+
+78
+u\9at32_t
+
+ mn_ruË_f\9blds
+;
+
+79 \19
+¹e_aþ_f\9bld_def
+ *
+ mf\9bld_fÜm©
+;
+
+80
+u\9at32_t
+
+ mf\9bld_fÜm©_size
+;
+
+81 \12
+ maùiÚ_couÁ\94_\9adex
+;
+
+82 \19
+lib_aþ_\8fbË_\92\8cy
+
+
+83 *
+ m¶ib_aþ_\92\8c\9bs_\9dv4
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+84 \19
+lib_aþ_\8fbË_\92\8cy
+
+
+85 *
+ m¶ib_aþ_\92\8c\9bs_\9dv6
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+86 }
+ g__¹e_ÿche_®igÃd
+;
+
+88 \1e*
+lib_aþ_ü\97\8b_aùive_¡ªdby_\8fbË_\9dv4
+(
+u\9at8_t
+
+\8fbË_num
+,
+
+89
+u\9at32_t
+ *
+libaþ_n_ruËs
+);
+
+91 \1e*
+lib_aþ_ü\97\8b_aùive_¡ªdby_\8fbË_\9dv6
+(
+u\9at8_t
+
+\8fbË_num
+,
+
+92
+u\9at32_t
+ *
+libaþ_n_ruËs
+);
+
+93 \12
+lib_aþ_·r£_cÚfig
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+94 \ 5*
+¬g_Çme
+, \ 5*
+¬g_v®ue
+,
+
+95
+u\9at32_t
+ *
+libaþ_n_ruËs
+);
+
+96
+u\9at64_t
+
+
+97
+lib_aþ_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+98 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+99
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+100 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+101 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+102 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+103 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+104
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+105
+u\9at64_t
+ *
+cÚÃxi¡_mask
+,
+
+106 \12
+lib_aþ_\9dv4_\92abËd
+, \12
+lib_aþ_\9dv6_\92abËd
+);
+
+107
+u\9at64_t
+
+
+108
+lib_aþ_\9dv4_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+109 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+110
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+111 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv4_aùive
+,
+
+112 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+113 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+114
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+115
+u\9at64_t
+ *
+cÚÃxi¡_mask
+);
+
+116
+u\9at64_t
+
+
+117
+lib_aþ_\9dv6_pkt_wÜk_key
+(\19
+lib_aþ
+ *
+¶ib_aþ
+,
+
+118 \19
+¹e_mbuf
+ **
+pkts
+,
+u\9at64_t
+
+pkts_mask
+,
+
+119
+u\9at64_t
+ *
+pkts_drÝ_w\99hout_ruË
+,
+
+120 \1e*
+¶ib_aþ_ruË_\8fbË_\9dv6_aùive
+,
+
+121 \19
+p\9d\96\9ae_aùiÚ_key
+ *
+aùiÚ_¬¿y_aùive
+,
+
+122 \19
+aùiÚ_couÁ\94_block
+ (*
+p_aùiÚ_couÁ\94_\8fbË
+)[
+aùiÚ_¬¿y_max
+],
+
+123
+u\9at64_t
+ *
+cÚÁ¿ck_mask
+,
+
+124
+u\9at64_t
+ *
+cÚÃxi¡_mask
+);
+
+ @VIL/alg/lib_ftp_alg.c
+
+16 \ 2
+ ~<¡dio.h
+>
+
+17 \ 2
+ ~<¡dlib.h
+>
+
+18 \ 2
+ ~<¡d\9at.h
+>
+
+19 \ 2
+ ~<¡r\9ag.h
+>
+
+20 \ 2
+ ~<uni¡d.h
+>
+
+22 \ 2
+ ~<p.h
+>
+
+23 \ 2
+ ~<¹e_commÚ.h
+>
+
+24 \ 2
+ ~<¹e_m®loc.h
+>
+
+25 \ 2
+ ~<¹e_mbuf.h
+>
+
+26 \ 2
+ ~<¹e_\9d.h
+>
+
+27 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+28 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+29 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+30 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+31 \ 2
+ ~<¹e_¬p.h
+>
+
+32 \ 2
+ ~<¹e_icmp.h
+>
+
+33 \ 2
+ ~<¹e_hash.h
+>
+
+34 \ 2
+ ~<¹e_jhash.h
+>
+
+35 \ 2
+ ~<¹e_cyþes.h
+>
+
+36 \ 2
+ ~"p\9d\96\9ae_cgDZ_commÚ.h
+"
+
+37 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+38 \ 2
+ ~"p\9d\96\9ae_cgDZ_be.h
+"
+
+39 \ 2
+ ~"hash_func.h
+"
+
+40 \ 2
+ ~"lib_áp_®g.h
+"
+
+41 \ 2
+ ~"vnf_commÚ.h
+"
+
+42 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+43 \ 2
+ ~"¹e_ù_tý.h
+"
+
+44 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+45 \ 1
+ #ALG_DEBUG
+ 1
+
+ )
+
+48 \r
+u\9at8_t
+
+
+49
+¹e_ù_ü\97\8b_úxn_hashkey
+(
+
+50
+u\9at32_t
+ *
+¤c_addr
+,
+
+51
+u\9at32_t
+ *
+d¡_addr
+,
+
+52
+u\9at16_t
+
+¤c_pÜt
+,
+
+53
+u\9at16_t
+
+d¡_pÜt
+,
+
+54
+u\9at8_t
+
+´Ùo
+,
+
+55
+u\9at32_t
+ *
+key
+,
+
+56
+u\9at8_t
+
+ty³
+);
+
+59 \19
+¹e_mbuf
+ *
+ glib_®g_pkt
+;
+
+60 \92um {
+ mPRIVATE
+,
+ mPUBLIC
+};
+
+61 \19
+¹e_hash_·¿m\91\94s
+
+ gáp_®g_hash_·¿ms
+ = {
+
+62 .
+Çme
+ = "FTP ALG",
+
+63 .
+ g\92\8c\9bs
+ = 1024,
+
+64 .
+ gȣrved
+ = 0,
+
+65 .
+ gkey_Ën
+ = \17(\19
+áp_®g_key
+),
+
+66 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+67 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+70 \19
+¹e_hash
+ *
+ gáp_®g_hash_hªdË
+;
+
+75 \1e
+ $lib_áp_®g_\9a\99
+(\1e)
+
+77
+ `´\9atf
+("NAT FTP ALG initialization ...\n");
+
+81
+áp_®g_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+áp_®g_hash_·¿ms
+);
+
+83 #ifdeà
+ALGDBG
+
+
+84 ià(
+áp_®g_hash_hªdË
+ =ð
+NULL
+)
+
+85
+ `´\9atf
+("FTP ALG\84te_hash_create failed ...\n");
+
+87
+ `´\9atf
+("ftp_alg_hash_table %p\n\n",
+
+88 (\1e*)
+áp_®g_hash_hªdË
+);
+
+91
+ }
+}
+
+99 \19
+áp_®g_\8fbË_\92\8cy
+ *
+ $»\8c\9bve_áp_®g_\92\8cy
+(\19
+áp_®g_key
+
+®g_key
+)
+
+101 \19
+áp_®g_\8fbË_\92\8cy
+ *
+»t_®g_d©a
+ =
+NULL
+;
+
+102
+®g_key
+.
+f\9eËr1
+ = 0;
+
+103
+®g_key
+.
+f\9eËr2
+ = 0;
+
+105 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+,
+
+106 (\1e**)&
+»t_®g_d©a
+);
+
+107 ià(
+»t
+ < 0) {
+
+108 #ifdeà
+ALGDBG
+
+
+109
+ `´\9atf
+("alg-hash\86ookup failed\84et %d, EINVAL %d, ENOENT %d\n",
+
+110
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+113 \15
+»t_®g_d©a
+;
+
+116 \15
+NULL
+;
+
+117
+ }
+}
+
+124 \18\12
+ $»move_áp_®g_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+)
+
+129 \19
+áp_®g_key
+
+®g_key
+;
+
+130
+®g_key
+.
+l4pÜt
+ =
+ `¹e_bsw16
+(
+pÜtid
+);
+
+131
+®g_key
+.
+\9d_add»ss
+ =
+ `¹e_bsw32
+(
+\9daddr
+);
+
+132
+®g_key
+.
+f\9eËr1
+ = 0;
+
+133
+®g_key
+.
+f\9eËr2
+ = 0;
+
+135 #ifdeà
+ALGDBG
+
+
+136
+ `´\9atf
+("»move_®g_\92\8cy i°%x,\85Ü\88%d\n",
+®g_key
+.
+\9d_add»ss
+,
+
+137
+®g_key
+.
+l4pÜt
+);
+
+139 \15
+ `¹e_hash_d\96_key
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+);
+
+140
+ }
+}
+
+147
+ $pÝuÏ\8b_áp_®g_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+)
+
+151 \19
+áp_®g_key
+
+®g_key
+;
+
+152
+®g_key
+.
+l4pÜt
+ =
+ `¹e_bsw16
+(
+pÜtid
+);
+
+154
+®g_key
+.
+\9d_add»ss
+ =
+ `¹e_bsw32
+(
+\9daddr
+);
+
+155
+®g_key
+.
+f\9eËr1
+ = 0;
+
+156
+®g_key
+.
+f\9eËr2
+ = 0;
+
+161 #ifdeà
+ALGDBG
+
+
+162
+ `´\9atf
+("pÝuÏ\8b_áp_®g_\92\8cy i°%x,\85Ü\88%d\n",
+®g_key
+.
+\9d_add»ss
+,
+
+163
+®g_key
+.
+l4pÜt
+);
+
+166 \19
+áp_®g_\8fbË_\92\8cy
+ *
+Ãw_®g_d©a
+ =
+
+167
+ `»\8c\9bve_áp_®g_\92\8cy
+(
+®g_key
+);
+
+168 ià(
+Ãw_®g_d©a
+) {
+
+169 #ifdeà
+ALGDBG
+
+
+170
+ `´\9atf
+("®g_\92\8cy\83xi¡ \9d%x,\85Ü\88%d\n",
+®g_key
+.
+\9d_add»ss
+,
+
+171
+®g_key
+.
+l4pÜt
+);
+
+176
+Ãw_®g_d©a
+ = (\19
+áp_®g_\8fbË_\92\8cy
+ *)
+
+177
+ `m®loc
+(\17(
+Ãw_®g_d©a
+));
+
+179
+Ãw_®g_d©a
+->
+l4pÜt
+ =
+ `¹e_bsw16
+(
+pÜtid
+);
+
+180
+Ãw_®g_d©a
+->
+\9d_add»ss
+ =
+ `¹e_bsw32
+(
+\9daddr
+);
+
+181
+ `¹e_hash_add_key_d©a
+(
+áp_®g_hash_hªdË
+, &
+®g_key
+,
+Ãw_®g_d©a
+);
+
+183 #ifdeà
+ALGDBG
+
+
+185
+´\9atf
+
+
+187 (
+®g_key
+.
+\9d_add»ss
+ >> 24),
+
+188 ((
+®g_key
+.
+\9d_add»ss
+ & 0x00ff0000) >> 16),
+
+189 ((
+®g_key
+.
+\9d_add»ss
+ & 0x0000ff00) >> 8),
+
+190 ((
+®g_key
+.
+\9d_add»ss
+ & 0x000000ff)),
+pÜtid
+);
+
+192
+ `puts
+("");
+
+194
+ }
+}
+
+202 \12
+ $áp_®g_modify_·ylßd
+(
+
+203 \19
+cgDZ_\8fbË_\92\8cy
+ *
+eg»ss_\92\8cy
+,
+
+204 \ 5*
+pÜt_¡r\9ag
+,
+
+205 \ 5*
+pÜt_¡r\9ag_\8cª¦©ed
+, \12
+áp_£ssiÚ_ty³
+)
+
+207
+u\9at32_t
+
+\8cª¥Üt_\9d
+;
+
+208
+u\9at16_t
+
+\8cª¥Üt_pÜt
+;
+
+209
+u\9at16_t
+
+tmp1
+,
+tmp2
+,
+tmp3
+,
+tmp4
+,
+tmp5
+,
+tmp6
+;
+
+210
+u\9at16_t
+
+Ãw_pÜt_¡r\9ag_Ëngth
+;
+
+212
+u\9at8_t
+ *
+b±r_public_add»ss
+;
+
+214
+\8cª¥Üt_\9d
+ =
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_\9d
+;
+
+215
+\8cª¥Üt_pÜt
+ =
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_pÜt
+;
+
+216
+tmp5
+ = (
+u\9at16_t
+è(
+\8cª¥Üt_pÜt
+/0x100);
+
+217
+tmp6
+ = (
+u\9at16_t
+è(
+\8cª¥Üt_pÜt
+ % 0x100);
+
+219
+\8cª¥Üt_\9d
+ =
+ `¹e_bsw32
+(transport_ip);
+
+221
+b±r_public_add»ss
+ = (
+u\9at8_t
+ *è&
+\8cª¥Üt_\9d
+;
+
+223
+tmp4
+ =
+b±r_public_add»ss
+[3];
+
+224
+tmp3
+ =
+b±r_public_add»ss
+[2];
+
+225
+tmp2
+ =
+b±r_public_add»ss
+[1];
+
+226
+tmp1
+ =
+b±r_public_add»ss
+[0];
+
+228 ià(
+áp_£ssiÚ_ty³
+ == 1)
+
+229
+ `¥r\9atf
+(
+pÜt_¡r\9ag_\8cª¦©ed
+,
+FTP_PASV_PARAMETER_STRING
+,
+
+230
+FTP_PASV_RETURN_CODE
+,
+tmp1
+,
+tmp2
+,
+tmp3
+,
+tmp4
+,
+
+231
+tmp5
+,
+tmp6
+);
+
+233
+ `¥r\9atf
+(
+pÜt_¡r\9ag_\8cª¦©ed
+,
+FTP_PORT_PARAMETER_STRING
+,
+
+234
+tmp1
+,
+tmp2
+,
+tmp3
+,
+tmp4
+,
+tmp5
+,
+tmp6
+);
+
+235 #ifdeà
+ALGDBG
+
+
+236
+ `´\9atf
+("FTP ALG: FTP\82ew string: Len:%d %s\n",
+
+237 (
+u\9at16_t
+è
+ `¡¾\92
+(
+pÜt_¡r\9ag_\8cª¦©ed
+)-2,
+
+238
+pÜt_¡r\9ag_\8cª¦©ed
+);
+
+240
+ `´\9atf
+("FTP\82on\81ranslated PASV string: Len:%d, %s\n",
+
+241 (
+u\9at16_t
+)
+ `¡¾\92
+(
+pÜt_¡r\9ag
+)-2,\85ort_string);
+
+242
+ `´\9atf
+("old strlen:%d\82ew strlen:%d\n",
+
+243 (\12)
+ `¡¾\92
+(
+pÜt_¡r\9ag
+),
+
+244 (\12)
+ `¡¾\92
+(
+pÜt_¡r\9ag_\8cª¦©ed
+));
+
+247 \15(
+Ãw_pÜt_¡r\9ag_Ëngth
+ =
+
+248 (
+u\9at16_t
+è
+ `¡¾\92
+(
+pÜt_¡r\9ag_\8cª¦©ed
+));
+
+249
+ }
+}
+
+256 \18
+\9al\9ae
+ \1e
+ $áp_®g_modify_pkt_Ën
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+258
+u\9at16_t
+
+pkt_Ëngth
+ = 0;
+
+259 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+pkt
+);
+
+260 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+262 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+263 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19\9dv4_hd¸*)
+\9dhdr
+;
+
+264
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr4
+->
+tÙ®_Ëngth
+è+
+ETH_HDR_SIZE
+;
+
+265 } \vià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+266 \19
+\9dv6_hdr
+ *
+ihdr6
+ = (\19\9dv6_hd¸*)
+\9dhdr
+;
+
+267
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr6
+->
+·ylßd_Ën
+) +
+
+268
+IPv6_HEADER_SIZE
+ +
+ETH_HDR_SIZE
+;
+
+271
+u\9at16_t
+
+mbuf_pkt_Ëngth
+ =
+ `¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+273 ià(
+pkt_Ëngth
+ =ð
+mbuf_pkt_Ëngth
+)
+
+276 ià(
+pkt_Ëngth
+ <
+mbuf_pkt_Ëngth
+) {
+
+277
+ `¹e_pktmbuf_\8cim
+(
+pkt
+,
+mbuf_pkt_Ëngth
+ -
+pkt_Ëngth
+);
+
+282
+ `¹e_pktmbuf_³nd
+(
+pkt
+,
+pkt_Ëngth
+ -
+mbuf_pkt_Ëngth
+);
+
+283
+ }
+}
+
+292
+u\9at16_t
+
+ $áp_®g_g\91_IP_hdr_size
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+298
+u\9at8_t
+
+hdr_chk
+ =
+ `RTE_MBUF_METADATA_UINT8
+(
+pkt
+,
+IP_START
+);
+
+299
+hdr_chk
+ = hdr_chk >> 4;
+
+301 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+)
+
+302 \15
+IPv4_HEADER_SIZE
+;
+
+303 \vià(
+hdr_chk
+ =ð
+IP_VERSION_6
+)
+
+304 \15
+IPv6_HEADER_SIZE
+;
+
+308
+ }
+}
+
+316 \18\1e
+ $áp_®g_compu\8b_checksums
+(
+
+317 \1e*
+i_hdr
+,
+
+318 \19
+tý_hdr
+ *
+t_hdr
+)
+
+328
+\9at8_t
+
+hdr_chk
+ =
+ `¹e_ù_\9dv\94siÚ
+(
+i_hdr
+);
+
+329
+t_hdr
+->
+cksum
+ = 0;
+
+331 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+) {
+
+332 \19
+\9dv4_hdr
+ *
+i4_hdr
+ = (\19\9dv4_hd¸*)
+i_hdr
+;
+
+333
+i4_hdr
+->
+hdr_checksum
+ = 0;
+
+334
+t_hdr
+->
+cksum
+ = 0;
+
+335
+t_hdr
+->
+cksum
+ =
+ `¹e_\9dv4_ud±ý_cksum
+(
+i4_hdr
+,\81_hdr);
+
+337 #ifdeà
+ALGDBG
+
+
+338
+ `´\9atf
+("cksum %x\n",
+ `¹e_bsw32
+(
+t_hdr
+->
+cksum
+));
+
+341
+i4_hdr
+->
+hdr_checksum
+ =
+ `¹e_\9dv4_cksum
+(i4_hdr);
+
+342 } \vià(
+hdr_chk
+ =ð
+IP_VERSION_6
+) {
+
+343 \19
+\9dv6_hdr
+ *
+i6_hdr
+ = (\19\9dv6_hd¸*)
+i_hdr
+;
+
+344
+t_hdr
+->
+cksum
+ = 0;
+
+345
+t_hdr
+->
+cksum
+ =
+ `¹e_\9dv6_ud±ý_cksum
+(
+i6_hdr
+,\81_hdr);
+
+347
+ }
+}
+
+356 \18\1e
+ $áp_®g_adju¡_tý_ack
+(\19
+¹e_mbuf
+ *
+pkt
+,
+\9at16_t
+
+ackSeqdiff
+)
+
+359
+u\9at16_t
+
+\9d_hdr_size_by\8bs
+ =
+IPv4_HEADER_SIZE
+;
+
+360 \19
+\9dv4_hdr
+ *
+\9dhdr
+ = (\19ipv4_hdr *)
+
+361
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+362 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+363
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+364
+IP_START
+ +
+\9d_hdr_size_by\8bs
+);
+
+369
+u\9at32_t
+
+\8bmp
+;
+
+370
+\8bmp
+ =
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+);
+
+372 ià(
+ackSeqdiff
+ < 0)
+
+373
+\8bmp
+ +ð
+ `abs
+(
+ackSeqdiff
+);
+
+375
+\8bmp
+ -ð
+ `abs
+(
+ackSeqdiff
+);
+
+377
+thdr
+->
+»cv_ack
+ =
+ `¹e_bsw32
+(
+\8bmp
+);
+
+378
+ }
+}
+
+386 \18\1e
+ $áp_®g_adju¡_tý_£q
+(\19
+¹e_mbuf
+ *
+pkt
+,
+\9at16_t
+
+ackSeqdiff
+)
+
+389
+u\9at16_t
+
+\9d_hdr_size_by\8bs
+ =
+IPv4_HEADER_SIZE
+;
+
+390 \19
+\9dv4_hdr
+ *
+\9dhdr
+ = (\19ipv4_hdr *)
+
+391
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+392 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+393
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+394
+IP_START
+ +
+\9d_hdr_size_by\8bs
+);
+
+395
+u\9at32_t
+
+\8bmp
+;
+
+397
+\8bmp
+ =
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+);
+
+398 ià(
+ackSeqdiff
+ < 0)
+
+399
+\8bmp
+ -ð
+ `abs
+(
+ackSeqdiff
+);
+
+401
+\8bmp
+ +ð
+ `abs
+(
+ackSeqdiff
+);
+
+403
+thdr
+->
+£Á_£q
+ =
+ `¹e_bsw32
+(
+\8bmp
+);
+
+404
+ }
+}
+
+414 \18\12
+ $áp_®g_d\96\8f_tý_£qu\92û
+(
+
+415 \19
+¹e_mbuf
+ *
+pkt
+,
+
+416 \ 5*
+pÜt_¡r\9ag
+,
+
+417
+\9at16_t
+
+exi¡\9ag_týSeqdiff
+,
+
+418
+u\9at16_t
+
+Þd_pÜt_¡r\9ag_Ëngth
+,
+
+419
+u\9at16_t
+
+Ãw_pÜt_¡r\9ag_Ëngth
+)
+
+421
+\9at16_t
+
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+=0;
+
+422
+\9at16_t
+
+f\9a®_£qu\92û_numb\94_d\96\8f
+;
+
+424
+u\9at16_t
+
+\9d_hdr_size_by\8bs
+ =
+IPv4_HEADER_SIZE
+;
+
+425 \19
+\9dv4_hdr
+ *
+\9dhdr
+ = (\19ipv4_hdr *)
+
+426
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+427 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+428
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+429
+IP_START
+ +
+\9d_hdr_size_by\8bs
+);
+
+434
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+ = (
+\9at16_t
+è(
+Ãw_pÜt_¡r\9ag_Ëngth
+ -
+
+435
+Þd_pÜt_¡r\9ag_Ëngth
+);
+
+436
+\9dhdr
+->
+tÙ®_Ëngth
+ =
+ `¹e_bsw16
+(iphdr->total_length);
+
+438 #ifdeà
+ALGDBG
+
+
+439
+ `´\9atf
+("tÙ®_Ëngth :%u\n",
+\9dhdr
+->
+tÙ®_Ëngth
+);
+
+441 if(
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+ < 0)
+
+442
+\9dhdr
+->
+tÙ®_Ëngth
+ -ð
+ `abs
+(
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+);
+
+444
+\9dhdr
+->
+tÙ®_Ëngth
+ +ð
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+;
+
+446
+\9dhdr
+->
+tÙ®_Ëngth
+ =
+ `¹e_bsw16
+(iphdr->total_length);
+
+447 ià(
+exi¡\9ag_týSeqdiff
+ !=0)
+
+448
+ `áp_®g_adju¡_tý_£q
+(
+pkt
+,
+exi¡\9ag_týSeqdiff
+);
+
+449
+f\9a®_£qu\92û_numb\94_d\96\8f
+ð
+cu¼\92t_£qu\92û_numb\94_d\96\8f
+ +
+exi¡\9ag_týSeqdiff
+;
+
+450 \15
+f\9a®_£qu\92û_numb\94_d\96\8f
+;
+
+451
+ }
+}
+
+462 \1e
+ $áp_®g_dpi
+(
+
+463 \19
+p\9d\96\9ae_cgDZ
+ *
+p_Çt
+,
+
+464 \19
+p\9d\96\9ae_cgDZ_\92\8cy_key
+ *
+Çt_\92\8cy_key
+,
+
+465 \19
+¹e_mbuf
+ *
+pkt
+,
+
+466 \19
+¹e_ù_úxn_\8cack\94
+ *
+cgÇt_úxn_\8cack\94
+,
+
+467
+\9at32_t
+
+ù_pos\99iÚ
+,
+
+468
+u\9at8_t
+
+d\9ceùiÚ
+)
+
+476 \ 5*
+pÜt_cmd_¡r\9ag
+;
+
+477 \ 5*
+pÜt_cmd_\92d_¡r\9ag
+;
+
+478 \ 5*
+tý_h\97d\94_\92d
+;
+
+479 \ 5*
+tý_¡¬t
+;
+
+482
+u\9at16_t
+
+´iv©e_pÜt_numb\94
+;
+
+483
+u\9at16_t
+
+public_pÜt_numb\94
+;
+
+484
+u\9at16_t
+
+\9d1
+,
+\9d2
+,
+\9d3
+,
+\9d4
+,
+pÜt1
+,
+pÜt2
+;
+
+485
+\9at16_t
+
+týSeqdiff
+;
+
+486
+\9at16_t
+
+ackSeqdiff
+,
+ackAdju¡
+;
+
+487
+u\9at32_t
+
+´iv©e_add»ss
+;
+
+488
+u\9at32_t
+
+public_add»ss
+;
+
+489
+u\9at8_t
+ *
+b±r_´iv©e_add»ss
+;
+
+491 \ 5
+pÜt_¡r\9ag
+[
+FTP_MAXIMUM_PORT_STRING_LENGTH
+];
+
+492 \ 5
+pÜt_¡r\9ag_\8cª¦©ed
+[
+FTP_MAXIMUM_PORT_STRING_LENGTH
+];
+
+493
+\9at16_t
+
+Ãw_pÜt_¡r\9ag_Ëngth
+;
+
+494
+\9at16_t
+
+Þd_pÜt_¡r\9ag_Ëngth
+;
+
+495 \12
+dummy_v®ue
+;
+
+496 \19
+cgDZ_\8fbË_\92\8cy
+ *
+eg»ss_\92\8cy
+, *
+\9ag»ss_\92\8cy
+;
+
+497
+u\9at32_t
+
+ù_key
+[10];
+
+498
+u\9at8_t
+
+key_d\9ceùiÚ
+;
+
+500
+u\9at16_t
+
+\9d_hdr_size_by\8bs
+ =
+IPv4_HEADER_SIZE
+;
+
+502 \19
+\9dv4_hdr
+ *
+\9d_hdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+pkt
+,
+
+503 \19
+\9dv4_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+507 \19
+tý_hdr
+ *
+thdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+pkt
+, \19tcp_hdr *,
+
+508 (\17(\19
+\91h\94_hdr
+)+\17(\19
+\9dv4_hdr
+)));
+
+509
+u\9at16_t
+
+¤c_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->src_port);
+
+510
+u\9at16_t
+
+d¡_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->dst_port);
+
+511
+u\9at8_t
+
+´Ùo
+ =
+\9d_hdr
+->
+Ãxt_´Ùo_id
+;
+
+512
+u\9at32_t
+
+¤c_addr
+ =
+ `¹e_bsw32
+(
+\9d_hdr
+->src_addr);
+
+513
+u\9at32_t
+
+d¡_addr
+ =
+ `¹e_bsw32
+(
+\9d_hdr
+->dst_addr);
+
+514
+u\9at32_t
+
+tmp_tý_·ylod_size
+;
+
+517 -
+¤c_pÜt
+ &
+d¡_pÜt
+
+check\9ag
+
+to
+
+be
+
+moved
+
+äom
+
+cgÇt
+\81Ø
+dpi
+
+
+518 -
+FÜ
+
+cÚ\8cÞ
+
+chªÃl
+
+
+519
+f\9c¡
+
+v®id©iÚ
+
+of
+
+týSeqdiff
+
+to
+
+be
+
+checked
+
+
+520
+IF
+ < > 0
+
+521
+ `áp_®g_tý_ack
+(è
+to
+
+be
+
+ `ÿÎed
+(
+this
+
+\9aþudes
+
+PORT
+
+
+522
+»¥Ú£
+
+ªd
+
+PASV
+\84e¥Ú£
+ack
+
+as
+
+w\96l
+)
+
+523
+R\91uº
+
+
+524
+ELSE
+
+
+525
+the
+
+pÜt
+/
+·sv
+
+·¿m\8br
+
+checkign
+
+to
+
+be
+
+dÚe
+
+
+526 -
+FÜ
+
+d©a
+
+chªÃl
+
+
+527 -
+»\8ceive
+
+ALG
+
+\92\8cy
+
+
+528
+IF
+
+found
+
+
+529 -
+»move
+
+the
+
+ALG
+
+\92\8cy
+
+
+530
+ev\92
+ \11
+nÙ
+
+ `found
+(
+found
+
+ÿ£s
+
+too
+)
+
+531 -
+£t
+
+the
+
+by·ss
+
+æag
+
+\9a
+\81h\90
+CT
+
+£ssiÚ
+
+\8fbË
+
+
+535 #ifdeà
+ALGDBG
+
+
+537
+ `´\9atf
+("á°pÜ\88numb\94: %d, %d\n",
+¤c_pÜt
+,
+d¡_pÜt
+);
+
+538
+ `´\9atf
+("ftp TCP seq\82um diff: %d\n",
+
+539
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+
+540
+ù_pos\99iÚ
+].
+týSeqdiff
+);
+
+541
+ `´\9atf
+("tcp data offset: %d\n",
+
+542 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2));
+
+543
+ `´\9atf
+("ù\85os\99iÚ iÀdpi:%d\n",
+ù_pos\99iÚ
+);
+
+547 ià(
+¤c_pÜt
+ =ð21 ||
+d¡_pÜt
+ == 21) {
+
+556
+tý_¡¬t
+ = (\ 5*)
+thdr
+;
+
+559
+pÜt_cmd_¡r\9ag
+ = (\ 5* )(
+tý_¡¬t
++((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2));
+
+560
+tý_h\97d\94_\92d
+ =
+pÜt_cmd_¡r\9ag
+;
+
+562 ià(
+d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+564 #ifdeà
+ALGDBG
+
+
+565
+ `´\9atf
+("In PRIVATE ");
+
+568
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+£q_þ\9bÁ
+
+
+569 ð
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+);
+
+570
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+ack_þ\9bÁ
+
+
+571 ð
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+);
+
+572 #ifdeà
+ALGDBG
+
+
+573
+ `´\9atf
+("-->Seq_cli:%u, Ack_cli:%u, Len:%4d\n",
+
+574
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),
+
+575
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+576 (
+ `¹e_bsw16
+(
+\9d_hdr
+->
+tÙ®_Ëngth
+) -
+
+577 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 4) * 4)) - 20);
+
+581 #ifdeà
+ALGDBG
+
+
+582
+ `´\9atf
+("In PUBLIC ");
+
+584
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+£q_£rv\94
+
+
+585 ð
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+);
+
+586
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+ack_£rv\94
+
+
+587 ð
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+);
+
+588 #ifdeà
+ALGDBG
+
+
+589
+ `´\9atf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+590
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),\84\8b_bsw32Ñhdr->
+»cv_ack
+),
+
+591 (
+\9d_hdr
+->
+tÙ®_Ëngth
+ - (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))
+
+596 ià(
+ `ssÿnf
+(
+pÜt_cmd_¡r\9ag
+,
+FTP_PASV_PARAMETER_STRING
+, &
+dummy_v®ue
+,
+
+597 &
+\9d1
+, &
+\9d2
+, &
+\9d3
+, &
+\9d4
+, &
+pÜt1
+, &
+pÜt2
+) ==
+
+598
+FTP_PASV_PARAMETER_COUNT
+){
+
+600
+ `¥r\9atf
+ (
+pÜt_¡r\9ag
+,
+FTP_PASV_PARAMETER_STRING
+,
+FTP_PASV_RETURN_CODE
+,
+
+601
+\9d1
+,
+\9d2
+,
+\9d3
+,
+\9d4
+,
+pÜt1
+,
+pÜt2
+);
+
+603 \12
+i
+ = 0;
+
+604 \1f
+pÜt_cmd_¡r\9ag
+[
+i
+] != '\r' &&\85ort_cmd_string[i+1] != '\n')
+
+605
+i
+++;
+
+607
+i
+ += 2;
+
+609
+Þd_pÜt_¡r\9ag_Ëngth
+ =
+i
+;
+
+611
+´iv©e_pÜt_numb\94
+ = (
+u\9at16_t
+è(
+pÜt1
+ * 0x100 +
+pÜt2
+);
+
+612
+b±r_´iv©e_add»ss
+ = (
+u\9at8_t
+ *è&
+´iv©e_add»ss
+;
+
+614
+b±r_´iv©e_add»ss
+[3] = (
+u\9at8_t
+è(
+\9d4
+ & 0x00FF);
+
+615
+b±r_´iv©e_add»ss
+[2] = (
+u\9at8_t
+è(
+\9d3
+ & 0x00FF);
+
+616
+b±r_´iv©e_add»ss
+[1] = (
+u\9at8_t
+è(
+\9d2
+ & 0x00FF);
+
+617
+b±r_´iv©e_add»ss
+[0] = (
+u\9at8_t
+è(
+\9d1
+ & 0x00FF);
+
+621 ià(
+d\9ceùiÚ
+ =ð
+PUBLIC
+) {
+
+628
+ `pÝuÏ\8b_áp_®g_\92\8cy
+(
+´iv©e_add»ss
+,
+´iv©e_pÜt_numb\94
+);
+
+634
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+635
+£rv\94_d\9ceùiÚ
+ =
+SERVER_IN_PUBLIC
+;
+
+636
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+637
+áp_£ssiÚ_ty³
+= 1;
+
+638 } \vià(
+d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+641 \19
+p\9d\96\9ae_cgDZ_\92\8cy_key
+
+d©a_chªÃl_key
+;
+
+642
+´iv©e_add»ss
+ =
+ `¹e_bsw32
+(private_address);
+
+643
+d©a_chªÃl_key
+.
+\9d
+ =
+´iv©e_add»ss
+;
+
+644
+d©a_chªÃl_key
+.
+pÜt
+ =
+´iv©e_pÜt_numb\94
+;
+
+646
+d©a_chªÃl_key
+.
+pid
+ =
+pkt
+->
+pÜt
+;
+
+653 #ifdeà
+FTP_ALG
+
+
+654 ià(
+ `add_dyÇmic_cgDZ_\92\8cy_®g
+((\19
+p\9d\96\9ae
+ *)
+p_Çt
+,
+
+655 &
+d©a_chªÃl_key
+, &
+eg»ss_\92\8cy
+, &
+\9ag»ss_\92\8cy
+) == 0){
+
+657 #ifdeà
+ALGDBG
+
+
+658
+ `´\9atf
+("Wrong FTP ALG\85acket\n");
+
+662
+p_Çt
+->
+DZDrݳdPktCouÁ
+++;
+
+664 #ifdeà
+CGNAPT_DEBUGGING
+
+
+665
+p_Çt
+->
+DZDrݳdPktCouÁ4
+++;
+
+671
+tmp_tý_·ylod_size
+ =
+ `¹e_bsw16
+(
+\9d_hdr
+->
+tÙ®_Ëngth
+) -
+
+672 ((
+thdr
+->
+d©a_off
+ & 0xf0è>> 2è-
+\9d_hdr_size_by\8bs
+;
+
+673
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+674
+tý_·ylßd_size
+ =
+tmp_tý_·ylod_size
+;
+
+677
+ `pÝuÏ\8b_áp_®g_\92\8cy
+(
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_\9d
+,
+
+678
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_pÜt
+);
+
+680
+Ãw_pÜt_¡r\9ag_Ëngth
+ =
+ `áp_®g_modify_·ylßd
+(
+eg»ss_\92\8cy
+,
+
+681
+pÜt_¡r\9ag
+,
+
+682
+pÜt_¡r\9ag_\8cª¦©ed
+, 1);
+
+683
+ `¡ºýy
+(
+tý_h\97d\94_\92d
+,
+pÜt_¡r\9ag_\8cª¦©ed
+,
+
+684
+ `¡¾\92
+(
+pÜt_¡r\9ag_\8cª¦©ed
+));
+
+685
+týSeqdiff
+ =
+ `áp_®g_d\96\8f_tý_£qu\92û
+Ð
+pkt
+,
+pÜt_¡r\9ag
+,
+
+686
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+687 [
+ù_pos\99iÚ
+].
+týSeqdiff
+,
+
+688
+Þd_pÜt_¡r\9ag_Ëngth
+,
+
+689
+Ãw_pÜt_¡r\9ag_Ëngth
+);
+
+692
+ `áp_®g_modify_pkt_Ën
+(
+pkt
+);
+
+699
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+700
+®g_by·ss_æag
+ =
+NO_BYPASS
+;
+
+701
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+702
+týSeqdiff
+ =\81cpSeqdiff;
+
+703
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+704
+£rv\94_d\9ceùiÚ
+ =
+SERVER_IN_PRIVATE
+;
+
+705
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+706
+áp_£ssiÚ_ty³
+ = 1;
+
+710 } \vià(
+ `ssÿnf
+(
+pÜt_cmd_¡r\9ag
+,
+FTP_PORT_PARAMETER_STRING
+,
+
+711 &
+\9d1
+, &
+\9d2
+, &
+\9d3
+, &
+\9d4
+, &
+pÜt1
+, &
+pÜt2
+) ==
+
+712
+FTP_PORT_PARAMETER_COUNT
+){
+
+714 \12
+i
+ = 0;
+
+715 \18
+u\9at8_t
+
+pÜt_h\99
+;
+
+716 \1f
+pÜt_cmd_¡r\9ag
+[
+i
+] != '\r' &&
+
+717
+pÜt_cmd_¡r\9ag
+[
+i
++1] != '\n')
+
+718
+i
+++;
+
+720
+i
+ += 2;
+
+722
+Þd_pÜt_¡r\9ag_Ëngth
+ =
+i
+;
+
+724 #ifdeà
+ALGDBG
+
+
+725
+ `´\9atf
+Ð" Exi¡\9ag Seq Difàð%d",
+cgÇt_úxn_\8cack\94
+->
+
+726
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+týSeqdiff
+);
+
+727
+ `´\9atf
+("FTP ALG: FTP PORT command\86ength: %d\n",
+
+728
+Þd_pÜt_¡r\9ag_Ëngth
+);
+
+731
+´iv©e_pÜt_numb\94
+ = (
+u\9at16_t
+è(
+pÜt1
+ * 0x100 +
+pÜt2
+);
+
+733 #ifdeà
+ALGDBG
+
+
+734
+ `´\9atf
+("FTP ALG:\85rivate\85ort\82umber before swap: %u\n",
+
+735
+´iv©e_pÜt_numb\94
+);
+
+738
+b±r_´iv©e_add»ss
+ = (
+u\9at8_t
+ *è&
+´iv©e_add»ss
+;
+
+739
+b±r_´iv©e_add»ss
+[3] = (
+u\9at8_t
+è(
+\9d4
+ & 0x00FF);
+
+740
+b±r_´iv©e_add»ss
+[2] = (
+u\9at8_t
+è(
+\9d3
+ & 0x00FF);
+
+741
+b±r_´iv©e_add»ss
+[1] = (
+u\9at8_t
+è(
+\9d2
+ & 0x00FF);
+
+742
+b±r_´iv©e_add»ss
+[0] = (
+u\9at8_t
+è(
+\9d1
+ & 0x00FF);
+
+744
+ `¥r\9atf
+(
+pÜt_¡r\9ag
+,
+FTP_PORT_PARAMETER_STRING
+,
+\9d1
+,
+\9d2
+,
+
+745
+\9d3
+,
+\9d4
+,
+pÜt1
+,
+pÜt2
+);
+
+747 #ifdeà
+ALGDBG
+
+
+748
+ `´\9atf
+("FTP ALG: FTP original PORT string: %d,%s\n",
+
+749 (\12è
+ `¡¾\92
+(
+pÜt_¡r\9ag
+)-2,\85ort_string);
+
+750
+ `´\9atf
+("´v\87ddr: %x\n",
+´iv©e_add»ss
+);
+
+754 ià(
+d\9ceùiÚ
+ =ð
+PUBLIC
+) {
+
+760 \19
+p\9d\96\9ae_cgDZ_\92\8cy_key
+
+d©a_chªÃl_key
+;
+
+761
+d©a_chªÃl_key
+.
+\9d
+ =
+´iv©e_add»ss
+;
+
+762
+d©a_chªÃl_key
+.
+pÜt
+ =
+´iv©e_pÜt_numb\94
+;
+
+763
+d©a_chªÃl_key
+.
+pid
+ = 0xffff;
+
+766
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+767
+£rv\94_d\9ceùiÚ
+ =
+SERVER_IN_PRIVATE
+;
+
+768
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+769
+áp_£ssiÚ_ty³
+= 0;
+
+772 #ifdeà
+ALGDBG
+
+
+773
+ `´\9atf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+774
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),
+
+775
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+776 (
+\9d_hdr
+->
+tÙ®_Ëngth
+ -
+
+777 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2)) - 20));
+
+779
+ `pÝuÏ\8b_áp_®g_\92\8cy
+(
+´iv©e_add»ss
+,
+´iv©e_pÜt_numb\94
+);
+
+780 } \vià(
+d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+786 \19
+p\9d\96\9ae_cgDZ_\92\8cy_key
+
+d©a_chªÃl_key
+;
+
+787
+´iv©e_add»ss
+ =
+ `¹e_bsw32
+(private_address);
+
+788
+d©a_chªÃl_key
+.
+\9d
+ =
+´iv©e_add»ss
+;
+
+789
+d©a_chªÃl_key
+.
+pÜt
+ =
+´iv©e_pÜt_numb\94
+;
+
+791
+d©a_chªÃl_key
+.
+pid
+ =
+pkt
+->
+pÜt
+;
+
+800 #ifdeà
+FTP_ALG
+
+
+801 ià(
+ `add_dyÇmic_cgDZ_\92\8cy_®g
+((\19
+p\9d\96\9ae
+ *)
+
+802
+p_Çt
+, &
+d©a_chªÃl_key
+, &
+eg»ss_\92\8cy
+,
+
+803 &
+\9ag»ss_\92\8cy
+) == 0){
+
+805 #ifdeà
+ALGDBG
+
+
+806
+ `´\9atf
+("Wrong FTP ALG\85acket\n");
+
+809
+p_Çt
+->
+DZDrݳdPktCouÁ
+++;
+
+811 #ifdeà
+CGNAPT_DEBUGGING
+
+
+812
+p_Çt
+->
+DZDrݳdPktCouÁ4
+++;
+
+818
+tmp_tý_·ylod_size
+ =
+ `¹e_bsw16
+(
+\9d_hdr
+->
+tÙ®_Ëngth
+) -
+
+819 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2) -
+
+820
+\9d_hdr_size_by\8bs
+;
+
+821
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+822
+tý_·ylßd_size
+ =
+tmp_tý_·ylod_size
+;
+
+825
+ `pÝuÏ\8b_áp_®g_\92\8cy
+(
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_\9d
+,
+
+826
+eg»ss_\92\8cy
+->
+d©a
+.
+pub_pÜt
+);
+
+828
+Ãw_pÜt_¡r\9ag_Ëngth
+ =
+ `áp_®g_modify_·ylßd
+(
+eg»ss_\92\8cy
+,
+
+829
+pÜt_¡r\9ag
+,
+
+830
+pÜt_¡r\9ag_\8cª¦©ed
+, 0);
+
+831
+ `¡ºýy
+(
+tý_h\97d\94_\92d
+,
+pÜt_¡r\9ag_\8cª¦©ed
+,
+
+832
+ `¡¾\92
+(
+pÜt_¡r\9ag_\8cª¦©ed
+));
+
+833
+týSeqdiff
+ =
+ `áp_®g_d\96\8f_tý_£qu\92û
+Ð
+pkt
+,
+pÜt_¡r\9ag
+,
+
+834
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+835 [
+ù_pos\99iÚ
+].
+týSeqdiff
+,
+
+836
+Þd_pÜt_¡r\9ag_Ëngth
+,
+
+837
+Ãw_pÜt_¡r\9ag_Ëngth
+);
+
+839
+ `áp_®g_modify_pkt_Ën
+(
+pkt
+);
+
+848
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+849
+®g_by·ss_æag
+ =
+NO_BYPASS
+;
+
+850
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+851
+týSeqdiff
+ =\81cpSeqdiff;
+
+852
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+853
+£rv\94_d\9ceùiÚ
+ =
+SERVER_IN_PUBLIC
+;
+
+854
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+
+855
+áp_£ssiÚ_ty³
+ = 0;
+
+857 #ifdeà
+ALGDBG
+
+
+858
+ `´\9atf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+859
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),
+
+860
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+861 (
+\9d_hdr
+->
+tÙ®_Ëngth
+ -
+
+862 (((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2)) - 20));
+
+869 ià((
+ackAdju¡
+=
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+
+870
+ù_pos\99iÚ
+].
+týSeqdiff
+) != 0) {
+
+871 ià(
+d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+873
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+874 [
+ù_pos\99iÚ
+].
+£q_þ\9bÁ
+ !=
+
+875
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+876 [
+ù_pos\99iÚ
+].
+ack_£rv\94
+) {
+
+877 \18\12
+Seqh\99s
+;
+
+878
+ `áp_®g_adju¡_tý_£q
+Ð
+pkt
+,
+ackAdju¡
+);
+
+879
+tmp_tý_·ylod_size
+ =
+ `¹e_bsw16
+(
+
+880
+\9d_hdr
+->
+tÙ®_Ëngth
+) -
+
+881 ((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2) -
+
+882
+\9d_hdr_size_by\8bs
+;
+
+883
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+884 [
+ù_pos\99iÚ
+].
+tý_·ylßd_size
+ =
+tmp_tý_·ylod_size
+;
+
+885 #ifdeà
+ALGDBG
+
+
+886
+ `´\9atf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+887
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),
+
+888
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+889 (
+\9d_hdr
+->
+tÙ®_Ëngth
+ -(((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))- 20));
+
+893 ià(
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+894 [
+ù_pos\99iÚ
+].
+ack_£rv\94
+ !=
+
+895 (
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+896 [
+ù_pos\99iÚ
+].
+£q_þ\9bÁ
+ +
+
+897
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+
+
+898 [
+ù_pos\99iÚ
+].
+tý_·ylßd_size
+)) {
+
+899 \18\12
+Ackh\99s
+;
+
+900
+ `áp_®g_adju¡_tý_ack
+Ð
+pkt
+,
+ackAdju¡
+);
+
+901 #ifdeà
+ALGDBG
+
+
+902
+ `´\9atf
+("<--Seq_cli:%4d, Ack_cli%4d, Len:%4d\n",
+
+903
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+),
+
+904
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+905 (
+\9d_hdr
+->
+tÙ®_Ëngth
+ -(((
+thdr
+->
+d©a_off
+ & 0xf0) >> 2))- 20));
+
+914 #ifdeà
+ALGDBG
+
+
+915
+ `´\9atf
+("In Data Channel \n");
+
+917
+ `»move_áp_®g_\92\8cy
+ (
+d¡_addr
+,
+d¡_pÜt
+);
+
+918
+cgÇt_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+ù_pos\99iÚ
+].
+®g_by·ss_æag
+ =
+BYPASS
+;
+
+920
+ }
+}
+
+ @VIL/alg/lib_ftp_alg.h
+
+16 #iâdeà
+__INCLUDE_LIB_FTP_ALG_H__
+
+
+17 \ 1
+ #__INCLUDE_LIB_FTP_ALG_H__
+
+
+ )
+
+18 \ 2
+ ~"¹e_\91h\94.h
+"
+
+19 \ 2
+ ~"¹e_ù_tý.h
+"
+
+21 \ 1
+ #META_DATA_OFFSET
+ 128
+
+ )
+
+22 \ 1
+ #ETHERNET_START
+ (
+META_DATA_OFFSET
+ +
+RTE_PKTMBUF_HEADROOM
+)
+
+ )
+
+23 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+24 \ 1
+ #IP_START
+ (
+ETHERNET_START
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+25 \ 1
+ #PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+ )
+
+26 \ 1
+ #TCP_START
+ (
+IP_START
+ +
+IP_V4_HEADER_SIZE
+)
+
+ )
+
+27 \ 1
+ #TCP_MIN_HDR_SIZE
+ 20
+
+ )
+
+29 \ 1
+ #RTE_TCP_PROTO_ID
+ 6
+
+ )
+
+30 \ 1
+ #RTE_SP_DEFAULT_TTL
+ 64
+
+ )
+
+32 \ 1
+ #RTE_SYNPROXY_MAX_SPOOFED_PKTS
+ 64
+
+ )
+
+34 \ 1
+ #RTE_TCP_SYN
+ 0x02
+
+ )
+
+35 \ 1
+ #RTE_TCP_ACK
+ 0x10
+
+ )
+
+36 \ 1
+ #RTE_TCP_SYN_ACK
+ (
+RTE_TCP_SYN
+ |
+RTE_TCP_ACK
+)
+
+ )
+
+37 \ 1
+ #IP_VERSION_4
+ 4
+
+ )
+
+38 \ 1
+ #IP_VERSION_6
+ 6
+
+ )
+
+39 \ 1
+ #IPv4_HEADER_SIZE
+ 20
+
+ )
+
+40 \ 1
+ #IPv6_HEADER_SIZE
+ 40
+
+ )
+
+44 \f
+ eáp_®g_by·ss
+ {
+
+45
+ mNO_BYPASS
+,
+
+46
+ mBYPASS
+
+
+49 \f
+ eáp_®g_mode
+ {
+
+50
+ mFTP_ALG_PORT
+,
+
+51
+ mFTP_ALG_PASV
+
+
+53 \f
+ eáp_®g_d\9ceùiÚ
+ {
+
+54
+ mSERVER_IN_PRIVATE
+,
+
+55
+ mSERVER_IN_PUBLIC
+
+
+57 \f
+ ephy_pÜt
+ {
+
+58
+ mPRIVATE_PORT
+,
+
+59
+ mPUBLIC_PORT
+
+
+62 \19
+ sáp_®g_key
+ {
+
+63
+u\9at32_t
+
+ m\9d_add»ss
+;
+
+64
+u\9at16_t
+
+ ml4pÜt
+;
+
+65
+u\9at8_t
+
+ mf\9eËr1
+;
+
+66
+u\9at8_t
+
+ mf\9eËr2
+;
+
+68 \19
+ sáp_®g_\8fbË_\92\8cy
+ {
+
+69
+u\9at32_t
+
+ m\9d_add»ss
+;
+
+70
+u\9at16_t
+
+ ml4pÜt
+;
+
+71
+u\9at8_t
+
+ máp_®g_mode
+;
+
+72
+u\9at8_t
+
+ máp_®g_d\9ceùiÚ
+;
+
+73
+u\9at32_t
+
+ m£ssiÚ_id
+;
+
+74
+u\9at8_t
+
+ m®g_by·ss_æag
+;
+
+75
+u\9at8_t
+
+ mdummy
+;
+
+76
+u\9at8_t
+
+ mdummy1
+;
+
+78 }
+ g__¹e_ÿche_®igÃd
+;
+
+80 \ 1
+ #FTP_SERVER_PORT
+ 21
+
+ )
+
+81 \ 1
+ #FTP_PORT_STRING
+ "PORT"
+
+ )
+
+82 \ 1
+ #FTP_PORT_PARAMETER_STRING
+ "PORT %hu,%hu,%hu,%hu,%hu,%hu\r\n"
+
+ )
+
+83 \ 1
+ #FTP_PORT_PARAMETER_COUNT
+ 6
+
+ )
+
+84 \ 1
+ #FTP_PORT_RESPONSE_STRING
+ "200 PORT commªd sucûssful.\r\n"
+
+ )
+
+85 \ 1
+ #FTP_PORT_STRING_END_MARKER
+ '\n'
+
+ )
+
+86 \ 1
+ #FTP_MAXIMUM_PORT_STRING_LENGTH
+ 60
+
+ )
+
+87 \ 1
+ #FTP_PASV_STRING
+ "PASV"
+
+ )
+
+88 \ 1
+ #FTP_PASV_PARAMETER_STRING
+ "%d EÁ\94\9ag Passiv\90Mod\90(%hu,%hu,%hu,%hu,%hu,%hu)\r\n"
+
+ )
+
+89 \ 1
+ #FTP_PASV_PARAMETER_COUNT
+ 7
+
+ )
+
+90 \ 1
+ #FTP_PASV_STRING_END_MARKER
+ '\n'
+
+ )
+
+91 \ 1
+ #FTP_PASV_RETURN_CODE
+ 227
+
+ )
+
+93 \1e
+áp_®g_dpi
+(
+
+94 \19
+p\9d\96\9ae_cgDZ
+ *
+p_Çt
+,
+
+95 \19
+p\9d\96\9ae_cgDZ_\92\8cy_key
+ *
+Çt_\92\8cy_key
+,
+
+96 \19
+¹e_mbuf
+ *
+pkt
+,
+
+97 \19
+¹e_ù_úxn_\8cack\94
+ *
+cgÇt_úxn_\8cack\94
+,
+
+98
+\9at32_t
+
+ù_pos\99iÚ
+,
+
+99
+u\9at8_t
+
+d\9ceùiÚ
+);
+
+100 \1e
+lib_áp_®g_\9a\99
+(\1e);
+
+101 \r
+\9at8_t
+
+¹e_ù_\9dv\94siÚ
+(\1e*
+i_hdr
+);
+
+ @VIL/alg/lib_sip_alg.c
+
+17 \ 2
+ ~<¡dio.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡d\9at.h
+>
+
+20 \ 2
+ ~<¡r\9ag.h
+>
+
+21 \ 2
+ ~<uni¡d.h
+>
+
+22 \ 2
+ ~<¬·/\9a\91.h
+>
+
+23 \ 2
+ ~<m©h.h
+>
+
+25 \ 2
+ ~<p.h
+>
+
+26 \ 2
+ ~<¹e_commÚ.h
+>
+
+27 \ 2
+ ~<¹e_m®loc.h
+>
+
+28 \ 2
+ ~<¹e_\9d.h
+>
+
+29 \ 2
+ ~<¹e_udp.h
+>
+
+30 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+31 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+32 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+33 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+34 \ 2
+ ~<¹e_¬p.h
+>
+
+35 \ 2
+ ~<¹e_icmp.h
+>
+
+36 \ 2
+ ~<¹e_hash.h
+>
+
+37 \ 2
+ ~<¹e_jhash.h
+>
+
+38 \ 2
+ ~<¹e_cyþes.h
+>
+
+40 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+41 \ 2
+ ~"hash_func.h
+"
+
+42 \ 2
+ ~"lib_s\9d_®g.h
+"
+
+43 \ 2
+ ~"vnf_commÚ.h
+"
+
+44 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+46 \ 1
+ #SIP_ALG_SIP
+ "SIP"
+
+ )
+
+47 \ 1
+ #SIP_ALG_200_OK
+ "200 OK"
+
+ )
+
+48 \ 1
+ #SIP_ALG_INVITE
+ "INVITE"
+
+ )
+
+49 \ 1
+ #SIP_ALG_BYE
+ "BYE"
+
+ )
+
+50 \ 1
+ #SIP_ALG_TRYING
+ "100 Try\9ag"
+
+ )
+
+51 \ 1
+ #SIP_ALG_RINGING
+ "180 R\9ag\9ag"
+
+ )
+
+52 \ 1
+ #SIP_ALG_ACK
+ "ACK"
+
+ )
+
+53 \ 1
+ #SIP_ALG_CONTACT
+ "CÚ\8fù"
+
+ )
+
+54 \ 1
+ #SIP_ALG_CONTENT_LEN
+ "CÚ\8bÁ-L\92gth"
+
+ )
+
+55 \ 1
+ #SIP_ALG_VIA
+ "V\9f"
+
+ )
+
+56 \ 1
+ #SIP_ALG_FROM
+ "From"
+
+ )
+
+57 \ 1
+ #SIP_ALG_TO
+ "To"
+
+ )
+
+58 \ 1
+ #SIP_ALG_CALLID
+ "C®l-ID"
+
+ )
+
+59 \ 1
+ #SIP_ALG_RTP
+ "RTP"
+
+ )
+
+60 \ 1
+ #SIP_ALG_RTCP
+ "a=RTCP"
+
+ )
+
+61 \ 1
+ #SIP_ALG_CANCEL
+ "CANCEL"
+
+ )
+
+62 \ 1
+ #SIP_ALG_CONTYPE
+ "CÚ\8bÁ-Ty³"
+
+ )
+
+63 \ 1
+ #SIP_ALG_APPSDP
+ "¶iÿtiÚ/sdp"
+
+ )
+
+64 \ 1
+ #SIP_ALG_CSEQ
+ "CSeq"
+
+ )
+
+65 \ 1
+ #SIP_ALG_AUDIO
+ "m÷udio"
+
+ )
+
+66 \ 1
+ #SIP_ALG_DOUBLE_CRLF
+ "\r\n\r\n"
+
+ )
+
+67 \ 1
+ #SIP_ALG_CRLF
+ "\r\n"
+
+ )
+
+68 \ 1
+ #SIP_ALG_AT
+ "@"
+
+ )
+
+69 \ 1
+ #SIP_ALG_GREAT
+ ">"
+
+ )
+
+70 \ 1
+ #SIP_ALG_OWNER
+ "o="
+
+ )
+
+71 \ 1
+ #SIP_ALG_IPV4
+ "IP4"
+
+ )
+
+72 \ 1
+ #SIP_ALG_CONN
+ "c="
+
+ )
+
+73 \ 1
+ #SIP_ALG_REMOTE_PARTY_ID
+ "RemÙe-P¬ty-ID"
+
+ )
+
+74 \ 1
+ #SIP_ALG_SPACE
+ " "
+
+ )
+
+75 \ 1
+ #SIP_ALG_SEMICOLON
+ ";"
+
+ )
+
+77 \ 1
+ #SIP_DEFAULT_L4PORT
+ 5060
+
+ )
+
+79 \ 1
+ #SIP_ALG_INVITE_MSGTYPE
+ 1
+
+ )
+
+80 \ 1
+ #SIP_ALG_BYE_MSGTYPE
+ 2
+
+ )
+
+81 \ 1
+ #SIP_ALG_200_OK_INVITE_MSGTYPE
+ 3
+
+ )
+
+82 \ 1
+ #SIP_ALG_200_OK_BYE_MSGTYPE
+ 4
+
+ )
+
+83 \ 1
+ #SIP_ALG_TRYING_RINGING_MSGTYPE
+ 5
+
+ )
+
+84 \ 1
+ #SIP_ALG_ACK_MSGTYPE
+ 6
+
+ )
+
+86 \ 1
+ #MAX_NUM_SIP_ALG_ENTRIES
+ 16384
+
+ )
+
+88 \ 1
+ #SIP_ALG_VIA_FIELD_IPADDR
+ 14
+
+ )
+
+89 \ 1
+ #SIP_ALG_CTAC_FIELD_IPADDR
+ 7
+
+ )
+
+91 \ 1
+ #ADDRESS_PORT_STRING
+ 1
+
+ )
+
+92 \ 1
+ #PORT_STRING
+ 2
+
+ )
+
+94 \ 1
+ #MAX_ADDR_PORT_SIZE
+ 30
+
+ )
+
+95 \ 1
+ #MAX_ADDR_SIZE
+ 20
+
+ )
+
+96 \ 1
+ #MAX_PORT_SIZE
+ 10
+
+ )
+
+97 \ 1
+ #MAX_SIP_UDP_MSG_SIZE
+ 2000
+
+ )
+
+99 \ 1
+ #ALG_DEBUG
+ 0
+
+ )
+
+101 \92um {
+ mFALSE
+,
+ mTRUE
+ };
+
+103 \19
+¹e_mempoÞ
+ *
+ glib_®g_pktmbuf_tx_poÞ
+;
+
+105 \19
+¹e_mbuf
+ *
+ glib_®g_pkt
+;
+
+107 \18\19
+¹e_hash_·¿m\91\94s
+
+ gs\9d_®g_hash_·¿ms
+ = {
+
+108 .
+Çme
+ =
+NULL
+,
+
+109 .
+ g\92\8c\9bs
+ =
+MAX_NUM_SIP_ALG_ENTRIES
+,
+
+110 .
+ gȣrved
+ = 0,
+
+111 .
+ gkey_Ën
+ = \17(\19
+s\9d_®g_key
+),
+
+112 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+113 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+114 .
+ gex\8ca_æag
+ = 1,
+
+117 \19
+¹e_hash
+ *
+ gs\9d_®g_hash_\8fbË
+;
+
+119 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+ gs\9d_®g_\8fbË
+[
+MAX_NUM_SIP_ALG_ENTRIES
+];
+
+121 \ 5*
+s\9d_®g_´oûss
+(\19
+¹e_mbuf
+ *
+pkt
+,
+
+122
+u\9at16_t
+
+pkt_d\9ceùiÚ
+, u\9at16_\88
+ÿÎ_d\9ceùiÚ
+,
+
+123
+u\9at16_t
+
+msgTy³
+,
+u\9at32_t
+
+modIp
+,
+
+124
+u\9at16_t
+
+modL4PÜt
+,
+u\9at32_t
+
+pubIp
+,
+
+125
+u\9at16_t
+
+pubL4PÜt
+, u\9at16_\88
+modR\8dPÜt
+,
+
+126
+u\9at16_t
+
+modRtýPÜt
+, u\9at16_\88*
+diffModS\9dL\92
+);
+
+127 \ 5*
+g\91S\9dC®lIdS\8c
+(\ 5*
+pMsg
+);
+
+128 \ 5*
+ÇtS\9dAlgModifyPaylßdAddrPÜt
+(\ 5*
+pS\9dMsg
+, \ 5**
+pS\9dMsgEnd
+,
+
+129
+u\9at32_t
+
+ÞdS\8cL\92
+, u\9at32_\88*
+diffL\92
+,
+
+130
+u\9at32_t
+
+pub_\9d
+,
+u\9at16_t
+
+pub_pÜt
+,
+
+131
+u\9at32_t
+
+ty³
+);
+
+132 \ 5*
+ÇtS\9dAlgAdju¡Msg
+(\ 5*
+pS\9dMsg
+, \ 5**
+pS\9dMsgEnd
+,
+
+133
+u\9at32_t
+
+ÃwS\8cL\92
+, u\9at32_\88
+ÞdS\8cL\92
+);
+
+137 \1e
+ $lib_s\9d_®g_\9a\99
+(\1e)
+
+139 \ 5*
+s
+ =
+ `¹e_zm®loc
+(
+NULL
+, 64,
+RTE_CACHE_LINE_SIZE
+);;
+
+140 \12
+sock\91id
+ = 0;
+
+142 if(!
+s
+){
+
+143
+ `´\9atf
+("NAT SIP ALG Init failed\n");
+
+146
+ `¢´\9atf
+(
+s
+,
+ `¡¾\92
+(s), "\9dv4_s\9d_®g_hash_%d",
+sock\91id
+);
+
+147
+ `´\9atf
+("NAT SIP ALG initialization ...\n");
+
+150
+s\9d_®g_hash_·¿ms
+.
+sock\91_id
+ =
+SOCKET_ID_ANY
+;
+
+151
+s\9d_®g_hash_·¿ms
+.
+Çme
+ =
+s
+;
+
+152
+s\9d_®g_hash_\8fbË
+ =
+ `¹e_hash_ü\97\8b
+(&
+s\9d_®g_hash_·¿ms
+);
+
+154 ià(
+s\9d_®g_hash_\8fbË
+ =ð
+NULL
+) {
+
+155
+ `´\9atf
+("SIP ALG\84te_hash_create failed. socket %d ...\n",
+
+156
+s\9d_®g_hash_·¿ms
+.
+sock\91_id
+);
+
+157
+ `¹e_ex\99
+(0, "SIP ALG\84te_hash_create failed");
+
+159
+ `´\9atf
+("s\9d_®g_hash_\8fbË %p\n\n", (\1e*)
+s\9d_®g_hash_\8fbË
+);
+
+162
+ }
+}
+
+164 \ 5*
+\99ß
+(\13
+n
+);
+
+165 \ 5*
+ $\99ß
+(\13
+n
+)
+
+167 \12
+Ën
+ =
+n
+ =ð0 ? 1 :
+ `æoÜ
+(
+ `log10l
+(
+ `Ïbs
+(n))) + 1;
+
+169 ià(
+n
+ < 0)
+
+170
+Ën
+++;
+
+172 \ 5*
+buf
+ =
+ `ÿÎoc
+(\17(\ 5),
+Ën
+ + 1);
+
+173 if(
+buf
+ !ð
+NULL
+)
+
+174
+ `¢´\9atf
+(
+buf
+,
+Ën
+ + 1, "%ld",
+n
+);
+
+175 \15
+buf
+;
+
+176
+ }
+}
+
+178 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+»\8c\9bve_s\9d_®g_\92\8cy
+(
+
+179 \19
+s\9d_®g_key
+ *
+®g_key
+);
+
+181 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+ $»\8c\9bve_s\9d_®g_\92\8cy
+(
+
+182 \19
+s\9d_®g_key
+ *
+®g_key
+)
+
+184 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+s\9d_®g_d©a
+ =
+NULL
+;
+
+186 \12
+»t
+ =
+ `¹e_hash_lookup
+(
+s\9d_®g_hash_\8fbË
+,
+®g_key
+);
+
+188 ià(
+»t
+ < 0) {
+
+189 #ifdeà
+ALGDBG
+
+
+190
+ `´\9atf
+("alg-hash\86ookup failed\84et %d, "
+
+192
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+195
+s\9d_®g_d©a
+ =
+s\9d_®g_\8fbË
+[
+»t
+];
+
+196 \15
+s\9d_®g_d©a
+;
+
+199 \15
+NULL
+;
+
+200
+ }
+}
+
+203 \12
+ $»move_s\9d_®g_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at16_t
+
+pÜtid
+)
+
+205 \19
+s\9d_®g_key
+
+®g_key
+;
+
+206 \1e*
+s\9d_®g_\92\8cy_d©a
+;
+
+207 \12
+»t
+;
+
+209
+®g_key
+.
+l4pÜt
+ =
+pÜtid
+;
+
+210
+®g_key
+.
+\9d_add»ss
+ =
+\9daddr
+;
+
+211
+®g_key
+.
+f\9eËr1
+ = 0;
+
+212
+®g_key
+.
+f\9eËr2
+ = 0;
+
+214 ià(
+ALG_DEBUG
+)
+
+215
+ `´\9atf
+("»move_s\9d_\92\8cy i°%x,\85Ü\88%d\n",
+®g_key
+.
+\9d_add»ss
+,
+
+216
+®g_key
+.
+l4pÜt
+);
+
+218
+»t
+ =
+ `¹e_hash_lookup
+(
+s\9d_®g_hash_\8fbË
+, &
+®g_key
+);
+
+219 ià(
+»t
+ < 0) {
+
+220 ià(
+ALG_DEBUG
+)
+
+221
+ `´\9atf
+("removesipalgentry: "
+
+223
+»t
+);
+
+227
+s\9d_®g_\92\8cy_d©a
+ =
+s\9d_®g_\8fbË
+[
+»t
+];
+
+229
+ `ä\93
+(
+s\9d_®g_\92\8cy_d©a
+);
+
+230
+ `¹e_hash_d\96_key
+(
+s\9d_®g_hash_\8fbË
+, &
+®g_key
+);
+
+233
+ }
+}
+
+239 \12
+pÝuÏ\8b_s\9d_®g_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at16_t
+
+pÜtid
+,
+
+240 \ 5*
+s\9d_ÿÎ_id
+,
+u\9at8_t
+
+ÿÎ_d\9ceùiÚ
+,
+
+241 \f
+s\9d_®g_pÜt_ty³
+
+pÜt_ty³
+);
+
+242 \12
+ $pÝuÏ\8b_s\9d_®g_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at16_t
+
+pÜtid
+,
+
+243 \ 5*
+s\9d_ÿÎ_id
+,
+u\9at8_t
+
+ÿÎ_d\9ceùiÚ
+,
+
+244 \f
+s\9d_®g_pÜt_ty³
+
+pÜt_ty³
+)
+
+246 \19
+s\9d_®g_key
+
+®g_key
+;
+
+248
+®g_key
+.
+l4pÜt
+ =
+pÜtid
+;
+
+249
+®g_key
+.
+\9d_add»ss
+ =
+\9daddr
+;
+
+250
+®g_key
+.
+f\9eËr1
+ = 0;
+
+251
+®g_key
+.
+f\9eËr2
+ = 0;
+
+252 \12
+»t
+;
+
+254 ià(
+ALG_DEBUG
+)
+
+255
+ `´\9atf
+("populate_sip_alg_entry\85ort %d, ip %x\n",
+
+256
+®g_key
+.
+l4pÜt
+,\87lg_key.
+\9d_add»ss
+);
+
+258 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+Ãw_®g_d©a
+ =
+
+259
+ `»\8c\9bve_s\9d_®g_\92\8cy
+(&
+®g_key
+);
+
+261 ià(
+Ãw_®g_d©a
+) {
+
+262 ià(
+ALG_DEBUG
+)
+
+263
+ `´\9atf
+("sip_alg_entry\83xists ip%x,\85ort %d\n",
+
+264
+®g_key
+.
+\9d_add»ss
+,\87lg_key.
+l4pÜt
+);
+
+268
+Ãw_®g_d©a
+ =
+NULL
+;
+
+269
+Ãw_®g_d©a
+ = (\19
+s\9d_®g_\8fbË_\92\8cy
+ *)
+
+270
+ `m®loc
+(\17(\19
+s\9d_®g_\8fbË_\92\8cy
+));
+
+271 ià(
+Ãw_®g_d©a
+ =ð
+NULL
+) {
+
+272
+ `´\9atf
+("populate sip\87lg\83ntry:\87llocation failed\n");
+
+276
+Ãw_®g_d©a
+->
+l4pÜt
+ =
+pÜtid
+;
+
+277
+Ãw_®g_d©a
+->
+\9d_add»ss
+ =
+\9daddr
+;
+
+278
+Ãw_®g_d©a
+->
+l4pÜt_ty³
+ =
+pÜt_ty³
+;
+
+279
+Ãw_®g_d©a
+->
+s\9d_®g_ÿÎ_d\9ceùiÚ
+ =
+ÿÎ_d\9ceùiÚ
+;
+
+280
+ `¡rýy
+((\ 5*)
+Ãw_®g_d©a
+->
+s\9d_®g_ÿÎ_id
+, (\ 5*)
+s\9d_ÿÎ_id
+);
+
+281
+Ãw_®g_d©a
+->
+f\9eËr1
+ = 0;
+
+282
+Ãw_®g_d©a
+->
+f\9eËr2
+ = 0;
+
+283
+Ãw_®g_d©a
+->
+f\9eËr3
+ = 0;
+
+285
+»t
+ =
+ `¹e_hash_add_key
+(
+s\9d_®g_hash_\8fbË
+, &
+®g_key
+);
+
+286 ià(
+»t
+ < 0) {
+
+287
+ `´\9atf
+("pÝuÏ\8b s\9d -\84\8b_hash_add_key_d©¨ERROR %d\n",
+»t
+);
+
+288
+ `ä\93
+(
+Ãw_®g_d©a
+);
+
+292
+s\9d_®g_\8fbË
+[
+»t
+] =
+Ãw_®g_d©a
+;
+
+294 ià(
+ALG_DEBUG
+) {
+
+295
+ `´\9atf
+("SIP_ALG:\81able update - ip=%x on\85ort=%d\84et=%d\n",
+
+296
+®g_key
+.
+\9d_add»ss
+,
+pÜtid
+,
+»t
+);
+
+299
+ }
+}
+
+301 \12
+ $s\9d_®g_dpi
+(\19
+¹e_mbuf
+ *
+pkt
+, \f
+pkt_d\9c
+
+pkt_d\9ceùiÚ
+,
+
+302
+u\9at32_t
+
+modIp
+,
+u\9at16_t
+
+modL4PÜt
+,
+
+303
+u\9at32_t
+
+pubIp
+,
+u\9at16_t
+
+pubL4PÜt
+,
+
+304
+u\9at16_t
+
+modR\8dPÜt
+, u\9at16_\88
+modRtýPÜt
+)
+
+306
+u\9at16_t
+
+msgTy³
+ = 0;
+
+307 \f
+s\9d_®g_ÿÎ_d\9ceùiÚ
+
+ÿÎ_d\9ceùiÚ
+ = 0;
+
+308
+u\9at32_t
+
+\9d_add»ss
+ = 0;
+
+309
+u\9at16_t
+
+pÜt
+ = 0;
+
+310 \12
+»t
+ = 0;
+
+311 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+312 \19
+\91h\94_hdr
+ *
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19ether_hdr *);
+
+313 \19
+udp_hdr
+ *
+udp_h
+;
+
+314 \ 5*
+pS\9dMsg
+ =
+NULL
+;
+
+315 \19
+s\9d_®g_\8fbË_\92\8cy
+ *
+s\9d_®g_\92\8cy
+;
+
+316 \ 5*
+s\9d_ÿÎ_id
+ =
+NULL
+;
+
+317 \12
+pos
+ = 0;
+
+318 \19
+s\9d_®g_key
+
+®g_key
+;
+
+319
+u\9at16_t
+
+diffModS\9dL\92
+ = 0;
+
+321
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+322
+udp_h
+ = (\19
+udp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+323
+pS\9dMsg
+ = ((\ 5*)
+udp_h
+ + \17(\19
+udp_hdr
+));
+
+325 ià(
+ALG_DEBUG
+) {
+
+326
+ `´\9atf
+("%s:\85ack\91\86\92gth(%u), bufã¸Ëngth(%u)\n",
+__func__
+,
+
+327
+ `¹e_pktmbuf_pkt_Ën
+(
+pkt
+),\85kt->
+buf_Ën
+);
+
+328
+ `´\9atf
+("%s:\86a¡ segm\92\88addr(%°%p)\n",
+__func__
+,
+
+329
+ `¹e_pktmbuf_Ï¡£g
+(
+pkt
+),\85kt);
+
+330
+ `´\9atf
+("%s: d©¨Ën(%u, %u)\n",
+__func__
+,
+ `¹e_pktmbuf_d©a_Ën
+(
+pkt
+),
+
+331
+ `¹e_pktmbuf_d©a_Ën
+(
+ `¹e_pktmbuf_Ï¡£g
+(
+pkt
+)));
+
+332
+ `´\9atf
+("%s: bufã¸addr(%p), d©a_off(%u),\82b_£gs(%u)\n",
+__func__
+,
+
+333
+pkt
+->
+buf_addr
+,\85kt->
+d©a_off
+,\85kt->
+nb_£gs
+);
+
+336 ià(
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_INVITE
+)) {
+
+338 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0) ==
+
+339
+TRUE
+)
+
+340
+s\9d_ÿÎ_id
+ =
+
+341
+ `g\91S\9dC®lIdS\8c
+(
+pS\9dMsg
+ +
+pos
+ +
+
+342
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CALLID
+));
+
+344 ià(
+ALG_DEBUG
+)
+
+345
+ `´\9atf
+("s\9d®gdpi: %d c®Èid %s\n",
+__LINE__
+,
+
+346
+s\9d_ÿÎ_id
+);
+
+348 ià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+349
+ÿÎ_d\9ceùiÚ
+ =
+SIP_CALL_OUTGOING
+;
+
+350
+\9d_add»ss
+ =
+ `¹e_bsw32
+(
+\9d_h
+->
+¤c_addr
+);
+
+351
+pÜt
+ =
+ `¹e_bsw16
+(
+udp_h
+->
+¤c_pÜt
+);
+
+352 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+) {
+
+353
+ÿÎ_d\9ceùiÚ
+ =
+SIP_CALL_INCOMING
+;
+
+354
+\9d_add»ss
+ =
+pubIp
+;
+
+355
+pÜt
+ =
+pubL4PÜt
+;
+
+358 ià(
+ALG_DEBUG
+)
+
+359
+ `´\9atf
+("0=>sip_alg_dpi:\85kt_dir(%d), call_dir(%d), "
+
+361
+pkt_d\9ceùiÚ
+,
+ÿÎ_d\9ceùiÚ
+,
+\9d_add»ss
+,
+pÜt
+);
+
+364
+»t
+ =
+ `pÝuÏ\8b_s\9d_®g_\92\8cy
+(
+\9d_add»ss
+,
+pÜt
+,
+
+365
+s\9d_ÿÎ_id
+,
+ÿÎ_d\9ceùiÚ
+,
+
+366
+SIP_UDP
+);
+
+367 ià(
+»t
+ < 0) {
+
+368
+ `´\9atf
+("sipalgdpi:populate SIP\87lg UDP\83ntry failed\n");
+
+371 ià(
+modR\8dPÜt
+ != 0) {
+
+372
+»t
+ =
+ `pÝuÏ\8b_s\9d_®g_\92\8cy
+(
+\9d_add»ss
+,
+modR\8dPÜt
+,
+
+373
+s\9d_ÿÎ_id
+,
+
+374
+ÿÎ_d\9ceùiÚ
+,
+SIP_RTP
+);
+
+375 ià(
+»t
+ < 0) {
+
+376
+ `´\9atf
+("sipalgdpi: "
+
+381 ià(
+modRtýPÜt
+ != 0) {
+
+382
+»t
+ =
+ `pÝuÏ\8b_s\9d_®g_\92\8cy
+(
+\9d_add»ss
+,
+modRtýPÜt
+,
+
+383
+s\9d_ÿÎ_id
+,
+
+384
+ÿÎ_d\9ceùiÚ
+,
+SIP_RTCP
+);
+
+385 ià(
+»t
+ < 0) {
+
+386
+ `´\9atf
+("sipalgdpi: "
+
+393
+pS\9dMsg
+ =
+
+394
+ `s\9d_®g_´oûss
+(
+pkt
+,
+pkt_d\9ceùiÚ
+,
+ÿÎ_d\9ceùiÚ
+,
+
+395
+SIP_ALG_INVITE_MSGTYPE
+,
+modIp
+,
+modL4PÜt
+, 0,
+
+396 0,
+modR\8dPÜt
+,
+modRtýPÜt
+, &
+diffModS\9dL\92
+);
+
+403 ià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+404
+®g_key
+.
+\9d_add»ss
+ =
+ `¹e_bsw32
+(
+\9d_h
+->
+¤c_addr
+);
+
+405
+®g_key
+.
+l4pÜt
+ =
+ `¹e_bsw16
+(
+udp_h
+->
+¤c_pÜt
+);
+
+407
+®g_key
+.
+\9d_add»ss
+ =
+pubIp
+;
+
+408
+®g_key
+.
+l4pÜt
+ =
+pubL4PÜt
+;
+
+411
+®g_key
+.
+f\9eËr1
+ = 0;
+
+412
+®g_key
+.
+f\9eËr2
+ = 0;
+
+413
+s\9d_®g_\92\8cy
+ =
+ `»\8c\9bve_s\9d_®g_\92\8cy
+(&
+®g_key
+);
+
+415 ià(
+ALG_DEBUG
+) {
+
+416
+ `´\9atf
+("%s: s\9d_®g_\92\8cy_±r(%p)\n",
+__func__
+,
+
+417
+s\9d_®g_\92\8cy
+);
+
+418
+ `´\9atf
+("1=>%s:\85kt_dir(%d), modIp(%x),modL4Port(%x), "
+
+420
+__func__
+,
+pkt_d\9ceùiÚ
+,
+modIp
+,
+modL4PÜt
+,
+
+421
+modR\8dPÜt
+,
+modRtýPÜt
+,
+pubIp
+,
+pubL4PÜt
+);
+
+424 ià(
+s\9d_®g_\92\8cy
+) {
+
+425
+ÿÎ_d\9ceùiÚ
+ =
+s\9d_®g_\92\8cy
+->
+s\9d_®g_ÿÎ_d\9ceùiÚ
+;
+
+426 ià(
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_BYE
+) ||
+
+427
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_CANCEL
+)) {
+
+428
+msgTy³
+ =
+SIP_ALG_BYE_MSGTYPE
+;
+
+430 \10
+s\9dAlgProûss
+;
+
+431 } \vià(
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_ACK
+)) {
+
+432
+msgTy³
+ =
+SIP_ALG_ACK_MSGTYPE
+;
+
+434 \10
+s\9dAlgProûss
+;
+
+437
+pS\9dMsg
+ += 8;
+
+439 ià(
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_200_OK
+)) {
+
+441 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+442 (
+pS\9dMsg
+,
+SIP_ALG_CSEQ
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+443 \ 5*
+pBye
+;
+
+445
+pBye
+ =
+
+446
+pS\9dMsg
+ +
+pos
+ +
+
+447
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CSEQ
+);
+
+448
+ `SKIP_SPACES
+(
+pBye
+);
+
+450 \1f*
+pBye
+ != ' ')
+
+451
+pBye
+++;
+
+452
+ `SKIP_SPACES
+(
+pBye
+);
+
+453 ià(
+ `IS_STRING_SAME
+(
+pBye
+,
+SIP_ALG_BYE
+)
+
+455 (
+IS_STRING_SAME
+
+
+456 (
+pBye
+,
+SIP_ALG_CANCEL
+)))
+
+457
+msgTy³
+ =
+
+458
+SIP_ALG_200_OK_BYE_MSGTYPE
+;
+
+461
+msgTy³
+ =
+
+462
+SIP_ALG_200_OK_INVITE_MSGTYPE
+;
+
+464 } \vià(
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_TRYING
+) ||
+
+465
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_RINGING
+)) {
+
+466
+msgTy³
+ =
+SIP_ALG_TRYING_RINGING_MSGTYPE
+;
+
+469
+s\9dAlgProûss
+:
+
+470 ià(
+ALG_DEBUG
+)
+
+471
+ `´\9atf
+("2=>%s:\85kt_dir(%d), call_dir(%d), "
+
+474
+__func__
+,
+pkt_d\9ceùiÚ
+,
+ÿÎ_d\9ceùiÚ
+,
+
+475
+msgTy³
+,
+modIp
+,
+modL4PÜt
+,
+modR\8dPÜt
+,
+
+476
+modRtýPÜt
+);
+
+478
+pS\9dMsg
+ =
+
+479
+ `s\9d_®g_´oûss
+(
+pkt
+,
+pkt_d\9ceùiÚ
+,
+ÿÎ_d\9ceùiÚ
+,
+
+480
+msgTy³
+,
+modIp
+,
+modL4PÜt
+,
+pubIp
+,
+
+481
+pubL4PÜt
+,
+modR\8dPÜt
+,
+modRtýPÜt
+,
+
+482 &
+diffModS\9dL\92
+);
+
+484
+pS\9dMsg
+ =
+NULL
+;
+
+487 ià(
+ALG_DEBUG
+)
+
+488
+ `´\9atf
+("%s: BefÜ\90IP\81Ù®\86\92gth(%u), ud°Ëngth(%u)\n",
+__func__
+,
+
+489
+ `¹e_bsw16
+(
+\9d_h
+->
+tÙ®_Ëngth
+),\84\8b_bsw16(
+udp_h
+->
+dg¿m_Ën
+));
+
+494
+u\9at16_t
+
+Ën
+ = 0;
+
+495 ià(
+diffModS\9dL\92
+ > 0) {
+
+496
+Ën
+ =
+ `¹e_bsw16
+(
+udp_h
+->
+dg¿m_Ën
+);
+
+497
+Ën
+ +ð
+diffModS\9dL\92
+;
+
+498
+udp_h
+->
+dg¿m_Ën
+ =
+ `¹e_bsw16
+(
+Ën
+);
+
+500
+Ën
+ =
+ `¹e_bsw16
+(
+\9d_h
+->
+tÙ®_Ëngth
+);
+
+501
+Ën
+ +ð
+diffModS\9dL\92
+;
+
+502
+\9d_h
+->
+tÙ®_Ëngth
+ =
+ `¹e_bsw16
+(
+Ën
+);
+
+504 ià(
+ `¹e_pktmbuf_³nd
+(
+pkt
+,
+diffModS\9dL\92
+è=ð
+NULL
+)
+
+505
+ `´\9atf
+("%s:\85ktmbuf_³nd\84\91uº NULL",
+__func__
+);
+
+509 ià(
+ALG_DEBUG
+)
+
+510
+ `´\9atf
+("%s: After IP\81otal\86ength(%u), udp\86ength(%u), "
+
+511 "diffModS\9dL\92(%u)\n",
+__func__
+,
+
+512
+ `¹e_bsw16
+(
+\9d_h
+->
+tÙ®_Ëngth
+),
+
+513
+ `¹e_bsw16
+(
+udp_h
+->
+dg¿m_Ën
+),
+
+514
+diffModS\9dL\92
+);
+
+516 ià(
+pS\9dMsg
+ !ð
+NULL
+)
+
+520
+ }
+}
+
+522 \ 5*
+ $s\9d_®g_´oûss
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at16_t
+
+pkt_d\9ceùiÚ
+,
+
+523
+u\9at16_t
+
+ÿÎ_d\9ceùiÚ
+, u\9at16_\88
+msgTy³
+,
+u\9at32_t
+
+modIp
+,
+
+524
+u\9at16_t
+
+modL4PÜt
+,
+u\9at32_t
+
+pubIp
+, u\9at16_\88
+pubL4PÜt
+,
+
+525
+u\9at16_t
+
+modR\8dPÜt
+, u\9at16_\88
+modRtýPÜt
+,
+
+526
+u\9at16_t
+ *
+diffModS\9dL\92
+)
+
+528 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+529 \19
+\91h\94_hdr
+ *
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19ether_hdr *);
+
+530 \19
+udp_hdr
+ *
+udp_h
+;
+
+531 \ 5*
+pS\9dMsg
+, *
+pS\8c
+, *
+pEndP\8c
+;
+
+532 \12
+pos
+;
+
+534
+u\9at32_t
+
+diffL\92
+,
+addrPÜtL\92
+;
+
+535 \12
+sdpMsgL\92
+ = 0;
+
+536 \12
+s\9d_msg_Ën
+ = 0;
+
+538
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+539
+udp_h
+ = (\19
+udp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+540
+pS\9dMsg
+ = ((\ 5*)
+udp_h
+ + \17(\19
+udp_hdr
+));
+
+541 \ 5*
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+542 \ 5*
+pS\8f¹S\9dMsg
+ =
+pS\9dMsg
+;
+
+544
+s\9d_msg_Ën
+ =
+
+545
+ `¹e_bsw16
+(
+\9d_h
+->
+tÙ®_Ëngth
+è- \17(\19
+\9dv4_hdr
+) -
+
+546 \17(\19
+udp_hdr
+);
+
+548 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0) ==
+
+549
+TRUE
+)
+
+550
+pTmpS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+552
+ `´\9atf
+("sip_alg_process: Invalid Content Length\n");
+
+553 \15
+NULL
+;
+
+556
+ `SKIP_SPACES
+(
+pTmpS\9dMsg
+);
+
+557 \12
+sdpD©aL\92
+ =
+ `¡¹Þ
+(
+pTmpS\9dMsg
+, &
+pS\8c
+, 10);
+
+559
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+, 0);
+
+560
+pTmpS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_DOUBLE_CRLF
+));
+
+562 ià(
+sdpD©aL\92
+ != 0)
+
+563 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+564 (
+pTmpS\9dMsg
+,
+SIP_ALG_REMOTE_PARTY_ID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+565
+pTmpS\9dMsg
+ +ð
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_REMOTE_PARTY_ID
+);
+
+567
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+568
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+,
+
+570
+pTmpS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_DOUBLE_CRLF
+));
+
+573 \12
+s\9dMsgL\92
+ = (
+pTmpS\9dMsg
+ -
+pS\9dMsg
+);
+
+575 \ 5*
+pS\9dMsgEnd
+ =
+pS\9dMsg
+ +
+s\9dMsgL\92
+ +
+sdpD©aL\92
+;
+
+577 ià(
+ALG_DEBUG
+)
+
+578
+ `´\9atf
+("%s:\85SipMsg: %p,\85SipMsgEnd: %p, sipMsgLen: %d, "
+
+580
+__func__
+,
+pS\9dMsg
+,
+pS\9dMsgEnd
+,
+s\9dMsgL\92
+,
+sdpD©aL\92
+,
+
+581
+s\9d_msg_Ën
+);
+
+583 ià(
+ÿÎ_d\9ceùiÚ
+ =ð
+SIP_CALL_OUTGOING
+) {
+
+584 ià((
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+)
+
+585 || (
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)) {
+
+587 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+588 =ð
+TRUE
+) {
+
+590
+pS\9dMsg
+ +=
+
+591 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+592
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+593
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+595
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+596
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+598
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+599
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+601
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+602 \15
+NULL
+;
+
+605
+pS\9dMsg
+ =
+
+606
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+607
+addrPÜtL\92
+,
+
+608 &
+diffL\92
+,
+modIp
+,
+
+609
+modL4PÜt
+,
+
+610
+ADDRESS_PORT_STRING
+);
+
+612 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+616 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+617 =ð
+TRUE
+) {
+
+618
+pS\9dMsg
+ +ð
+pos
+;
+
+620
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+622
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+623 &
+pos
+, 0);
+
+624
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+625
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+627
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+629
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+631
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+633
+´\9atf
+
+
+635 \15
+NULL
+;
+
+638
+pS\9dMsg
+ =
+
+639
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+640
+addrPÜtL\92
+,
+
+641 &
+diffL\92
+,
+modIp
+,
+
+642
+modL4PÜt
+,
+
+643
+ADDRESS_PORT_STRING
+);
+
+645 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+649 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+650 (
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+651
+pS\9dMsg
+ +ð
+pos
+;
+
+653
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+655
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+656
+SIP_ALG_CRLF
+, &
+pos
+,
+
+658
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+659
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+661
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+663
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+664
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+666
+ `´\9atf
+("sip_alg_process; "
+
+668 \15
+NULL
+;
+
+672
+pS\9dMsg
+ =
+
+673
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+674
+addrPÜtL\92
+,
+
+675 &
+diffL\92
+,
+modIp
+, 0,
+
+676
+ADDRESS_PORT_STRING
+);
+
+678 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+681 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+682 (
+pS\9dMsg
+,
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+683
+pS\9dMsg
+ +ð
+pos
+;
+
+685
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+686
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+687
+SIP_ALG_CRLF
+, &
+pos
+,
+
+689
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+691
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+693
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+694
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+697
+ `´\9atf
+("sip_alg_process; "
+
+699 \15
+NULL
+;
+
+702
+pS\9dMsg
+ =
+
+703
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+704
+addrPÜtL\92
+,
+
+705 &
+diffL\92
+,
+modIp
+,
+
+706
+modL4PÜt
+,
+
+707
+ADDRESS_PORT_STRING
+);
+
+709 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+711 ià(
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+) {
+
+713 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+714 (
+pS\9dMsg
+,
+SIP_ALG_CONTYPE
+, &
+pos
+,
+
+715 0è=ð
+TRUE
+) {
+
+716
+pS\9dMsg
+ +=
+
+717 (
+pos
+ +
+
+718
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTYPE
+));
+
+719
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+721 ià(!
+IS_STRING_SAME
+
+
+722 (
+pS\9dMsg
+,
+SIP_ALG_APPSDP
+)) {
+
+723
+ `´\9atf
+("sip_alg_process "
+
+725 \15
+NULL
+;
+
+728
+ `´\9atf
+("sip_alg_process; "
+
+730 \15
+NULL
+;
+
+734
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+735
+SIP_ALG_CONTENT_LEN
+, &
+pos
+,
+
+737
+pS\9dMsg
+ +=
+
+738 (
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+739
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+740
+sdpMsgL\92
+ =
+ `¡¹Þ
+(
+pS\9dMsg
+, &
+pEndP\8c
+, 10);
+
+741 ià(!
+sdpMsgL\92
+) {
+
+743 ià(
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)
+
+744 \10
+s\9dAlgProûssEx\99
+;
+
+746
+ `´\9atf
+("sip_alg_process - "
+
+748 \15
+NULL
+;
+
+752 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+753 (
+pS\9dMsg
+,
+SIP_ALG_OWNER
+, &
+pos
+,
+
+754 0è=ð
+TRUE
+) {
+
+755
+pS\9dMsg
+ +ð
+pos
+;
+
+757
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+759
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pS\9dMsg
+,
+
+760
+SIP_ALG_CRLF
+,
+
+761 &
+pos
+,
+
+763
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+766
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+767
+SIP_ALG_IPV4
+, &
+pos
+,
+
+769
+pS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_IPV4
+));
+
+770
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+772
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+774
+ `´\9atf
+("sip_alg_processing: "
+
+776 \15
+NULL
+;
+
+779
+pS\9dMsg
+ =
+
+780
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+781 &
+pS\9dMsgEnd
+,
+
+782
+addrPÜtL\92
+,
+
+783 &
+diffL\92
+,
+
+784
+modIp
+, 0,
+
+785
+ADDRESS_PORT_STRING
+);
+
+787 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+788
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+792 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+793 (
+pS\9dMsg
+,
+SIP_ALG_CONN
+, &
+pos
+,
+
+794 0è=ð
+TRUE
+) {
+
+795
+pS\9dMsg
+ +ð
+pos
+;
+
+796
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+798
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pS\9dMsg
+,
+
+799
+SIP_ALG_CRLF
+,
+
+800 &
+pos
+,
+
+802
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+805
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+806
+SIP_ALG_IPV4
+, &
+pos
+,
+
+808
+pS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_IPV4
+));
+
+809
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+811
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+813
+ `´\9atf
+("sip_alg_processing: "
+
+815 \15
+NULL
+;
+
+818
+pS\9dMsg
+ =
+
+819
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+820 &
+pS\9dMsgEnd
+,
+
+821
+addrPÜtL\92
+,
+
+822 &
+diffL\92
+,
+
+823
+modIp
+, 0,
+
+824
+ADDRESS_PORT_STRING
+);
+
+826 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+827
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+831 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+832 (
+pS\9dMsg
+,
+SIP_ALG_AUDIO
+, &
+pos
+,
+
+833 0è=ð
+TRUE
+) {
+
+834
+pS\9dMsg
+ +=
+
+835 (
+pos
+ +
+
+836
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_AUDIO
+));
+
+837
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+838
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+839
+ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+
+
+840 (
+pTmpS\9dMsg
+,
+SIP_ALG_SPACE
+, &
+pos
+,
+
+842
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+843
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+847
+pS\9dMsg
+ =
+
+848
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+849 &
+pS\9dMsgEnd
+,
+
+850
+addrPÜtL\92
+,
+
+851 &
+diffL\92
+, 0,
+
+852
+modR\8dPÜt
+,
+
+853
+PORT_STRING
+);
+
+855 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+856
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+860 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+861 (
+pS\9dMsg
+,
+SIP_ALG_RTCP
+, &
+pos
+,
+
+862 0è=ð
+TRUE
+) {
+
+863
+pS\9dMsg
+ +=
+
+864 (
+pos
+ +
+
+865
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_RTCP
+));
+
+866
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+867
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+868
+ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+
+
+869 (
+pTmpS\9dMsg
+,
+SIP_ALG_SPACE
+, &
+pos
+,
+
+871
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+872
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+875
+pS\9dMsg
+ =
+
+876
+ÇtS\9dAlgModifyPaylßdAddrPÜt
+
+
+877 (
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+addrPÜtL\92
+,
+
+878 &
+diffL\92
+, 0,
+modRtýPÜt
+,
+
+879
+PORT_STRING
+);
+
+881 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+882
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+887 } \vià((
+msgTy³
+ =ð
+SIP_ALG_TRYING_RINGING_MSGTYPE
+)
+
+888 || (
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+)) {
+
+890 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+891 =ð
+TRUE
+) {
+
+893
+pS\9dMsg
+ +=
+
+894 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+895
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+896
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+898
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+899
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+901
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+902
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+904
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+905 \15
+NULL
+;
+
+908
+pS\9dMsg
+ =
+
+909
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+910
+addrPÜtL\92
+,
+
+911 &
+diffL\92
+,
+modIp
+,
+
+912
+modL4PÜt
+,
+
+913
+ADDRESS_PORT_STRING
+);
+
+914 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+917 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+918 =ð
+TRUE
+) {
+
+919
+pS\9dMsg
+ +ð
+pos
+;
+
+921
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+923
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+924 &
+pos
+, 0);
+
+925
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+928
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+930
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+932
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+934
+´\9atf
+
+
+936 \15
+NULL
+;
+
+939
+pS\9dMsg
+ =
+
+940
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+941
+addrPÜtL\92
+,
+
+942 &
+diffL\92
+,
+modIp
+,
+
+943
+modL4PÜt
+,
+
+944
+ADDRESS_PORT_STRING
+);
+
+946 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+950 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+951 (
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+952
+pS\9dMsg
+ +ð
+pos
+;
+
+954
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+956
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+957
+SIP_ALG_CRLF
+, &
+pos
+,
+
+959
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+962
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+964
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+965
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+967
+ `´\9atf
+("sip_alg_process; "
+
+969 \15
+NULL
+;
+
+973
+pS\9dMsg
+ =
+
+974
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+975
+addrPÜtL\92
+,
+
+976 &
+diffL\92
+,
+modIp
+, 0,
+
+977
+ADDRESS_PORT_STRING
+);
+
+979 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+981 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+
+
+982 &&
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+986 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+987 =ð
+TRUE
+) {
+
+989
+pS\9dMsg
+ +=
+
+990 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+991
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+992
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+994
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+995
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+997
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+998
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1000
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+1001 \15
+NULL
+;
+
+1004
+pS\9dMsg
+ =
+
+1005
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1006
+addrPÜtL\92
+,
+
+1007 &
+diffL\92
+,
+modIp
+, 0,
+
+1008
+ADDRESS_PORT_STRING
+);
+
+1009 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1012 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1013 =ð
+TRUE
+) {
+
+1014
+pS\9dMsg
+ +ð
+pos
+;
+
+1016
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1018
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1019 &
+pos
+, 0);
+
+1020
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1021
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1023
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1025
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1027
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1029
+´\9atf
+
+
+1031 \15
+NULL
+;
+
+1034
+pS\9dMsg
+ =
+
+1035
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1036
+addrPÜtL\92
+,
+
+1037 &
+diffL\92
+,
+modIp
+,
+
+1038
+modL4PÜt
+,
+
+1039
+ADDRESS_PORT_STRING
+);
+
+1041 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1045 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1046 (
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1047
+pS\9dMsg
+ +ð
+pos
+;
+
+1049
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1051
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1052
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1054
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1055
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1057
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1059
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1060
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1062
+ `´\9atf
+("sip_alg_process; "
+
+1064 \15
+NULL
+;
+
+1068
+pS\9dMsg
+ =
+
+1069
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1070
+addrPÜtL\92
+,
+
+1071 &
+diffL\92
+,
+modIp
+, 0,
+
+1072
+ADDRESS_PORT_STRING
+);
+
+1074 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1077 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1078 (
+pS\9dMsg
+,
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1079
+pS\9dMsg
+ +ð
+pos
+;
+
+1081
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1082
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1083
+SIP_ALG_CRLF
+, &
+pos
+, 0);
+
+1084
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1086 \12
+æag
+ = 0;
+
+1087 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+,
+
+1088 &
+pos
+, 0è=ð
+FALSE
+)
+
+1089
+æag
+ = 1;
+
+1091 ià(
+æag
+)
+
+1092 \10
+S\9dMsgAdvªû2
+;
+
+1093
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1094
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1097
+ `´\9atf
+("sip_alg_process; "
+
+1099 \15
+NULL
+;
+
+1102
+pS\9dMsg
+ =
+
+1103
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1104
+addrPÜtL\92
+,
+
+1105 &
+diffL\92
+,
+modIp
+,
+
+1106
+modL4PÜt
+,
+
+1107
+ADDRESS_PORT_STRING
+);
+
+1109 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1110 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+
+
+1111 &&
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1118
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+, 0);
+
+1119
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1120
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1121
+ `ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+(
+pTmpS\9dMsg
+,
+SIP_ALG_SPACE
+,
+
+1122 &
+pos
+, 0);
+
+1123
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1124
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1126
+pS\9dMsg
+ =
+
+1127
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1128
+addrPÜtL\92
+,
+
+1129 &
+diffL\92
+,
+modIp
+,
+
+1130
+modL4PÜt
+,
+
+1131
+ADDRESS_PORT_STRING
+);
+
+1132 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1136 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1137 =ð
+TRUE
+) {
+
+1138
+pS\9dMsg
+ +ð
+pos
+;
+
+1139
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1140
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1141 &
+pos
+, 0);
+
+1142
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1143
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1145
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1146
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1147
+pS\9dMsg
+ =
+
+1148
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1149 &
+pS\9dMsgEnd
+,
+
+1150
+addrPÜtL\92
+,
+
+1151 &
+diffL\92
+,
+
+1152
+modIp
+,
+
+1153
+modL4PÜt
+,
+
+1154
+ADDRESS_PORT_STRING
+);
+
+1155 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1160 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1161 (
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1162
+pS\9dMsg
+ +ð
+pos
+;
+
+1164
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1166
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1167
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1169
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1172
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1174
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1175
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1177
+ `´\9atf
+("sip_alg_process; "
+
+1179 \15
+NULL
+;
+
+1183
+pS\9dMsg
+ =
+
+1184
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1185
+addrPÜtL\92
+,
+
+1186 &
+diffL\92
+,
+modIp
+, 0,
+
+1187
+ADDRESS_PORT_STRING
+);
+
+1189 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1190 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+
+
+1191 && (
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+)) {
+
+1197 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1198 =ð
+TRUE
+) {
+
+1199
+pS\9dMsg
+ +ð
+pos
+;
+
+1201
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1203
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1204 &
+pos
+, 0);
+
+1205
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1206
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1208
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1210
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1212
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1214
+´\9atf
+
+
+1216 \15
+NULL
+;
+
+1219
+pS\9dMsg
+ =
+
+1220
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1221
+addrPÜtL\92
+,
+
+1222 &
+diffL\92
+,
+modIp
+,
+
+1223
+modL4PÜt
+,
+
+1224
+ADDRESS_PORT_STRING
+);
+
+1226 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1230 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1231 (
+pS\9dMsg
+,
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1232
+pS\9dMsg
+ +ð
+pos
+;
+
+1234
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1235
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1236
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1238
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1240 \12
+æag
+ = 0;
+
+1241 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+,
+
+1242 &
+pos
+, 0è=ð
+FALSE
+)
+
+1243
+æag
+ = 1;
+
+1245 ià(
+æag
+)
+
+1246 \10
+S\9dMsgAdvªû2
+;
+
+1247
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1248
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1250
+ `´\9atf
+("sip_alg_process; "
+
+1252 \15
+NULL
+;
+
+1255
+pS\9dMsg
+ =
+
+1256
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1257
+addrPÜtL\92
+,
+
+1258 &
+diffL\92
+,
+modIp
+,
+
+1259
+modL4PÜt
+,
+
+1260
+ADDRESS_PORT_STRING
+);
+
+1262 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1263 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+
+
+1264 && (
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+)) {
+
+1268 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1269 =ð
+TRUE
+) {
+
+1271
+pS\9dMsg
+ +=
+
+1272 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+1273
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1274
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1276
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+1277
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1279
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1280
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1282
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+1283 \15
+NULL
+;
+
+1286
+pS\9dMsg
+ =
+
+1287
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1288
+addrPÜtL\92
+,
+
+1289 &
+diffL\92
+,
+modIp
+, 0,
+
+1290
+ADDRESS_PORT_STRING
+);
+
+1291 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1294 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1295 =ð
+TRUE
+) {
+
+1296
+pS\9dMsg
+ +ð
+pos
+;
+
+1298
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1300
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1301 &
+pos
+, 0);
+
+1302
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1303
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1305
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1307
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1309
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1311
+´\9atf
+
+
+1313 \15
+NULL
+;
+
+1316
+pS\9dMsg
+ =
+
+1317
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1318
+addrPÜtL\92
+,
+
+1319 &
+diffL\92
+,
+modIp
+,
+
+1320
+modL4PÜt
+,
+
+1321
+ADDRESS_PORT_STRING
+);
+
+1323 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1326 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1327 (
+pS\9dMsg
+,
+SIP_ALG_CALLID
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1328
+pS\9dMsg
+ +ð
+pos
+;
+
+1330
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1331
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1332
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1334
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1335
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1337
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1338
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1340
+pS\9dMsg
+ =
+
+1341
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1342 &
+pS\9dMsgEnd
+,
+
+1343
+addrPÜtL\92
+,
+
+1344 &
+diffL\92
+,
+
+1345
+modIp
+, 0,
+
+1346
+ADDRESS_PORT_STRING
+);
+
+1348 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1351
+ `´\9atf
+("sip_alg_process; "
+
+1353 \15
+NULL
+;
+
+1357 } \vià(
+ÿÎ_d\9ceùiÚ
+ =ð
+SIP_CALL_INCOMING
+) {
+
+1358 ià((
+msgTy³
+ =ð
+SIP_ALG_INVITE_MSGTYPE
+)
+
+1359 || (
+msgTy³
+ =ð
+SIP_ALG_ACK_MSGTYPE
+)) {
+
+1362 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+, 0)
+
+1363 =ð
+TRUE
+) {
+
+1364
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1365
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1366
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_SIP
+,
+
+1367 &
+pos
+, 0);
+
+1368
+pTmpS\9dMsg
+ +ð(
+pos
+ - 1);
+
+1370
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1372
+´\9atf
+
+
+1374
+__LINE__
+);
+
+1375 \15
+NULL
+;
+
+1378
+pS\9dMsg
+ =
+
+1379
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1380
+addrPÜtL\92
+,
+
+1381 &
+diffL\92
+,
+modIp
+,
+
+1382
+modL4PÜt
+,
+
+1383
+ADDRESS_PORT_STRING
+);
+
+1384 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1388 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1389 =ð
+TRUE
+) {
+
+1390
+pS\9dMsg
+ +ð
+pos
+;
+
+1391
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1392
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1393 &
+pos
+, 0);
+
+1394
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1395
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1397
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1398
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1400
+ `´\9atf
+("sip_alg_processing; "
+
+1402
+__LINE__
+);
+
+1403 \15
+NULL
+;
+
+1406
+pS\9dMsg
+ =
+
+1407
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1408
+addrPÜtL\92
+,
+
+1409 &
+diffL\92
+,
+modIp
+,
+
+1410
+modL4PÜt
+,
+
+1411
+ADDRESS_PORT_STRING
+);
+
+1412 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1414 } \vià((
+msgTy³
+ =ð
+SIP_ALG_TRYING_RINGING_MSGTYPE
+)
+
+1415 || (
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+)) {
+
+1418 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1419 =ð
+TRUE
+) {
+
+1420
+pS\9dMsg
+ +ð
+pos
+;
+
+1421
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1422
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1423 &
+pos
+, 0);
+
+1424
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1425
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1427
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1428
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1429
+pS\9dMsg
+ =
+
+1430
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1431 &
+pS\9dMsgEnd
+,
+
+1432
+addrPÜtL\92
+,
+
+1433 &
+diffL\92
+,
+
+1434
+modIp
+,
+
+1435
+modL4PÜt
+,
+
+1436
+ADDRESS_PORT_STRING
+);
+
+1437 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1440 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_INVITE_MSGTYPE
+) {
+
+1444 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1445 (
+pS\9dMsg
+,
+SIP_ALG_CONTACT
+, &
+pos
+,
+
+1446 0è=ð
+TRUE
+) {
+
+1447
+pS\9dMsg
+ +ð
+pos
+;
+
+1449
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1450
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+1451
+SIP_ALG_SEMICOLON
+,
+
+1452 &
+pos
+, 0);
+
+1453
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1455 \12
+æag
+ = 0;
+
+1456 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+1457
+SIP_ALG_AT
+, &
+pos
+,
+
+1458 30è=ð
+FALSE
+)
+
+1459
+æag
+ = 1;
+
+1461 ià(
+æag
+)
+
+1462 \10
+S\9dMsgAdvªû
+;
+
+1464
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1465
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1467
+ `´\9atf
+("sip_alg_process; "
+
+1469 \15
+NULL
+;
+
+1472
+pS\9dMsg
+ =
+
+1473
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1474 &
+pS\9dMsgEnd
+,
+
+1475
+addrPÜtL\92
+,
+
+1476 &
+diffL\92
+,
+
+1477
+modIp
+,
+
+1478
+modL4PÜt
+,
+
+1479
+ADDRESS_PORT_STRING
+);
+
+1481 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1482
+S\9dMsgAdvªû
+:
+
+1484
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1485 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1486 (
+pS\9dMsg
+,
+SIP_ALG_REMOTE_PARTY_ID
+, &
+pos
+,
+
+1487 0è=ð
+TRUE
+) {
+
+1488
+pS\9dMsg
+ +ð
+pos
+ +
+
+1489
+ `¡¾\92
+(
+SIP_ALG_REMOTE_PARTY_ID
+);
+
+1490
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1491
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+1492
+SIP_ALG_GREAT
+,
+
+1493 &
+pos
+, 0);
+
+1494
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1495
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+1496
+SIP_ALG_AT
+, &
+pos
+,
+
+1498
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1499
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1501
+pS\9dMsg
+ =
+
+1502
+ÇtS\9dAlgModifyPaylßdAddrPÜt
+
+
+1503 (
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+addrPÜtL\92
+,
+
+1504 &
+diffL\92
+,
+modIp
+,
+modL4PÜt
+,
+
+1505
+ADDRESS_PORT_STRING
+);
+
+1506
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1508
+ `´\9atf
+("sip_alg_process: "
+
+1510
+pS\9dMsg
+ =
+pTmpS\9dMsg
+;
+
+1514 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1515 (
+pS\9dMsg
+,
+SIP_ALG_OWNER
+, &
+pos
+,
+
+1516 0è=ð
+TRUE
+) {
+
+1517
+pS\9dMsg
+ +ð
+pos
+;
+
+1519
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1521
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pS\9dMsg
+,
+
+1522
+SIP_ALG_CRLF
+,
+
+1523 &
+pos
+,
+
+1525
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1528
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+1529
+SIP_ALG_IPV4
+, &
+pos
+,
+
+1531
+pS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_IPV4
+));
+
+1532
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1534
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1536
+ `´\9atf
+("sip_alg_processing: "
+
+1538 \15
+NULL
+;
+
+1541
+pS\9dMsg
+ =
+
+1542
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1543 &
+pS\9dMsgEnd
+,
+
+1544
+addrPÜtL\92
+,
+
+1545 &
+diffL\92
+,
+
+1546
+modIp
+, 0,
+
+1547
+ADDRESS_PORT_STRING
+);
+
+1549 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1550
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+1554 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1555 (
+pS\9dMsg
+,
+SIP_ALG_CONN
+, &
+pos
+,
+
+1556 0è=ð
+TRUE
+) {
+
+1557
+pS\9dMsg
+ +ð
+pos
+;
+
+1558
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1560
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pS\9dMsg
+,
+
+1561
+SIP_ALG_CRLF
+,
+
+1562 &
+pos
+,
+
+1564
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1567
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+1568
+SIP_ALG_IPV4
+, &
+pos
+,
+
+1570
+pS\9dMsg
+ +ð(
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_IPV4
+));
+
+1571
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1573
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1575
+ `´\9atf
+("sip_alg_processing: "
+
+1577 \15
+NULL
+;
+
+1580
+pS\9dMsg
+ =
+
+1581
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1582 &
+pS\9dMsgEnd
+,
+
+1583
+addrPÜtL\92
+,
+
+1584 &
+diffL\92
+,
+
+1585
+modIp
+, 0,
+
+1586
+ADDRESS_PORT_STRING
+);
+
+1588 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1589
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+1593 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1594 (
+pS\9dMsg
+,
+SIP_ALG_AUDIO
+, &
+pos
+,
+
+1595 0è=ð
+TRUE
+) {
+
+1596
+pS\9dMsg
+ +=
+
+1597 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_AUDIO
+));
+
+1598
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1599
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1600
+ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+
+
+1601 (
+pTmpS\9dMsg
+,
+SIP_ALG_SPACE
+, &
+pos
+,
+
+1603
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1604
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1608
+pS\9dMsg
+ =
+
+1609
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1610 &
+pS\9dMsgEnd
+,
+
+1611
+addrPÜtL\92
+,
+
+1612 &
+diffL\92
+, 0,
+
+1613
+modR\8dPÜt
+,
+
+1614
+PORT_STRING
+);
+
+1616 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1617
+sdpMsgL\92
+ +ð
+diffL\92
+;
+
+1620 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+
+
+1621 &&
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1625
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+, 0);
+
+1626
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1627
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1628
+ `ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+(
+pTmpS\9dMsg
+,
+SIP_ALG_SPACE
+,
+
+1629 &
+pos
+, 0);
+
+1630
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1631
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1633
+pS\9dMsg
+ =
+
+1634
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1635
+addrPÜtL\92
+,
+
+1636 &
+diffL\92
+,
+modIp
+,
+
+1637
+modL4PÜt
+,
+
+1638
+ADDRESS_PORT_STRING
+);
+
+1639 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1643 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1644 =ð
+TRUE
+) {
+
+1645
+pS\9dMsg
+ +ð
+pos
+;
+
+1646
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1647
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1648 &
+pos
+, 0);
+
+1649
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1650
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1652
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1653
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1654
+pS\9dMsg
+ =
+
+1655
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+,
+
+1656 &
+pS\9dMsgEnd
+,
+
+1657
+addrPÜtL\92
+,
+
+1658 &
+diffL\92
+,
+
+1659
+modIp
+,
+
+1660
+modL4PÜt
+,
+
+1661
+ADDRESS_PORT_STRING
+);
+
+1662 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1665
+´\9atf
+
+
+1667 \15
+NULL
+;
+
+1669 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+
+
+1670 &&
+msgTy³
+ =ð
+SIP_ALG_BYE_MSGTYPE
+) {
+
+1674 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1675 =ð
+TRUE
+) {
+
+1677
+pS\9dMsg
+ +=
+
+1678 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+1679
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1680
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1682
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+1683
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1685
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1686
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1688
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+1689 \15
+NULL
+;
+
+1692
+pS\9dMsg
+ =
+
+1693
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1694
+addrPÜtL\92
+,
+
+1695 &
+diffL\92
+,
+modIp
+, 0,
+
+1696
+ADDRESS_PORT_STRING
+);
+
+1697 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1700 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_FROM
+, &
+pos
+, 0)
+
+1701 =ð
+TRUE
+) {
+
+1702
+pS\9dMsg
+ +ð
+pos
+;
+
+1704
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1706
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1707 &
+pos
+, 0);
+
+1708
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1709
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1711
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1713
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1715
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1717
+´\9atf
+
+
+1719 \15
+NULL
+;
+
+1722
+pS\9dMsg
+ =
+
+1723
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1724
+addrPÜtL\92
+,
+
+1725 &
+diffL\92
+,
+modIp
+,
+
+1726
+modL4PÜt
+,
+
+1727
+ADDRESS_PORT_STRING
+);
+
+1729 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1731 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+
+
+1732 &&
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1736 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_VIA
+, &
+pos
+, 0)
+
+1737 =ð
+TRUE
+) {
+
+1739
+pS\9dMsg
+ +=
+
+1740 (
+pos
+ +
+ `¡¾\92
+(
+SIP_ALG_VIA
+) +
+
+1741
+SIP_ALG_VIA_FIELD_IPADDR
+);
+
+1742
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1744
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+
+1745
+SIP_ALG_SEMICOLON
+, &
+pos
+,
+
+1747
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1748
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1750
+ `´\9atf
+("sip_alg_process; No valid VIA field\n");
+
+1751 \15
+NULL
+;
+
+1754
+pS\9dMsg
+ =
+
+1755
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1756
+addrPÜtL\92
+,
+
+1757 &
+diffL\92
+,
+modIp
+, 0,
+
+1758
+ADDRESS_PORT_STRING
+);
+
+1759 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1762 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+
+1763
+SIP_ALG_FROM
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1764
+pS\9dMsg
+ +ð
+pos
+;
+
+1766
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1768
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1769 &
+pos
+, 0);
+
+1770
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1771
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1773
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1775
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1777
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1779
+´\9atf
+
+
+1781 \15
+NULL
+;
+
+1784
+pS\9dMsg
+ =
+
+1785
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1786
+addrPÜtL\92
+,
+
+1787 &
+diffL\92
+,
+modIp
+,
+
+1788
+modL4PÜt
+,
+
+1789
+ADDRESS_PORT_STRING
+);
+
+1791 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1793 } \vià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+
+
+1794 &&
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1796 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_TO
+, &
+pos
+, 0)
+
+1797 =ð
+TRUE
+) {
+
+1798
+pS\9dMsg
+ +ð
+pos
+;
+
+1800
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1802
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pTmpS\9dMsg
+,
+SIP_ALG_GREAT
+,
+
+1803 &
+pos
+, 0);
+
+1804
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1805
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1807
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1809
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1811
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1813
+´\9atf
+
+
+1815 \15
+NULL
+;
+
+1818
+pS\9dMsg
+ =
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(pSipMsg,
+
+1819 &
+pS\9dMsgEnd
+,
+
+1820
+addrPÜtL\92
+,
+
+1821 &
+diffL\92
+,
+modIp
+,
+
+1822
+modL4PÜt
+,
+
+1823
+ADDRESS_PORT_STRING
+);
+
+1825 *
+diffModS\9dL\92
+ =
+diffL\92
+;
+
+1829 ià(
+ÇtS\9dAlgMsgF\9bldPos
+
+
+1830 (
+pS\9dMsg
+,
+SIP_ALG_CONTACT
+, &
+pos
+, 0è=ð
+TRUE
+) {
+
+1831
+pS\9dMsg
+ +ð
+pos
+;
+
+1833
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1834
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1835
+SIP_ALG_CRLF
+, &
+pos
+,
+
+1837
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1839
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AT
+, &
+pos
+,
+
+1841
+pS\9dMsg
+ +ð
+pos
+ + 1;
+
+1842
+addrPÜtL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1844
+ `´\9atf
+("sip_alg_process; "
+
+1846 \15
+NULL
+;
+
+1849
+pS\9dMsg
+ =
+
+1850
+ `ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+
+1851
+addrPÜtL\92
+,
+
+1852 &
+diffL\92
+,
+modIp
+,
+
+1853
+modL4PÜt
+,
+
+1854
+ADDRESS_PORT_STRING
+);
+
+1856 *
+diffModS\9dL\92
+ +ð
+diffL\92
+;
+
+1860
+S\9dMsgAdvªû2
+:
+
+1862 ià(
+ÿÎ_d\9ceùiÚ
+ =ð
+SIP_CALL_OUTGOING
+) {
+
+1864 ià(
+pkt_d\9ceùiÚ
+ =ð
+PRIVATE
+) {
+
+1865 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1866 ià(
+»move_s\9d_®g_\92\8cy
+
+
+1867 (
+ `¹e_bsw32
+(
+\9d_h
+->
+¤c_addr
+),
+
+1868
+ `¹e_bsw16
+(
+udp_h
+->
+¤c_pÜt
+)) < 0)
+
+1869
+ `´\9atf
+("removesipalgentry failed: "
+
+1871
+\9d_h
+->
+¤c_addr
+,
+udp_h
+->
+¤c_pÜt
+);
+
+1875 ià(
+pkt_d\9ceùiÚ
+ =ð
+PUBLIC
+) {
+
+1876 ià(
+msgTy³
+ =ð
+SIP_ALG_200_OK_BYE_MSGTYPE
+) {
+
+1877 ià(
+ `»move_s\9d_®g_\92\8cy
+(
+pubIp
+,
+pubL4PÜt
+) < 0)
+
+1878
+ `´\9atf
+("removesipalgentry failed: "
+
+1880
+pubIp
+,
+pubL4PÜt
+);
+
+1886 ià((
+sdpMsgL\92
+ > 0è&& (
+sdpD©aL\92
+ > 0)) {
+
+1887
+pS\9dMsg
+ =
+pS\8f¹S\9dMsg
+;
+
+1888 \ 5*
+tmpSdpL\92
+ =
+NULL
+;
+
+1890
+sdpMsgL\92
+ +ð
+sdpD©aL\92
+;
+
+1891
+tmpSdpL\92
+ =
+ `\99ß
+(
+sdpMsgL\92
+);
+
+1892 \12
+tmpS\8cL\92
+ =
+ `¡¾\92
+(
+tmpSdpL\92
+);
+
+1895 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0)
+
+1896 =ð
+TRUE
+) {
+
+1897
+pS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+1898
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1899
+pTmpS\9dMsg
+ =
+pS\9dMsg
+;
+
+1900
+ `ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+pTmpS\9dMsg
+,
+
+1901
+SIP_ALG_DOUBLE_CRLF
+, &
+pos
+,
+
+1903
+pTmpS\9dMsg
+ +ð
+pos
+;
+
+1904
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1905
+diffL\92
+ =
+pTmpS\9dMsg
+ -
+pS\9dMsg
+;
+
+1906
+ `ÇtS\9dAlgAdju¡Msg
+(
+pS\9dMsg
+, &
+pS\9dMsgEnd
+,
+tmpS\8cL\92
+,
+
+1907
+diffL\92
+);
+
+1908
+ `¡ºýy
+(
+pS\9dMsg
+,
+tmpSdpL\92
+,
+tmpS\8cL\92
+);
+
+1910
+ `´\9atf
+("sip_alg_process: Invalid Content Length\n");
+
+1911 \15
+NULL
+;
+
+1915
+s\9dAlgProûssEx\99
+:
+
+1917 \15
+pS\8f¹S\9dMsg
+;
+
+1918
+ }
+}
+
+1924 \12
+ $ÇtS\9dAlgG\91AudioPÜts
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at16_t
+ *
+¹pPÜt
+,
+
+1925
+u\9at16_t
+ *
+¹ýPÜt
+)
+
+1927 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1928 \19
+\91h\94_hdr
+ *
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19ether_hdr *);
+
+1929 \19
+udp_hdr
+ *
+udp_h
+;
+
+1930 \ 5*
+pS\9dMsg
+, *
+pEndP\8c
+;
+
+1931 \12
+pos
+,
+sdpMsgL\92
+;
+
+1933
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1934
+udp_h
+ = (\19
+udp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1935
+pS\9dMsg
+ = ((\ 5*)
+udp_h
+ + \17(\19
+udp_hdr
+));
+
+1938 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_CONTYPE
+, &
+pos
+, 0è=ð
+FALSE
+)
+
+1941
+pS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTYPE
+));
+
+1942
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1945 ià(!
+ `IS_STRING_SAME
+(
+pS\9dMsg
+,
+SIP_ALG_APPSDP
+)) {
+
+1946
+ `´\9atf
+("sip_alg_getAudioPort Invalid Content\81ype\n");
+
+1951
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_CONTENT_LEN
+, &
+pos
+, 0);
+
+1952
+pS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_CONTENT_LEN
+));
+
+1953
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1954
+sdpMsgL\92
+ =
+ `¡¹Þ
+(
+pS\9dMsg
+, &
+pEndP\8c
+, 10);
+
+1955 ià(!
+sdpMsgL\92
+) {
+
+1956
+ `´\9atf
+("sipAlggetAudioport - sdpMsgLen is 0\n");
+
+1961 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_AUDIO
+, &
+pos
+, 0) ==
+
+1962
+TRUE
+) {
+
+1963
+pS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_AUDIO
+));
+
+1964
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1965 *
+¹pPÜt
+ =
+ `¡¹Þ
+(
+pS\9dMsg
+, &
+pEndP\8c
+, 10);
+
+1967 *
+¹pPÜt
+ = 0;
+
+1970 ià(
+ `ÇtS\9dAlgMsgF\9bldPos
+(
+pS\9dMsg
+,
+SIP_ALG_RTCP
+, &
+pos
+, 0) ==
+
+1971
+TRUE
+) {
+
+1972
+pS\9dMsg
+ +ð(
+pos
+ +
+ `TAG_TO_DATAPOS
+(
+SIP_ALG_RTCP
+));
+
+1973
+ `SKIP_SPACES
+(
+pS\9dMsg
+);
+
+1974 *
+¹ýPÜt
+ =
+ `¡¹Þ
+(
+pS\9dMsg
+, &
+pEndP\8c
+, 10);
+
+1976 *
+¹ýPÜt
+ = 0;
+
+1978 ià(
+ALG_DEBUG
+)
+
+1979
+ `´\9atf
+(" sipAlgGetAudioPort;\84tpPort %d,\84tcpPort %d\n",
+
+1980 *
+¹pPÜt
+, *
+¹ýPÜt
+);
+
+1982
+ }
+}
+
+1986
+ $ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+(\ 5*
+pD©a
+, cڡ \ 5*
+pIdS\8c
+, \12*
+pPos
+,
+
+1987 \12
+£¬chL\92
+)
+
+1989 \ 5*
+pS\8f¹
+ =
+pD©a
+;
+
+1990 \12
+i
+ = 0;
+
+1992 ià(!
+pIdS\8c
+)
+
+1993 \15
+FALSE
+;
+
+1995 ià(!
+£¬chL\92
+)
+
+1996
+£¬chL\92
+ = 1500;
+
+1998 \1f
+TRUE
+) {
+
+1999 \1f*
+pD©a
+ != ' ') {
+
+2000
+pD©a
+++;
+
+2001
+i
+++;
+
+2004 ià(
+i
+ >
+£¬chL\92
+) {
+
+2005
+ `´\9atf
+("SIP ALG Find Field Pos: "
+
+2007
+£¬chL\92
+);
+
+2008 *
+pPos
+ =
+£¬chL\92
+;
+
+2009 \15
+FALSE
+;
+
+2012 ià(
+ `bcmp
+(
+pD©a
+,
+pIdS\8c
+,
+ `¡¾\92
+(pIdStr)) == 0)
+
+2016 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2017 \15
+TRUE
+;
+
+2018
+ }
+}
+
+2021 \12
+ $ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+
+2022 \ 5*
+pD©a
+,
+
+2023 cڡ \ 5*
+pIdS\8c
+,
+
+2024 \12*
+pPos
+,
+
+2025 \12
+£¬chL\92
+)
+
+2027 \ 5*
+pS\8f¹
+ =
+pD©a
+;
+
+2028 \12
+i
+ = 0;
+
+2030 ià(!
+pIdS\8c
+)
+
+2031 \15
+FALSE
+;
+
+2033 ià(!
+£¬chL\92
+)
+
+2034
+£¬chL\92
+ = 1500;
+
+2036 \1f
+TRUE
+) {
+
+2037 \1f*
+pD©a
+ != '\r' && *(pData + 1) != '\n') {
+
+2038
+pD©a
+++;
+
+2039
+i
+++;
+
+2041 ià(
+i
+ >ð
+£¬chL\92
+) {
+
+2042
+ `´\9atf
+("SIP ALG Find Field Pos: "
+
+2044
+£¬chL\92
+);
+
+2045 *
+pPos
+ =
+£¬chL\92
+;
+
+2046 \15
+FALSE
+;
+
+2049 ià(
+ `bcmp
+(
+pD©a
+,
+pIdS\8c
+,
+ `¡¾\92
+(pIdStr)) == 0)
+
+2053 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2054 \15
+TRUE
+;
+
+2055
+ }
+}
+
+2058 \12
+ $ÇtS\9dAlgMsgF\9bldPos
+(\ 5*
+pD©a
+,
+
+2059 cڡ \ 5*
+pIdS\8c
+,
+
+2060 \12*
+pPos
+,
+
+2061 \12
+£¬chL\92
+)
+
+2063 \ 5*
+pS\8f¹
+ =
+pD©a
+;
+
+2064 \12
+i
+ = 0,
+j
+ = 0;
+
+2066 ià(!
+pIdS\8c
+)
+
+2067 \15
+FALSE
+;
+
+2069 ià(!
+£¬chL\92
+)
+
+2070
+£¬chL\92
+ = 1500;
+
+2072 \1f
+TRUE
+) {
+
+2073 \1f*
+pD©a
+ != '\r' && *(pData + 1) != '\n') {
+
+2076 \1f*
+pD©a
+ == ' ') {
+
+2077
+pD©a
+++;
+
+2078
+j
+++;
+
+2081 ià(*
+pD©a
+ == '\r' && *(pData + 1) == '\n')
+
+2084 ià(
+ `bcmp
+(
+pD©a
+,
+pIdS\8c
+,
+ `¡¾\92
+(pIdStr)) == 0) {
+
+2085 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2086 \15
+TRUE
+;
+
+2089
+pD©a
+++;
+
+2090
+j
+++;
+
+2092 ià(
+j
+ >ð
+£¬chL\92
+) {
+
+2093 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2094 \15
+FALSE
+;
+
+2101 \ f
+i
+ = 0; i < (
+£¬chL\92
+ - 1); i++) {
+
+2102 ià(
+pD©a
+[
+i
+] == '\r')
+
+2103 ià(
+pD©a
+[
+i
+ + 1] == '\n')
+
+2107 ià(
+i
+ >
+£¬chL\92
+) {
+
+2108
+ `´\9atf
+("SIP ALG Find Field Pos: "
+
+2110
+£¬chL\92
+);
+
+2111 *
+pPos
+ =
+£¬chL\92
+;
+
+2112 \15
+FALSE
+;
+
+2115
+pD©a
+ +ð
+i
+ + 2;
+
+2116
+£¬chL\92
+ -ð(
+i
+ + 2);
+
+2118 ià((
+pD©a
+[0] == '\r' &&\85Data[1] == '\n') ||
+
+2119 (
+£¬chL\92
+ <= 0)) {
+
+2122 ià(
+£¬chL\92
+ > 0) {
+
+2123
+pD©a
+ += 2;
+
+2127 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2129 \15
+FALSE
+;
+
+2133 *
+pPos
+ =
+pD©a
+ -
+pS\8f¹
+;
+
+2134 \15
+TRUE
+;
+
+2135
+ }
+}
+
+2138 \ 5*
+ $g\91S\9dC®lIdS\8c
+(\ 5*
+pMsg
+)
+
+2140 \ 5*
+pS\8f¹
+;
+
+2141 \ 5*
+pC®lId
+ =
+NULL
+;
+
+2142 \12
+i
+;
+
+2144
+pS\8f¹
+ =
+pMsg
+;
+
+2145 \ f
+i
+ = 0; i < 200; i++) {
+
+2146 ià(*
+pMsg
+ != '\r')
+
+2147
+pMsg
+++;
+
+2151 ià(
+i
+ >= 200) {
+
+2152
+ `´\9atf
+("SIP_ALG: getCallid wrong string format\n");
+
+2153 \15
+NULL
+;
+
+2156
+size_t
+
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(
+pMsg
+ -
+pS\8f¹
+ + 1);
+
+2158
+pC®lId
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+2159 ià(!
+pC®lId
+)
+
+2160 \15
+NULL
+;
+
+2162
+ `bcÝy
+(
+pS\8f¹
+,
+pC®lId
+,
+pMsg
+ -\85Start);
+
+2163 *(
+pC®lId
+ + (
+pMsg
+ -
+pS\8f¹
+)) = 0;
+
+2165 ià(
+ALG_DEBUG
+)
+
+2166
+ `´\9atf
+("%s: %s\n",
+__func__
+,
+pC®lId
+);
+
+2168 \15
+pC®lId
+;
+
+2169
+ }
+}
+
+2171 \ 5*
+ $ÇtS\9dAlgModifyPaylßdAddrPÜt
+(
+
+2172 \ 5*
+pS\9dMsg
+, \ 5**
+pS\9dMsgEnd
+,
+
+2173
+u\9at32_t
+
+ÞdS\8cL\92
+, u\9at32_\88*
+diffL\92
+,
+
+2174
+u\9at32_t
+
+modIp
+,
+u\9at16_t
+
+modPÜt
+, u\9at32_\88
+ty³
+)
+
+2176 \ 5
+add½Üt
+[
+MAX_ADDR_PORT_SIZE
+];
+
+2177 \19
+\9a_addr
+
+\9dAddr
+;
+
+2178
+u\9at32_t
+
+ÃwS\8cL\92
+ = 0;
+
+2179 \ 5*
+tmpPÜt
+ =
+NULL
+;
+
+2181 ià(
+modPÜt
+ != 0)
+
+2182
+tmpPÜt
+ =
+ `\99ß
+(
+modPÜt
+);
+
+2184 *
+diffL\92
+ = 0;
+
+2185 ià(
+ty³
+ =ð
+ADDRESS_PORT_STRING
+) {
+
+2186
+\9dAddr
+.
+s_addr
+ =
+ `htÚl
+(
+modIp
+);
+
+2187 \ 5*
+tmpAddr
+ =
+ `\9a\91_Áß
+(
+\9dAddr
+);
+
+2189 ià(
+modPÜt
+ != 0)
+
+2190
+ `¥r\9atf
+(
+add½Üt
+, "%s:%s",
+tmpAddr
+,
+tmpPÜt
+);
+
+2192
+ `¥r\9atf
+(
+add½Üt
+, "%s",
+tmpAddr
+);
+
+2194
+ÃwS\8cL\92
+ =
+ `¡¾\92
+(
+add½Üt
+);
+
+2196 ià(
+ `abs
+(
+ÃwS\8cL\92
+ -
+ÞdS\8cL\92
+) > 0) {
+
+2201
+ `ÇtS\9dAlgAdju¡Msg
+(
+pS\9dMsg
+,
+pS\9dMsgEnd
+,
+
+2202
+ÃwS\8cL\92
+,
+ÞdS\8cL\92
+);
+
+2206
+ `¡ºýy
+(
+pS\9dMsg
+,
+add½Üt
+,
+ `¡¾\92
+(addrport));
+
+2207 } \vià(
+ty³
+ =ð
+PORT_STRING
+) {
+
+2208 if(
+tmpPÜt
+)
+
+2209
+ÃwS\8cL\92
+ =
+ `¡¾\92
+(
+tmpPÜt
+);
+
+2211 ià(
+ `abs
+(
+ÃwS\8cL\92
+ -
+ÞdS\8cL\92
+) > 0) {
+
+2216
+ `ÇtS\9dAlgAdju¡Msg
+(
+pS\9dMsg
+,
+pS\9dMsgEnd
+,
+
+2217
+ÃwS\8cL\92
+,
+ÞdS\8cL\92
+);
+
+2221 if(
+tmpPÜt
+)
+
+2222
+ `¡ºýy
+(
+pS\9dMsg
+,
+tmpPÜt
+,
+ `¡¾\92
+(tmpPort));
+
+2225 ià(
+ÃwS\8cL\92
+ >
+ÞdS\8cL\92
+)
+
+2226 *
+diffL\92
+ =
+ÃwS\8cL\92
+ -
+ÞdS\8cL\92
+;
+
+2228 \15
+pS\9dMsg
+;
+
+2229
+ }
+}
+
+2231 \ 5*
+ $ÇtS\9dAlgAdju¡Msg
+(\ 5*
+pS\9dMsg
+, \ 5**
+pS\9dMsgEnd
+,
+
+2232
+u\9at32_t
+
+ÃwS\8cL\92
+, u\9at32_\88
+ÞdS\8cL\92
+)
+
+2234 \ 5
+MsgBufãr
+[
+MAX_SIP_UDP_MSG_SIZE
+];
+
+2236 ià(
+ÃwS\8cL\92
+ >
+ÞdS\8cL\92
+) {
+
+2237
+pS\9dMsg
+ +ð
+ÞdS\8cL\92
+;
+
+2238 \12
+msgL\92
+ = *
+pS\9dMsgEnd
+ -
+pS\9dMsg
+;
+
+2240
+ `¡ºýy
+(
+MsgBufãr
+,
+pS\9dMsg
+,
+msgL\92
+);
+
+2241
+pS\9dMsg
+ +ð(
+ÃwS\8cL\92
+ -
+ÞdS\8cL\92
+);
+
+2242
+ `¡ºýy
+(
+pS\9dMsg
+,
+MsgBufãr
+,
+msgL\92
+);
+
+2244 ià(
+ALG_DEBUG
+)
+
+2245
+ `´\9atf
+("ÇtS\9dAlgAdju¡Msg: %u\n",
+msgL\92
+);
+
+2248 *
+pS\9dMsgEnd
+ +ð(
+ÃwS\8cL\92
+ -
+ÞdS\8cL\92
+);
+
+2251
+ `mem£t
+(
+pS\9dMsg
+, ' ',
+ÞdS\8cL\92
+);
+
+2254 \15
+pS\9dMsg
+;
+
+2255
+ }
+}
+
+ @VIL/alg/lib_sip_alg.h
+
+17 #iâdeà
+__INCLUDE_LIB_ALG_H__
+
+
+18 \ 1
+ #__INCLUDE_LIB_ALG_H__
+
+
+ )
+
+20 \ 2
+ ~"¹e_\91h\94.h
+"
+
+22
+u\9at16_t
+
+ gs\9d_£ssiÚ_numb\94
+;
+
+23 \ 1
+ #IS_STRING_SAME
+(
+pS\8c
+,
+¡rId
+è(
+ `bcmp
+(ÕS\8c), s\8cId,
+ `¡¾\92
+(¡rId)è=ð0)
+
+ )
+
+24 \ 1
+ #TAG_TO_DATAPOS
+(
+¡r
+è(
+ `¡¾\92
+(¡rè+ 1)
+
+ )
+
+25 \ 1
+ #SKIP_SPACES
+(
+pS\8c
+) \
+
+27 \1f*(\ 5*)(
+pS\8c
+) == ' ') \
+
+28 (\ 5*)(
+pS\8c
+)++; \
+
+29 }
+
+ )
+
+31 \f
+ epkt_d\9c
+ {
+ mPRIVATE
+,
+ mPUBLIC
+};
+
+34 \f
+ es\9d_®g_ÿÎ_d\9ceùiÚ
+ {
+
+35
+ mSIP_CALL_INCOMING
+,
+
+36
+ mSIP_CALL_OUTGOING
+
+
+40 \f
+ es\9d_®g_pÜt_ty³
+ {
+
+41
+ mSIP_UDP
+,
+
+42
+ mSIP_RTP
+,
+
+43
+ mSIP_RTCP
+
+
+50 \19
+ ss\9d_®g_key
+ {
+
+55
+u\9at32_t
+
+ m\9d_add»ss
+;
+
+56
+u\9at16_t
+
+ ml4pÜt
+;
+
+57
+u\9at8_t
+
+ mf\9eËr1
+;
+
+58
+u\9at8_t
+
+ mf\9eËr2
+;
+
+65 \19
+ ss\9d_®g_\8fbË_\92\8cy
+ {
+
+66
+u\9at32_t
+
+ m\9d_add»ss
+;
+
+71
+u\9at16_t
+
+ ml4pÜt
+;
+
+72
+u\9at8_t
+
+ ms\9d_®g_ÿÎ_d\9ceùiÚ
+;
+
+74
+u\9at8_t
+
+ ms\9d_®g_ÿÎ_id
+[100];
+
+75
+u\9at8_t
+
+ ml4pÜt_ty³
+;
+
+76
+u\9at8_t
+
+ mf\9eËr1
+;
+
+77
+u\9at16_t
+
+ mf\9eËr2
+;
+
+78
+u\9at32_t
+
+ mf\9eËr3
+;
+
+79 }
+ g__¹e_ÿche_®igÃd
+;
+
+94 \1e
+lib_s\9d_®g_\9a\99
+(\1e);
+
+117 \12
+s\9d_®g_dpi
+(\19
+¹e_mbuf
+ *
+pkt
+, \f
+pkt_d\9c
+
+pkt_d\9ceùiÚ
+,
+
+118
+u\9at32_t
+
+modIp
+,
+u\9at16_t
+
+modL4PÜt
+,
+
+119
+u\9at32_t
+
+pubIp
+,
+u\9at16_t
+
+pubL4PÜt
+,
+
+120
+u\9at16_t
+
+modR\8dPÜt
+, u\9at16_\88
+modRtýPÜt
+);
+
+133 \12
+ÇtS\9dAlgG\91AudioPÜts
+(
+
+134 \19
+¹e_mbuf
+ *
+pkt
+,
+
+135
+u\9at16_t
+ *
+¹pPÜt
+,
+
+136
+u\9at16_t
+ *
+¹ý_pÜt
+);
+
+137 \12
+ÇtS\9dAlgMsgF\9bldPos
+(
+
+138 \ 5*
+pD©a
+,
+
+139 cڡ \ 5*
+pIdS\8c
+,
+
+140 \12*
+pos
+,
+
+141 \12
+£¬chL\92
+);
+
+142 \12
+ÇtS\9dAlgMsgF\9bldPosF\9adC¾f
+(
+
+143 \ 5*
+pD©a
+,
+
+144 cڡ \ 5*
+pIdS\8c
+,
+
+145 \12*
+pPos
+,
+
+146 \12
+£¬chL\92
+);
+
+147 \12
+ÇtS\9dAlgMsgF\9bldPosF\9adS·û
+(
+
+148 \ 5*
+pD©a
+,
+
+149 cڡ \ 5*
+pIdS\8c
+,
+
+150 \12*
+pPos
+,
+
+151 \12
+£¬chL\92
+);
+
+152 \12
+»move_s\9d_®g_\92\8cy
+(
+
+153
+u\9at32_t
+
+\9daddr
+,
+
+154
+u\9at16_t
+
+pÜtid
+);
+
+ @VIL/conntrack/rte_cnxn_tracking.c
+
+17 \ 2
+ ~<¹e_\91h\94.h
+>
+
+18 \ 2
+ ~<¹e_´eãtch.h
+>
+
+19 \ 2
+ ~<¹e_cyþes.h
+>
+
+20 \ 2
+ ~<¹e_m®loc.h
+>
+
+21 \ 2
+ ~<¹e_memýy.h
+>
+
+22 \ 2
+ ~<¹e_tim\94.h
+>
+
+23 \ 2
+ ~<¹e_¥\9alock.h
+>
+
+24 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+25 \ 2
+ ~"¹e_ù_tý.h
+"
+
+27 \ 1
+ #CNXN_TRX_DEBUG
+ 0
+
+ )
+
+28 \ 1
+ #TESTING_TIMERS
+ 0
+
+ )
+
+29 \ 1
+ #RTE_CT_TIMER_EXPIRED_DUMP
+ 0
+
+ )
+
+31 \ 1
+ #META_DATA_OFFSET
+ 128
+
+ )
+
+32 \ 1
+ #ETHERNET_START
+ (
+META_DATA_OFFSET
+ +
+RTE_PKTMBUF_HEADROOM
+)
+
+ )
+
+33 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+34 \ 1
+ #IP_START
+ (
+ETHERNET_START
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+35 \ 1
+ #PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+ )
+
+36 \ 1
+ #SRC_ADDR_START
+ (
+IP_START
+ + 12)
+
+ )
+
+37 \ 1
+ #TCP_START
+ (
+IP_START
+ + 20)
+
+ )
+
+40 \ 1
+ #PROTOCOL_START_IPV6
+ (
+IP_START
+ + 6)
+
+ )
+
+41 \ 1
+ #SRC_ADDR_START_IPV6
+ (
+IP_START
+ + 8)
+
+ )
+
+42 \ 1
+ #TCP_START_IPV6
+ (
+IP_START
+ + 40)
+
+ )
+
+44 \ 1
+ #TCP_PROTOCOL
+ 6
+
+ )
+
+45 \ 1
+ #UDP_PROTOCOL
+ 17
+
+ )
+
+46 \ 1
+ #TCP_FW_IPV4_KEY_SIZE
+ 16
+
+ )
+
+48 \ 1
+ #TCP_FW_IPV6_KEY_SIZE
+ 40
+
+ )
+
+50 \ 1
+ #IPv4_HEADER_SIZE
+ 20
+
+ )
+
+51 \ 1
+ #IPv6_HEADER_SIZE
+ 40
+
+ )
+
+53 \ 1
+ #IP_VERSION_4
+ 4
+
+ )
+
+54 \ 1
+ #IP_VERSION_6
+ 6
+
+ )
+
+57
+¹e_ù_úxn_\8cack\94_b©ch_lookup_basic_ty³
+(
+
+58 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+59 \19
+¹e_mbuf
+ **
+pkts
+,
+
+60
+u\9at64_t
+ *
+pkts_mask
+,
+
+61
+u\9at64_t
+
+no_Ãw_úxn_mask
+,
+
+62
+u\9at64_t
+ *
+»¶y_pkt_mask
+,
+
+63
+u\9at64_t
+ *
+hijack_mask
+,
+
+64
+u\9at8_t
+
+\9d_hdr_size_by\8bs
+);
+
+74
+ $¹e_ù_úxn_´\9at_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at8_t
+
+ty³
+)
+
+76 \12
+i
+;
+
+77
+u\9at8_t
+ *
+rd
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+IP_START
+);
+
+79
+ `´\9atf
+("\n");
+
+80
+ `´\9atf
+("IP\87nd TCP/UDP headers:\n");
+
+82 ià(
+ty³
+ =ð
+IP_VERSION_4
+) {
+
+83 \ f
+i
+ = 0; i < 40; i++) {
+
+84
+ `´\9atf
+("%02x ",
+rd
+[
+i
+]);
+
+85 ià((
+i
+ & 3) == 3)
+
+86
+ `´\9atf
+("\n");
+
+88
+ `´\9atf
+("\n");
+
+91 ià(
+ty³
+ =ð
+IP_VERSION_6
+) {
+
+92 \ f
+i
+ = 0; i < 60; i++) {
+
+93
+ `´\9atf
+("%02x ",
+rd
+[
+i
+]);
+
+94 ià((
+i
+ & 3) == 3)
+
+95
+ `´\9atf
+("\n");
+
+97
+ `´\9atf
+("\n");
+
+100
+ }
+}
+
+103
+ $¹e_úxn_\9d_ty³
+(
+u\9at8_t
+ *
+ty³
+, \19
+¹e_mbuf
+ *
+pkt
+)
+
+106 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+pkt
+);
+
+108 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv4_HEADER_SIZE
+)
+
+109 *
+ty³
+ =
+IP_VERSION_4
+;
+
+111 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv6_HEADER_SIZE
+)
+
+112 *
+ty³
+ =
+IP_VERSION_6
+;
+
+113
+ }
+}
+
+116
+ $¹e_ù_´\9at_hashkey
+(
+u\9at32_t
+ *
+key
+)
+
+118
+ `´\9atf
+("Key: %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x \\\n",
+
+119
+key
+[0], key[1], key[2], key[3],
+
+120
+key
+[4], key[5], key[6], key[7], key[8], key[9]);
+
+121
+ }
+}
+
+133
+u\9at8_t
+
+
+134
+ $¹e_ù_ü\97\8b_úxn_hashkey
+(
+
+135
+u\9at32_t
+ *
+¤c_addr
+,
+
+136
+u\9at32_t
+ *
+d¡_addr
+,
+
+137
+u\9at16_t
+
+¤c_pÜt
+,
+
+138
+u\9at16_t
+
+d¡_pÜt
+,
+
+139
+u\9at8_t
+
+´Ùo
+,
+
+140
+u\9at32_t
+ *
+key
+,
+
+141
+u\9at8_t
+
+ty³
+)
+
+143
+u\9at8_t
+
+hash_Üd\94_Üig\9a®_d\9ceùiÚ
+ = 1;
+
+145
+key
+[9] =
+´Ùo
+;
+
+147 ià(
+ty³
+ =ð
+IP_VERSION_4
+) {
+
+148
+u\9at32_t
+
+sourû
+ = *
+¤c_addr
+;
+
+149
+u\9at32_t
+
+de¡
+ = *
+d¡_addr
+;
+
+151
+key
+[3] = key[4] = key[5] = key[6] = key[7] = key[8] = 0;
+
+153 ià((
+sourû
+ <
+de¡
+)
+
+154 || ((
+sourû
+ =ð
+de¡
+è&& (
+¤c_pÜt
+ <
+d¡_pÜt
+))) {
+
+155
+key
+[0] =
+sourû
+;
+
+156
+key
+[1] =
+de¡
+;
+
+157
+key
+[2] = (
+¤c_pÜt
+ << 16è|
+d¡_pÜt
+;
+
+159
+key
+[0] =
+de¡
+;
+
+160
+key
+[1] =
+sourû
+;
+
+161
+key
+[2] = (
+d¡_pÜt
+ << 16è|
+¤c_pÜt
+;
+
+162
+hash_Üd\94_Üig\9a®_d\9ceùiÚ
+ = 0;
+
+166 ià(
+ty³
+ =ð
+IP_VERSION_6
+) {
+
+167 \12
+\9d_cmp
+ =
+ `memcmp
+(
+¤c_addr
+,
+d¡_addr
+, 16);
+
+168
+u\9at32_t
+ *
+lo_addr
+;
+
+169
+u\9at32_t
+ *
+hi_addr
+;
+
+171 ià((
+\9d_cmp
+ < 0è|| ((\9d_cm°=ð0è&& (
+¤c_pÜt
+ <
+d¡_pÜt
+))) {
+
+172
+lo_addr
+ =
+¤c_addr
+;
+
+173
+hi_addr
+ =
+d¡_addr
+;
+
+174
+key
+[8] = (
+¤c_pÜt
+ << 16è|
+d¡_pÜt
+;
+
+176
+lo_addr
+ =
+d¡_addr
+;
+
+177
+hi_addr
+ =
+¤c_addr
+;
+
+178
+key
+[8] = (
+d¡_pÜt
+ << 16è|
+¤c_pÜt
+;
+
+179
+hash_Üd\94_Üig\9a®_d\9ceùiÚ
+ = 0;
+
+181
+key
+[0] =
+lo_addr
+[0];
+
+182
+key
+[1] =
+lo_addr
+[1];
+
+183
+key
+[2] =
+lo_addr
+[2];
+
+184
+key
+[3] =
+lo_addr
+[3];
+
+185
+key
+[4] =
+hi_addr
+[0];
+
+186
+key
+[5] =
+hi_addr
+[1];
+
+187
+key
+[6] =
+hi_addr
+[2];
+
+188
+key
+[7] =
+hi_addr
+[3];
+
+191 #ifdeà
+ALGDBG
+
+
+192
+ `¹e_ù_´\9at_hashkey
+(
+key
+);
+
+194 \15
+hash_Üd\94_Üig\9a®_d\9ceùiÚ
+;
+
+195
+ }
+}
+
+199
+ $¹e_ù_g\91_IP_hdr_size
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+207
+u\9at8_t
+
+hdr_chk
+ =
+ `RTE_MBUF_METADATA_UINT8
+(
+pkt
+,
+IP_START
+);
+
+209
+hdr_chk
+ = hdr_chk >> 4;
+
+211 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+)
+
+212 \15
+IPv4_HEADER_SIZE
+;
+
+214 \vià(
+hdr_chk
+ =ð
+IP_VERSION_6
+)
+
+215 \15
+IPv6_HEADER_SIZE
+;
+
+224
+ }
+}
+
+227
+ $¹e_ù_£t_tim\94_fÜ_Ãw_úxn
+(
+
+228 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+229 \19
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+231
+cd
+->
+¡©e_u£d_fÜ_tim\94
+ =
+RTE_CT_TCP_NONE
+;
+
+232
+ `¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+ù
+,
+cd
+,
+RTE_CT_TCP_SYN_SENT
+);
+
+233
+ }
+}
+
+264 \18
+\9al\9ae
+ \1e
+
+265
+ $¹e_ù_»memb\94_Ãw_cÚÃùiÚ
+(
+
+266 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+267 \19
+¹e_ù_úxn_d©a
+ *
+\92\8cy
+)
+
+269
+ù
+->
+Ï\8b¡_cÚÃùiÚ
+++;
+
+270
+ù
+->
+Ãw_cÚÃùiÚs
+[ù->
+Ï\8b¡_cÚÃùiÚ
+] =
+\92\8cy
+;
+
+271
+ }
+}
+
+273 \18\19
+¹e_ù_úxn_d©a
+ *
+
+274
+ $¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+u\9at32_t
+ *
+key
+)
+
+276 \12
+i
+;
+
+278 \ f
+i
+ = 0; i <ð
+ù
+->
+Ï\8b¡_cÚÃùiÚ
+; i++) {
+
+279
+u\9at32_t
+ *
+úxn_key
+ =
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+]->
+key
+;
+
+280 \12
+key_cmp
+ =
+ `memcmp
+(
+úxn_key
+,
+key
+,
+
+281 \17(
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+]->
+key
+));
+
+283 ià(
+key_cmp
+ == 0)
+
+284 \15
+ù
+->
+Ãw_cÚÃùiÚs
+[
+i
+];
+
+286 \15
+NULL
+;
+
+287
+ }
+}
+
+289 \18
+\9al\9ae
+ \1e
+ $¹e_ù_fÜg\91_Ãw_cÚÃùiÚs
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+291
+ù
+->
+Ï\8b¡_cÚÃùiÚ
+ = -1;
+
+292
+ }
+}
+
+297 \18\f
+¹e_ù_·ck\91_aùiÚ
+
+
+298
+ $¹e_ù_hªdË_tý_lookup
+(
+
+299 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+300 \19
+¹e_mbuf
+ *
+·ck\91
+,
+
+301
+u\9at8_t
+
+pkt_num
+,
+
+302
+u\9at8_t
+
+key_is_þ\9bÁ_Üd\94
+,
+
+303
+u\9at32_t
+ *
+key
+,
+
+304 \12
+hash_\8fbË_\92\8cy
+,
+
+305 \12
+no_Ãw_úxn
+,
+
+306
+u\9at8_t
+
+\9d_hdr_size_by\8bs
+)
+
+308 \19
+¹e_ù_úxn_d©a
+
+Ãw_úxn_d©a
+;
+
+310
+ `mem£t
+(&
+Ãw_úxn_d©a
+, 0, \17(\19
+¹e_ù_úxn_d©a
+));
+
+311 \f
+¹e_ù_·ck\91_aùiÚ
+
+·ck\91_aùiÚ
+;
+
+313 #ifdeà
+CT_CGNAT
+
+
+314
+\9at32_t
+
+pos\99iÚ
+ =
+hash_\8fbË_\92\8cy
+;
+
+315
+ù
+->
+pos\99iÚs
+[
+pkt_num
+] =
+pos\99iÚ
+;
+
+319 ià(
+hash_\8fbË_\92\8cy
+ >= 0) {
+
+325 \19
+¹e_ù_úxn_d©a
+ *
+\92\8cy
+ =
+
+326 &
+ù
+->
+hash_\8fbË_\92\8c\9bs
+[
+hash_\8fbË_\92\8cy
+];
+
+328
+·ck\91_aùiÚ
+ =
+ `¹e_ù_v\94ify_tý_·ck\91
+(
+ù
+,
+\92\8cy
+,
+·ck\91
+,
+
+329
+key_is_þ\9bÁ_Üd\94
+,
+\9d_hdr_size_by\8bs
+);
+
+331 \1a
+·ck\91_aùiÚ
+) {
+
+333 \ 4
+RTE_CT_FORWARD_PACKET
+:
+
+334
+\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+++;
+
+337 \ 4
+RTE_CT_DROP_PACKET
+:
+
+338
+\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+++;
+
+339 \15
+RTE_CT_DROP_PACKET
+;
+
+341 \ 4
+RTE_CT_REOPEN_CNXN_AND_FORWARD_PACKET
+:
+
+348 ià(
+ `¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+ù
+, &
+Ãw_úxn_d©a
+,
+
+349
+·ck\91
+, 0,
+\9d_hdr_size_by\8bs
+) !=
+
+350
+RTE_CT_DROP_PACKET
+) {
+
+351
+ `¹e_memýy
+(&
+\92\8cy
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+352 &
+Ãw_úxn_d©a
+.
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+353 \17(
+Ãw_úxn_d©a
+.
+ù_´ÙocÞ
+.
+tý_ù_d©a
+));
+
+354
+ `¹e_ù_£t_tim\94_fÜ_Ãw_úxn
+(
+ù
+,
+\92\8cy
+);
+
+355 ià(
+ù
+->
+couÁ\94s
+->
+£ssiÚs_»aùiv©ed
+ > 0)
+
+356
+ù
+->
+couÁ\94s
+->
+£ssiÚs_»aùiv©ed
+--;
+
+361 \ 4
+RTE_CT_SEND_SERVER_SYN
+:
+
+362
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+364 \15
+RTE_CT_SEND_SERVER_SYN
+;
+
+366 \ 4
+RTE_CT_SEND_SERVER_ACK
+:
+
+367
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+369 \15
+RTE_CT_SEND_SERVER_ACK
+;
+
+371 \ 4
+RTE_CT_HIJACK
+:
+
+372
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+376 \15
+RTE_CT_HIJACK
+;
+
+378 \ 4
+RTE_CT_DESTROY_CNXN_AND_FORWARD_PACKET
+:
+
+396 ià(
+ `¹e_hash_d\96_key
+(
+ù
+->
+rhash
+,
+\92\8cy
+->
+key
+) >= 0) {
+
+407
+ù
+->
+couÁ\94s
+->
+£ssiÚs_þo£d
+++;
+
+408 ià(
+ù
+->
+couÁ\94s
+->
+cu¼\92t_aùive_£ssiÚs
+ > 0)
+
+409
+ù
+->
+couÁ\94s
+->
+cu¼\92t_aùive_£ssiÚs
+--;
+
+410
+ `¹e_ù_ÿnûl_úxn_tim\94
+(
+\92\8cy
+);
+
+412
+\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+++;
+
+420 \19
+¹e_ù_úxn_d©a
+ *
+Ãw_hash_\92\8cy
+;
+
+422 ià(
+no_Ãw_úxn
+) {
+
+423
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_\9av®id_cÚn
+++;
+
+424 \15
+RTE_CT_DROP_PACKET
+;
+
+427
+·ck\91_aùiÚ
+ =
+ `¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+ù
+, &
+Ãw_úxn_d©a
+,
+
+428
+·ck\91
+,
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_\92abËd
+,
+
+429
+\9d_hdr_size_by\8bs
+);
+
+431 ià(
+ `uÆik\96y
+(
+·ck\91_aùiÚ
+ =ð
+RTE_CT_DROP_PACKET
+)) {
+
+432
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_\9av®id_cÚn
+++;
+
+433 \15
+RTE_CT_DROP_PACKET
+;
+
+437
+\9at32_t
+
+pos\99iÚ
+ =
+ `¹e_hash_add_key
+(
+ù
+->
+rhash
+,
+key
+);
+
+438 ià(
+pos\99iÚ
+ < 0) {
+
+439
+´\9atf
+
+
+441
+pos\99iÚ
+,
+pkt_num
+);
+
+442 \15
+RTE_CT_DROP_PACKET
+;
+
+444 #ifdeà
+CT_CGNAT
+
+
+445
+ù
+->
+pos\99iÚs
+[
+pkt_num
+] =
+pos\99iÚ
+;
+
+447
+Ãw_hash_\92\8cy
+ = &
+ù
+->
+hash_\8fbË_\92\8c\9bs
+[
+pos\99iÚ
+];
+
+451
+ `memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key, \17(new_cnxn_data.key));
+
+452
+Ãw_úxn_d©a
+.
+key_is_þ\9bÁ_Üd\94
+ = key_is_client_order;
+
+453
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ =
+TCP_PROTOCOL
+;
+
+454
+ `¹e_úxn_\9d_ty³
+(&
+Ãw_úxn_d©a
+.
+ty³
+,
+·ck\91
+);
+
+455
+ `¹e_memýy
+(
+Ãw_hash_\92\8cy
+, &
+Ãw_úxn_d©a
+,
+
+456 \17(\19
+¹e_ù_úxn_d©a
+));
+
+457
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+ = 1;
+
+458
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+ = 0;
+
+459
+ù
+->
+couÁ\94s
+->
+cu¼\92t_aùive_£ssiÚs
+++;
+
+460
+ù
+->
+couÁ\94s
+->
+£ssiÚs_aùiv©ed
+++;
+
+462 ià(
+·ck\91_aùiÚ
+ =ð
+RTE_CT_SEND_CLIENT_SYNACK
+) {
+
+466
+ `¹e_¥_·r£_ÝtiÚs
+(
+·ck\91
+,
+Ãw_hash_\92\8cy
+);
+
+473
+ `¹e_¥_cvt_to_¥ooãd_þ\9bÁ_syÇck
+(
+Ãw_hash_\92\8cy
+,
+
+474
+·ck\91
+);
+
+481
+·ck\91_aùiÚ
+ =
+ `¹e_ù_v\94ify_tý_·ck\91
+(
+ù
+,
+
+482
+Ãw_hash_\92\8cy
+,
+·ck\91
+,
+
+483 !
+key_is_þ\9bÁ_Üd\94
+,
+
+484
+\9d_hdr_size_by\8bs
+);
+
+486 ià(
+ `uÆik\96y
+(
+·ck\91_aùiÚ
+ !ð
+RTE_CT_FORWARD_PACKET
+)) {
+
+488
+ `´\9atf
+("Serious\83rror in synproxy generating ");
+
+489
+ `´\9atf
+("SYN/ACK\n");
+
+490 \15
+RTE_CT_DROP_PACKET
+;
+
+492
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+494 \15
+RTE_CT_SEND_CLIENT_SYNACK
+;
+
+496
+ `¹e_ù_£t_tim\94_fÜ_Ãw_úxn
+(
+ù
+,
+Ãw_hash_\92\8cy
+);
+
+508
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+509 \15
+RTE_CT_FORWARD_PACKET
+;
+
+510
+ }
+}
+
+512 \18
+u\9at64_t
+
+
+513
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup_basic
+(
+
+514 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+515 \19
+¹e_mbuf
+ **
+pkts
+,
+
+516
+u\9at64_t
+
+pkts_mask
+,
+
+517
+u\9at64_t
+
+no_Ãw_úxn_mask
+,
+
+518
+u\9at64_t
+ *
+»¶y_pkt_mask
+,
+
+519
+u\9at64_t
+ *
+hijack_mask
+)
+
+522
+u\9at64_t
+
+pkts_to_´oûss
+ =
+pkts_mask
+;
+
+524
+u\9at64_t
+
+v®id_·ck\91s
+ =
+pkts_mask
+;
+
+525
+u\9at8_t
+
+com·ù\9ag_m
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+527
+u\9at8_t
+
+key_Üig_d\9c
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+528
+u\9at32_t
+
+·ck\91s_fÜ_lookup
+ = 0;
+
+529
+\9at32_t
+
+pos\99iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+530
+u\9at32_t
+
+i
+;
+
+531 \19
+¹e_ù_úxn_d©a
+
+Ãw_úxn_d©a
+;
+
+533 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+534
+ `´\9atf
+("EÁ\94 cnxÀ\8cack\94 %p",
+ù
+);
+
+535
+ `´\9atf
+(" synproxy batch\86ookup with\85acket mask %p\n",
+
+536 (\1e*)
+pkts_mask
+);
+
+539
+ `¹e_ù_fÜg\91_Ãw_cÚÃùiÚs
+(
+ù
+);
+
+540 *
+»¶y_pkt_mask
+ = 0;
+
+541 *
+hijack_mask
+ = 0;
+
+548 \ f;
+pkts_to_´oûss
+;) {
+
+549
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_to_´oûss
+);
+
+551
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+553
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+555 \19
+¹e_mbuf
+ *
+pkt
+ =
+pkts
+[
+pos
+];
+
+557 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+pkt
+);
+
+559 ià(
+ `uÆik\96y
+(
+\9d_hdr_size_by\8bs
+ < 0)) {
+
+564 \1e*
+\9d_hdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+569 \19
+tý_hdr
+ *
+thdr
+ =
+
+570 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+571 (
+IP_START
+ +
+\9d_hdr_size_by\8bs
+));
+
+572
+u\9at16_t
+
+¤c_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->src_port);
+
+573
+u\9at16_t
+
+d¡_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->dst_port);
+
+575 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+576 \19
+\9dv4_hdr
+ *
+ihdr
+ = (\19\9dv4_hd¸*)
+\9d_hdr
+;
+
+577
+u\9at8_t
+
+´Ùo
+ =
+ihdr
+->
+Ãxt_´Ùo_id
+;
+
+579 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||\85rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+590
+u\9at32_t
+
+¤c_addr
+ =
+ `¹e_bsw32
+(
+ihdr
+->src_addr);
+
+591
+u\9at32_t
+
+d¡_addr
+ =
+ `¹e_bsw32
+(
+ihdr
+->dst_addr);
+
+593 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+594 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+595
+ `¹e_ù_úxn_´\9at_pkt
+(
+pkt
+,
+
+596
+IP_VERSION_4
+);
+
+602
+com·ù\9ag_m
+[
+·ck\91s_fÜ_lookup
+] =
+pos
+;
+
+603
+key_Üig_d\9c
+[
+·ck\91s_fÜ_lookup
+] =
+
+604
+ `¹e_ù_ü\97\8b_úxn_hashkey
+(&
+¤c_addr
+, &
+d¡_addr
+,
+
+605
+¤c_pÜt
+,
+d¡_pÜt
+,
+
+606
+´Ùo
+,
+
+607 &
+ù
+->
+hash_keys
+
+
+608 [
+·ck\91s_fÜ_lookup
+][0],
+
+609
+IP_VERSION_4
+);
+
+610
+·ck\91s_fÜ_lookup
+++;
+
+613 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+614 \19
+\9dv6_hdr
+ *
+ihdr
+ = (\19\9dv6_hd¸*)
+\9d_hdr
+;
+
+615
+u\9at8_t
+
+´Ùo
+ =
+ihdr
+->proto;
+
+617 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||\85rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+622 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+623 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+624
+ `¹e_ù_úxn_´\9at_pkt
+(
+pkt
+,
+
+625
+IP_VERSION_6
+);
+
+632
+com·ù\9ag_m
+[
+·ck\91s_fÜ_lookup
+] =
+pos
+;
+
+633
+key_Üig_d\9c
+[
+·ck\91s_fÜ_lookup
+] =
+
+634
+ `¹e_ù_ü\97\8b_úxn_hashkey
+(
+
+635 (
+u\9at32_t
+ *è
+ihdr
+->
+¤c_addr
+,
+
+636 (
+u\9at32_t
+ *è
+ihdr
+->
+d¡_addr
+,
+
+637
+¤c_pÜt
+,
+d¡_pÜt
+,
+
+638
+´Ùo
+,
+
+639 &
+ù
+->
+hash_keys
+
+
+640 [
+·ck\91s_fÜ_lookup
+][0],
+
+641
+IP_VERSION_6
+);
+
+642
+·ck\91s_fÜ_lookup
+++;
+
+647 ià(
+ `uÆik\96y
+(
+·ck\91s_fÜ_lookup
+ == 0))
+
+648 \15
+v®id_·ck\91s
+;
+
+651
+ `mem£t
+(&
+Ãw_úxn_d©a
+, 0, \17(\19
+¹e_ù_úxn_d©a
+));
+
+655 \12
+lookup_»suÉ
+ =
+
+656
+ `¹e_hash_lookup_bulk
+(
+ù
+->
+rhash
+, (cÚ¡ \1e**)&ù->
+hash_key_±rs
+,
+
+657
+·ck\91s_fÜ_lookup
+, &
+pos\99iÚs
+[0]);
+
+659 ià(
+ `uÆik\96y
+(
+lookup_»suÉ
+ < 0)) {
+
+661
+ `´\9atf
+("Unexpected hash\81able\85roblem, discarding\87ll\85ackets");
+
+664 #ifdeà
+ALGDBG
+
+
+665 \ f
+i
+ = 0; i <
+·ck\91s_fÜ_lookup
+; i++) {
+
+666 ià(
+pos\99iÚs
+[
+i
+] >= 0)
+
+667
+ `´\9atf
+("@CT\85ositions[i]= %d, compacting_map[i]= %d\n",
+
+668
+pos\99iÚs
+[
+i
+],
+com·ù\9ag_m
+[i]);
+
+671 \ f
+i
+ = 0; i <
+·ck\91s_fÜ_lookup
+; i++) {
+
+673 \12
+hash_\8fbË_\92\8cy
+ =
+pos\99iÚs
+[
+i
+];
+
+675
+u\9at8_t
+
+pkt_\9adex
+ =
+com·ù\9ag_m
+[
+i
+];
+
+677
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pkt_\9adex
+;
+
+678
+u\9at8_t
+
+key_is_þ\9bÁ_Üd\94
+ =
+key_Üig_d\9c
+[
+i
+];
+
+679
+u\9at32_t
+ *
+key
+ =
+ù
+->
+hash_key_±rs
+[
+pkt_\9adex
+];
+
+680
+u\9at8_t
+
+´ÙocÞ
+ = *(
+key
+ + 9);
+
+681 \19
+¹e_mbuf
+ *
+·ck\91
+ =
+pkts
+[
+pkt_\9adex
+];
+
+682 \12
+no_Ãw_úxn
+ = (
+pkt_mask
+ &
+no_Ãw_úxn_mask
+) != 0;
+
+686 ià(
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+687 \f
+¹e_ù_·ck\91_aùiÚ
+
+tý_pkt_aùiÚ
+;
+
+689 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+·ck\91
+);
+
+690
+tý_pkt_aùiÚ
+ =
+ `¹e_ù_hªdË_tý_lookup
+(
+ù
+,
+·ck\91
+,
+
+691
+pkt_\9adex
+,
+key_is_þ\9bÁ_Üd\94
+,
+
+692
+key
+,
+hash_\8fbË_\92\8cy
+,
+no_Ãw_úxn
+,
+
+693
+\9d_hdr_size_by\8bs
+);
+
+695 \1a
+tý_pkt_aùiÚ
+) {
+
+697 \ 4
+RTE_CT_SEND_CLIENT_SYNACK
+:
+
+698 \ 4
+RTE_CT_SEND_SERVER_ACK
+:
+
+702 *
+»¶y_pkt_mask
+ |ð
+pkt_mask
+;
+
+705 \ 4
+RTE_CT_SEND_SERVER_SYN
+:
+
+706 \ 4
+RTE_CT_FORWARD_PACKET
+:
+
+709 \ 4
+RTE_CT_HIJACK
+:
+
+710 *
+hijack_mask
+ |ð
+pkt_mask
+;
+
+715
+v®id_·ck\91s
+ ^ð
+pkt_mask
+;
+
+716
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+++;
+
+723 ià(
+hash_\8fbË_\92\8cy
+ >= 0) {
+
+729 \19
+¹e_ù_úxn_d©a
+ *
+\92\8cy
+ =
+
+730 &
+ù
+->
+hash_\8fbË_\92\8c\9bs
+[
+hash_\8fbË_\92\8cy
+];
+
+732 ià(
+¹e_ù_udp_·ck\91
+
+
+733 (
+ù
+,
+\92\8cy
+,
+pkts
+[
+pkt_\9adex
+],
+
+734
+key_is_þ\9bÁ_Üd\94
+)) {
+
+735
+\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+++;
+
+736
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+744 \19
+¹e_ù_úxn_d©a
+ *
+»ûÁ_\92\8cy
+ =
+
+745
+ `¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(
+ù
+,
+key
+);
+
+747 ià(
+»ûÁ_\92\8cy
+ !ð
+NULL
+) {
+
+748 ià(
+ `¹e_ù_udp_·ck\91
+(
+ù
+,
+»ûÁ_\92\8cy
+,
+
+749
+pkts
+[
+pkt_\9adex
+],
+
+750
+key_is_þ\9bÁ_Üd\94
+)) {
+
+751
+»ûÁ_\92\8cy
+->
+couÁ\94s
+.
+
+752
+·ck\91s_fÜw¬ded
+++;
+
+753
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+760 ià(
+no_Ãw_úxn
+) {
+
+764
+v®id_·ck\91s
+ ^ð
+pkt_mask
+;
+
+765
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+++;
+
+766
+ù
+->
+couÁ\94s
+->
+
+767
+pkts_drÝ_\9av®id_cÚn
+++;
+
+771 ià(
+ `¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+ù
+,
+
+772 &
+Ãw_úxn_d©a
+,
+
+773
+pkts
+[
+pkt_\9adex
+])) {
+
+777
+\9at32_t
+
+pos\99iÚ
+ =
+
+778
+ `¹e_hash_add_key
+(
+
+779
+ù
+->
+rhash
+,
+key
+);
+
+781 ià(
+pos\99iÚ
+ < 0)
+
+784 \19
+¹e_ù_úxn_d©a
+
+
+785 *
+Ãw_hash_\92\8cy
+ = &
+ù
+->
+
+786
+hash_\8fbË_\92\8c\9bs
+[
+pos\99iÚ
+];
+
+793
+ `memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key,
+
+794 \17(
+Ãw_úxn_d©a
+.
+key
+));
+
+796
+Ãw_úxn_d©a
+.
+
+797
+key_is_þ\9bÁ_Üd\94
+
+
+798 ð
+key_is_þ\9bÁ_Üd\94
+;
+
+799
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ =
+
+800
+UDP_PROTOCOL
+;
+
+801
+ `¹e_úxn_\9d_ty³
+(
+
+802 &
+Ãw_úxn_d©a
+.
+ty³
+,
+
+803
+·ck\91
+);
+
+804
+ `¹e_memýy
+(
+Ãw_hash_\92\8cy
+,
+
+805 &
+Ãw_úxn_d©a
+,
+
+807
+¹e_ù_úxn_d©a
+));
+
+809
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+
+810
+·ck\91s_fÜw¬ded
+ = 1;
+
+811
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+812
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+
+813
+·ck\91s_drݳd
+ = 0;
+
+814
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+ = 0;
+
+815
+ù
+->
+couÁ\94s
+->
+
+816
+cu¼\92t_aùive_£ssiÚs
+++;
+
+817
+ù
+->
+couÁ\94s
+->
+
+818
+£ssiÚs_aùiv©ed
+++;
+
+820
+Ãw_hash_\92\8cy
+->
+
+821
+¡©e_u£d_fÜ_tim\94
+
+
+822 ð
+RTE_CT_UDP_NONE
+;
+
+823
+ `¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+
+824
+ù
+,
+
+825
+Ãw_hash_\92\8cy
+,
+
+826
+RTE_CT_UDP_UNREPLIED
+);
+
+828
+ `¹e_ù_»memb\94_Ãw_cÚÃùiÚ
+(
+
+829
+ù
+,
+
+830
+Ãw_hash_\92\8cy
+);
+
+839 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+840
+ `´\9atf
+("Exit cnxn\81racker synproxy batch\86ookup with");
+
+841
+ `´\9atf
+("\85ack\91 mask %p\n", (\1e*)
+v®id_·ck\91s
+);
+
+844 \15
+v®id_·ck\91s
+;
+
+845
+ }
+}
+
+847
+u\9at64_t
+
+
+848
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup_w\99h_syÅroxy
+(
+
+849 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+850 \19
+¹e_mbuf
+ **
+pkts
+,
+
+851
+u\9at64_t
+
+pkts_mask
+,
+
+852 \19
+¹e_syÅroxy_h\96³r
+ *
+¥_h\96³r
+)
+
+854 \15
+ `¹e_ù_úxn_\8cack\94_b©ch_lookup_basic
+(
+ù
+,
+pkts
+,
+pkts_mask
+, 0,
+
+855 &
+¥_h\96³r
+->
+»¶y_pkt_mask
+, &¥_h\96³r->
+hijack_mask
+);
+
+856
+ }
+}
+
+857 #ifdeà
+CT_CGNAT
+
+
+858
+u\9at64_t
+
+ $cgDZ_ù_´oûss
+(
+
+859 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+860 \19
+¹e_mbuf
+ **
+pkts
+,
+
+861
+u\9at64_t
+
+pkts_mask
+,
+
+862 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+)
+
+865
+ `¹e_ù_di§bË_syÅroxy
+(
+ù
+);
+
+866 \15
+ `¹e_ù_úxn_\8cack\94_b©ch_lookup_basic
+(
+ù
+,
+pkts
+,
+pkts_mask
+,
+
+867
+ù_h\96³r
+->
+no_Ãw_úxn_mask
+,
+
+868 &
+ù_h\96³r
+->
+»¶y_pkt_mask
+,
+
+869 &
+ù_h\96³r
+->
+hijack_mask
+);
+
+870
+ }
+}
+
+872
+u\9at64_t
+
+
+873
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup
+(
+
+874 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+875 \19
+¹e_mbuf
+ **
+pkts
+,
+
+876
+u\9at64_t
+
+pkts_mask
+,
+
+877 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+)
+
+880 \15
+ `¹e_ù_úxn_\8cack\94_b©ch_lookup_basic
+(
+ù
+,
+pkts
+,
+pkts_mask
+,
+
+881
+ù_h\96³r
+->
+no_Ãw_úxn_mask
+,
+
+882 &
+ù_h\96³r
+->
+»¶y_pkt_mask
+, &ù_h\96³r->
+hijack_mask
+);
+
+883
+ }
+}
+
+886 \1e
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup_ty³
+(
+
+887 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+888 \19
+¹e_mbuf
+ **
+pkts
+,
+
+889
+u\9at64_t
+ *
+pkts_mask
+,
+
+890 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+,
+
+891
+u\9at8_t
+
+\9d_hdr_size_by\8bs
+)
+
+894
+ `¹e_ù_úxn_\8cack\94_b©ch_lookup_basic_ty³
+(
+ù
+,
+pkts
+,
+pkts_mask
+,
+
+895
+ù_h\96³r
+->
+no_Ãw_úxn_mask
+,
+
+896 &
+ù_h\96³r
+->
+»¶y_pkt_mask
+, &ù_h\96³r->
+hijack_mask
+,
+
+897
+\9d_hdr_size_by\8bs
+);
+
+898
+ }
+}
+
+902
+u\9at64_t
+
+
+903
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup_w\99h_Ãw_úxn_cÚ\8cÞ
+(
+
+904 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+905 \19
+¹e_mbuf
+ **
+pkts
+,
+
+906
+u\9at64_t
+
+pkts_mask
+,
+
+907
+u\9at64_t
+
+no_Ãw_úxn_mask
+)
+
+909
+u\9at64_t
+
+dÚt_ÿ»
+;
+
+911 \15
+ `¹e_ù_úxn_\8cack\94_b©ch_lookup_basic
+(
+ù
+,
+pkts
+,
+pkts_mask
+,
+
+912
+no_Ãw_úxn_mask
+,
+
+913 &
+dÚt_ÿ»
+, &dont_care);
+
+914
+ }
+}
+
+918
+ $¹e_ù_\9a\99\9flize_deçuÉ_timeouts
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+)
+
+923
+u\9at64_t
+
+h\94tz
+ =
+ `¹e_g\91_tsc_hz
+();
+
+925
+Ãw_úxn_\8cack\94
+->
+h\94tz
+ = hertz;
+
+926
+Ãw_úxn_\8cack\94
+->
+tim\9ag_cyþes_³r_tim\9ag_¡\95
+ =
+h\94tz
+ / 10;
+
+927
+Ãw_úxn_\8cack\94
+->
+tim\9ag_100ms_¡\95s_´evious
+ = 0;
+
+928
+Ãw_úxn_\8cack\94
+->
+tim\9ag_100ms_¡\95s
+ = 0;
+
+929
+Ãw_úxn_\8cack\94
+->
+tim\9ag_ϡ_time
+ =
+ `¹e_g\91_tsc_cyþes
+();
+
+932
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+933 [
+RTE_CT_TCP_SYN_SENT
+] = 120 *
+h\94tz
+;
+
+934
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+935 [
+RTE_CT_TCP_SYN_RECV
+] = 60 *
+h\94tz
+;
+
+937
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+938 [
+RTE_CT_TCP_ESTABLISHED
+] = 60 * 60 * 24 * 5 *
+h\94tz
+;
+
+940
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+941 [
+RTE_CT_TCP_FIN_WAIT
+] = 120 *
+h\94tz
+;
+
+942
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+943 [
+RTE_CT_TCP_CLOSE_WAIT
+] = 60 *
+h\94tz
+;
+
+944
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+945 [
+RTE_CT_TCP_LAST_ACK
+] = 30 *
+h\94tz
+;
+
+946
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+947 [
+RTE_CT_TCP_TIME_WAIT
+] = 120 *
+h\94tz
+;
+
+948
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+949 [
+RTE_CT_TCP_CLOSE
+] = 10 *
+h\94tz
+;
+
+950
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+951 [
+RTE_CT_TCP_SYN_SENT_2
+] = 120 *
+h\94tz
+;
+
+952
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+953 [
+RTE_CT_TCP_RETRANS
+] = 300 *
+h\94tz
+;
+
+954
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+
+
+955 [
+RTE_CT_TCP_UNACK
+] = 300 *
+h\94tz
+;
+
+957
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+
+
+958 [
+RTE_CT_UDP_UNREPLIED
+] = 30 *
+h\94tz
+;
+
+959
+Ãw_úxn_\8cack\94
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+
+
+960 [
+RTE_CT_UDP_REPLIED
+] = 180 *
+h\94tz
+;
+
+962
+Ãw_úxn_\8cack\94
+->
+misc_ÝtiÚs
+.
+tý_max_»\8cªs
+ =
+
+963
+RTE_CT_TCP_MAX_RETRANS
+;
+
+964
+Ãw_úxn_\8cack\94
+->
+misc_ÝtiÚs
+.
+tý_loo£
+ = 0;
+
+965
+Ãw_úxn_\8cack\94
+->
+misc_ÝtiÚs
+.
+tý_be_lib\94®
+ = 0;
+
+966 #ifdeà
+CT_CGNAT
+
+
+967 \12
+i
+;
+
+968 \ f
+i
+=0; i <
+RTE_HASH_LOOKUP_BULK_MAX
+ ;i ++ )
+
+969
+Ãw_úxn_\8cack\94
+->
+pos\99iÚs
+[
+i
+] = -1;
+
+973
+ }
+}
+
+975 \19
+¹e_CT_couÁ\94_block
+
+ g¹e_CT_couÁ\94_\8fbË
+[
+MAX_CT_INSTANCES
+]
+
+976
+ g__¹e_ÿche_®igÃd
+;
+
+977 \12
+ g¹e_CT_hi_couÁ\94_block_\9a_u£
+ = -1;
+
+980
+ $¹e_ù_\9a\99\9flize_úxn_\8cack\94_w\99h_syÅroxy
+(
+
+981 \19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+,
+
+982
+u\9at32_t
+
+max_cÚÃùiÚ_couÁ
+,
+
+983 \ 5*
+Çme
+,
+
+984
+u\9at16_t
+
+po\9a\8br_off£t
+)
+
+986
+u\9at32_t
+
+i
+;
+
+987
+u\9at32_t
+
+size
+;
+
+988 \19
+¹e_CT_couÁ\94_block
+ *
+couÁ\94_±r
+;
+
+995
+Ãw_úxn_\8cack\94
+->
+po\9a\8br_off£t
+ =\85ointer_offset;
+
+997
+ `mem£t
+(
+Ãw_úxn_\8cack\94
+->
+Çme
+, '\0', \17(new_cnxn_tracker->name));
+
+998
+ `¡ºýy
+(
+Ãw_úxn_\8cack\94
+->
+Çme
+,\82ame,
+ `¡¾\92
+(new_cnxn_tracker->name));
+
+1001
+u\9at32_t
+
+numb\94_of_\92\8c\9bs
+ =
+max_cÚÃùiÚ_couÁ
+;
+
+1003
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+¹e_ù_úxn_d©a
+) *
+
+1004
+numb\94_of_\92\8c\9bs
+);
+
+1005
+Ãw_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+ =
+
+1006
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1007 ià(
+Ãw_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+ =ð
+NULL
+) {
+
+1008
+ `´\9atf
+(" Not\83nough memory, or invalid\87rguments\n");
+
+1011
+Ãw_úxn_\8cack\94
+->
+num_úxn_\92\8c\9bs
+ =
+numb\94_of_\92\8c\9bs
+;
+
+1015 \ f
+i
+ = 0; i <
+numb\94_of_\92\8c\9bs
+; i++)
+
+1016
+ `¹e_tim\94_\9a\99
+(&
+Ãw_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+[
+i
+].
+tim\94
+);
+
+1019 \ f
+i
+ = 0; i <
+RTE_HASH_LOOKUP_BULK_MAX
+; i++)
+
+1020
+Ãw_úxn_\8cack\94
+->
+hash_key_±rs
+[
+i
+] =
+
+1021 &
+Ãw_úxn_\8cack\94
+->
+hash_keys
+[
+i
+][0];
+
+1028 ià(
+¹e_CT_hi_couÁ\94_block_\9a_u£
+ =ð
+MAX_CT_INSTANCES
+)
+
+1031
+¹e_CT_hi_couÁ\94_block_\9a_u£
+++;
+
+1032
+couÁ\94_±r
+ = &
+¹e_CT_couÁ\94_\8fbË
+[
+¹e_CT_hi_couÁ\94_block_\9a_u£
+];
+
+1034
+Ãw_úxn_\8cack\94
+->
+couÁ\94s
+ =
+couÁ\94_±r
+;
+
+1037 \19
+¹e_hash_·¿m\91\94s
+
+rhash_·rms
+ = {
+
+1038 .
+Çme
+ =\82ame,
+
+1039 .
+\92\8c\9bs
+ =
+numb\94_of_\92\8c\9bs
+,
+
+1040 .
+hash_func
+ =
+NULL
+,
+
+1041 .
+key_Ën
+ = 40,
+
+1042 .
+hash_func_\9a\99_v®
+ = 0,
+
+1043 .
+sock\91_id
+ =
+ `¹e_sock\91_id
+(),
+
+1044 .
+ex\8ca_æag
+ = 1
+
+1047
+Ãw_úxn_\8cack\94
+->
+rhash
+ =
+ `¹e_hash_ü\97\8b
+(&
+rhash_·rms
+);
+
+1050
+ }
+}
+
+1053
+ $¹e_ù_\9a\99\9flize_úxn_\8cack\94
+(
+
+1054 \19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+,
+
+1055
+u\9at32_t
+
+max_cÚÃùiÚ_couÁ
+,
+
+1056 \ 5*
+Çme
+)
+
+1058 \15
+ `¹e_ù_\9a\99\9flize_úxn_\8cack\94_w\99h_syÅroxy
+(
+Ãw_úxn_\8cack\94
+,
+
+1059
+max_cÚÃùiÚ_couÁ
+,
+Çme
+, 0);
+
+1060
+ }
+}
+
+1063
+ $¹e_ù_ä\93_úxn_\8cack\94_»sourûs
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+Þd_úxn_\8cack\94
+)
+
+1065
+ `¹e_ä\93
+(
+Þd_úxn_\8cack\94
+->
+hash_\8fbË_\92\8c\9bs
+);
+
+1066
+ `¹e_hash_ä\93
+(
+Þd_úxn_\8cack\94
+->
+rhash
+);
+
+1068
+ }
+}
+
+1071
+ $¹e_ù_g\91_úxn_\8cack\94_size
+(\1e)
+
+1073 \15 \17(\19
+¹e_ù_úxn_\8cack\94
+);
+
+1074
+ }
+}
+
+1077
+¹e_ù_úxn_tim\94_exp\9ced
+(\19
+¹e_tim\94
+ *
+¹
+, \1e*
+¬g
+);
+
+1080
+ $¹e_ù_£t_úxn_tim\94
+(
+
+1081 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+1082 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1083
+u\9at64_t
+
+ticks_uÁ\9e_timeout
+)
+
+1090 \19
+¹e_tim\94
+ *
+¹
+ = (\19¹e_tim\94 *)
+cd
+;
+
+1091 #ifdeà
+CT_CGNAT
+
+
+1093
+u\9at32_t
+
+cÜe_id
+ =
+ `g\91_tim\94_cÜe_id
+();
+
+1096
+u\9at32_t
+
+cÜe_id
+ =
+ `¹e_lcÜe_id
+();
+
+1101 \12
+sucûss
+ =
+ `¹e_tim\94_»£t
+(
+¹
+,
+ticks_uÁ\9e_timeout
+,
+SINGLE
+,
+cÜe_id
+,
+
+1102
+¹e_ù_úxn_tim\94_exp\9ced
+,
+ù
+);
+
+1104 ià(
+sucûss
+ < 0) {
+
+1108
+ `´\9atf
+("CNXN_TRACKER: Failed\81o set connection\81imer.\n");
+
+1110
+ }
+}
+
+1118
+ $¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+
+1119 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+1120 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1121
+u\9at8_t
+
+tý_¡©e
+)
+
+1124
+cd
+->
+ex³ùed_timeout
+ =
+
+1125 (
+ù
+->
+tim\9ag_100ms_¡\95s
+ * ct->
+tim\9ag_cyþes_³r_tim\9ag_¡\95
+) +
+
+1126
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+tý_¡©e
+];
+
+1128 ià(
+tý_¡©e
+ =ð
+cd
+->
+¡©e_u£d_fÜ_tim\94
+) {
+
+1141 ià(
+TESTING_TIMERS
+)
+
+1142
+ `´\9atf
+("S\91 Tim\94 fÜ cÚÃùiÚ %°ªd s\8f\8b %s\n",
+cd
+,
+
+1143
+¹e_ù_tý_Çmes
+[
+tý_¡©e
+]);
+
+1145
+ `¹e_ù_£t_úxn_tim\94
+(
+ù
+,
+cd
+,
+
+1146
+ù
+->
+ù_timeout
+.
+
+1147
+týtimeout
+.
+tý_timeouts
+[
+tý_¡©e
+]);
+
+1148
+cd
+->
+¡©e_u£d_fÜ_tim\94
+ =
+tý_¡©e
+;
+
+1149
+ }
+}
+
+1158
+ $¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+
+1159 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+1160 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+1161
+u\9at8_t
+
+udp_¡©e
+)
+
+1164
+cd
+->
+ex³ùed_timeout
+ = (
+ù
+->
+tim\9ag_cyþes_³r_tim\9ag_¡\95
+) +
+
+1165
+ù
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+[
+udp_¡©e
+];
+
+1167 ià(
+udp_¡©e
+ =ð
+cd
+->
+¡©e_u£d_fÜ_tim\94
+) {
+
+1180 ià(
+TESTING_TIMERS
+)
+
+1181
+ `´\9atf
+("S\91 Tim\94 fÜ cÚÃùiÚ %°ªd s\8f\8b %s\n",
+cd
+,
+
+1182
+¹e_ù_udp_Çmes
+[
+udp_¡©e
+]);
+
+1183
+ `¹e_ù_£t_úxn_tim\94
+(
+ù
+,
+cd
+,
+
+1184
+ù
+->
+ù_timeout
+.
+
+1185
+ud±imeout
+.
+udp_timeouts
+[
+udp_¡©e
+]);
+
+1186
+cd
+->
+¡©e_u£d_fÜ_tim\94
+ =
+udp_¡©e
+;
+
+1187
+ }
+}
+
+1193
+ $¹e_ù_ÿnûl_úxn_tim\94
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+1195 ià(
+TESTING_TIMERS
+)
+
+1196
+ `´\9atf
+("Cancel Timer\n");
+
+1198
+ `¹e_tim\94_¡Ý
+(&
+cd
+->
+tim\94
+);
+
+1199
+ }
+}
+
+1202
+ $¹e_ù_hªdË_exp\9ced_tim\94s
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+1209
+u\9at64_t
+
+Ãw_time
+ =
+ `¹e_g\91_tsc_cyþes
+();
+
+1210
+u\9at64_t
+
+time_diff
+ =
+Ãw_time
+ -
+ù
+->
+tim\9ag_ϡ_time
+;
+
+1212 ià(
+time_diff
+ >ð
+ù
+->
+tim\9ag_cyþes_³r_tim\9ag_¡\95
+) {
+
+1213
+ù
+->
+tim\9ag_ϡ_time
+ =
+Ãw_time
+;
+
+1214
+ù
+->
+tim\9ag_100ms_¡\95s
+++;
+
+1217 ià(
+ù
+->
+tim\9ag_100ms_¡\95s
+ !ðù->
+tim\9ag_100ms_¡\95s_´evious
+) {
+
+1218
+ `¹e_tim\94_mªage
+();
+
+1219
+ù
+->
+tim\9ag_100ms_¡\95s_´evious
+ = ct->
+tim\9ag_100ms_¡\95s
+;
+
+1221
+ }
+}
+
+1226
+ $¹e_ù_úxn_tim\94_exp\9ced
+(\19
+¹e_tim\94
+ *
+¹
+, \1e*
+¬g
+)
+
+1231 \19
+¹e_ù_úxn_d©a
+ *
+cd
+ = (\19¹e_ù_úxn_d©¨*)
+¹
+;
+
+1232 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+ = (\19¹e_ù_úxn_\8cack\94 *)
+¬g
+;
+
+1233 \12
+sucûss
+ = 0;
+
+1241
+u\9at64_t
+
+cu¼\92t_time
+ =
+ù
+->
+tim\9ag_100ms_¡\95s
+ *
+
+1242
+ù
+->
+tim\9ag_cyþes_³r_tim\9ag_¡\95
+;
+
+1244 ià(
+cd
+->
+ex³ùed_timeout
+ >ð
+cu¼\92t_time
+) {
+
+1245
+u\9at64_t
+
+time_diff
+ =
+cd
+->
+ex³ùed_timeout
+ -
+cu¼\92t_time
+;
+
+1247
+ `¹e_ù_£t_úxn_tim\94
+(
+ù
+,
+cd
+,
+time_diff
+);
+
+1251 ià(
+cd
+->
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1252 ià(
+cd
+->
+¡©e_u£d_fÜ_tim\94
+ =ð
+RTE_CT_TCP_TIME_WAIT
+ ||
+
+1253
+cd
+->
+¡©e_u£d_fÜ_tim\94
+ =ð
+RTE_CT_TCP_CLOSE
+)
+
+1254
+ù
+->
+couÁ\94s
+->
+£ssiÚs_þo£d
+++;
+
+1256
+ù
+->
+couÁ\94s
+->
+£ssiÚs_timedout
+++;
+
+1261 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+)
+
+1262
+ `¹e_ù_»Ëa£_bufã»d_·ck\91s
+(
+ù
+,
+cd
+);
+
+1264 } \vià(
+cd
+->
+´ÙocÞ
+ =ð
+UDP_PROTOCOL
+)
+
+1265
+ù
+->
+couÁ\94s
+->
+£ssiÚs_þo£d
+++;
+
+1266 ià(
+ù
+->
+couÁ\94s
+->
+cu¼\92t_aùive_£ssiÚs
+ > 0)
+
+1267
+ù
+->
+couÁ\94s
+->
+cu¼\92t_aùive_£ssiÚs
+--;
+
+1269 ià(
+RTE_CT_TIMER_EXPIRED_DUMP
+) {
+
+1270
+u\9at64_t
+
+³rûÁ
+ = (
+cd
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+ * 10000) /
+
+1271 (
+cd
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+ +
+
+1272
+cd
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+);
+
+1274 ià(
+cd
+->
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1275
+ `´\9atf
+("CnxnTrkr %s,\81imed-out TCP Connection: %p,",
+
+1276
+ù
+->
+Çme
+,
+cd
+);
+
+1277
+ `´\9atf
+(" %s,\85kts forwarded %"
+
+1278
+PRIu64
+ ",\85kts dropped %" PRIu64
+
+1280
+¹e_ù_tý_Çmes
+[
+cd
+->
+¡©e_u£d_fÜ_tim\94
+],
+
+1281
+cd
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+,
+
+1282
+cd
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+,
+
+1283 (
+u\9at32_t
+è(
+³rûÁ
+ / 100),
+
+1284 (
+u\9at32_t
+è(
+³rûÁ
+ % 100));
+
+1285 } \vià(
+cd
+->
+´ÙocÞ
+ =ð
+UDP_PROTOCOL
+) {
+
+1286
+ `´\9atf
+("CnxnTrkr %s, Timed-out UDP Connection: %p,",
+
+1287
+ù
+->
+Çme
+,
+cd
+);
+
+1288
+ `´\9atf
+(" %s,\85kt fÜw¬ded %"
+PRIu64
+
+
+1289 ",\85kt drݳd %"
+PRIu64
+ ", drop%% %u.%u\n",
+
+1290
+¹e_ù_udp_Çmes
+[
+cd
+->
+¡©e_u£d_fÜ_tim\94
+],
+
+1291
+cd
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+,
+
+1292
+cd
+->
+couÁ\94s
+.
+·ck\91s_drݳd
+,
+
+1293 (
+u\9at32_t
+è(
+³rûÁ
+ / 100),
+
+1294 (
+u\9at32_t
+è(
+³rûÁ
+ % 100));
+
+1298
+sucûss
+ =
+ `¹e_hash_d\96_key
+(
+ù
+->
+rhash
+, &
+cd
+->
+key
+);
+
+1300 ià(
+sucûss
+ < 0) {
+
+1302
+ `¹e_ù_´\9at_hashkey
+(
+cd
+->
+key
+);
+
+1305
+ }
+}
+
+1307 \19
+¹e_CT_couÁ\94_block
+ *
+
+1308
+ $¹e_ù_g\91_couÁ\94_add»ss
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+1310 \15
+ù
+->
+couÁ\94s
+;
+
+1311
+ }
+}
+
+1314
+ $¹e_ù_£t_cÚfigu¿tiÚ_ÝtiÚs
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+1315 \ 5*
+Çme
+, \ 5*
+v®ue
+)
+
+1318 \12
+iv®
+ =
+ `©oi
+(
+v®ue
+);
+
+1321 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_loose") == 0) {
+
+1322
+ù
+->
+misc_ÝtiÚs
+.
+tý_loo£
+ =
+iv®
+;
+
+1327 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_be_liberal") == 0) {
+
+1328
+ù
+->
+misc_ÝtiÚs
+.
+tý_be_lib\94®
+ =
+iv®
+;
+
+1333 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_max_retrans") == 0) {
+
+1334
+ù
+->
+misc_ÝtiÚs
+.
+tý_max_»\8cªs
+ =
+iv®
+;
+
+1338
+u\9at64_t
+
+time_v®ue
+ =
+iv®
+ *
+ù
+->
+h\94tz
+;
+
+1344 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_syn_sent") == 0) {
+
+1345 ià(
+time_v®ue
+ == 0)
+
+1347
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_SYN_SENT
+] =
+
+1348
+time_v®ue
+;
+
+1353 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_syn_recv") == 0) {
+
+1354 ià(
+time_v®ue
+ == 0)
+
+1356
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_SYN_RECV
+] =
+
+1357
+time_v®ue
+;
+
+1362 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_established") == 0) {
+
+1363 ià(
+time_v®ue
+ == 0)
+
+1365
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_ESTABLISHED
+] =
+
+1366
+time_v®ue
+;
+
+1371 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_fin_wait") == 0) {
+
+1372 ià(
+time_v®ue
+ == 0)
+
+1374
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_FIN_WAIT
+] =
+
+1375
+time_v®ue
+;
+
+1380 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_close_wait") == 0) {
+
+1381 ià(
+time_v®ue
+ == 0)
+
+1383
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_CLOSE_WAIT
+] =
+
+1384
+time_v®ue
+;
+
+1389 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_last_ack") == 0) {
+
+1390 ià(
+time_v®ue
+ == 0)
+
+1392
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_LAST_ACK
+] =
+
+1393
+time_v®ue
+;
+
+1398 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_time_wait") == 0) {
+
+1399 ià(
+time_v®ue
+ == 0)
+
+1401
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_TIME_WAIT
+] =
+
+1402
+time_v®ue
+;
+
+1407 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_close") == 0) {
+
+1408 ià(
+time_v®ue
+ == 0)
+
+1410
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_CLOSE
+] =
+
+1411
+time_v®ue
+;
+
+1416 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_syn_sent_2") == 0) {
+
+1417 ià(
+time_v®ue
+ == 0)
+
+1419
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_SYN_SENT_2
+] =
+
+1420
+time_v®ue
+;
+
+1425 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_retrans") == 0) {
+
+1426 ià(
+time_v®ue
+ == 0)
+
+1428
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_RETRANS
+] =
+
+1429
+time_v®ue
+;
+
+1434 ià(
+ `¡rcmp
+(
+Çme
+, "tcp_unack") == 0) {
+
+1435 ià(
+time_v®ue
+ == 0)
+
+1437
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+RTE_CT_TCP_UNACK
+] =
+
+1438
+time_v®ue
+;
+
+1443 ià(
+ `¡rcmp
+(
+Çme
+, "udp_unreplied") == 0) {
+
+1444 ià(
+time_v®ue
+ == 0)
+
+1446
+ù
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+[
+RTE_CT_UDP_UNREPLIED
+] =
+
+1447
+time_v®ue
+;
+
+1452 ià(
+ `¡rcmp
+(
+Çme
+, "udp_replied") == 0) {
+
+1453 ià(
+time_v®ue
+ == 0)
+
+1455
+ù
+->
+ù_timeout
+.
+ud±imeout
+.
+udp_timeouts
+[
+RTE_CT_UDP_REPLIED
+] =
+
+1456
+time_v®ue
+;
+
+1460
+ }
+}
+
+1463
+ $¹e_ù_úxn_\8cack\94_b©ch_lookup_basic_ty³
+(
+
+1464 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+1465 \19
+¹e_mbuf
+ **
+pkts
+,
+
+1466
+u\9at64_t
+ *
+pkts_mask
+,
+
+1467
+u\9at64_t
+
+no_Ãw_úxn_mask
+,
+
+1468
+u\9at64_t
+ *
+»¶y_pkt_mask
+,
+
+1469
+u\9at64_t
+ *
+hijack_mask
+,
+
+1470
+u\9at8_t
+
+\9d_hdr_size_by\8bs
+)
+
+1473
+u\9at64_t
+
+pkts_to_´oûss
+ = *
+pkts_mask
+;
+
+1475
+u\9at8_t
+
+com·ù\9ag_m
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1477
+u\9at8_t
+
+key_Üig_d\9c
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1478
+u\9at32_t
+
+·ck\91s_fÜ_lookup
+ = 0;
+
+1479
+\9at32_t
+
+pos\99iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+1480
+u\9at32_t
+
+i
+;
+
+1481 \19
+¹e_ù_úxn_d©a
+
+Ãw_úxn_d©a
+;
+
+1483 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+1484
+ `´\9atf
+("EÁ\94 cnxÀ\8cack\94 %p",
+ù
+);
+
+1485
+ `´\9atf
+(" synproxy batch\86ookup with\85acket mask %p\n",
+
+1486 (\1e*)*
+pkts_mask
+);
+
+1489
+ `¹e_ù_fÜg\91_Ãw_cÚÃùiÚs
+(
+ù
+);
+
+1490 *
+»¶y_pkt_mask
+ = 0;
+
+1491 *
+hijack_mask
+ = 0;
+
+1498 \1a
+\9d_hdr_size_by\8bs
+) {
+
+1499 \ 4
+IPv4_HEADER_SIZE
+:
+
+1500 \ f;
+pkts_to_´oûss
+;) {
+
+1501
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+
+1502
+pkts_to_´oûss
+);
+
+1504
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+1506
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1508 \19
+¹e_mbuf
+ *
+pkt
+ =
+pkts
+[
+pos
+];
+
+1514 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+1515
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1516 (
+IP_START
+ +
+\9d_hdr_size_by\8bs
+));
+
+1517
+u\9at16_t
+
+¤c_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->src_port);
+
+1518
+u\9at16_t
+
+d¡_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->dst_port);
+
+1520 \19
+\9dv4_hdr
+ *
+ihdr
+ = (\19ipv4_hdr *)
+
+1521
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+1522
+u\9at8_t
+
+´Ùo
+ =
+ihdr
+->
+Ãxt_´Ùo_id
+;
+
+1524 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||\85rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+1535
+u\9at32_t
+
+¤c_addr
+ =
+ `¹e_bsw32
+(
+ihdr
+->src_addr);
+
+1536
+u\9at32_t
+
+d¡_addr
+ =
+ `¹e_bsw32
+(
+ihdr
+->dst_addr);
+
+1538 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+1539 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+1540
+ `¹e_ù_úxn_´\9at_pkt
+(
+pkt
+,
+
+1541
+IP_VERSION_4
+);
+
+1547
+com·ù\9ag_m
+[
+·ck\91s_fÜ_lookup
+] =
+pos
+;
+
+1548
+key_Üig_d\9c
+[
+·ck\91s_fÜ_lookup
+] =
+
+1549
+ `¹e_ù_ü\97\8b_úxn_hashkey
+(&
+¤c_addr
+, &
+d¡_addr
+,
+
+1550
+¤c_pÜt
+,
+d¡_pÜt
+,
+
+1551
+´Ùo
+,
+
+1552 &
+ù
+->
+hash_keys
+
+
+1553 [
+·ck\91s_fÜ_lookup
+][0],
+
+1554
+IP_VERSION_4
+);
+
+1555
+·ck\91s_fÜ_lookup
+++;
+
+1558 \ 4
+IPv6_HEADER_SIZE
+:
+
+1559 \ f;
+pkts_to_´oûss
+;) {
+
+1560
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+
+1561
+pkts_to_´oûss
+);
+
+1563
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+1565
+pkts_to_´oûss
+ &ð~
+pkt_mask
+;
+
+1567 \19
+¹e_mbuf
+ *
+pkt
+ =
+pkts
+[
+pos
+];
+
+1570 \1e*
+\9d_hdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1571
+IP_START
+);
+
+1576 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+1577
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+1578 (
+IP_START
+ +
+\9d_hdr_size_by\8bs
+));
+
+1579
+u\9at16_t
+
+¤c_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->src_port);
+
+1580
+u\9at16_t
+
+d¡_pÜt
+ =
+ `¹e_bsw16
+(
+thdr
+->dst_port);
+
+1582 \19
+\9dv6_hdr
+ *
+ihdr
+ = (\19\9dv6_hd¸*)
+\9d_hdr
+;
+
+1583
+u\9at8_t
+
+´Ùo
+ =
+ihdr
+->proto;
+
+1585 ià(!(
+´Ùo
+ =ð
+TCP_PROTOCOL
+ ||\85rÙØ=ð
+UDP_PROTOCOL
+)) {
+
+1590 ià(
+CNXN_TRX_DEBUG
+ > 2) {
+
+1591 ià(
+CNXN_TRX_DEBUG
+ > 4)
+
+1592
+ `¹e_ù_úxn_´\9at_pkt
+(
+pkt
+,
+
+1593
+IP_VERSION_6
+);
+
+1600
+com·ù\9ag_m
+[
+·ck\91s_fÜ_lookup
+] =
+pos
+;
+
+1601
+key_Üig_d\9c
+[
+·ck\91s_fÜ_lookup
+] =
+
+1602
+ `¹e_ù_ü\97\8b_úxn_hashkey
+(
+
+1603 (
+u\9at32_t
+ *è
+ihdr
+->
+¤c_addr
+,
+
+1604 (
+u\9at32_t
+ *è
+ihdr
+->
+d¡_addr
+,
+
+1605
+¤c_pÜt
+,
+d¡_pÜt
+,
+
+1606
+´Ùo
+,
+
+1607 &
+ù
+->
+hash_keys
+
+
+1608 [
+·ck\91s_fÜ_lookup
+][0],
+
+1609
+IP_VERSION_6
+);
+
+1610
+·ck\91s_fÜ_lookup
+++;
+
+1616 ià(
+ `uÆik\96y
+(
+·ck\91s_fÜ_lookup
+ == 0))
+
+1620
+ `mem£t
+(&
+Ãw_úxn_d©a
+, 0, \17(\19
+¹e_ù_úxn_d©a
+));
+
+1624 \12
+lookup_»suÉ
+ =
+ `¹e_hash_lookup_bulk
+(
+ù
+->
+rhash
+,
+
+1625 (cڡ \1e**)&
+ù
+->
+hash_key_±rs
+,
+
+1626
+·ck\91s_fÜ_lookup
+, &
+pos\99iÚs
+[0]);
+
+1628 ià(
+ `uÆik\96y
+(
+lookup_»suÉ
+ < 0)) {
+
+1630
+ `´\9atf
+("Unexpected hash\81able\85roblem, discarding\87ll\85ackets");
+
+1631 *
+pkts_mask
+ = 0;
+
+1634 \ f
+i
+ = 0; i <
+·ck\91s_fÜ_lookup
+; i++) {
+
+1636 \12
+hash_\8fbË_\92\8cy
+ =
+pos\99iÚs
+[
+i
+];
+
+1638
+u\9at8_t
+
+pkt_\9adex
+ =
+com·ù\9ag_m
+[
+i
+];
+
+1640
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pkt_\9adex
+;
+
+1641
+u\9at8_t
+
+key_is_þ\9bÁ_Üd\94
+ =
+key_Üig_d\9c
+[
+i
+];
+
+1642
+u\9at32_t
+ *
+key
+ =
+ù
+->
+hash_key_±rs
+[
+pkt_\9adex
+];
+
+1643
+u\9at8_t
+
+´ÙocÞ
+ = *(
+key
+ + 9);
+
+1644 \19
+¹e_mbuf
+ *
+·ck\91
+ =
+pkts
+[
+pkt_\9adex
+];
+
+1645 \12
+no_Ãw_úxn
+ = (
+pkt_mask
+ &
+no_Ãw_úxn_mask
+) != 0;
+
+1649 ià(
+´ÙocÞ
+ =ð
+TCP_PROTOCOL
+) {
+
+1650 \f
+¹e_ù_·ck\91_aùiÚ
+
+tý_pkt_aùiÚ
+;
+
+1652
+tý_pkt_aùiÚ
+ =
+ `¹e_ù_hªdË_tý_lookup
+(
+ù
+,
+·ck\91
+,
+
+1653
+pkt_\9adex
+,
+key_is_þ\9bÁ_Üd\94
+,
+
+1654
+key
+,
+hash_\8fbË_\92\8cy
+,
+no_Ãw_úxn
+,
+
+1655
+\9d_hdr_size_by\8bs
+);
+
+1657 \1a
+tý_pkt_aùiÚ
+) {
+
+1659 \ 4
+RTE_CT_SEND_CLIENT_SYNACK
+:
+
+1660 \ 4
+RTE_CT_SEND_SERVER_ACK
+:
+
+1664 *
+»¶y_pkt_mask
+ |ð
+pkt_mask
+;
+
+1667 \ 4
+RTE_CT_SEND_SERVER_SYN
+:
+
+1668 \ 4
+RTE_CT_FORWARD_PACKET
+:
+
+1671 \ 4
+RTE_CT_HIJACK
+:
+
+1672 *
+hijack_mask
+ |ð
+pkt_mask
+;
+
+1677 *
+pkts_mask
+ ^ð
+pkt_mask
+;
+
+1678
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+++;
+
+1685 ià(
+hash_\8fbË_\92\8cy
+ >= 0) {
+
+1691 \19
+¹e_ù_úxn_d©a
+ *
+\92\8cy
+ =
+
+1692 &
+ù
+->
+hash_\8fbË_\92\8c\9bs
+[
+hash_\8fbË_\92\8cy
+];
+
+1694 ià(
+¹e_ù_udp_·ck\91
+
+
+1695 (
+ù
+,
+\92\8cy
+,
+pkts
+[
+pkt_\9adex
+],
+
+1696
+key_is_þ\9bÁ_Üd\94
+)) {
+
+1697
+\92\8cy
+->
+couÁ\94s
+.
+·ck\91s_fÜw¬ded
+++;
+
+1698
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+1706 \19
+¹e_ù_úxn_d©a
+ *
+»ûÁ_\92\8cy
+ =
+
+1707
+ `¹e_ù_£¬ch_Ãw_cÚÃùiÚs
+(
+ù
+,
+key
+);
+
+1709 ià(
+»ûÁ_\92\8cy
+ !ð
+NULL
+) {
+
+1710 ià(
+ `¹e_ù_udp_·ck\91
+(
+ù
+,
+»ûÁ_\92\8cy
+,
+
+1711
+pkts
+[
+pkt_\9adex
+],
+
+1712
+key_is_þ\9bÁ_Üd\94
+)) {
+
+1713
+»ûÁ_\92\8cy
+->
+couÁ\94s
+.
+
+1714
+·ck\91s_fÜw¬ded
+++;
+
+1715
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+1722 ià(
+no_Ãw_úxn
+) {
+
+1726 *
+pkts_mask
+ ^ð
+pkt_mask
+;
+
+1727
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+++;
+
+1728
+ù
+->
+couÁ\94s
+->
+
+1729
+pkts_drÝ_\9av®id_cÚn
+++;
+
+1733 ià(
+ `¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+ù
+,
+
+1734 &
+Ãw_úxn_d©a
+,
+pkts
+[
+pkt_\9adex
+])) {
+
+1738
+\9at32_t
+
+pos\99iÚ
+ =
+
+1739
+ `¹e_hash_add_key
+(
+ù
+->
+
+1740
+rhash
+,
+key
+);
+
+1742 ià(
+pos\99iÚ
+ < 0)
+
+1745 \19
+¹e_ù_úxn_d©a
+
+
+1746 *
+Ãw_hash_\92\8cy
+ = &
+ù
+->
+
+1747
+hash_\8fbË_\92\8c\9bs
+[
+pos\99iÚ
+];
+
+1754
+ `memýy
+(
+Ãw_úxn_d©a
+.
+key
+, key,
+
+1755 \17(
+Ãw_úxn_d©a
+.
+key
+));
+
+1757
+Ãw_úxn_d©a
+.
+
+1758
+key_is_þ\9bÁ_Üd\94
+
+
+1759 ð
+key_is_þ\9bÁ_Üd\94
+;
+
+1760
+Ãw_úxn_d©a
+.
+´ÙocÞ
+ =
+
+1761
+UDP_PROTOCOL
+;
+
+1762
+ `¹e_úxn_\9d_ty³
+(
+
+1763 &
+Ãw_úxn_d©a
+.
+ty³
+,
+
+1764
+·ck\91
+);
+
+1765
+ `¹e_memýy
+(
+Ãw_hash_\92\8cy
+,
+
+1766 &
+Ãw_úxn_d©a
+,
+
+1768
+¹e_ù_úxn_d©a
+));
+
+1770
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+
+1771
+·ck\91s_fÜw¬ded
+ = 1;
+
+1772
+ù
+->
+couÁ\94s
+->
+pkts_fÜw¬ded
+++;
+
+1773
+Ãw_hash_\92\8cy
+->
+couÁ\94s
+.
+
+1774
+·ck\91s_drݳd
+ = 0;
+
+1775
+ù
+->
+couÁ\94s
+->
+pkts_drÝ
+ = 0;
+
+1776
+ù
+->
+couÁ\94s
+->
+
+1777
+cu¼\92t_aùive_£ssiÚs
+++;
+
+1778
+ù
+->
+couÁ\94s
+->
+
+1779
+£ssiÚs_aùiv©ed
+++;
+
+1781
+Ãw_hash_\92\8cy
+->
+
+1782
+¡©e_u£d_fÜ_tim\94
+
+
+1783 ð
+RTE_CT_UDP_NONE
+;
+
+1784
+ `¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+
+1785
+ù
+,
+
+1786
+Ãw_hash_\92\8cy
+,
+
+1787
+RTE_CT_UDP_UNREPLIED
+);
+
+1789
+ `¹e_ù_»memb\94_Ãw_cÚÃùiÚ
+(
+
+1790
+ù
+,
+
+1791
+Ãw_hash_\92\8cy
+);
+
+1800 ià(
+CNXN_TRX_DEBUG
+ > 1) {
+
+1801
+ `´\9atf
+("Exit cnxn\81racker synproxy batch\86ookup with");
+
+1802
+ `´\9atf
+("\85ack\91 mask %p\n", (\1e*)*
+pkts_mask
+);
+
+1804
+ }
+}
+
+ @VIL/conntrack/rte_cnxn_tracking.h
+
+17 #iâdeà
+_CNXN_TRACKING_H
+
+
+18 \ 1
+ #_CNXN_TRACKING_H
+
+
+ )
+
+20 \ 2
+ ~<¡dlib.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<\9a\89y³s.h
+>
+
+23 \ 2
+ ~<¡dboÞ.h
+>
+
+26 \ 2
+ ~<¹e_hash.h
+>
+
+27 \ 2
+ ~<¹e_\91h\94.h
+>
+
+29 \ 2
+ ~"¹e_ù_tý.h
+"
+
+54 \19
+¹e_ù_úxn_\8cack\94
+
+ g__¹e_ÿche_®igÃd
+;
+
+56 \r\12
+¹e_CT_hi_couÁ\94_block_\9a_u£
+;
+
+58 \19
+ s¹e_CT_couÁ\94_block
+ {
+
+60
+u\9at64_t
+
+ mcu¼\92t_aùive_£ssiÚs
+;
+
+61
+u\9at64_t
+
+ m£ssiÚs_aùiv©ed
+;
+
+63
+u\9at64_t
+
+ m£ssiÚs_»aùiv©ed
+;
+
+65
+u\9at64_t
+
+ m£ssiÚs_e¡ablished
+;
+
+66
+u\9at64_t
+
+ m£ssiÚs_þo£d
+;
+
+67
+u\9at64_t
+
+ m£ssiÚs_timedout
+;
+
+68
+u\9at64_t
+
+ mpkts_fÜw¬ded
+;
+
+69
+u\9at64_t
+
+ mpkts_drÝ
+;
+
+70
+u\9at64_t
+
+ mpkts_drÝ_\9av®id_cÚn
+;
+
+71
+u\9at64_t
+
+ mpkts_drÝ_\9av®id_¡©e
+;
+
+72
+u\9at64_t
+
+ mpkts_drÝ_\9av®id_r¡
+;
+
+73
+u\9at64_t
+
+ mpkts_drÝ_outof_w\9adow
+;
+
+74 }
+ g__¹e_ÿche_®igÃd
+;
+
+76 \19
+ s¹e_syÅroxy_h\96³r
+ {
+
+77
+u\9at64_t
+
+ m»¶y_pkt_mask
+;
+
+78
+u\9at64_t
+
+ mhijack_mask
+;
+
+79 \19
+¹e_mbuf
+ **
+ mbufã»d_pkts_to_fÜw¬d
+;
+
+80
+u\9at8_t
+
+ mnum_bufã»d_pkts_to_fÜw¬d
+;
+
+83 \19
+ s¹e_CT_h\96³r
+ {
+
+84
+u\9at64_t
+
+ mno_Ãw_úxn_mask
+;
+
+85
+u\9at64_t
+
+ m»¶y_pkt_mask
+;
+
+86
+u\9at64_t
+
+ mhijack_mask
+;
+
+87 \19
+¹e_mbuf
+ **
+ mbufã»d_pkts_to_fÜw¬d
+;
+
+88
+u\9at8_t
+
+ mnum_bufã»d_pkts_to_fÜw¬d
+;
+
+91 \ 1
+ #MAX_CT_INSTANCES
+ 24
+
+ )
+
+93 \r\19
+¹e_CT_couÁ\94_block
+
+¹e_CT_couÁ\94_\8fbË
+[
+MAX_CT_INSTANCES
+]
+
+94
+__¹e_ÿche_®igÃd
+;
+
+122
+u\9at64_t
+
+
+123
+¹e_ù_úxn_\8cack\94_b©ch_lookup
+(
+
+124 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+125 \19
+¹e_mbuf
+ **
+pkts
+,
+
+126
+u\9at64_t
+
+pkts_mask
+,
+
+127 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+);
+
+130
+¹e_ù_úxn_\8cack\94_b©ch_lookup_ty³
+(
+
+131 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+132 \19
+¹e_mbuf
+ **
+pkts
+,
+
+133
+u\9at64_t
+ *
+pkts_mask
+,
+
+134 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+,
+
+135
+u\9at8_t
+
+\9d_hdr_size_by\8bs
+);
+
+169
+u\9at64_t
+
+
+170
+¹e_ù_úxn_\8cack\94_b©ch_lookup_w\99h_Ãw_úxn_cÚ\8cÞ
+(
+
+171 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+172 \19
+¹e_mbuf
+ **
+pkts
+,
+
+173
+u\9at64_t
+
+pkts_mask
+,
+
+174
+u\9at64_t
+
+no_Ãw_úxn_mask
+);
+
+205
+u\9at64_t
+
+
+206
+¹e_ù_úxn_\8cack\94_b©ch_lookup_w\99h_syÅroxy
+(
+
+207 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+208 \19
+¹e_mbuf
+ **
+pkts
+,
+
+209
+u\9at64_t
+
+pkts_mask
+,
+
+210 \19
+¹e_syÅroxy_h\96³r
+ *
+¥_h\96³r
+);
+
+239 \19
+¹e_mbuf
+ *
+
+240
+¹e_ù_g\91_bufã»d_syÅroxy_·ck\91s
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+);
+
+259
+¹e_ù_\9a\99\9flize_úxn_\8cack\94_w\99h_syÅroxy
+(
+
+260 \19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+,
+
+261
+u\9at32_t
+
+max_cÚÃùiÚ_couÁ
+,
+
+262 \ 5*
+Çme
+,
+
+263
+u\9at16_t
+
+po\9a\8br_off£t
+);
+
+283
+¹e_ù_\9a\99\9flize_úxn_\8cack\94
+(
+
+284 \19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+,
+
+285
+u\9at32_t
+
+max_cÚÃùiÚ_couÁ
+,
+
+286 \ 5*
+Çme
+);
+
+301
+¹e_ù_ä\93_úxn_\8cack\94_»sourûs
+(
+
+302 \19
+¹e_ù_úxn_\8cack\94
+ *
+Þd_úxn_\8cack\94
+);
+
+313
+¹e_ù_g\91_úxn_\8cack\94_size
+(\1e);
+
+323 \19
+¹e_CT_couÁ\94_block
+*
+
+324
+¹e_ù_g\91_couÁ\94_add»ss
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+);
+
+346
+¹e_ù_£t_cÚfigu¿tiÚ_ÝtiÚs
+(
+
+347 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+348 \ 5*
+Çme
+,
+
+349 \ 5*
+v®ue
+);
+
+363
+¹e_ù_hªdË_exp\9ced_tim\94s
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+);
+
+367
+¹e_ù_g\91_IP_hdr_size
+(\19
+¹e_mbuf
+ *
+pkt
+);
+
+378
+¹e_ù_\92abË_syÅroxy
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+);
+
+389
+¹e_ù_di§bË_syÅroxy
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+);
+
+391
+¹e_ù_\9a\99\9flize_deçuÉ_timeouts
+(
+
+392 \19
+¹e_ù_úxn_\8cack\94
+ *
+Ãw_úxn_\8cack\94
+);
+
+394
+u\9at8_t
+
+
+395
+¹e_ù_ü\97\8b_úxn_hashkey
+(
+
+396
+u\9at32_t
+ *
+¤c_addr
+,
+
+397
+u\9at32_t
+ *
+d¡_addr
+,
+
+398
+u\9at16_t
+
+¤c_pÜt
+,
+
+399
+u\9at16_t
+
+d¡_pÜt
+,
+
+400
+u\9at8_t
+
+´Ùo
+,
+
+401
+u\9at32_t
+ *
+key
+,
+
+402
+u\9at8_t
+
+ty³
+);
+
+405 #ifdeà
+CT_CGNAT
+
+
+406 \r
+u\9at32_t
+
+g\91_tim\94_cÜe_id
+(\1e);
+
+407
+u\9at64_t
+
+cgDZ_ù_´oûss
+(
+
+408 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+409 \19
+¹e_mbuf
+ **
+pkts
+,
+
+410
+u\9at64_t
+
+pkts_mask
+,
+
+411 \19
+¹e_CT_h\96³r
+ *
+ù_h\96³r
+);
+
+ @VIL/conntrack/rte_ct_synproxy.c
+
+17 \ 2
+ ~<¡dio.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡d\9at.h
+>
+
+20 \ 2
+ ~<¡ddef.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<uni¡d.h
+>
+
+24 \ 2
+ ~<¹e_commÚ.h
+>
+
+25 \ 2
+ ~<¹e_m®loc.h
+>
+
+26 \ 2
+ ~<¹e_\91h\94.h
+>
+
+27 \ 2
+ ~<¹e_\9d.h
+>
+
+28 \ 2
+ ~<¹e_udp.h
+>
+
+29 \ 2
+ ~<¹e_icmp.h
+>
+
+30 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+31 \ 2
+ ~<¹e_cyþes.h
+>
+
+33 \ 2
+ ~"¹e_ù_tý.h
+"
+
+71 \ 1
+ #META_DATA_OFFSET
+ 128
+
+ )
+
+72 \ 1
+ #ETHERNET_START
+ (
+META_DATA_OFFSET
+ +
+RTE_PKTMBUF_HEADROOM
+)
+
+ )
+
+73 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+74 \ 1
+ #IP_START
+ (
+ETHERNET_START
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+75 \ 1
+ #PROTOCOL_START
+ (
+IP_START
+ + 9)
+
+ )
+
+76 \ 1
+ #IP_V4_HEADER_SIZE
+ 20
+
+ )
+
+77 \ 1
+ #IP_V6_HEADER_SIZE
+ 40
+
+ )
+
+78 \ 1
+ #TCP_START
+ (
+IP_START
+ +
+IP_V4_HEADER_SIZE
+)
+
+ )
+
+79 \ 1
+ #TCP_MIN_HDR_SIZE
+ 20
+
+ )
+
+81 \ 1
+ #RTE_TCP_PROTO_ID
+ 6
+
+ )
+
+82 \ 1
+ #RTE_SP_DEFAULT_TTL
+ 64
+
+ )
+
+84 \ 1
+ #RTE_SYNPROXY_MAX_SPOOFED_PKTS
+ 64
+
+ )
+
+86 \ 1
+ #RTE_TCP_SYN
+ 0x02
+
+ )
+
+87 \ 1
+ #RTE_TCP_ACK
+ 0x10
+
+ )
+
+88 \ 1
+ #RTE_TCP_SYN_ACK
+ (
+RTE_TCP_SYN
+ |
+RTE_TCP_ACK
+)
+
+ )
+
+90 \ 1
+ #RTE_SP_DEFAULT_WINDOW
+ 29200
+
+ )
+
+91 \ 1
+ #RTE_CT_DEBUG_SPOOFED_SEQ
+ 0
+
+ )
+
+92 \ 1
+ #RTE_DPDK_IS_16_4
+ 0
+
+ )
+
+94 \ 1
+ #IP_VERSION_4
+ 4
+
+ )
+
+95 \ 1
+ #IP_VERSION_6
+ 6
+
+ )
+
+101 \19
+¹e_syÅroxy_ÝtiÚs
+
+ gdeçuÉ_\9dv4_syÅroxy_ÝtiÚs
+ = {
+
+102 .
+ÝtiÚs
+ =
+RTE_SP_OPTIONS_MSS
+ |
+
+103
+RTE_SP_OPTIONS_SACK_PERM
+ |
+
+104
+RTE_SP_OPTIONS_WINDOW_SCALE
+,
+
+105 .
+ gmss
+ = 1460,
+
+106 .
+ gw\9adow_sÿË
+ = 7,
+
+107 .
+ g\9a\99\9fl_w\9adow
+ =
+RTE_SP_DEFAULT_WINDOW
+
+
+111 \19
+¹e_syÅroxy_ÝtiÚs
+
+ gdeçuÉ_\9dv6_syÅroxy_ÝtiÚs
+ = {
+
+112 .
+ÝtiÚs
+ =
+RTE_SP_OPTIONS_MSS
+ |
+
+113
+RTE_SP_OPTIONS_SACK_PERM
+ |
+
+114
+RTE_SP_OPTIONS_WINDOW_SCALE
+,
+
+115 .
+ gmss
+ = 1440,
+
+116 .
+ gw\9adow_sÿË
+ = 7,
+
+117 .
+ g\9a\99\9fl_w\9adow
+ =
+RTE_SP_DEFAULT_WINDOW
+
+
+121 \18
+__¹e_unu£d
+ \1e
+
+122
+ $¹e_ù_syÅroxy_´\9at_pkt_\9afo
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+124 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19ipv4_hdr *)
+
+125
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+126
+__¹e_unu£d
+ \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+127
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+TCP_START
+);
+
+128
+u\9at32_t
+
+·ck\91_Ëngth
+ =
+ `¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+130
+ `´\9atf
+("\Åack\91\86\92gth %u, i°Ëngth %u\n",
+·ck\91_Ëngth
+,
+
+131
+ `¹e_bsw16
+(
+ihdr4
+->
+tÙ®_Ëngth
+));
+
+132
+ `¹e_pktmbuf_dump
+(
+¡dout
+,
+pkt
+, 80);
+
+133
+ }
+}
+
+135 \18
+\9al\9ae
+ \1e
+
+136
+ $¹e_¥_\9aüem\92\8fl_tý_chksum_upd©e_32
+(
+
+137
+u\9at32_t
+
+num_befÜe
+,
+
+138
+u\9at32_t
+
+num_aá\94
+,
+
+140
+u\9at16_t
+ *
+chksum
+)
+
+142
+u\9at32_t
+
+sum
+;
+
+144
+sum
+ = ~
+ `¹e_bsw16
+(*
+chksum
+) & 0xffff;
+
+145
+num_befÜe
+ = ~num_before;
+
+146
+sum
+ +ð(
+num_befÜe
+ >> 16) + (num_before & 0xffff);
+
+147
+sum
+ +ð(
+num_aá\94
+ >> 16) + (num_after & 0xffff);
+
+148
+sum
+ = (sum >> 16) + (sum & 0xffff);
+
+149
+sum
+ += (sum >> 16);
+
+150 *
+chksum
+ =
+ `¹e_bsw16
+(~
+sum
+ & 0xffff);
+
+151
+ }
+}
+
+155 \18
+\9al\9ae
+
+u\9at32_t
+
+
+156
+ $¹e_¥_g\91_¿ndom_£q_numb\94
+(\1e)
+
+158 \15
+ `¹e_g\91_tsc_cyþes
+();
+
+159
+ }
+}
+
+162 \18
+\9at8_t
+
+ $¹e_ù_\9dv\94siÚ
+(\1e*
+i_hdr
+)
+
+164
+u\9at8_t
+ *
+ihdr
+ = (u\9at8_\88*)
+i_hdr
+;
+
+165
+\9at8_t
+
+hdr_chk
+ = *
+ihdr
+;
+
+167
+hdr_chk
+ = hdr_chk >> 4;
+
+168 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+ || hdr_chk =ð
+IP_VERSION_6
+)
+
+169 \15
+hdr_chk
+;
+
+172
+ }
+}
+
+174 \18
+\9al\9ae
+ \1e
+
+175
+ $¹e_syÅroxy_adju¡_pkt_Ëngth
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+177
+u\9at16_t
+
+pkt_Ëngth
+ = 0;
+
+178 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+pkt
+);
+
+179 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+181 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+182 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19\9dv4_hd¸*)
+\9dhdr
+;
+
+184
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr4
+->
+tÙ®_Ëngth
+è+
+ETH_HDR_SIZE
+;
+
+185 } \vià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+186 \19
+\9dv6_hdr
+ *
+ihdr6
+ = (\19\9dv6_hd¸*)
+\9dhdr
+;
+
+188
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr6
+->
+·ylßd_Ën
+) +
+
+189
+IP_V6_HEADER_SIZE
+ +
+ETH_HDR_SIZE
+;
+
+191
+u\9at16_t
+
+mbuf_pkt_Ëngth
+ =
+ `¹e_pktmbuf_pkt_Ën
+(
+pkt
+);
+
+193 ià(
+pkt_Ëngth
+ =ð
+mbuf_pkt_Ëngth
+)
+
+196 ià(
+pkt_Ëngth
+ <
+mbuf_pkt_Ëngth
+) {
+
+197
+ `¹e_pktmbuf_\8cim
+(
+pkt
+,
+mbuf_pkt_Ëngth
+ -
+pkt_Ëngth
+);
+
+202
+ `¹e_pktmbuf_³nd
+(
+pkt
+,
+pkt_Ëngth
+ -
+mbuf_pkt_Ëngth
+);
+
+203
+ }
+}
+
+206
+ $¹e_syÅroxy_bu\9ed_\9dv4_h\97d\94
+(
+
+207 \19
+\9dv4_hdr
+ *
+hdr4
+,
+
+208
+u\9at32_t
+
+¤c_addr
+,
+
+209
+u\9at32_t
+
+d¡_addr
+,
+
+210
+u\9at16_t
+
+tý_Ëngth
+)
+
+214
+hdr4
+->
+v\94siÚ_ihl
+ = 0x45;
+
+215
+hdr4
+->
+ty³_of_£rviû
+ = 0;
+
+216
+hdr4
+->
+tÙ®_Ëngth
+ =
+ `¹e_bsw16
+(
+tý_Ëngth
+ +
+IP_V4_HEADER_SIZE
+);
+
+217
+hdr4
+->
+·ck\91_id
+ = 0;
+
+219
+hdr4
+->
+äagm\92t_off£t
+ = 0x0040;
+
+220
+hdr4
+->
+time_to_live
+ =
+RTE_SP_DEFAULT_TTL
+;
+
+221
+hdr4
+->
+Ãxt_´Ùo_id
+ =
+RTE_TCP_PROTO_ID
+;
+
+223
+hdr4
+->
+¤c_addr
+ =
+ `¹e_bsw32
+(src_addr);
+
+224
+hdr4
+->
+d¡_addr
+ =
+ `¹e_bsw32
+(dst_addr);
+
+225
+ }
+}
+
+229
+ $¹e_syÅroxy_bu\9ed_\9dv6_h\97d\94
+(
+
+230 \19
+\9dv6_hdr
+ *
+hdr6
+,
+
+231
+u\9at8_t
+ *
+¤c_addr
+,
+
+232
+u\9at8_t
+ *
+d¡_addr
+,
+
+233
+u\9at16_t
+
+tý_Ëngth
+)
+
+237
+u\9at8_t
+
+\8bmp_¤c
+[16];
+
+238
+u\9at8_t
+
+\8bmp_d¡
+[16];
+
+240
+hdr6
+->
+vtc_æow
+ = 0x60;
+
+241
+hdr6
+->
+·ylßd_Ën
+ =
+ `¹e_bsw16
+(
+tý_Ëngth
+);
+
+242
+hdr6
+->
+´Ùo
+ =
+RTE_TCP_PROTO_ID
+;
+
+243
+hdr6
+->
+hÝ_lim\99s
+ =
+RTE_SP_DEFAULT_TTL
+;
+
+247
+ `¹e_mov16
+(
+\8bmp_¤c
+,
+¤c_addr
+);
+
+248
+ `¹e_mov16
+(
+\8bmp_d¡
+,
+d¡_addr
+);
+
+249
+ `¹e_mov16
+(
+hdr6
+->
+¤c_addr
+,
+\8bmp_¤c
+);
+
+250
+ `¹e_mov16
+(
+hdr6
+->
+d¡_addr
+,
+\8bmp_d¡
+);
+
+251
+ }
+}
+
+255 \18
+u\9at16_t
+
+
+256
+ $¹e_¥_add_tý_ÝtiÚs
+(\19
+tý_hdr
+ *
+thdr
+,
+
+257 cڡ \19
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+)
+
+259
+u\9at32_t
+ *
+ÝtiÚs_±r
+ = (u\9at32_\88*)(
+thdr
+ + 1);
+
+260
+u\9at32_t
+ *
+§ved_±r
+ =
+ÝtiÚs_±r
+;
+
+261
+u\9at8_t
+
+ÝtiÚs
+ =
+t_Ýts
+->options;
+
+262
+u\9at32_t
+
+ÝtiÚ_by\8bs
+;
+
+264 ià(
+ÝtiÚs
+ &
+RTE_SP_OPTIONS_MSS
+) {
+
+265
+ÝtiÚ_by\8bs
+ = (
+RTE_CT_TCPOPT_MSS
+ << 24) |
+
+266 (
+RTE_CT_TCPOLEN_MSS
+ << 16è|
+t_Ýts
+->
+mss
+;
+
+267 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+ÝtiÚ_by\8bs
+);
+
+270 ià(
+ÝtiÚs
+ &
+RTE_SP_OPTIONS_TIMESTAMP
+) {
+
+274 ià(
+ÝtiÚs
+ &
+RTE_SP_OPTIONS_SACK_PERM
+)
+
+275
+ÝtiÚ_by\8bs
+ = (
+RTE_CT_TCPOPT_SACK_PERM
+ << 24) |
+
+276 (
+RTE_CT_TCPOLEN_SACK_PERM
+ << 16);
+
+278
+ÝtiÚ_by\8bs
+ = (
+RTE_CT_TCPOPT_NOP
+ << 24) |
+
+279 (
+RTE_CT_TCPOPT_NOP
+ << 16);
+
+281
+ÝtiÚ_by\8bs
+ |ð(
+RTE_CT_TCPOPT_TIMESTAMP
+ << 8) |
+
+282
+RTE_CT_TCPOLEN_TIMESTAMP
+;
+
+283 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+ÝtiÚ_by\8bs
+);
+
+284 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+t_Ýts
+->
+ts_v®
+);
+
+285 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+t_Ýts
+->
+ts_echo_»¶y
+);
+
+286 } \vià(
+ÝtiÚs
+ &
+RTE_SP_OPTIONS_SACK_PERM
+) {
+
+287
+ÝtiÚ_by\8bs
+ = (
+RTE_CT_TCPOPT_NOP
+ << 24) |
+
+288 (
+RTE_CT_TCPOPT_NOP
+ << 16) |
+
+289 (
+RTE_CT_TCPOPT_SACK_PERM
+ << 8) |
+
+290
+RTE_CT_TCPOLEN_SACK_PERM
+;
+
+291 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+ÝtiÚ_by\8bs
+);
+
+294 ià(
+ÝtiÚs
+ &
+RTE_SP_OPTIONS_WINDOW_SCALE
+) {
+
+295
+ÝtiÚ_by\8bs
+ = (
+RTE_CT_TCPOPT_NOP
+ << 24) |
+
+296 (
+RTE_CT_TCPOPT_WINDOW
+ << 16) |
+
+297 (
+RTE_CT_TCPOLEN_WINDOW
+ << 8) |
+
+298
+t_Ýts
+->
+w\9adow_sÿË
+;
+
+299 *
+ÝtiÚs_±r
+++ =
+ `¹e_bsw32
+(
+ÝtiÚ_by\8bs
+);
+
+306
+u\9at16_t
+
+d©a_off£t_by\8bs
+ = (u\9at16_t)
+ `RTE_PTR_DIFF
+(
+ÝtiÚs_±r
+,
+
+307
+§ved_±r
+è+ \17(\19
+tý_hdr
+);
+
+308
+thdr
+->
+d©a_off
+ = (
+d©a_off£t_by\8bs
+ >> 2) << 4;
+
+310 \15
+d©a_off£t_by\8bs
+;
+
+311
+ }
+}
+
+318 \18
+\9al\9ae
+
+u\9at16_t
+
+
+319
+ $¹e_syÅroxy_bu\9ed_tý_h\97d\94
+(
+
+320
+__¹e_unu£d
+ \19
+¹e_mbuf
+ *
+Þd_pkt
+,
+
+321 \19
+tý_hdr
+ *
+t_hdr
+,
+
+322
+u\9at16_t
+
+¤c_pÜt
+,
+
+323
+u\9at16_t
+
+d¡_pÜt
+,
+
+324
+u\9at32_t
+
+£q
+,
+
+325
+u\9at32_t
+
+ack
+,
+
+326
+u\9at8_t
+
+æags
+,
+
+327 cڡ \19
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+,
+
+328
+u\9at8_t
+
+add_ÝtiÚs
+)
+
+330
+t_hdr
+->
+¤c_pÜt
+ =
+ `¹e_bsw16
+(src_port);
+
+331
+t_hdr
+->
+d¡_pÜt
+ =
+ `¹e_bsw16
+(dst_port);
+
+332
+t_hdr
+->
+£Á_£q
+ =
+ `¹e_bsw32
+(
+£q
+);
+
+333
+t_hdr
+->
+»cv_ack
+ =
+ `¹e_bsw32
+(
+ack
+);
+
+335
+t_hdr
+->
+tý_æags
+ =
+æags
+;
+
+336
+t_hdr
+->
+rx_w\9a
+ =
+t_Ýts
+->
+\9a\99\9fl_w\9adow
+;
+
+338
+t_hdr
+->
+tý_u½
+ = 0;
+
+342
+u\9at16_t
+
+Ãw_tý_hdr_size
+ =
+TCP_MIN_HDR_SIZE
+;
+
+344 ià(
+add_ÝtiÚs
+)
+
+345
+Ãw_tý_hdr_size
+ =
+ `¹e_¥_add_tý_ÝtiÚs
+(
+t_hdr
+,
+t_Ýts
+);
+
+347
+t_hdr
+->
+d©a_off
+ = (
+TCP_MIN_HDR_SIZE
+ >> 2) << 4;
+
+349 \15
+Ãw_tý_hdr_size
+;
+
+350
+ }
+}
+
+353
+ $¹e_syÅroxy_compu\8b_checksums
+(\1e*
+i_hdr
+, \19
+tý_hdr
+ *
+t_hdr
+)
+
+364
+\9at8_t
+
+hdr_chk
+ =
+ `¹e_ù_\9dv\94siÚ
+(
+i_hdr
+);
+
+366
+t_hdr
+->
+cksum
+ = 0;
+
+368 ià(
+hdr_chk
+ =ð
+IP_VERSION_4
+) {
+
+369 \19
+\9dv4_hdr
+ *
+i4_hdr
+ = (\19\9dv4_hd¸*)
+i_hdr
+;
+
+371
+i4_hdr
+->
+hdr_checksum
+ = 0;
+
+372
+t_hdr
+->
+cksum
+ =
+ `¹e_\9dv4_ud±ý_cksum
+(
+i4_hdr
+,\81_hdr);
+
+373
+i4_hdr
+->
+hdr_checksum
+ =
+ `¹e_\9dv4_cksum
+(i4_hdr);
+
+374 } \vià(
+hdr_chk
+ =ð
+IP_VERSION_6
+) {
+
+375 \19
+\9dv6_hdr
+ *
+i6_hdr
+ = (\19\9dv6_hd¸*)
+i_hdr
+;
+
+377
+t_hdr
+->
+cksum
+ =
+ `¹e_\9dv6_ud±ý_cksum
+(
+i6_hdr
+,\81_hdr);
+
+379
+ }
+}
+
+391
+ $¹e_¥_cvt_to_¥ooãd_þ\9bÁ_syÇck
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+392 \19
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+398 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+Þd_pkt
+);
+
+399 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+);
+
+400 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+401
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+ +
+
+402
+\9d_hdr_size_by\8bs
+);
+
+403
+u\9at16_t
+
+tý_h\97d\94_size
+;
+
+406
+u\9at32_t
+
+Ãw_£q
+ =
+ `¹e_¥_g\91_¿ndom_£q_numb\94
+();
+
+408 ià(
+RTE_CT_DEBUG_SPOOFED_SEQ
+)
+
+409
+Ãw_£q
+ = 10;
+
+411
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+Üig\9a®_¥ooãd_£q
+ =
+Ãw_£q
+;
+
+414
+tý_h\97d\94_size
+ =
+ `¹e_syÅroxy_bu\9ed_tý_h\97d\94
+(
+Þd_pkt
+,
+thdr
+,
+
+415
+ `¹e_bsw16
+(
+thdr
+->
+d¡_pÜt
+),
+
+416
+ `¹e_bsw16
+(
+thdr
+->
+¤c_pÜt
+),
+
+417
+Ãw_£q
+,
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+) + 1,
+
+418
+RTE_TCP_SYN_ACK
+,
+
+419
+\9d_hdr_size_by\8bs
+ =ð
+IP_V4_HEADER_SIZE
+ ?
+
+420 &
+deçuÉ_\9dv4_syÅroxy_ÝtiÚs
+ :
+
+421 &
+deçuÉ_\9dv6_syÅroxy_ÝtiÚs
+, 1);
+
+424 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+425 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19\9dv4_hd¸*)
+\9dhdr
+;
+
+427
+ `¹e_syÅroxy_bu\9ed_\9dv4_h\97d\94
+(
+ihdr4
+,
+
+428
+ `¹e_bsw32
+(
+ihdr4
+->
+d¡_addr
+),
+
+429
+ `¹e_bsw32
+(
+ihdr4
+->
+¤c_addr
+),
+tý_h\97d\94_size
+);
+
+431 } \vià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+432 \19
+\9dv6_hdr
+ *
+ihdr6
+ = (\19\9dv6_hd¸*)
+\9dhdr
+;
+
+434
+ `¹e_syÅroxy_bu\9ed_\9dv6_h\97d\94
+(
+ihdr6
+,
+
+435 (
+u\9at8_t
+ *)
+ihdr6
+->
+d¡_addr
+,
+
+436 (
+u\9at8_t
+ *)
+ihdr6
+->
+¤c_addr
+,
+tý_h\97d\94_size
+);
+
+438
+ `¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+440
+ `¹e_syÅroxy_compu\8b_checksums
+(
+\9dhdr
+,
+thdr
+);
+
+442
+ }
+}
+
+446
+ $¹e_¥_cvt_to_¥ooãd_£rv\94_syn
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+447 \19
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+453 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+Þd_pkt
+);
+
+454 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+);
+
+455 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+456
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+
+
+457 +
+\9d_hdr_size_by\8bs
+);
+
+458
+u\9at16_t
+
+tý_h\97d\94_size
+;
+
+460
+tý_h\97d\94_size
+ =
+ `¹e_syÅroxy_bu\9ed_tý_h\97d\94
+(
+Þd_pkt
+,
+thdr
+,
+
+461
+ `¹e_bsw16
+(
+thdr
+->
+¤c_pÜt
+),
+
+462
+ `¹e_bsw16
+(
+thdr
+->
+d¡_pÜt
+),
+
+463
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+) - 1, 0,
+
+464
+RTE_TCP_SYN
+,
+
+465 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+, 1);
+
+467 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+468 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19\9dv4_hd¸*)
+\9dhdr
+;
+
+470
+ `¹e_syÅroxy_bu\9ed_\9dv4_h\97d\94
+(
+ihdr4
+,
+
+471
+ `¹e_bsw32
+(
+ihdr4
+->
+¤c_addr
+),
+
+472
+ `¹e_bsw32
+(
+ihdr4
+->
+d¡_addr
+),
+tý_h\97d\94_size
+);
+
+473 } \vià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+474 \19
+\9dv6_hdr
+ *
+ihdr6
+ = (\19\9dv6_hd¸*)
+\9dhdr
+;
+
+476
+ `¹e_syÅroxy_bu\9ed_\9dv6_h\97d\94
+(
+ihdr6
+,
+
+477 (
+u\9at8_t
+ *)
+ihdr6
+->
+¤c_addr
+,
+
+478 (
+u\9at8_t
+ *)
+ihdr6
+->
+d¡_addr
+,
+tý_h\97d\94_size
+);
+
+481
+ `¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+483
+ `¹e_syÅroxy_compu\8b_checksums
+(
+\9dhdr
+,
+thdr
+);
+
+485
+ }
+}
+
+488
+ $¹e_¥_cvt_to_¥ooãd_£rv\94_ack
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+489 \19
+¹e_mbuf
+ *
+Þd_pkt
+)
+
+495 \12
+\9d_hdr_size_by\8bs
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+Þd_pkt
+);
+
+496 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+);
+
+497 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+498
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+Þd_pkt
+,
+IP_START
+ +
+
+499
+\9d_hdr_size_by\8bs
+);
+
+504
+u\9at32_t
+
+»®_£q
+ =
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+);
+
+505
+u\9at16_t
+
+tý_h\97d\94_size
+;
+
+507
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+ =
+
+508
+»®_£q
+ -
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+Üig\9a®_¥ooãd_£q
+;
+
+511
+tý_h\97d\94_size
+ =
+ `¹e_syÅroxy_bu\9ed_tý_h\97d\94
+(
+Þd_pkt
+,
+thdr
+,
+
+512
+ `¹e_bsw16
+(
+thdr
+->
+d¡_pÜt
+),
+
+513
+ `¹e_bsw16
+(
+thdr
+->
+¤c_pÜt
+),
+
+514
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+),
+
+515
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+è+ 1,
+RTE_TCP_ACK
+,
+
+516 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+, 0);
+
+519 ià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V4_HEADER_SIZE
+) {
+
+520 \19
+\9dv4_hdr
+ *
+ihdr4
+ = (\19\9dv4_hd¸*)
+\9dhdr
+;
+
+522
+ `¹e_syÅroxy_bu\9ed_\9dv4_h\97d\94
+(
+ihdr4
+,
+
+523
+ `¹e_bsw32
+(
+ihdr4
+->
+d¡_addr
+),
+
+524
+ `¹e_bsw32
+(
+ihdr4
+->
+¤c_addr
+),
+tý_h\97d\94_size
+);
+
+526 } \vià(
+\9d_hdr_size_by\8bs
+ =ð
+IP_V6_HEADER_SIZE
+) {
+
+527 \19
+\9dv6_hdr
+ *
+ihdr6
+ = (\19\9dv6_hd¸*)
+\9dhdr
+;
+
+529
+ `¹e_syÅroxy_bu\9ed_\9dv6_h\97d\94
+(
+ihdr6
+,
+
+530 (
+u\9at8_t
+ *)
+ihdr6
+->
+d¡_addr
+,
+
+531 (
+u\9at8_t
+ *)
+ihdr6
+->
+¤c_addr
+,
+tý_h\97d\94_size
+);
+
+533
+ `¹e_syÅroxy_adju¡_pkt_Ëngth
+(
+Þd_pkt
+);
+
+535
+ `¹e_syÅroxy_compu\8b_checksums
+(
+\9dhdr
+,
+thdr
+);
+
+536
+ }
+}
+
+551
+ $¹e_¥_adju¡_£rv\94_£q_aá\94_w\9adow_check
+(
+
+552 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+553
+__¹e_unu£d
+ \1e*
+i_hdr
+,
+
+554 \19
+tý_hdr
+ *
+thdr
+,
+
+555 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+)
+
+557
+u\9at32_t
+
+num_befÜe
+,
+num_aá\94
+;
+
+559 ià(!
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+562 ià(
+d\9c
+ =ð
+RTE_CT_DIR_ORIGINAL
+)
+
+567
+num_befÜe
+ =
+ `¹e_bsw32
+(
+thdr
+->
+£Á_£q
+);
+
+568
+num_aá\94
+ =
+num_befÜe
+ -
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+;
+
+569
+thdr
+->
+£Á_£q
+ =
+ `¹e_bsw32
+(
+num_aá\94
+);
+
+571
+ `¹e_¥_\9aüem\92\8fl_tý_chksum_upd©e_32
+(
+num_befÜe
+,
+num_aá\94
+,
+
+572 &
+thdr
+->
+cksum
+);
+
+573
+ }
+}
+
+577
+ $¹e_¥_adju¡_þ\9bÁ_§ck_\92\8c\9bs
+(
+
+578 \19
+tý_hdr
+ *
+thdr
+,
+
+579
+u\9at32_t
+
+diff
+)
+
+581
+u\9at32_t
+
+num_befÜe
+,
+num_aá\94
+;
+
+582
+u\9at32_t
+ *
+§ck_±r
+;
+
+583
+u\9at8_t
+
+§ck_blk_size
+;
+
+584
+u\9at16_t
+
+d©aoff_\9a_by\8bs
+ = (
+thdr
+->
+d©a_off
+ & 0xf0) >> 2;
+
+585
+u\9at16_t
+
+Ëngth
+ =
+d©aoff_\9a_by\8bs
+ - \17(\19
+tý_hdr
+);
+
+587 ià(!
+Ëngth
+)
+
+590
+u\9at8_t
+ *
+ÝtiÚs_±r
+ = (u\9at8_\88*)(
+thdr
+ + 1);
+
+592 \1f
+Ëngth
+ > 0) {
+
+593
+u\9at8_t
+
+Ýcode
+ = *
+ÝtiÚs_±r
+;
+
+594
+u\9at8_t
+
+Ýsize
+ =
+ÝtiÚs_±r
+[1];
+
+595 \12
+i
+;
+
+597 \1a
+Ýcode
+) {
+
+599 \ 4
+RTE_CT_TCPOPT_EOL
+:
+
+602 \ 4
+RTE_CT_TCPOPT_NOP
+:
+
+603
+Ëngth
+--;
+
+604
+ÝtiÚs_±r
+++;
+
+607 \ 4
+RTE_CT_TCPOPT_SACK
+:
+
+616
+§ck_blk_size
+ =
+Ýsize
+ - 2;
+
+618
+§ck_±r
+ = (
+u\9at32_t
+ *)(
+ÝtiÚs_±r
+ + 2);
+
+620 \12
+num_acks
+ =
+§ck_blk_size
+ >> 2;
+
+622 ià(
+ `uÆik\96y
+(
+§ck_blk_size
+ > 32 ||
+
+623 ((
+§ck_blk_size
+ & 0x3) != 0))) {
+
+624
+ `´\9atf
+("Sack block\85arsing failure\n");
+
+628 \ f
+i
+ = 0; i <
+num_acks
+; i++) {
+
+629
+num_befÜe
+ =
+ `¹e_bsw32
+(*
+§ck_±r
+);
+
+630
+num_aá\94
+ =
+num_befÜe
+ +
+diff
+;
+
+631 *
+§ck_±r
+ =
+ `¹e_bsw32
+(
+num_aá\94
+);
+
+632
+§ck_±r
+++;
+
+633
+ `¹e_¥_\9aüem\92\8fl_tý_chksum_upd©e_32
+(
+
+634
+num_befÜe
+,
+
+635
+num_aá\94
+,
+
+636 &
+thdr
+->
+cksum
+);
+
+643 ià((
+Ýsize
+ < 2è|| (Ýsiz\90>
+Ëngth
+)) {
+
+644
+ `´\9atf
+("ERROR!, opsize %i,\86ength %i\n",
+
+645
+Ýsize
+,
+Ëngth
+);
+
+649
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+650
+Ëngth
+ -ð
+Ýsize
+;
+
+652
+ }
+}
+
+655
+ $¹e_¥_adju¡_þ\9bÁ_ack_befÜe_w\9adow_check
+(
+
+656 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+657
+__¹e_unu£d
+ \1e*
+i_hdr
+,
+
+658 \19
+tý_hdr
+ *
+thdr
+,
+
+659 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+)
+
+661
+u\9at32_t
+
+num_befÜe
+,
+num_aá\94
+;
+
+663 ià(!
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+666 ià(
+d\9c
+ !ð
+RTE_CT_DIR_ORIGINAL
+)
+
+671
+num_befÜe
+ =
+ `¹e_bsw32
+(
+thdr
+->
+»cv_ack
+);
+
+672
+num_aá\94
+ =
+num_befÜe
+ +
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+;
+
+673
+thdr
+->
+»cv_ack
+ =
+ `¹e_bsw32
+(
+num_aá\94
+);
+
+674
+ `¹e_¥_\9aüem\92\8fl_tý_chksum_upd©e_32
+(
+num_befÜe
+,
+
+675
+num_aá\94
+, &
+thdr
+->
+cksum
+);
+
+680
+ `¹e_¥_adju¡_þ\9bÁ_§ck_\92\8c\9bs
+(
+thdr
+,
+
+681
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+£q_diff
+);
+
+686
+ }
+}
+
+693
+ $¹e_¥_·r£_tý_ÝtiÚs
+(
+
+694
+u\9at8_t
+ *
+ÝtiÚs_±r
+,
+
+695
+u\9at16_t
+
+Ëngth
+,
+
+696 \19
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+)
+
+698 \12
+Ýsize
+;
+
+700
+t_Ýts
+->
+ÝtiÚs
+ = 0;
+
+702 \1f
+Ëngth
+ > 0) {
+
+703
+u\9at8_t
+
+Ýcode
+ = *
+ÝtiÚs_±r
+++;
+
+705 ià(
+Ýcode
+ =ð
+RTE_CT_TCPOPT_EOL
+)
+
+708 ià(
+Ýcode
+ =ð
+RTE_CT_TCPOPT_NOP
+) {
+
+709
+Ëngth
+--;
+
+713
+Ýsize
+ = *
+ÝtiÚs_±r
+++;
+
+715 ià(
+ `uÆik\96y
+(
+Ýsize
+ < 2 || opsiz\90>
+Ëngth
+)) {
+
+717
+ `´\9atf
+("parsing\83rror, opsize: %i,\86ength: %i\n",
+
+718
+Ýsize
+,
+Ëngth
+);
+
+722 \1a
+Ýcode
+) {
+
+724 \ 4
+RTE_CT_TCPOPT_MSS
+:
+
+725 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_MSS
+) {
+
+726
+u\9at16_t
+ *
+mss_±r
+ = (u\9at16_\88*)
+ÝtiÚs_±r
+;
+
+728
+t_Ýts
+->
+mss
+ =
+ `¹e_bsw16
+(*
+mss_±r
+);
+
+729
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_MSS
+;
+
+733 \ 4
+RTE_CT_TCPOPT_WINDOW
+:
+
+734 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_WINDOW
+) {
+
+735
+t_Ýts
+->
+w\9adow_sÿË
+ =
+ `RTE_MIN
+(*
+ÝtiÚs_±r
+,
+
+736
+RTE_CT_MAX_TCP_WINDOW_SCALE
+);
+
+737
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_WINDOW_SCALE
+;
+
+741 \ 4
+RTE_CT_TCPOPT_TIMESTAMP
+:
+
+742 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_TIMESTAMP
+) {
+
+743
+u\9at32_t
+ *
+ts_v®_±r
+ = (u\9at32_\88*)
+ÝtiÚs_±r
+;
+
+744
+u\9at32_t
+ *
+ts_eü_±r
+ =
+
+745 (
+u\9at32_t
+ *)(
+ÝtiÚs_±r
+ + 4);
+
+746
+t_Ýts
+->
+ts_v®
+ =
+ `¹e_bsw32
+(*
+ts_v®_±r
+);
+
+747
+t_Ýts
+->
+ts_echo_»¶y
+ =
+
+748
+ `¹e_bsw32
+(*
+ts_eü_±r
+);
+
+749
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_TIMESTAMP
+;
+
+753 \ 4
+RTE_CT_TCPOPT_SACK_PERM
+:
+
+754 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_SACK_PERM
+)
+
+755
+t_Ýts
+->
+ÝtiÚs
+ |ð
+RTE_SP_OPTIONS_SACK_PERM
+;
+
+762
+ÝtiÚs_±r
+ +ð
+Ýsize
+ - 2;
+
+763
+Ëngth
+ -ð
+Ýsize
+;
+
+766
+ }
+}
+
+770
+ $¹e_¥_·r£_ÝtiÚs
+(\19
+¹e_mbuf
+ *
+pkt
+, \19
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+775 \12
+\9d_hdr_Ëngth
+ =
+ `¹e_ù_g\91_IP_hdr_size
+(
+pkt
+);
+
+776 \19
+tý_hdr
+ *
+thdr
+ = (\19tcp_hdr *)
+
+777
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+ +
+\9d_hdr_Ëngth
+);
+
+778
+u\9at8_t
+ *
+Ýt_±r
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+779 (
+IP_START
+ +
+\9d_hdr_Ëngth
+ + \17(\19
+tý_hdr
+)));
+
+781 \19
+¹e_syÅroxy_ÝtiÚs
+ *
+t_Ýts
+ =
+
+782 &
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_ÝtiÚs
+;
+
+783 \12
+Ëngth_\9a_by\8bs
+ =
+
+784 ((
+thdr
+->
+d©a_off
+ & 0xf0è>> 2è- \17(\19
+tý_hdr
+);
+
+786
+ `¹e_¥_·r£_tý_ÝtiÚs
+(
+Ýt_±r
+,
+Ëngth_\9a_by\8bs
+,
+t_Ýts
+);
+
+787
+t_Ýts
+->
+\9a\99\9fl_w\9adow
+ =
+thdr
+->
+rx_w\9a
+;
+
+788
+ }
+}
+
+793 \19
+¹e_mbuf
+ *
+
+794
+ $¹e_ù_g\91_bufã»d_syÅroxy_·ck\91s
+(
+
+795 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+797 \19
+¹e_mbuf
+ *
+\8ckr_li¡
+ =
+ù
+->
+bufã»d_pkt_li¡
+;
+
+799
+ù
+->
+bufã»d_pkt_li¡
+ =
+NULL
+;
+
+800 \15
+\8ckr_li¡
+;
+
+801
+ }
+}
+
+805 \1e
+ $¹e_ù_\92abË_syÅroxy
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+807
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_\92abËd
+ = 1;
+
+808
+ `´\9atf
+("rte_ct_enable_synproxy = %d\n",
+
+809
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_\92abËd
+);
+
+810
+ }
+}
+
+812 \1e
+ $¹e_ù_di§bË_syÅroxy
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+)
+
+814
+ù
+->
+misc_ÝtiÚs
+.
+syÅroxy_\92abËd
+ = 0;
+
+817
+ }
+}
+
+820
+ $¹e_ù_bufãr_·ck\91
+(
+
+821 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+822 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+823 \19
+¹e_mbuf
+ *
+pkt
+)
+
+831 \19
+¹e_mbuf
+ **
+Ãxt
+ = (\19rte_mbuf **)
+
+832
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+833
+ù
+->
+po\9a\8br_off£t
+);
+
+834 *
+Ãxt
+ =
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+bufã»d_pkt_li¡
+;
+
+835
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+bufã»d_pkt_li¡
+ =
+pkt
+;
+
+836
+ }
+}
+
+839
+ $¹e_ù_»Ëa£_bufã»d_·ck\91s
+(
+
+840 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+841 \19
+¹e_ù_úxn_d©a
+ *
+cd
+)
+
+843 \19
+¹e_mbuf
+ *
+úxn_li¡
+ =
+
+844
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+bufã»d_pkt_li¡
+;
+
+846 ià(
+úxn_li¡
+ =ð
+NULL
+)
+
+849
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+bufã»d_pkt_li¡
+ =
+NULL
+;
+
+851 \19
+¹e_mbuf
+ *
+\8ckr_li¡
+ =
+ù
+->
+bufã»d_pkt_li¡
+;
+
+853 ià(
+\8ckr_li¡
+ =ð
+NULL
+)
+
+860 \1f
+úxn_li¡
+ !ð
+NULL
+) {
+
+861 \19
+¹e_mbuf
+ *
+Þd_Ãxt
+;
+
+863 \19
+¹e_mbuf
+ **
+Ãxt
+ = (\19rte_mbuf **)
+
+864
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+úxn_li¡
+,
+
+865
+ù
+->
+po\9a\8br_off£t
+);
+
+867
+Þd_Ãxt
+ = *
+Ãxt
+;
+
+868 *
+Ãxt
+ =
+\8ckr_li¡
+;
+
+869
+\8ckr_li¡
+ =
+úxn_li¡
+;
+
+870
+úxn_li¡
+ =
+Þd_Ãxt
+;
+
+872
+ù
+->
+bufã»d_pkt_li¡
+ =
+\8ckr_li¡
+;
+
+873
+ }
+}
+
+ @VIL/conntrack/rte_ct_tcp.c
+
+17 \ 2
+ ~<¡dlib.h
+>
+
+18 \ 2
+ ~<¡r\9ag.h
+>
+
+19 \ 2
+ ~<imm\9a\8c\9a.h
+>
+
+20 \ 2
+ ~<\9a\89y³s.h
+>
+
+21 \ 2
+ ~"¹e_ù_tý.h
+"
+
+22 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+25 \ 1
+ #CT_DEBUG
+ 0
+
+ )
+
+26 \ 1
+ #STATE_TRACKING
+ 0
+
+ )
+
+27 \ 1
+ #RTE_CT_ASSERT
+ 0
+
+ )
+
+30 \ 1
+ #META_DATA_OFFSET
+ 128
+
+ )
+
+31 \ 1
+ #RTE_PKTMBUF_HEADROOM
+ 128
+
+ )
+
+32 \ 1
+ #ETHERNET_START
+ (
+META_DATA_OFFSET
+ +
+RTE_PKTMBUF_HEADROOM
+)
+
+ )
+
+33 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+34 \ 1
+ #IP_START
+ (
+ETHERNET_START
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+36 \ 1
+ #IPv4_HEADER_SIZE
+ 20
+
+ )
+
+37 \ 1
+ #IPv6_HEADER_SIZE
+ 40
+
+ )
+
+39 \ 1
+ #IP_VERSION_4
+ 4
+
+ )
+
+40 \ 1
+ #IP_VERSION_6
+ 6
+
+ )
+
+42 \ 1
+ #¹e_aá\94
+(
+£q2
+,
+£q1
+è
+ `¹e_befÜe
+(£q1, seq2)
+
+ )
+
+43 \18
+\9al\9ae
+
+u\9at8_t
+
+ $¹e_befÜe
+(
+u\9at32_t
+
+£q1
+, u\9at32_\88
+£q2
+)
+
+45 \15 (
+\9at32_t
+è(
+£q1
+ -
+£q2
+) < 0;
+
+46
+ }
+}
+
+50 \ 1
+ #ùNO
+
+RTE_CT_TCP_NONE
+
+
+ )
+
+51 \ 1
+ #ùSS
+
+RTE_CT_TCP_SYN_SENT
+
+
+ )
+
+52 \ 1
+ #ùSR
+
+RTE_CT_TCP_SYN_RECV
+
+
+ )
+
+53 \ 1
+ #ùES
+
+RTE_CT_TCP_ESTABLISHED
+
+
+ )
+
+54 \ 1
+ #ùFW
+
+RTE_CT_TCP_FIN_WAIT
+
+
+ )
+
+55 \ 1
+ #ùCW
+
+RTE_CT_TCP_CLOSE_WAIT
+
+
+ )
+
+56 \ 1
+ #ùLA
+
+RTE_CT_TCP_LAST_ACK
+
+
+ )
+
+57 \ 1
+ #ùTW
+
+RTE_CT_TCP_TIME_WAIT
+
+
+ )
+
+58 \ 1
+ #ùCL
+
+RTE_CT_TCP_CLOSE
+
+
+ )
+
+59 \ 1
+ #ùS2
+
+RTE_CT_TCP_SYN_SENT_2
+
+
+ )
+
+60 \ 1
+ #ùIV
+
+RTE_CT_TCP_MAX
+
+
+ )
+
+61 \ 1
+ #ùIG
+
+RTE_CT_TCP_IGNORE
+
+
+ )
+
+63 \18cڡ
+u\9at8_t
+
+ g¹e_ù_tý_¡©e_\8fbË
+[2][6][
+RTE_CT_TCP_MAX
+] = {
+
+66 {
+ùSS
+, ctSS,
+ùIG
+, ctIG, ctIG, ctIG, ctIG, ctSS, ctSS,
+
+67
+ùS2
+},
+
+70 {
+ùIV
+, ctIV,
+ùSR
+, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV,
+
+71
+ùSR
+},
+
+74 {
+ùIV
+, ctIV,
+ùFW
+, ctFW,
+ùLA
+, ctLA, ctLA,
+ùTW
+,
+ùCL
+,
+
+75
+ùIV
+},
+
+77 {
+ùES
+,
+ùIV
+, ctES, ctES,
+ùCW
+, ctCW,
+ùTW
+, ctTW,
+ùCL
+,
+
+78
+ùIV
+},
+
+81 {
+ùIV
+,
+ùCL
+, ctCL, ctCL, ctCL, ctCL, ctCL, ctCL, ctCL,
+
+82
+ùCL
+},
+
+83 {
+ùIV
+, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV}
+
+88 {
+ùIV
+,
+ùS2
+, ctIV, ctIV, ctIV, ctIV, ctIV,
+ùSS
+, ctIV,
+
+89
+ùS2
+},
+
+92 {
+ùIV
+,
+ùSR
+,
+ùIG
+, ctIG, ctIG, ctIG, ctIG, ctIG, ctIG,
+
+93
+ùSR
+},
+
+96 {
+ùIV
+, ctIV,
+ùFW
+, ctFW,
+ùLA
+, ctLA, ctLA,
+ùTW
+,
+ùCL
+,
+
+97
+ùIV
+},
+
+100 {
+ùIV
+,
+ùIG
+,
+ùSR
+,
+ùES
+,
+ùCW
+, ctCW,
+ùTW
+, ctTW,
+ùCL
+,
+
+101
+ùIG
+},
+
+104 {
+ùIV
+,
+ùCL
+, ctCL, ctCL, ctCL, ctCL, ctCL, ctCL, ctCL,
+
+105
+ùCL
+},
+
+106 {
+ùIV
+, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV, ctIV}
+
+111 \f
+ e¹e_tý_æag
+ {
+
+112
+ mRTE_CT_TCP_SYN_FLAG
+,
+
+113
+ mRTE_CT_TCP_SAK_FLAG
+,
+
+114
+ mRTE_CT_TCP_FIN_FLAG
+,
+
+115
+ mRTE_CT_TCP_ACK_FLAG
+,
+
+116
+ mRTE_CT_TCP_RST_FLAG
+,
+
+117
+ mRTE_CT_TCP_ILL_FLAG
+,
+
+120 \18
+u\9at8_t
+
+ g¹e_ù_tý_æags_to_¡©e_\8fbË_\9adex
+[16] = {
+
+122
+RTE_CT_TCP_ILL_FLAG
+,
+
+123
+RTE_CT_TCP_FIN_FLAG
+,
+
+124
+RTE_CT_TCP_SYN_FLAG
+,
+
+125
+RTE_CT_TCP_ILL_FLAG
+,
+
+126
+RTE_CT_TCP_RST_FLAG
+,
+
+127
+RTE_CT_TCP_RST_FLAG
+,
+
+128
+RTE_CT_TCP_RST_FLAG
+,
+
+129
+RTE_CT_TCP_ILL_FLAG
+,
+
+131
+RTE_CT_TCP_ACK_FLAG
+,
+
+132
+RTE_CT_TCP_FIN_FLAG
+,
+
+133
+RTE_CT_TCP_SAK_FLAG
+,
+
+134
+RTE_CT_TCP_ILL_FLAG
+,
+
+135
+RTE_CT_TCP_RST_FLAG
+,
+
+136
+RTE_CT_TCP_ILL_FLAG
+,
+
+137
+RTE_CT_TCP_RST_FLAG
+,
+
+138
+RTE_CT_TCP_ILL_FLAG
+,
+
+141 \18
+\9al\9ae
+
+u\9at8_t
+
+
+142
+ $¹e_ù_g\91_\9adex
+(
+u\9at8_t
+
+tý_æags
+)
+
+144
+u\9at8_t
+
+impÜ\8fÁ_æags
+;
+
+146
+tý_æags
+ &= 0x3f;
+
+147
+impÜ\8fÁ_æags
+ = ((
+tý_æags
+ & 0x10) >> 1) | (tcp_flags & 7);
+
+150 ià(
+ `uÆik\96y
+((
+tý_æags
+ == 0) || (tcp_flags == 0x3f)))
+
+152 \15
+RTE_CT_TCP_ILL_FLAG
+;
+
+154 \15
+¹e_ù_tý_æags_to_¡©e_\8fbË_\9adex
+[
+impÜ\8fÁ_æags
+];
+
+156
+ }
+}
+
+158 \18
+\9al\9ae
+ \12
+
+159
+ $¹e_ù_e\99h\94_d\9ceùiÚ_has_æags
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+u\9at8_t
+
+æags
+)
+
+161 \15 ((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[0].
+æags
+ | cd->
+
+162
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[1].
+æags
+) & flags) != 0;
+
+163
+ }
+}
+
+165 \18
+\9al\9ae
+
+u\9at32_t
+
+ $¹e_ù_£q_¶us_Ëngth
+(\19
+¹e_mbuf
+ *
+pkt
+,
+
+166
+u\9at8_t
+
+\9d_hdr_size
+)
+
+168
+u\9at16_t
+
+pkt_Ëngth
+ = 0;
+
+169 \19
+tý_hdr
+ *
+týh\97d\94
+ =
+
+170 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+171 (
+IP_START
+ +
+
+172
+\9d_hdr_size
+));
+
+173
+u\9at32_t
+
+tý_hdr_size
+ = (
+týh\97d\94
+->
+d©a_off
+ & 0xf0) >> 2;
+
+175 \1e*
+\9d_hdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+177 ià(
+\9d_hdr_size
+ =ð
+IPv4_HEADER_SIZE
+) {
+
+178 \19
+\9dv4_hdr
+ *
+ihdr
+ = (\19\9dv4_hd¸*)
+\9d_hdr
+;
+
+180
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr
+->
+tÙ®_Ëngth
+);
+
+182 ià(
+\9d_hdr_size
+ =ð
+IPv6_HEADER_SIZE
+) {
+
+183 \19
+\9dv6_hdr
+ *
+ihdr
+ = (\19\9dv6_hd¸*)
+\9d_hdr
+;
+
+185
+pkt_Ëngth
+ =
+ `¹e_bsw16
+(
+ihdr
+->
+·ylßd_Ën
+è+
+IPv6_HEADER_SIZE
+;
+
+195 \15
+ `¹e_bsw32
+(
+týh\97d\94
+->
+£Á_£q
+) +
+
+196
+pkt_Ëngth
+ -
+\9d_hdr_size
+ -
+tý_hdr_size
+ +
+
+197 ((
+týh\97d\94
+->
+tý_æags
+ & (
+RTE_CT_TCPHDR_SYN
+ |
+RTE_CT_TCPHDR_FIN
+)) !=
+
+200
+ }
+}
+
+203
+ $¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+
+204 \19
+¹e_mbuf
+ *
+pkt
+,
+
+205 \19
+¹e_ù_tý_¡©e
+ *
+¡©e
+,
+
+206
+u\9at8_t
+
+\9d_hdr_size
+)
+
+209 \19
+tý_hdr
+ *
+týh\97d\94
+ =
+
+210 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+211 (
+IP_START
+ +
+
+212
+\9d_hdr_size
+));
+
+213
+u\9at32_t
+
+d©aoff_\9a_by\8bs
+ = (
+týh\97d\94
+->
+d©a_off
+ & 0xf0) >> 2;
+
+214
+u\9at32_t
+
+Ëngth
+ =
+d©aoff_\9a_by\8bs
+ - \17(\19
+tý_hdr
+);
+
+216
+¡©e
+->
+sÿË
+ = 0;
+
+217
+¡©e
+->
+æags
+ = 0;
+
+219 ià(
+Ëngth
+ == 0)
+
+222
+u\9at8_t
+ *
+ÝtiÚs_±r
+ =
+
+223
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+224 (
+IP_START
+ +
+\9d_hdr_size
+ +
+
+225 \17(\19
+tý_hdr
+)));
+
+227 \1f
+Ëngth
+ > 0) {
+
+228
+u\9at8_t
+
+ÝtiÚ
+ = *
+ÝtiÚs_±r
+;
+
+229
+u\9at8_t
+
+Ýsize
+ =
+ÝtiÚs_±r
+[1];
+
+232 \1a
+ÝtiÚ
+) {
+
+234 \ 4
+RTE_CT_TCPOPT_EOL
+:
+
+238 \ 4
+RTE_CT_TCPOPT_NOP
+:
+
+239
+ÝtiÚs_±r
+++;
+
+240
+Ëngth
+--;
+
+243 \ 4
+RTE_CT_TCPOPT_SACK_PERM
+:
+
+244 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_SACK_PERM
+)
+
+245
+¡©e
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_SACK_PERM
+;
+
+248 \ 4
+RTE_CT_TCPOPT_WINDOW
+:
+
+249 ià(
+Ýsize
+ =ð
+RTE_CT_TCPOLEN_WINDOW
+) {
+
+250
+¡©e
+->
+sÿË
+ =
+
+251
+ `RTE_MIN
+(
+ÝtiÚs_±r
+[2],
+
+252
+RTE_CT_MAX_TCP_WINDOW_SCALE
+);
+
+253
+¡©e
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_WINDOW_SCALE
+;
+
+262 ià((
+Ýsize
+ < 2è|| (Ýsiz\90>
+Ëngth
+)) {
+
+264
+ `´\9atf
+("scaling_and_sack_perm:something wrong\n");
+
+267
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+268
+Ëngth
+ -ð
+Ýsize
+;
+
+271
+ }
+}
+
+274
+ $¹e_ù_týdi¥Ïy_hdr
+(\19
+tý_hdr
+ *
+týh\97d\94
+)
+
+276
+ `´\9atf
+("Tý h\97d\94: src_pÜt=%d",
+ `¹e_bsw16
+(
+týh\97d\94
+->
+¤c_pÜt
+));
+
+277
+ `´\9atf
+(", d¡_pÜt=%d",
+ `¹e_bsw16
+(
+týh\97d\94
+->
+d¡_pÜt
+));
+
+278
+ `´\9atf
+(", s\92t_£q=%u",
+ `¹e_bsw32
+(
+týh\97d\94
+->
+£Á_£q
+));
+
+279
+ `´\9atf
+(",\84ecv_ack=%u",
+ `¹e_bsw32
+(
+týh\97d\94
+->
+»cv_ack
+));
+
+280
+ `´\9atf
+(",d©a_off=%d",
+týh\97d\94
+->
+d©a_off
+ / 16);
+
+281
+ `´\9atf
+(",tý_æags=%02x",
+týh\97d\94
+->
+tý_æags
+);
+
+282
+ `´\9atf
+(",\84x_w\9a=%d\n",
+ `¹e_bsw16
+(
+týh\97d\94
+->
+rx_w\9a
+));
+
+284
+ }
+}
+
+286 \18
+\9al\9ae
+ \1e
+
+287
+ $¹e_ù_þ\97r_úxn_d©a
+(
+__¹e_unu£d
+ \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+288 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+289
+__¹e_unu£d
+ \19
+¹e_mbuf
+ *
+pkt
+)
+
+293
+ `mem£t
+(&
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+, 0,
+
+294 \17(
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+));
+
+295
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ =
+RTE_CT_TCP_ILL_FLAG
+;
+
+297
+ }
+}
+
+299 \f
+¹e_ù_·ck\91_aùiÚ
+
+
+300
+ $¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+
+301 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+302 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+303 \19
+¹e_mbuf
+ *
+pkt
+,
+
+304 \12
+u£_syÅroxy
+,
+
+305
+u\9at8_t
+
+\9d_hdr_size
+)
+
+307 \19
+tý_hdr
+ *
+týh\97d\94
+ =
+
+308 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+309 (
+IP_START
+ +
+\9d_hdr_size
+));
+
+311 \f
+¹e_ù_tý_¡©es
+
+Ãw_¡©e
+;
+
+312
+u\9at8_t
+
+\9adex
+;
+
+313 \19
+¹e_ù_tý_¡©e
+ *
+£nd\94
+ =
+
+314 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[
+RTE_CT_DIR_ORIGINAL
+];
+
+315 \19
+¹e_ù_tý_¡©e
+ *
+»ûiv\94
+ =
+
+316 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[
+RTE_CT_DIR_REPLY
+];
+
+317
+u\9at16_t
+
+w\9a
+;
+
+319 ià(
+CT_DEBUG
+)
+
+320
+ `¹e_ù_týdi¥Ïy_hdr
+(
+týh\97d\94
+);
+
+322
+\9adex
+ =
+ `¹e_ù_g\91_\9adex
+(
+týh\97d\94
+->
+tý_æags
+);
+
+323
+Ãw_¡©e
+ =
+¹e_ù_tý_¡©e_\8fbË
+[0][
+\9adex
+][
+RTE_CT_TCP_NONE
+];
+
+325 ià(
+ `uÆik\96y
+(
+Ãw_¡©e
+ >ð
+RTE_CT_TCP_MAX
+)) {
+
+326 ià(
+CT_DEBUG
+)
+
+327
+ `´\9atf
+("invalid\82ew state with flags %02x\n",
+
+328
+týh\97d\94
+->
+tý_æags
+);
+
+329 \15
+RTE_CT_DROP_PACKET
+;
+
+337 ià(
+ `uÆik\96y
+((
+Ãw_¡©e
+ !ð
+RTE_CT_TCP_SYN_SENT
+
+
+338 &&
+ù
+->
+misc_ÝtiÚs
+.
+tý_loo£
+ == 0))) {
+
+341 \15
+RTE_CT_DROP_PACKET
+;
+
+344 ià(
+CT_DEBUG
+)
+
+345
+ `´\9atf
+("\82ew connection with state %s\n",
+
+346
+¹e_ù_tý_Çmes
+[
+Ãw_¡©e
+]);
+
+349
+ `¹e_ù_þ\97r_úxn_d©a
+(
+ù
+,
+cd
+,
+pkt
+);
+
+350
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =
+Ãw_¡©e
+;
+
+352
+£nd\94
+->
+\92d
+ = s\92d\94->
+max\92d
+ =
+ `¹e_ù_£q_¶us_Ëngth
+(
+pkt
+,
+\9d_hdr_size
+);
+
+353
+w\9a
+ =
+ `¹e_bsw16
+(
+týh\97d\94
+->
+rx_w\9a
+);
+
+354
+£nd\94
+->
+maxw\9a
+ =
+ `RTE_MAX
+(
+w\9a
+, (
+u\9at32_t
+)1);
+
+356 ià(
+ `lik\96y
+(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+)) {
+
+358
+ `¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+pkt
+,
+£nd\94
+,
+
+359
+\9d_hdr_size
+);
+
+361
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+ =
+u£_syÅroxy
+;
+
+363 ià(
+u£_syÅroxy
+) {
+
+370 ià(
+CT_DEBUG
+ > 2)
+
+371
+ `´\9atf
+("synproxy sending SYN-ACK\81o client\n");
+
+373 \15
+RTE_CT_SEND_CLIENT_SYNACK
+;
+
+382
+£nd\94
+->
+max\92d
+ +ð£nd\94->
+maxw\9a
+;
+
+383
+£nd\94
+->
+æags
+ =
+»ûiv\94
+->flags =
+
+384 (
+RTE_CT_TCP_FLAG_SACK_PERM
+ |
+RTE_CT_TCP_FLAG_BE_LIBERAL
+);
+
+387 ià(
+CT_DEBUG
+ > 0) {
+
+388
+ `´\9atf
+("tcp_new: sender\83nd=%u maxend=%u maxwin=%u scale=%i",
+
+389
+£nd\94
+->
+\92d
+, s\92d\94->
+max\92d
+, s\92d\94->
+maxw\9a
+,
+
+390
+£nd\94
+->
+sÿË
+);
+
+391
+ `´\9atf
+("\84eceiver\83nd=%u maxend=%u maxwin=%u scale=%i\n",
+
+392
+»ûiv\94
+->
+\92d
+,\84eûiv\94->
+max\92d
+,
+
+393
+»ûiv\94
+->
+maxw\9a
+,
+
+394
+»ûiv\94
+->
+sÿË
+);
+
+397 \15
+RTE_CT_OPEN_CONNECTION
+;
+
+398
+ }
+}
+
+400 \18
+u\9at32_t
+
+
+401
+ $¹e_ù_tý_§ck
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at8_t
+
+\9d_hdr_size
+)
+
+403 \19
+tý_hdr
+ *
+týh\97d\94
+ =
+
+404 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+405 (
+IP_START
+ +
+
+406
+\9d_hdr_size
+));
+
+407
+u\9at16_t
+
+d©aoff_\9a_by\8bs
+ = (
+týh\97d\94
+->
+d©a_off
+ & 0xf0) >> 2;
+
+408
+u\9at16_t
+
+Ëngth
+ =
+d©aoff_\9a_by\8bs
+ - \17(\19
+tý_hdr
+);
+
+409
+u\9at32_t
+
+§ck
+ =
+ `¹e_bsw32
+(
+týh\97d\94
+->
+»cv_ack
+);
+
+411 ià(
+ `uÆik\96y
+(!
+Ëngth
+))
+
+412 \15
+§ck
+;
+
+414
+u\9at8_t
+ *
+ÝtiÚs_±r
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+415 (
+IP_START
+ +
+\9d_hdr_size
+ + \17(\19
+tý_hdr
+)));
+
+417 \1f
+Ëngth
+ > 0) {
+
+418
+u\9at8_t
+
+Ýcode
+ = *
+ÝtiÚs_±r
+;
+
+419
+u\9at8_t
+
+Ýsize
+ =
+ÝtiÚs_±r
+[1];
+
+420 \12
+i
+;
+
+421
+u\9at32_t
+ *
+§ck_±r
+;
+
+423 \1a
+Ýcode
+) {
+
+424 \ 4
+RTE_CT_TCPOPT_TIMESTAMP
+:
+
+428 \ 4
+RTE_CT_TCPOPT_EOL
+:
+
+429 \15
+§ck
+;
+
+431 \ 4
+RTE_CT_TCPOPT_NOP
+:
+
+432
+Ëngth
+--;
+
+433
+ÝtiÚs_±r
+++;
+
+436 \ 4
+RTE_CT_TCPOPT_SACK
+:
+
+446 ià((
+Ýsize
+ >ð(
+RTE_CT_TCPOLEN_PER_SACK_ENTRY
+ + 2)) &&
+
+447 ((
+Ýsize
+ - 2) %
+
+448
+RTE_CT_TCPOLEN_PER_SACK_ENTRY
+) == 0) {
+
+451
+ÝtiÚs_±r
+ += 6;
+
+452 \ f
+i
+ = 0; i < (
+Ýsize
+ - 2); i +=
+
+453
+RTE_CT_TCPOLEN_PER_SACK_ENTRY
+) {
+
+454
+§ck_±r
+ =
+
+455 (
+u\9at32_t
+ *è&
+ÝtiÚs_±r
+[
+i
+];
+
+456
+u\9at32_t
+
+ack
+ =
+ `¹e_bsw32
+(*
+§ck_±r
+);
+
+458 ià(
+ `¹e_aá\94
+(
+ack
+,
+§ck
+))
+
+459
+§ck
+ =
+ack
+;
+
+461 \15
+§ck
+;
+
+467 ià((
+Ýsize
+ < 2è|| (Ýsiz\90>
+Ëngth
+)) {
+
+468
+ `´\9atf
+("rte_ct_tcp_sack: something wrong, opsize %i,",
+
+469
+Ýsize
+);
+
+470
+ `´\9atf
+("\86\92gth %i\n",
+Ëngth
+);
+
+471 \15
+§ck
+;
+
+473
+ÝtiÚs_±r
+ +ð
+Ýsize
+;
+
+474
+Ëngth
+ -ð
+Ýsize
+;
+
+476 \15
+§ck
+;
+
+477
+ }
+}
+
+483 \18
+\9al\9ae
+ \1e
+
+484
+ $¹e_ù_check_fÜ_»\8cªsmissiÚs
+(
+
+485 \19
+¹e_ù_tý
+ *
+¡©e
+,
+
+486
+u\9at8_t
+
+d\9c
+,
+
+487
+u\9at32_t
+
+£q
+,
+
+488
+u\9at32_t
+
+ack
+,
+
+489
+u\9at32_t
+
+\92d
+,
+
+490
+u\9at16_t
+
+w\9a
+)
+
+492 ià(
+¡©e
+->
+ϡ_d\9c
+ =ð
+d\9c
+
+
+493 &&
+¡©e
+->
+Ï¡_£q
+ =ð
+£q
+
+
+494 &&
+¡©e
+->
+ϡ_ack
+ =ð
+ack
+
+
+495 &&
+¡©e
+->
+ϡ_\92d
+ =ð
+\92d
+ && s\8f\8b->
+ϡ_w\9a
+ =ð
+w\9a
+)
+
+496
+¡©e
+->
+»\8cªs
+++;
+
+498
+¡©e
+->
+ϡ_d\9c
+ =
+d\9c
+;
+
+499
+¡©e
+->
+Ï¡_£q
+ =
+£q
+;
+
+500
+¡©e
+->
+ϡ_ack
+ =
+ack
+;
+
+501
+¡©e
+->
+ϡ_\92d
+ =
+\92d
+;
+
+502
+¡©e
+->
+ϡ_w\9a
+ =
+w\9a
+;
+
+503
+¡©e
+->
+»\8cªs
+ = 0;
+
+505
+ }
+}
+
+511 \18
+u\9at8_t
+
+
+512
+ $¹e_ù_tý_\9a_w\9adow
+(
+
+513 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+514 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+515 \19
+¹e_ù_tý
+ *
+¡©e
+,
+
+516 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+,
+
+517
+u\9at8_t
+
+\9adex
+,
+
+518 \19
+¹e_mbuf
+ *
+pkt
+,
+
+519
+u\9at8_t
+
+\9d_hdr_size
+)
+
+521 \19
+¹e_ù_tý_¡©e
+ *
+£nd\94
+ = &
+¡©e
+->
+£\92
+[
+d\9c
+];
+
+522 \19
+¹e_ù_tý_¡©e
+ *
+»ûiv\94
+ = &
+¡©e
+->
+£\92
+[!
+d\9c
+];
+
+523
+u\9at32_t
+
+£q
+,
+ack
+,
+§ck
+,
+\92d
+,
+w\9a
+,
+sw\9a
+;
+
+524
+u\9at8_t
+
+\9a_»cv_w\9a
+,
+tý_æags
+;
+
+525 \f
+¹e_ù_·ck\91_aùiÚ
+
+»s
+;
+
+527 \1e*
+\9dhdr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+IP_START
+);
+
+528 \19
+tý_hdr
+ *
+týh\97d\94
+ =
+
+529 (\19
+tý_hdr
+ *)
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+530 (
+IP_START
+ +
+\9d_hdr_size
+));
+
+532 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+)
+
+533
+ `¹e_¥_adju¡_þ\9bÁ_ack_befÜe_w\9adow_check
+(
+cd
+,
+\9dhdr
+,
+
+534
+týh\97d\94
+,
+d\9c
+);
+
+537
+£q
+ =
+ `¹e_bsw32
+(
+týh\97d\94
+->
+£Á_£q
+);
+
+538
+ack
+ =
+§ck
+ =
+ `¹e_bsw32
+(
+týh\97d\94
+->
+»cv_ack
+);
+
+539
+w\9a
+ =
+ `¹e_bsw16
+(
+týh\97d\94
+->
+rx_w\9a
+);
+
+540
+\92d
+ =
+ `¹e_ù_£q_¶us_Ëngth
+(
+pkt
+,
+\9d_hdr_size
+);
+
+541
+tý_æags
+ =
+týh\97d\94
+->tcp_flags;
+
+543 ià(
+»ûiv\94
+->
+æags
+ &
+RTE_CT_TCP_FLAG_SACK_PERM
+)
+
+544
+§ck
+ =
+ `¹e_ù_tý_§ck
+(
+pkt
+,
+\9d_hdr_size
+);
+
+546 ià(
+ `uÆik\96y
+(
+£nd\94
+->
+maxw\9a
+ == 0)) {
+
+548 ià(
+tý_æags
+ &
+RTE_CT_TCPHDR_SYN
+) {
+
+553
+£nd\94
+->
+\92d
+ = s\92d\94->
+max\92d
+ =\83nd;
+
+554
+£nd\94
+->
+maxw\9a
+ =
+ `RTE_MAX
+(
+w\9a
+, (
+u\9at32_t
+)1);
+
+556
+ `¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+pkt
+,
+£nd\94
+,
+
+557
+\9d_hdr_size
+);
+
+563 ià((
+£nd\94
+->
+
+564
+æags
+ &
+»ûiv\94
+->flags &
+
+565
+RTE_CT_TCP_FLAG_WINDOW_SCALE
+) == 0)
+
+566
+£nd\94
+->
+sÿË
+ =
+»ûiv\94
+->scale = 0;
+
+568 ià(!(
+tý_æags
+ &
+RTE_CT_TCPHDR_ACK
+))
+
+576
+£nd\94
+->
+\92d
+ =\83nd;
+
+577
+sw\9a
+ =
+w\9a
+ <<
+£nd\94
+->
+sÿË
+;
+
+578
+£nd\94
+->
+maxw\9a
+ = (
+sw\9a
+ == 0 ? 1 : swin);
+
+579
+£nd\94
+->
+max\92d
+ =
+\92d
+ + s\92d\94->
+maxw\9a
+;
+
+585 ià(
+»ûiv\94
+->
+maxw\9a
+ == 0)
+
+586
+»ûiv\94
+->
+\92d
+ =\84eûiv\94->
+max\92d
+ =
+§ck
+;
+
+590 \vià(((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+ &&
+
+591
+d\9c
+ =ð
+RTE_CT_DIR_ORIGINAL
+) ||
+
+592 (
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_RECV
+ &&
+
+593
+d\9c
+ =ð
+RTE_CT_DIR_REPLY
+)è&&
+ `¹e_aá\94
+(
+\92d
+,
+£nd\94
+->end)) {
+
+599
+£nd\94
+->
+\92d
+ = s\92d\94->
+max\92d
+ =\83nd;
+
+600
+£nd\94
+->
+maxw\9a
+ =
+ `RTE_MAX
+(
+w\9a
+, (
+u\9at32_t
+)1);
+
+602
+ `¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+pkt
+,
+£nd\94
+,
+
+603
+\9d_hdr_size
+);
+
+606 ià(!(
+tý_æags
+ &
+RTE_CT_TCPHDR_ACK
+) ||
+
+607 (((
+tý_æags
+ &
+RTE_CT_TCPHDR_RST_ACK
+) ==
+
+608
+RTE_CT_TCPHDR_RST_ACK
+è&& (
+ack
+ == 0))) {
+
+610
+ack
+ =
+§ck
+ =
+»ûiv\94
+->
+\92d
+;
+
+613 ià((
+tý_æags
+ &
+RTE_CT_TCPHDR_RST
+è&&
+£q
+ == 0 &&
+
+614
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =ð
+RTE_CT_TCP_SYN_SENT
+)
+
+616
+£q
+ =
+\92d
+ =
+£nd\94
+->end;
+
+619
+\9a_»cv_w\9a
+ = !
+»ûiv\94
+->
+maxw\9a
+ ||
+
+620
+ `¹e_aá\94
+(
+\92d
+,
+£nd\94
+->\92d -
+»ûiv\94
+->
+maxw\9a
+ - 1);
+
+622 ià(
+ `¹e_befÜe
+(
+£q
+,
+£nd\94
+->
+max\92d
+ + 1è&&
+\9a_»cv_w\9a
+ &&
+
+623
+ `¹e_befÜe
+(
+§ck
+,
+»ûiv\94
+->
+\92d
+ + 1) &&
+
+624
+ `¹e_aá\94
+(
+§ck
+,
+
+625
+»ûiv\94
+->
+\92d
+ -
+ `RTE_MAX
+(
+£nd\94
+->
+maxw\9a
+,
+
+626 (
+u\9at32_t
+)
+RTE_MAX_ACKWIN_CONST
+) - 1)) {
+
+633 ià(!(
+tý_æags
+ &
+RTE_CT_TCPHDR_SYN
+))
+
+634
+w\9a
+ <<ð
+£nd\94
+->
+sÿË
+;
+
+637
+sw\9a
+ =
+w\9a
+ + (
+§ck
+ -
+ack
+);
+
+638
+£nd\94
+->
+maxw\9a
+ =
+ `RTE_MAX
+(£nd\94->maxw\9a,
+sw\9a
+);
+
+640 ià(
+ `¹e_aá\94
+(
+\92d
+,
+£nd\94
+->end)) {
+
+641
+£nd\94
+->
+\92d
+ =\83nd;
+
+642
+£nd\94
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+;
+
+645 ià(
+tý_æags
+ &
+RTE_CT_TCPHDR_ACK
+) {
+
+646 ià(!(
+£nd\94
+->
+æags
+ &
+RTE_CT_TCP_FLAG_MAXACK_SET
+)) {
+
+647
+£nd\94
+->
+maxack
+ =
+ack
+;
+
+648
+£nd\94
+->
+æags
+ |ð
+RTE_CT_TCP_FLAG_MAXACK_SET
+;
+
+649 } \vià(
+ `¹e_aá\94
+(
+ack
+,
+£nd\94
+->
+maxack
+))
+
+650
+£nd\94
+->
+maxack
+ =
+ack
+;
+
+654 ià(
+»ûiv\94
+->
+maxw\9a
+ !ð0 &&
+ `¹e_aá\94
+(
+\92d
+,
+£nd\94
+->
+max\92d
+))
+
+655
+»ûiv\94
+->
+maxw\9a
+ +ð
+\92d
+ -
+£nd\94
+->
+max\92d
+;
+
+657 ià(
+ `¹e_aá\94
+(
+§ck
+ +
+w\9a
+,
+»ûiv\94
+->
+max\92d
+ - 1))
+
+658
+»ûiv\94
+->
+max\92d
+ =
+§ck
+ +
+ `RTE_MAX
+(
+w\9a
+, (
+u\9at32_t
+)1);
+
+660 ià(
+ack
+ =ð
+»ûiv\94
+->
+\92d
+)
+
+661
+»ûiv\94
+->
+æags
+ &ð~
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+;
+
+664 ià(
+\9adex
+ =ð
+RTE_CT_TCP_ACK_FLAG
+)
+
+665
+ `¹e_ù_check_fÜ_»\8cªsmissiÚs
+(
+¡©e
+,
+d\9c
+,
+£q
+,
+ack
+,
+
+666
+\92d
+,
+w\9a
+);
+
+667
+»s
+ = 1;
+
+669
+»s
+ = (
+£nd\94
+->
+æags
+ &
+RTE_CT_TCP_FLAG_BE_LIBERAL
+ ||
+
+670
+ù
+->
+misc_ÝtiÚs
+.
+tý_be_lib\94®
+);
+
+673 ià(
+CT_DEBUG
+) {
+
+674 ià(!
+»s
+) {
+
+676
+ `´\9atf
+("tý_\9a_w\9adow FAILED fÜ %p\n",
+cd
+);
+
+677
+ `´\9atf
+("rte_before(%u, %u + 1) is %d\n",
+
+678
+£q
+,
+£nd\94
+->
+max\92d
+ + 1,
+
+679
+ `¹e_befÜe
+(
+£q
+,
+£nd\94
+->
+max\92d
+ + 1));
+
+680
+ `´\9atf
+("!%u ||\84te_after(%u, %u - %u - 1) is %d\n",
+
+681
+»ûiv\94
+->
+maxw\9a
+,
+\92d
+,
+£nd\94
+->end,
+
+682
+»ûiv\94
+->
+maxw\9a
+,
+\9a_»cv_w\9a
+);
+
+683
+ `´\9atf
+("¹e_befÜe(%u, %u + 1èi %d\n",
+§ck
+,
+
+684
+»ûiv\94
+->
+\92d
+,
+ `¹e_befÜe
+(
+§ck
+,
+
+685
+»ûiv\94
+->
+\92d
+ + 1));
+
+686
+´\9atf
+
+
+688
+§ck
+,
+»ûiv\94
+->
+\92d
+,
+£nd\94
+->
+maxw\9a
+,
+
+689
+RTE_MAX_ACKWIN_CONST
+,
+ `¹e_aá\94
+(
+§ck
+,
+
+690
+»ûiv\94
+->
+\92d
+ -
+ `RTE_MAX
+(
+£nd\94
+->
+maxw\9a
+,
+
+691 (
+u\9at32_t
+)
+RTE_MAX_ACKWIN_CONST
+)
+
+696 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+)
+
+697
+ `¹e_¥_adju¡_£rv\94_£q_aá\94_w\9adow_check
+(
+cd
+,
+\9dhdr
+,
+
+698
+týh\97d\94
+,
+d\9c
+);
+
+699 \15
+»s
+;
+
+700
+ }
+}
+
+703 \18
+\9al\9ae
+
+u\9at8_t
+
+
+704
+ $¹e_ù_choo£_m\9a_timeout_¡©e
+(
+
+705 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+706
+u\9at8_t
+
+¡©e1
+,
+
+707
+u\9at8_t
+
+¡©e2
+)
+
+709 ià(
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+¡©e1
+] <
+
+710
+ù
+->
+ù_timeout
+.
+týtimeout
+.
+tý_timeouts
+[
+¡©e2
+])
+
+711 \15
+¡©e1
+;
+
+713 \15
+¡©e2
+;
+
+714
+ }
+}
+
+718 \f
+¹e_ù_·ck\91_aùiÚ
+
+
+719
+ $¹e_ù_v\94ify_tý_·ck\91
+(
+
+720 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+721 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+722 \19
+¹e_mbuf
+ *
+pkt
+,
+
+723
+u\9at8_t
+
+key_was_杳d
+,
+
+724
+u\9at8_t
+
+\9d_hdr_size
+)
+
+726 \19
+tý_hdr
+ *
+týh\97d\94
+ = (\19tcp_hdr *)
+
+727
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+, (
+IP_START
+ +
+\9d_hdr_size
+));
+
+729 \f
+¹e_ù_tý_¡©es
+
+Ãw_¡©e
+,
+Þd_¡©e
+;
+
+730 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+;
+
+731
+u\9at8_t
+
+\9adex
+;
+
+735
+u\9at8_t
+
+timeout_¡©e
+;
+
+737
+d\9c
+ = (
+cd
+->
+key_is_þ\9bÁ_Üd\94
+ =ð!
+key_was_杳d
+);
+
+739 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+ &&
+
+740
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ &&
+
+741 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+ &&
+
+742
+d\9c
+ =ð
+RTE_CT_DIR_ORIGINAL
+) {
+
+748
+ `¹e_ù_bufãr_·ck\91
+(
+ù
+,
+cd
+,
+pkt
+);
+
+749 \15
+RTE_CT_HIJACK
+;
+
+752
+u\9at32_t
+
+»cv_ack
+ =
+ `¹e_bsw32
+(
+týh\97d\94
+->recv_ack);
+
+753
+u\9at32_t
+
+£Á_£q
+ =
+ `¹e_bsw32
+(
+týh\97d\94
+->sent_seq);
+
+755 \12
+check_w\9adow
+ = 1;
+
+756 \f
+¹e_ù_·ck\91_aùiÚ
+
+»tuº_aùiÚ
+ =
+RTE_CT_FORWARD_PACKET
+;
+
+760
+Þd_¡©e
+ =
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+;
+
+761
+\9adex
+ =
+ `¹e_ù_g\91_\9adex
+(
+týh\97d\94
+->
+tý_æags
+);
+
+762
+Ãw_¡©e
+ =
+¹e_ù_tý_¡©e_\8fbË
+[
+d\9c
+][
+\9adex
+][
+Þd_¡©e
+];
+
+764 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_MAX
+) {
+
+765 ià(
+CT_DEBUG
+) {
+
+766
+ `´\9atf
+("!!!!invalid state\81ransition from %s ",
+
+767
+¹e_ù_tý_Çmes
+[
+Þd_¡©e
+]);
+
+768
+ `´\9atf
+("with flags 0x%02x\n",
+
+769
+týh\97d\94
+->
+tý_æags
+);
+
+772
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_\9av®id_¡©e
+++;
+
+773 \15
+RTE_CT_DROP_PACKET
+;
+
+776 ià(
+STATE_TRACKING
+ &&
+Ãw_¡©e
+ !ð
+Þd_¡©e
+)
+
+777
+ `´\9atf
+("\82ew s\8f\8b %s\n",
+¹e_ù_tý_Çmes
+[
+Ãw_¡©e
+]);
+
+779 \1a
+Ãw_¡©e
+) {
+
+781 \ 4
+RTE_CT_TCP_ESTABLISHED
+:
+
+783 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+ &&
+
+784 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ &&
+
+785 (
+Þd_¡©e
+ =ð
+RTE_CT_TCP_SYN_RECV
+)) {
+
+793 ià(
+STATE_TRACKING
+) {
+
+794
+ `´\9atf
+(" synproxy first half-cnxn complete,");
+
+795
+ `´\9atf
+("\82ew state %s\n",
+
+796
+¹e_ù_tý_Çmes
+[
+RTE_CT_TCP_SYN_SENT
+]);
+
+798
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ =
+\8cue
+;
+
+800
+ `¹e_¥_cvt_to_¥ooãd_£rv\94_syn
+(
+cd
+,
+pkt
+);
+
+801
+ `¹e_ù_þ\97r_úxn_d©a
+(
+ù
+,
+cd
+,
+pkt
+);
+
+802
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =
+RTE_CT_TCP_SYN_SENT
+;
+
+804 \19
+¹e_ù_tý_¡©e
+ *
+£nd\94
+ =
+
+805 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+
+806
+£\92
+[
+RTE_CT_DIR_ORIGINAL
+];
+
+807
+u\9at16_t
+
+w\9a
+ =
+ `¹e_bsw16
+(
+týh\97d\94
+->
+rx_w\9a
+);
+
+809
+£nd\94
+->
+\92d
+ = s\92d\94->
+max\92d
+ =
+
+810
+ `¹e_ù_£q_¶us_Ëngth
+(
+pkt
+,
+\9d_hdr_size
+);
+
+811
+£nd\94
+->
+maxw\9a
+ =
+ `RTE_MAX
+(
+w\9a
+, (
+u\9at32_t
+)1);
+
+812
+ `¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+pkt
+,
+£nd\94
+,
+
+813
+\9d_hdr_size
+);
+
+815
+ `¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+ù
+,
+cd
+,
+
+816
+RTE_CT_TCP_SYN_SENT
+);
+
+817 \15
+RTE_CT_SEND_SERVER_SYN
+;
+
+821 \ 4
+RTE_CT_TCP_SYN_RECV
+:
+
+823 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+ &&
+
+824
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+h®f_e¡ablished
+ &&
+
+825 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+) {
+
+833 ià(!
+ `¹e_ù_tý_\9a_w\9adow
+(
+cd
+,
+ù
+,
+
+834 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+835
+d\9c
+,
+\9adex
+,
+pkt
+,
+\9d_hdr_size
+)) {
+
+836
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_outof_w\9adow
+++;
+
+837 \15
+RTE_CT_DROP_PACKET
+;
+
+840 ià(
+STATE_TRACKING
+) {
+
+841
+ `´\9atf
+("synproxy full cnxn complete,");
+
+842
+ `´\9atf
+("\82ew s\8f\8b %s\n",
+¹e_ù_tý_Çmes
+
+
+843 [
+RTE_CT_TCP_ESTABLISHED
+]);
+
+852
+ `¹e_¥_cvt_to_¥ooãd_£rv\94_ack
+(
+cd
+,
+pkt
+);
+
+854
+\9adex
+ =
+ `¹e_ù_g\91_\9adex
+(
+týh\97d\94
+->
+tý_æags
+);
+
+856 ià(!
+ `¹e_ù_tý_\9a_w\9adow
+(
+cd
+,
+ù
+,
+
+857 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+858 !
+d\9c
+,
+\9adex
+,
+pkt
+,
+\9d_hdr_size
+)) {
+
+859
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_outof_w\9adow
+++;
+
+860 \15
+RTE_CT_DROP_PACKET
+;
+
+865
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =
+
+866
+RTE_CT_TCP_ESTABLISHED
+;
+
+867
+ù
+->
+couÁ\94s
+->
+£ssiÚs_e¡ablished
+++;
+
+868
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+ =
+\8cue
+;
+
+869
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ =
+\9adex
+;
+
+870
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_d\9c
+ = !
+d\9c
+;
+
+872
+ `¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+ù
+,
+cd
+,
+
+873
+RTE_CT_TCP_ESTABLISHED
+);
+
+874
+ `¹e_ù_»Ëa£_bufã»d_·ck\91s
+(
+ù
+,
+cd
+);
+
+876 \15
+RTE_CT_SEND_SERVER_ACK
+;
+
+879 \ 4
+RTE_CT_TCP_SYN_SENT
+:
+
+886 ià(
+Þd_¡©e
+ <
+RTE_CT_TCP_TIME_WAIT
+)
+
+894 \15
+RTE_CT_REOPEN_CNXN_AND_FORWARD_PACKET
+;
+
+896 \ 4
+RTE_CT_TCP_IGNORE
+:
+
+912 ià(
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+syÅrox\9bd
+ &&
+
+913 !
+cd
+->
+ù_´ÙocÞ
+.
+syÅroxy_d©a
+.
+úxn_e¡ablished
+)
+
+914 \15
+RTE_CT_DROP_PACKET
+;
+
+916 ià(
+\9adex
+ =ð
+RTE_CT_TCP_SAK_FLAG
+ &&
+
+917
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ ==
+
+918
+RTE_CT_TCP_SYN_FLAG
+
+
+919 &&
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_d\9c
+ !ð
+d\9c
+
+
+920 &&
+»cv_ack
+ =ð
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\92d
+) {
+
+928 \19
+¹e_ù_tý_¡©e
+ *
+Ï¡_£\92
+ =
+
+929 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[cd->ct_protocol.
+
+930
+tý_ù_d©a
+.
+
+931
+ϡ_d\9c
+];
+
+935
+Þd_¡©e
+ =
+RTE_CT_TCP_SYN_SENT
+;
+
+936
+Ãw_¡©e
+ =
+RTE_CT_TCP_SYN_RECV
+;
+
+938
+Ï¡_£\92
+->
+\92d
+ =
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\92d
+;
+
+939
+Ï¡_£\92
+->
+max\92d
+ =
+
+940
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\92d
+;
+
+941
+Ï¡_£\92
+->
+maxw\9a
+ =
+
+942
+ `RTE_MAX
+(
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_w\9a
+,
+
+943 (
+u\9at32_t
+)1);
+
+944
+Ï¡_£\92
+->
+sÿË
+ =
+
+945
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wsÿË
+;
+
+946
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ &=
+
+947 ~
+RTE_CT_EXP_CHALLENGE_ACK
+;
+
+948
+Ï¡_£\92
+->
+æags
+ =
+
+949
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+;
+
+950
+ `mem£t
+(&
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[
+d\9c
+], 0,
+
+951 \17(\19
+¹e_ù_tý_¡©e
+));
+
+955
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ =
+\9adex
+;
+
+956
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_d\9c
+ =
+d\9c
+;
+
+957
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_£q
+ =
+£Á_£q
+;
+
+958
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\92d
+ =
+
+959
+ `¹e_ù_£q_¶us_Ëngth
+(
+pkt
+,
+\9d_hdr_size
+);
+
+960
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_w\9a
+ =
+
+961
+ `¹e_bsw16
+(
+týh\97d\94
+->
+rx_w\9a
+);
+
+971 ià(
+\9adex
+ =ð
+RTE_CT_TCP_SYN_FLAG
+ &&
+
+972
+d\9c
+ =ð
+RTE_CT_DIR_ORIGINAL
+) {
+
+973 \19
+¹e_ù_tý_¡©e
+
+£\92
+;
+
+976
+ `¹e_ù_check_fÜ_sÿl\9ag_ªd_§ck_³rm
+(
+pkt
+, &
+£\92
+,
+
+977
+\9d_hdr_size
+);
+
+980
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ =
+£\92
+.
+æags
+;
+
+981
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_wsÿË
+ =
+
+982 (
+£\92
+.
+æags
+ &
+RTE_CT_TCP_FLAG_WINDOW_SCALE
+) == 0 ?
+
+983 0 :
+£\92
+.
+sÿË
+;
+
+990 ià(
+Þd_¡©e
+ =ð
+RTE_CT_TCP_LAST_ACK
+)
+
+991
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ |=
+
+992
+RTE_CT_EXP_CHALLENGE_ACK
+;
+
+994 \15
+RTE_CT_FORWARD_PACKET
+;
+
+996 \ 4
+RTE_CT_TCP_TIME_WAIT
+:
+
+1002 ià(
+Þd_¡©e
+ =ð
+RTE_CT_TCP_LAST_ACK
+ &&
+
+1003
+\9adex
+ =ð
+RTE_CT_TCP_ACK_FLAG
+ &&
+
+1004
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_d\9c
+ !ð
+d\9c
+ &&
+
+1005
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ ==
+
+1006
+RTE_CT_TCP_SYN_FLAG
+
+
+1007 && (
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+
+1008
+Ï¡_æags
+ &
+RTE_CT_EXP_CHALLENGE_ACK
+)) {
+
+1010
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+Ï¡_æags
+ &=
+
+1011 ~
+RTE_CT_EXP_CHALLENGE_ACK
+;
+
+1012 \15
+RTE_CT_FORWARD_PACKET
+;
+
+1016 \ 4
+RTE_CT_TCP_CLOSE
+:
+
+1018 ià(
+\9adex
+ =ð
+RTE_CT_TCP_RST_FLAG
+) {
+
+1025 ià((
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+£\92
+[!
+d\9c
+].
+æags
+ &
+
+1026
+RTE_CT_TCP_FLAG_MAXACK_SET
+) &&
+
+1027
+ `¹e_befÜe
+(
+£Á_£q
+,
+cd
+->
+ù_´ÙocÞ
+.
+
+1028
+tý_ù_d©a
+.
+£\92
+[!
+d\9c
+].
+maxack
+)) {
+
+1030
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_\9av®id_r¡
+++;
+
+1032 \15
+RTE_CT_DROP_PACKET
+;
+
+1035 ià(((
+cd
+->
+cÚn¡©us
+ =ð
+RTE_SEEN_REPLY_CONN
+ &&
+
+1036
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ ==
+
+1037
+RTE_CT_TCP_SYN_FLAG
+) ||
+
+1038 (
+cd
+->
+cÚn¡©us
+ !ð
+RTE_ASSURED_CONN
+ &&
+
+1039
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ ==
+
+1040
+RTE_CT_TCP_ACK_FLAG
+)) &&
+
+1041
+»cv_ack
+ ==
+
+1042
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\92d
+) {
+
+1045
+check_w\9adow
+ = 0;
+
+1054 ià(
+ `lik\96y
+(
+check_w\9adow
+)) {
+
+1055 ià(
+ `uÆik\96y
+(!
+ `¹e_ù_tý_\9a_w\9adow
+(
+cd
+,
+ù
+,
+
+1056 &
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+,
+
+1057
+d\9c
+,
+\9adex
+,
+
+1058
+pkt
+,
+\9d_hdr_size
+))) {
+
+1059
+ù
+->
+couÁ\94s
+->
+pkts_drÝ_outof_w\9adow
+++;
+
+1060 \15
+RTE_CT_DROP_PACKET
+;
+
+1064 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+ &&
+
+1065
+Þd_¡©e
+ !ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1068
+ù
+->
+couÁ\94s
+->
+£ssiÚs_e¡ablished
+++;
+
+1070
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_\9adex
+ =
+\9adex
+;
+
+1071
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+ϡ_d\9c
+ =
+d\9c
+;
+
+1073 ià(
+\9adex
+ =ð
+RTE_CT_TCP_SAK_FLAG
+)
+
+1074
+cd
+->
+cÚn¡©us
+ =
+RTE_SEEN_REPLY_CONN
+;
+
+1076
+timeout_¡©e
+ =
+Ãw_¡©e
+;
+
+1078 ià(
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+»\8cªs
+ >=
+
+1079
+ù
+->
+misc_ÝtiÚs
+.
+tý_max_»\8cªs
+)
+
+1080
+timeout_¡©e
+ =
+
+1081
+ `¹e_ù_choo£_m\9a_timeout_¡©e
+(
+ù
+,
+timeout_¡©e
+,
+
+1082
+RTE_CT_TCP_RETRANS
+);
+
+1083 \vià(
+ `¹e_ù_e\99h\94_d\9ceùiÚ_has_æags
+(
+cd
+,
+
+1084
+RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+))
+
+1085
+timeout_¡©e
+ =
+
+1086
+ `¹e_ù_choo£_m\9a_timeout_¡©e
+(
+ù
+,
+timeout_¡©e
+,
+
+1087
+RTE_CT_TCP_UNACK
+);
+
+1089 ià(
+cd
+->
+cÚn¡©us
+ !ð
+RTE_SEEN_REPLY_CONN
+) {
+
+1090 ià(
+týh\97d\94
+->
+tý_æags
+ &
+RTE_CT_TCPHDR_RST
+) {
+
+1097 \15
+RTE_CT_DESTROY_CNXN_AND_FORWARD_PACKET
+;
+
+1101 ià(
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1102
+timeout_¡©e
+ =
+ `¹e_ù_choo£_m\9a_timeout_¡©e
+(
+ù
+,
+
+1103
+timeout_¡©e
+,
+
+1104
+RTE_CT_TCP_UNACK
+);
+
+1106 } \vià(
+cd
+->
+cÚn¡©us
+ !ð
+RTE_ASSURED_CONN
+ &&
+
+1107 (
+Þd_¡©e
+ =ð
+RTE_CT_TCP_SYN_RECV
+
+
+1108 ||
+Þd_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1109 &&
+Ãw_¡©e
+ =ð
+RTE_CT_TCP_ESTABLISHED
+)
+
+1110
+cd
+->
+cÚn¡©us
+ =
+RTE_ASSURED_CONN
+;
+
+1112
+cd
+->
+ù_´ÙocÞ
+.
+tý_ù_d©a
+.
+¡©e
+ =
+Ãw_¡©e
+;
+
+1113
+ `¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+ù
+,
+cd
+,
+timeout_¡©e
+);
+
+1115 \15
+»tuº_aùiÚ
+;
+
+1116
+ }
+}
+
+ @VIL/conntrack/rte_ct_tcp.h
+
+17 #iâdeà
+__INCLUDE_RTE_CT_TCP_H__
+
+
+18 \ 1
+ #__INCLUDE_RTE_CT_TCP_H__
+
+
+ )
+
+19 \ 2
+ ~<¡dlib.h
+>
+
+20 \ 2
+ ~<¡r\9ag.h
+>
+
+21 \ 2
+ ~<\9a\89y³s.h
+>
+
+23 \ 2
+ ~<¹e_tý.h
+>
+
+24 \ 2
+ ~<¹e_pÜt.h
+>
+
+25 \ 2
+ ~<¹e_tim\94.h
+>
+
+26 \ 2
+ ~<¹e_\9d.h
+>
+
+27 \ 2
+ ~<¹e_tý.h
+>
+
+28 \ 2
+ ~<¹e_udp.h
+>
+
+29 \ 2
+ ~<¹e_pÜt.h
+>
+
+30 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+31 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+37 \ 1
+ #RTE_CT_TCPOPT_EOL
+ 0
+
+ )
+
+38 \ 1
+ #RTE_CT_TCPOPT_NOP
+ 1
+
+ )
+
+39 \ 1
+ #RTE_CT_TCPOPT_MSS
+ 2
+
+ )
+
+40 \ 1
+ #RTE_CT_TCPOPT_WINDOW
+ 3
+
+ )
+
+41 \ 1
+ #RTE_CT_TCPOPT_SACK_PERM
+ 4
+
+ )
+
+42 \ 1
+ #RTE_CT_TCPOPT_SACK
+ 5
+
+ )
+
+43 \ 1
+ #RTE_CT_TCPOPT_TIMESTAMP
+ 8
+
+ )
+
+45 \ 1
+ #RTE_CT_TCPOLEN_MSS
+ 4
+
+ )
+
+46 \ 1
+ #RTE_CT_TCPOLEN_WINDOW
+ 3
+
+ )
+
+47 \ 1
+ #RTE_CT_TCPOLEN_SACK_PERM
+ 2
+
+ )
+
+48 \ 1
+ #RTE_CT_TCPOLEN_TIMESTAMP
+ 10
+
+ )
+
+49 \ 1
+ #RTE_CT_TCPOLEN_PER_SACK_ENTRY
+ 8
+
+ )
+
+51 \ 1
+ #RTE_CT_TCPOLEN_MSS_ALIGNED
+ 4
+
+ )
+
+52 \ 1
+ #RTE_CT_TCPOLEN_WINDOW_ALIGNED
+ 4
+
+ )
+
+53 \ 1
+ #RTE_CT_TCPOLEN_SACK_PERM_ALIGNED
+ 4
+
+ )
+
+54 \ 1
+ #RTE_CT_TCPOLEN_TIMESTAMP_ALIGNED
+ 12
+
+ )
+
+56 \ 1
+ #RTE_CT_MAX_TCP_WINDOW_SCALE
+ 14
+
+ )
+
+58 \ 1
+ #RTE_SP_OPTIONS_MSS
+ 1
+
+ )
+
+59 \ 1
+ #RTE_SP_OPTIONS_WINDOW_SCALE
+ 2
+
+ )
+
+60 \ 1
+ #RTE_SP_OPTIONS_TIMESTAMP
+ 4
+
+ )
+
+61 \ 1
+ #RTE_SP_OPTIONS_SACK_PERM
+ 8
+
+ )
+
+64 \f
+ e¹e_ù_·ck\91_aùiÚ
+ {
+
+65
+ mRTE_CT_OPEN_CONNECTION
+,
+
+66
+ mRTE_CT_DROP_PACKET
+,
+
+67
+ mRTE_CT_FORWARD_PACKET
+,
+
+68
+ mRTE_CT_DESTROY_CNXN_AND_FORWARD_PACKET
+,
+
+69
+ mRTE_CT_REOPEN_CNXN_AND_FORWARD_PACKET
+,
+
+70
+ mRTE_CT_SEND_CLIENT_SYNACK
+,
+
+71
+ mRTE_CT_SEND_SERVER_SYN
+,
+
+72
+ mRTE_CT_SEND_SERVER_ACK
+,
+
+73
+ mRTE_CT_HIJACK
+
+
+76 \f
+ e¹e_ù_cÚn¡©us
+ {
+
+77
+ mRTE_INIT_CONN
+,
+
+78
+ mRTE_SEEN_REPLY_CONN
+,
+
+79
+ mRTE_ASSURED_CONN
+
+
+84 \18cڡ \ 5*cڡ
+ g¹e_ù_tý_Çmes
+[] = {
+
+100 \18cڡ \ 5*cڡ
+ g¹e_ù_udp_Çmes
+[] = {
+
+107 \ 1
+ #RTE_MAX_ACKWIN_CONST
+ 66000
+
+ )
+
+110 \ 1
+ #RTE_CT_TCP_FLAG_WINDOW_SCALE
+ 0x01
+
+ )
+
+113 \ 1
+ #RTE_CT_TCP_FLAG_SACK_PERM
+ 0x02
+
+ )
+
+116 \ 1
+ #RTE_CT_TCP_FLAG_CLOSE_INIT
+ 0x04
+
+ )
+
+119 \ 1
+ #RTE_CT_TCP_FLAG_BE_LIBERAL
+ 0x08
+
+ )
+
+122 \ 1
+ #RTE_CT_TCP_FLAG_DATA_UNACKNOWLEDGED
+ 0x10
+
+ )
+
+125 \ 1
+ #RTE_CT_TCP_FLAG_MAXACK_SET
+ 0x20
+
+ )
+
+127 \ 1
+ #RTE_CT_EXP_CHALLENGE_ACK
+ 0x40
+
+ )
+
+132 \ 1
+ #RTE_CT_TCPHDR_FIN
+ 0x01
+
+ )
+
+133 \ 1
+ #RTE_CT_TCPHDR_SYN
+ 0x02
+
+ )
+
+134 \ 1
+ #RTE_CT_TCPHDR_RST
+ 0x04
+
+ )
+
+135 \ 1
+ #RTE_CT_TCPHDR_ACK
+ 0x10
+
+ )
+
+137 \ 1
+ #RTE_CT_TCPHDR_RST_ACK
+ (
+RTE_CT_TCPHDR_RST
+ |
+RTE_CT_TCPHDR_ACK
+)
+
+ )
+
+142 \f
+ e¹e_ù_tý_¡©es
+ {
+
+143
+ mRTE_CT_TCP_NONE
+,
+
+144
+ mRTE_CT_TCP_SYN_SENT
+,
+
+145
+ mRTE_CT_TCP_SYN_RECV
+,
+
+146
+ mRTE_CT_TCP_ESTABLISHED
+,
+
+147
+ mRTE_CT_TCP_FIN_WAIT
+,
+
+148
+ mRTE_CT_TCP_CLOSE_WAIT
+,
+
+149
+ mRTE_CT_TCP_LAST_ACK
+,
+
+150
+ mRTE_CT_TCP_TIME_WAIT
+,
+
+151
+ mRTE_CT_TCP_CLOSE
+,
+
+152
+ mRTE_CT_TCP_SYN_SENT_2
+,
+
+153
+ mRTE_CT_TCP_RETRANS
+,
+
+154
+ mRTE_CT_TCP_UNACK
+,
+
+155
+ mRTE_CT_TCP_IGNORE
+
+
+158 \f
+ e¹e_ù_udp_¡©es
+ {
+
+159
+ mRTE_CT_UDP_NONE
+,
+
+160
+ mRTE_CT_UDP_UNREPLIED
+,
+
+161
+ mRTE_CT_UDP_REPLIED
+,
+
+162
+ mRTE_CT_UDP_MAX
+
+
+167 \ 1
+ #RTE_CT_TCP_MAX
+
+RTE_CT_TCP_UNACK
+
+
+ )
+
+169 \f
+ e¹e_ù_pkt_d\9ceùiÚ
+ {
+
+170
+ mRTE_CT_DIR_ORIGINAL
+,
+
+171
+ mRTE_CT_DIR_REPLY
+
+
+174 \19
+ s¹e_ù_tý_¡©e
+ {
+
+175
+u\9at32_t
+
+ m\92d
+;
+
+176
+u\9at32_t
+
+ mmax\92d
+;
+
+177
+u\9at32_t
+
+ mmaxw\9a
+;
+
+178
+u\9at32_t
+
+ mmaxack
+;
+
+179
+u\9at8_t
+
+ msÿË
+;
+
+180
+u\9at8_t
+
+ mæags
+;
+
+183 \19
+ s¹e_syÅroxy_ÝtiÚs
+ {
+
+184
+u\9at8_t
+
+ mÝtiÚs
+;
+
+185
+u\9at8_t
+
+ mw\9adow_sÿË
+;
+
+186
+u\9at16_t
+
+ mmss
+;
+
+187
+u\9at32_t
+
+ mts_v®
+;
+
+188
+u\9at32_t
+
+ mts_echo_»¶y
+;
+
+189
+u\9at16_t
+
+ m\9a\99\9fl_w\9adow
+;
+
+192 \19
+ sù_¥_úxn_d©a
+ {
+
+196 \19
+¹e_mbuf
+ *
+ mbufã»d_pkt_li¡
+;
+
+197
+u\9at32_t
+
+ mÜig\9a®_¥ooãd_£q
+;
+
+199
+u\9at32_t
+
+ m£q_diff
+;
+
+200 \19
+¹e_syÅroxy_ÝtiÚs
+
+ múxn_ÝtiÚs
+;
+
+202
+u\9at8_t
+
+ msyÅrox\9bd
+;
+
+203
+boÞ
+
+ mh®f_e¡ablished
+;
+
+205
+boÞ
+
+ múxn_e¡ablished
+;
+
+208 \19
+ s¹e_ù_tý
+ {
+
+209 \19
+¹e_ù_tý_¡©e
+
+ m£\92
+[2];
+
+210
+u\9at8_t
+
+ m¡©e
+;
+
+211
+u\9at8_t
+
+ mϡ_d\9c
+;
+
+214
+u\9at8_t
+
+ m»\8cªs
+;
+
+215
+u\9at8_t
+
+ mϡ_\9adex
+;
+
+216
+u\9at32_t
+
+ mÏ¡_£q
+;
+
+217
+u\9at32_t
+
+ mϡ_ack
+;
+
+218
+u\9at32_t
+
+ mϡ_\92d
+;
+
+219
+u\9at16_t
+
+ mϡ_w\9a
+;
+
+221
+u\9at8_t
+
+ mÏ¡_wsÿË
+;
+
+222
+u\9at8_t
+
+ mÏ¡_æags
+;
+
+230 \19
+ s¹e_ù_úxn_couÁ\94s
+ {
+
+231
+u\9at64_t
+
+ m·ck\91s_»ûived
+;
+
+232
+u\9at64_t
+
+ m·ck\91s_fÜw¬ded
+;
+
+233
+u\9at64_t
+
+ m·ck\91s_drݳd
+;
+
+236 \19
+ s¹e_ù_´Ùo
+ {
+
+237 \19
+¹e_ù_tý
+
+ mtý_ù_d©a
+;
+
+238 \19
+ù_¥_úxn_d©a
+
+ msyÅroxy_d©a
+;
+
+248 \19
+ s¹e_ù_úxn_d©a
+ {
+
+252 \19
+¹e_tim\94
+
+ mtim\94
+;
+
+254 \19
+¹e_ù_úxn_couÁ\94s
+
+ mcouÁ\94s
+;
+
+258
+u\9at32_t
+
+ mkey
+[10];
+
+260 \19
+¹e_ù_´Ùo
+
+ mù_´ÙocÞ
+;
+
+263
+u\9at64_t
+
+ mex³ùed_timeout
+;
+
+266
+u\9at8_t
+
+ m¡©e_u£d_fÜ_tim\94
+;
+
+269
+u\9at8_t
+
+ mkey_is_þ\9bÁ_Üd\94
+;
+
+270
+u\9at8_t
+
+ mcÚn¡©us
+;
+
+271
+u\9at8_t
+
+ m´ÙocÞ
+;
+
+273
+u\9at8_t
+
+ mty³
+;
+
+276
+u\9at8_t
+
+ m®g_by·ss_æag
+;
+
+278
+u\9at8_t
+
+ m£rv\94_d\9ceùiÚ
+;
+
+279
+\9at16_t
+
+ mtýSeqdiff
+;
+
+281
+u\9at8_t
+
+ máp_£ssiÚ_ty³
+;
+
+282
+u\9at32_t
+
+ mtý_·ylßd_size
+;
+
+283
+\9at16_t
+
+ m£q_þ\9bÁ
+;
+
+284
+\9at16_t
+
+ mack_þ\9bÁ
+;
+
+285
+\9at16_t
+
+ m£q_£rv\94
+;
+
+286
+\9at16_t
+
+ mack_£rv\94
+;
+
+288 }
+ g__¹e_ÿche_®igÃd
+;
+
+291 \ 1
+ #RTE_CT_TCP_MAX_RETRANS
+ 3
+
+ )
+
+293 \19
+ s¹e_ù_týtimeout
+ {
+
+295
+u\9at64_t
+
+ mtý_timeouts
+[
+RTE_CT_TCP_MAX
+ + 1];
+
+299 \19
+ s¹e_ù_misc_ÝtiÚs
+ {
+
+300
+u\9at8_t
+
+ msyÅroxy_\92abËd
+;
+
+301
+u\9at32_t
+
+ mtý_loo£
+;
+
+302
+u\9at32_t
+
+ mtý_be_lib\94®
+;
+
+303
+u\9at32_t
+
+ mtý_max_»\8cªs
+;
+
+306 \19
+ s¹e_ù_ud±imeout
+ {
+
+307
+u\9at64_t
+
+ mudp_timeouts
+[
+RTE_CT_UDP_MAX
+ + 1];
+
+310 \19
+ s¹e_ù_timeout
+ {
+
+311 \19
+¹e_ù_týtimeout
+
+ mtýtimeout
+;
+
+312 \19
+¹e_ù_ud±imeout
+
+ mud±imeout
+;
+
+315 \19
+ s¹e_ù_úxn_\8cack\94
+ {
+
+316 \19
+¹e_hash
+ *
+ mrhash
+;
+
+322
+u\9at32_t
+
+ mhash_keys
+[
+RTE_HASH_LOOKUP_BULK_MAX
+][10];
+
+325 \1e*
+ mhash_key_±rs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+326 #ifdeà
+CT_CGNAT
+
+
+327
+u\9at32_t
+
+ mpos\99iÚs
+[
+RTE_HASH_LOOKUP_BULK_MAX
+];
+
+330
+u\9at32_t
+
+ mnum_úxn_\92\8c\9bs
+;
+
+336 \19
+¹e_ù_úxn_d©a
+ *
+ mhash_\8fbË_\92\8c\9bs
+;
+
+337 \19
+¹e_CT_couÁ\94_block
+ *
+ mcouÁ\94s
+;
+
+339
+u\9at64_t
+
+ mh\94tz
+;
+
+340
+u\9at64_t
+
+ mtim\9ag_cyþes_³r_tim\9ag_¡\95
+;
+
+341
+u\9at64_t
+
+ mtim\9ag_100ms_¡\95s
+;
+
+342
+u\9at64_t
+
+ mtim\9ag_100ms_¡\95s_´evious
+;
+
+343
+u\9at64_t
+
+ mtim\9ag_ϡ_time
+;
+
+344 \19
+¹e_ù_timeout
+
+ mù_timeout
+;
+
+345 \19
+¹e_ù_misc_ÝtiÚs
+
+ mmisc_ÝtiÚs
+;
+
+347 \ 5
+ mÇme
+[16];
+
+348 \19
+¹e_ù_úxn_d©a
+ *
+ mÃw_cÚÃùiÚs
+[64];
+
+349 \19
+¹e_mbuf
+ *
+ mbufã»d_pkt_li¡
+;
+
+350 \12
+ mÏ\8b¡_cÚÃùiÚ
+;
+
+352
+u\9at16_t
+
+ mpo\9a\8br_off£t
+;
+
+353 }
+ g__¹e_ÿche_®igÃd
+;
+
+360 \f
+¹e_ù_·ck\91_aùiÚ
+
+
+361
+¹e_ù_tý_Ãw_cÚÃùiÚ
+(
+
+362 \19
+¹e_ù_úxn_\8cack\94
+ *
+\9a¡
+,
+
+363 \19
+¹e_ù_úxn_d©a
+ *
+úxn
+,
+
+364 \19
+¹e_mbuf
+ *
+pkt
+,
+
+365 \12
+u£_syÅroxy
+,
+
+366
+u\9at8_t
+
+\9d_hdr_size
+);
+
+373 \f
+¹e_ù_·ck\91_aùiÚ
+
+
+374
+¹e_ù_v\94ify_tý_·ck\91
+(
+
+375 \19
+¹e_ù_úxn_\8cack\94
+ *
+\9a¡
+,
+
+376 \19
+¹e_ù_úxn_d©a
+ *
+úxn
+,
+
+377 \19
+¹e_mbuf
+ *
+pkt
+,
+
+378
+u\9at8_t
+
+key_was_杳d
+,
+
+379
+u\9at8_t
+
+\9d_hdr_size
+);
+
+386
+u\9at8_t
+
+
+387
+¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+
+388 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+389 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+390 \19
+¹e_mbuf
+ *
+pkt
+);
+
+397 \f
+¹e_ù_·ck\91_aùiÚ
+
+
+398
+¹e_ù_udp_·ck\91
+(
+
+399 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+400 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+401 \19
+¹e_mbuf
+ *
+pkt
+,
+
+402
+u\9at8_t
+
+key_was_杳d
+);
+
+411
+¹e_ù_£t_úxn_tim\94_fÜ_tý
+(
+
+412 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+413 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+414
+u\9at8_t
+
+tý_¡©e
+);
+
+417
+¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+
+418 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+419 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+420
+u\9at8_t
+
+tý_¡©e
+);
+
+423 \1e
+¹e_ù_ÿnûl_úxn_tim\94
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+435
+¹e_¥_cvt_to_¥ooãd_þ\9bÁ_syÇck
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+436 \19
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+439
+¹e_¥_cvt_to_¥ooãd_£rv\94_syn
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+440 \19
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+443
+¹e_¥_cvt_to_¥ooãd_£rv\94_ack
+(\19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+444 \19
+¹e_mbuf
+ *
+Þd_pkt
+);
+
+451
+¹e_¥_adju¡_þ\9bÁ_ack_befÜe_w\9adow_check
+(
+
+452 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+453 \1e*
+i_hdr
+,
+
+454 \19
+tý_hdr
+ *
+thdr
+,
+
+455 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+);
+
+458
+¹e_¥_adju¡_£rv\94_£q_aá\94_w\9adow_check
+(
+
+459 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+460 \1e*
+i_hdr
+,
+
+461 \19
+tý_hdr
+ *
+thdr
+,
+
+462 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+);
+
+468
+¹e_¥_·r£_ÝtiÚs
+(\19
+¹e_mbuf
+ *
+pkt
+, \19
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+474
+¹e_ù_bufãr_·ck\91
+(
+
+475 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+476 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+477 \19
+¹e_mbuf
+ *
+pkt
+);
+
+480
+¹e_ù_»Ëa£_bufã»d_·ck\91s
+(
+
+481 \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+482 \19
+¹e_ù_úxn_d©a
+ *
+cd
+);
+
+ @VIL/conntrack/rte_ct_udp.c
+
+17 \ 2
+ ~<¡dlib.h
+>
+
+18 \ 2
+ ~<¡r\9ag.h
+>
+
+19 \ 2
+ ~"¹e_ù_tý.h
+"
+
+20 \ 2
+ ~"¹e_úxn_\8cack\9ag.h
+"
+
+22
+u\9at8_t
+
+ $¹e_ù_udp_Ãw_cÚÃùiÚ
+(
+__¹e_unu£d
+ \19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+23 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+24
+__¹e_unu£d
+ \19
+¹e_mbuf
+ *
+pkt
+)
+
+27
+cd
+->
+cÚn¡©us
+ =
+RTE_INIT_CONN
+;
+
+29
+ }
+}
+
+30 \f
+¹e_ù_·ck\91_aùiÚ
+
+ $¹e_ù_udp_·ck\91
+(\19
+¹e_ù_úxn_\8cack\94
+ *
+ù
+,
+
+31 \19
+¹e_ù_úxn_d©a
+ *
+cd
+,
+
+32
+__¹e_unu£d
+ \19
+¹e_mbuf
+ *
+pkt
+,
+
+33
+u\9at8_t
+
+key_was_杳d
+)
+
+35 \f
+¹e_ù_pkt_d\9ceùiÚ
+
+d\9c
+;
+
+37
+d\9c
+ = (
+cd
+->
+key_is_þ\9bÁ_Üd\94
+ =ð!
+key_was_杳d
+);
+
+39 ià(
+d\9c
+ =ð
+RTE_CT_DIR_REPLY
+ &&
+
+40
+cd
+->
+cÚn¡©us
+ =ð
+RTE_INIT_CONN
+) {
+
+41
+ `¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+ù
+,
+cd
+,
+RTE_CT_UDP_REPLIED
+);
+
+42
+cd
+->
+cÚn¡©us
+ =
+RTE_ASSURED_CONN
+;
+
+43 } \vià(
+d\9c
+ =ð
+RTE_CT_DIR_REPLY
+ &&
+
+44
+cd
+->
+cÚn¡©us
+ =ð
+RTE_ASSURED_CONN
+)
+
+45
+ `¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+ù
+,
+cd
+,
+RTE_CT_UDP_REPLIED
+);
+
+47
+ `¹e_ù_£t_úxn_tim\94_fÜ_udp
+(
+ù
+,
+cd
+,
+RTE_CT_UDP_UNREPLIED
+);
+
+48 \15
+RTE_CT_FORWARD_PACKET
+;
+
+49
+ }
+}
+
+ @VIL/l2l3_stack/bond.c
+
+17 \ 2
+ ~<\9a\8brçû.h
+>
+
+18 \ 2
+ ~"tsx.h
+"
+
+19 \r
+\9a\8brçû_ma\9a_t
+
+ifm
+;
+
+20 \r
+u\9at8_t
+
+ifm_debug
+;
+
+21 \r\12
+USE_RTM_LOCKS
+;
+
+22 \r
+¹e_rwlock_t
+
+rwlock
+;
+
+24 \12
+ $ifm_bÚd_pÜt_ü\97\8b
+(cڡ \ 5*
+Çme
+, \12
+mode
+,
+pÜt_cÚfig_t
+ *
+pÜtcÚf
+)
+
+26 \12
+pÜt_id
+;
+
+27
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+28 ià(
+ifm_debug
+ &&
+IFM_DEBUG_CONFIG
+)
+
+29
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: i/°Çm\90%p, mod\90%d\n\r",
+__FUNCTION__
+,
+
+30
+Çme
+,
+mode
+);
+
+31 ià(
+Çme
+ =ð
+NULL
+) {
+
+32
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Param\82ame cannot be NULL\n\r",
+
+33
+__FUNCTION__
+);
+
+34 \15
+IFM_FAILURE
+;
+
+36 ià(
+mode
+ < 0 || mode > 6) {
+
+37
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Param mode should be withing 0\81o 6\n\r",
+
+38
+__FUNCTION__
+);
+
+39 \15
+IFM_FAILURE
+;
+
+41 ià(
+pÜtcÚf
+ =ð
+NULL
+) {
+
+42
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Param\85ortconf cannot be NULL\n\r",
+
+43
+__FUNCTION__
+);
+
+44 \15
+IFM_FAILURE
+;
+
+46
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt_by_Çme
+(
+Çme
+);
+
+47 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+48 ià(
+ifm_debug
+ &&
+IFM_DEBUG_CONFIG
+)
+
+49
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "C®Èifm_pÜt_£tu°%s\n\r",
+Çme
+);
+
+50
+pÜt_id
+ =
+ `¹e_\91h_bÚd_ü\97\8b
+(
+Çme
+,
+mode
+, 0);
+
+51 ià(
+pÜt_id
+ < 0) {
+
+52
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+54
+__FUNCTION__
+,
+Çme
+,
+mode
+);
+
+55 \15
+IFM_FAILURE
+;
+
+57
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+59 "mod\90%u.\n\r",
+__FUNCTION__
+,
+Çme
+,
+pÜt_id
+,
+
+60
+ `¹e_\91h_dev_sock\91_id
+(
+pÜt_id
+),
+mode
+);
+
+62
+bÚd_pÜt
+ = (
+l2_phy_\9a\8brçû_t
+ *è
+ `¹e_zm®loc
+(
+NULL
+,
+
+64 (
+l2_phy_\9a\8brçû_t
+),
+
+65
+RTE_CACHE_LINE_SIZE
+);
+
+66
+bÚd_pÜt
+->
+pmdid
+ =
+pÜt_id
+;
+
+67
+ `¡ºýy
+(
+bÚd_pÜt
+->
+iâame
+,
+Çme
+,
+IFM_IFNAME_LEN
+);
+
+68
+ `memýy
+(&
+bÚd_pÜt
+->
+pÜt_cÚfig
+,
+pÜtcÚf
+,
+
+69 \17(
+pÜt_cÚfig_t
+));
+
+70
+bÚd_pÜt
+->
+æags
+ |ð
+IFM_MASTER
+;
+
+71 \19
+bÚd_pÜt
+ *
+bÚd_\9afo
+;
+
+72
+bÚd_\9afo
+ = (\19
+bÚd_pÜt
+ *)
+ `¹e_zm®loc
+(
+NULL
+,
+
+74
+bÚd_pÜt
+),
+
+75
+RTE_CACHE_LINE_SIZE
+);
+
+76
+bÚd_\9afo
+->
+sock\91_id
+ =
+ `¹e_\91h_dev_sock\91_id
+(
+pÜt_id
+);
+
+77
+bÚd_\9afo
+->
+mode
+ = mode;
+
+78
+bÚd_\9afo
+->
+bÚd_pÜtid
+ =
+pÜt_id
+;
+
+79
+bÚd_pÜt
+->
+bÚd_cÚfig
+ =
+bÚd_\9afo
+;
+
+80 ià(
+mode
+ =ð
+IFM_BONDING_MODE_8023AD
+)
+
+81
+bÚd_pÜt
+->
+tx_buf_Ën
+ =
+
+82 (2 *
+ `RTE_ETH_TX_BUFFER_SIZE
+(
+IFM_BURST_SIZE
+)) *
+
+83
+RTE_MAX_ETHPORTS
+;
+
+85
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+] =
+bÚd_pÜt
+;
+
+86 ià(
+ifm_debug
+ &&
+IFM_DEBUG_CONFIG
+)
+
+87
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+89
+__FUNCTION__
+,
+Çme
+,
+pÜt_id
+);
+
+91
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Port %s\87lready\83xists in\81he"
+
+92 "\85Ü\88li¡\n\r",
+__FUNCTION__
+,
+Çme
+);
+
+93 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+94
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring\86ock @ %d\n\r",
+
+95
+__FUNCTION__
+,
+__LINE__
+);
+
+96 ià(
+USE_RTM_LOCKS
+)
+
+97
+ `¹m_lock
+();
+
+99
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+101 ià(!(
+bÚd_pÜt
+->
+æags
+ &
+IFM_MASTER
+)) {
+
+102
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Previously\85ort %s was\82ot "
+
+103 "cÚfigu»d\87 BÚd\85Üt\n\r",
+__FUNCTION__
+,
+
+104
+Çme
+);
+
+105 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+106
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+108
+__FUNCTION__
+,
+__LINE__
+);
+
+109 ià(
+USE_RTM_LOCKS
+)
+
+110
+ `¹m_uÆock
+();
+
+112
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+113 \15
+IFM_FAILURE
+;
+
+115 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ != mode) {
+
+116 ià(
+ `¹e_\91h_bÚd_mode_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+mode
+) < 0) {
+
+117
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_eth_bond_mode_set "
+
+118 "ç\9eed\n\r",
+__FUNCTION__
+);
+
+119 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+120
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+122
+__FUNCTION__
+,
+__LINE__
+);
+
+123 ià(
+USE_RTM_LOCKS
+)
+
+124
+ `¹m_uÆock
+();
+
+126
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+127 \15
+IFM_FAILURE
+;
+
+130
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ =
+
+131
+ `¹e_\91h_bÚd_mode_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+133
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+ =
+
+134
+ `¹e_\91h_bÚd_xm\99_pÞicy_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+135 ià(
+ifm_debug
+ &&
+IFM_DEBUG_CONFIG
+)
+
+136
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+138 "\n\r",
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+,
+
+139
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+,
+
+140
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+);
+
+142
+pÜt_id
+ =
+bÚd_pÜt
+->
+pmdid
+;
+
+143 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+144
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring\86ock @ %d\n\r",
+
+145
+__FUNCTION__
+,
+__LINE__
+);
+
+146 ià(
+USE_RTM_LOCKS
+)
+
+147
+ `¹m_uÆock
+();
+
+149
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+151 \15
+pÜt_id
+;
+
+152
+ }
+}
+
+154 \12
+ $ifm_bÚd_pÜt_d\96\91e
+(cڡ \ 5*
+Çme
+)
+
+156
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+157 ià(
+Çme
+ =ð
+NULL
+) {
+
+158
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Param\82ame cannot be NULL\n\r",
+
+159
+__FUNCTION__
+);
+
+160 \15
+IFM_FAILURE
+;
+
+162
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt_by_Çme
+(
+Çme
+);
+
+163 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+164
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+165
+__FUNCTION__
+,
+__LINE__
+);
+
+166 ià(
+USE_RTM_LOCKS
+)
+
+167
+ `¹m_lock
+();
+
+169
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+170 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+171
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort with\82ame %s\82ot"
+
+172 " found iÀth\90li¡\n\r",
+__FUNCTION__
+,
+Çme
+);
+
+173 \15
+IFM_FAILURE
+;
+
+175 ià(!(
+bÚd_pÜt
+->
+æags
+ &
+IFM_MASTER
+)) {
+
+176
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %s is\82ot "
+
+177 "cÚfigu»d i nÙ bÚd\85Üt\n\r",
+__FUNCTION__
+,
+Çme
+);
+
+178 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+179
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+180
+__FUNCTION__
+,
+__LINE__
+);
+
+181 ià(
+USE_RTM_LOCKS
+) {
+
+182
+ `¹m_uÆock
+();
+
+184
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+186 \15
+IFM_FAILURE
+;
+
+188 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+ && bÚd_pÜt->bÚd_cÚfig->
+¦ave_couÁ
+ > 0) {
+
+189
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: First unbind\87ll slave "
+
+190 "pÜt äom\81h\90bÚd\85Ü\88%s\n\r",
+__FUNCTION__
+,
+Çme
+);
+
+191 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+192
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+193
+__FUNCTION__
+,
+__LINE__
+);
+
+194 ià(
+USE_RTM_LOCKS
+) {
+
+195
+ `¹m_uÆock
+();
+
+197
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+199 \15
+IFM_FAILURE
+;
+
+201 \12
+»t
+;
+
+202
+»t
+ =
+ `¹e_\91h_bÚd_ä\93
+(
+Çme
+);
+
+203 ià(
+»t
+ < 0) {
+
+204
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o delete "
+
+205 "bÚd\85Ü\88%s\n\r",
+__FUNCTION__
+,
+Çme
+);
+
+206 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+207
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+208
+__FUNCTION__
+,
+__LINE__
+);
+
+209 ià(
+USE_RTM_LOCKS
+) {
+
+210
+ `¹m_uÆock
+();
+
+212
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+214 \15
+IFM_FAILURE
+;
+
+216 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+217
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Bond\85ort %s deleted successfully\n\r",
+
+218
+__FUNCTION__
+,
+Çme
+);
+
+220 ià(
+bÚd_pÜt
+ && bÚd_pÜt->
+bÚd_cÚfig
+ !ð
+NULL
+) {
+
+221
+ `¹e_ä\93
+(
+bÚd_pÜt
+->
+bÚd_cÚfig
+);
+
+222
+bÚd_pÜt
+->
+bÚd_cÚfig
+ =
+NULL
+;
+
+224 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+225
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+226
+__FUNCTION__
+,
+__LINE__
+);
+
+227 ià(
+USE_RTM_LOCKS
+)
+
+228
+ `¹m_uÆock
+();
+
+230
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+231
+ `ifm_»move_pÜt_d\91a\9es
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+233 \15
+IFM_SUCCESS
+;
+
+234
+ }
+}
+
+236 \12
+ $ifm_add_¦ave_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+)
+
+238
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+, *
+¦ave_pÜt
+;
+
+239
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+241
+¦ave_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+¦ave_pÜt_id
+);
+
+243 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+244
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: i/p bond id %u, slave id %u\n\r",
+
+245
+__FUNCTION__
+,
+bÚded_pÜt_id
+,
+¦ave_pÜt_id
+);
+
+246 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+247
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+248
+__FUNCTION__
+,
+__LINE__
+);
+
+249 ià(
+USE_RTM_LOCKS
+) {
+
+250
+ `¹m_lock
+();
+
+252
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+254 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+255
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+256 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+257 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+258
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+259
+__FUNCTION__
+,
+__LINE__
+);
+
+260 ià(
+USE_RTM_LOCKS
+) {
+
+261
+ `¹m_uÆock
+();
+
+263
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+265 \15
+IFM_FAILURE
+;
+
+267 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+268
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given slave\85ort %u is\82ot\87vailable in "
+
+269 "pÜ\88li¡.\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+);
+
+270 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+271
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+272
+__FUNCTION__
+,
+__LINE__
+);
+
+273 ià(
+USE_RTM_LOCKS
+) {
+
+274
+ `¹m_uÆock
+();
+
+276
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+278 \15
+IFM_FAILURE
+;
+
+280 ià(
+bÚd_pÜt
+ && !(bÚd_pÜt->
+æags
+ &
+IFM_MASTER
+)) {
+
+281
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot configured "
+
+282 "a Ma¡\94\85Üt. %u\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+,
+
+283
+bÚd_pÜt
+->
+æags
+ &
+IFM_MASTER
+);
+
+284 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+285
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+286
+__FUNCTION__
+,
+__LINE__
+);
+
+287 ià(
+USE_RTM_LOCKS
+) {
+
+288
+ `¹m_uÆock
+();
+
+290
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+292 \15
+IFM_FAILURE
+;
+
+294 ià(
+bÚd_pÜt
+ && bÚd_pÜt->
+bÚd_cÚfig
+
+
+295 &&
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ =ð
+RTE_MAX_ETHPORTS
+) {
+
+296
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+298
+__FUNCTION__
+,
+RTE_MAX_ETHPORTS
+);
+
+299 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+300
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+301
+__FUNCTION__
+,
+__LINE__
+);
+
+302 ià(
+USE_RTM_LOCKS
+) {
+
+303
+ `¹m_uÆock
+();
+
+305
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+307 \15
+IFM_FAILURE
+;
+
+309 ià(
+¦ave_pÜt
+ && sÏve_pÜt->
+æags
+ &
+IFM_SLAVE
+) {
+
+311 ià(
+¦ave_pÜt
+->
+bÚd_cÚfig
+ !ð
+NULL
+) {
+
+312 ià(
+bÚded_pÜt_id
+ !=
+
+313
+¦ave_pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+) {
+
+314
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+317
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+
+318
+¦ave_pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+);
+
+319 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+320
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+322
+__FUNCTION__
+,
+__LINE__
+);
+
+323 ià(
+USE_RTM_LOCKS
+) {
+
+324
+ `¹m_uÆock
+();
+
+326
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+328 \15
+IFM_FAILURE
+;
+
+330 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+331
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+333
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+
+334
+bÚded_pÜt_id
+);
+
+335 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+336
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+338
+__FUNCTION__
+,
+__LINE__
+);
+
+339 ià(
+USE_RTM_LOCKS
+) {
+
+340
+ `¹m_uÆock
+();
+
+342
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+344 \15
+IFM_SUCCESS
+;
+
+348 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+ && bÚd_pÜt->bÚd_cÚfig->
+¦ave_couÁ
+ &&
+
+349
+bÚd_pÜt
+->
+l\9ak_¥\93d
+ !ð
+¦ave_pÜt
+->link_speed
+
+350 &&
+bÚd_pÜt
+->
+l\9ak_du¶ex
+ !ð
+¦ave_pÜt
+->link_duplex) {
+
+351
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+353
+__FUNCTION__
+);
+
+354 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+355
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+356
+__FUNCTION__
+,
+__LINE__
+);
+
+357 ià(
+USE_RTM_LOCKS
+) {
+
+358
+ `¹m_uÆock
+();
+
+360
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+362 \15
+IFM_FAILURE
+;
+
+364 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+365
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Slave\85ort %u Master\85ort %u\n\r",
+
+366
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+bÚded_pÜt_id
+);
+
+367 \12
+»t
+;
+
+368
+»t
+ =
+ `¹e_\91h_bÚd_¦ave_add
+(
+bÚd_pÜt
+->
+pmdid
+,
+¦ave_pÜt
+->pmdid);
+
+369 ià(
+»t
+ < 0) {
+
+370
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o\87dd slave\85ort %u\81o bond "
+
+371 "p܈%u.\n\r",
+__FUNCTION__
+,
+¦ave_pÜt
+->
+pmdid
+,
+
+372
+bÚd_pÜt
+->
+pmdid
+);
+
+373 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+374
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+375
+__FUNCTION__
+,
+__LINE__
+);
+
+376 ià(
+USE_RTM_LOCKS
+) {
+
+377
+ `¹m_uÆock
+();
+
+379
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+381 \15
+IFM_FAILURE
+;
+
+383
+¦ave_pÜt
+->
+æags
+ |ð
+IFM_SLAVE
+;
+
+385 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+) {
+
+386
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+ =
+
+387
+ `¹e_\91h_bÚd_xm\99_pÞicy_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+388
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+\9a\8bº®_ms
+ =
+
+389
+ `¹e_\91h_bÚd_l\9ak_mÚ\99Ü\9ag_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+390
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_up_d\96ay_ms
+ =
+
+391
+ `¹e_\91h_bÚd_l\9ak_up_´Ý_d\96ay_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+392
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_down_d\96ay_ms
+ =
+
+393
+ `¹e_\91h_bÚd_l\9ak_down_´Ý_d\96ay_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+394
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =
+
+395
+ `¹e_\91h_bÚd_´im¬y_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+396
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ =
+
+397
+ `¹e_\91h_bÚd_¦aves_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+398
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+,
+
+399
+RTE_MAX_ETHPORTS
+);
+
+400
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+ =
+
+401
+ `¹e_\91h_bÚd_aùive_¦aves_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+402
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+
+403
+aùive_¦aves
+,
+
+404
+RTE_MAX_ETHPORTS
+);
+
+405
+¦ave_pÜt
+->
+bÚd_cÚfig
+ =
+bÚd_pÜt
+->bond_config;
+
+406 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+407
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Slave count is %u\n\r",
+
+408
+__FUNCTION__
+,
+
+409
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+);
+
+410 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ == 1) {
+
+411
+»t
+ =
+
+412
+ `ifm_pÜt_£tup
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+413 &(
+bÚd_pÜt
+->
+pÜt_cÚfig
+));
+
+414 ià(
+»t
+ < 0) {
+
+415
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+417
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+418 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+419
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+421
+__FUNCTION__
+,
+__LINE__
+);
+
+422 ià(
+USE_RTM_LOCKS
+) {
+
+423
+ `¹m_uÆock
+();
+
+425
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+427 \15
+IFM_FAILURE
+;
+
+430 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+431
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Skipping"
+
+432 "\85Ü\88£tup\n\r",
+__FUNCTION__
+);
+
+435 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+436
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+437
+__FUNCTION__
+,
+__LINE__
+);
+
+438 ià(
+USE_RTM_LOCKS
+) {
+
+439
+ `¹m_uÆock
+();
+
+441
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+443 \15
+IFM_SUCCESS
+;
+
+444
+ }
+}
+
+446 \12
+ $ifm_»move_¦ave_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+)
+
+448
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+, *
+¦ave_pÜt
+;
+
+450
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+452
+¦ave_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+¦ave_pÜt_id
+);
+
+455 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+456
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+457
+__FUNCTION__
+,
+__LINE__
+);
+
+458 ià(
+USE_RTM_LOCKS
+) {
+
+459
+ `¹m_lock
+();
+
+461
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+463 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+464
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable "
+
+465 "\9a\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+466 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+467
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+468
+__FUNCTION__
+,
+__LINE__
+);
+
+469 ià(
+USE_RTM_LOCKS
+)
+
+470
+ `¹m_uÆock
+();
+
+472
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+473 \15
+IFM_FAILURE
+;
+
+475 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+476
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given slave\85ort %u is\82ot\87vailable "
+
+477 "\9a\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+);
+
+478 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+479
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+480
+__FUNCTION__
+,
+__LINE__
+);
+
+481 ià(
+USE_RTM_LOCKS
+)
+
+482
+ `¹m_uÆock
+();
+
+484
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+485 \15
+IFM_FAILURE
+;
+
+487 ià(
+bÚd_pÜt
+ && !(bÚd_pÜt->
+æags
+ &
+IFM_MASTER
+)) {
+
+488
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot configured "
+
+489 "a Ma¡\94\85Üt.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+490 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+491
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+492
+__FUNCTION__
+,
+__LINE__
+);
+
+493 ià(
+USE_RTM_LOCKS
+)
+
+494
+ `¹m_uÆock
+();
+
+496
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+497 \15
+IFM_FAILURE
+;
+
+499 ià(
+¦ave_pÜt
+ && !(¦ave_pÜt->
+æags
+ &
+IFM_SLAVE
+)) {
+
+500
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given slave\85ort %u is\82ot configured"
+
+501 "\87 ¦av\90pÜt.\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+);
+
+502 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+503
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+504
+__FUNCTION__
+,
+__LINE__
+);
+
+505 ià(
+USE_RTM_LOCKS
+)
+
+506
+ `¹m_uÆock
+();
+
+508
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+509 \15
+IFM_FAILURE
+;
+
+511 \12
+i
+;
+
+512 \12
+found
+ = 0;
+
+513 \ f
+i
+ = 0; i <
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+; i++) {
+
+514 ià(
+¦ave_pÜt_id
+ =ð
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+[
+i
+]) {
+
+515
+found
+ = 1;
+
+519 ià(!
+found
+) {
+
+520
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given slave\85ort %u is\82ot binded "
+
+521 "w\99h bÚd\85Ü\88%u\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+
+522
+bÚded_pÜt_id
+);
+
+523 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+524
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+525
+__FUNCTION__
+,
+__LINE__
+);
+
+526 ià(
+USE_RTM_LOCKS
+)
+
+527
+ `¹m_uÆock
+();
+
+529
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+530 \15
+IFM_FAILURE
+;
+
+532 ià(
+ `¹e_\91h_bÚd_¦ave_»move
+(
+bÚded_pÜt_id
+,
+¦ave_pÜt_id
+) < 0) {
+
+533
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o unbind slave\85ort %u"
+
+534 " from bÚd\85Ü\88%u\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+
+535
+bÚded_pÜt_id
+);
+
+536 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+537
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+538
+__FUNCTION__
+,
+__LINE__
+);
+
+539 ià(
+USE_RTM_LOCKS
+)
+
+540
+ `¹m_uÆock
+();
+
+542
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+543 \15
+IFM_FAILURE
+;
+
+545
+¦ave_pÜt
+->
+æags
+ &ð~
+IFM_SLAVE
+;
+
+546
+¦ave_pÜt
+->
+bÚd_cÚfig
+ =
+NULL
+;
+
+547
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =
+
+548
+ `¹e_\91h_bÚd_´im¬y_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+549
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+ =
+
+550
+ `¹e_\91h_bÚd_¦aves_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+551
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+,
+
+552
+RTE_MAX_ETHPORTS
+);
+
+553
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+ =
+
+554
+ `¹e_\91h_bÚd_aùive_¦aves_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+555
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+
+556
+aùive_¦aves
+,
+RTE_MAX_ETHPORTS
+);
+
+558 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+559
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Unbinded slave\85ort %u from\81he bond "
+
+560 "p܈%u %d\n\r",
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+
+561
+bÚded_pÜt_id
+,
+
+562
+ `¹e_\91h_bÚd_´im¬y_g\91
+(
+bÚd_pÜt
+->
+pmdid
+));
+
+563 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+564
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+565
+__FUNCTION__
+,
+__LINE__
+);
+
+566 ià(
+USE_RTM_LOCKS
+)
+
+567
+ `¹m_uÆock
+();
+
+569
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+570 \15
+IFM_SUCCESS
+;
+
+571
+ }
+}
+
+573 \12
+ $£t_bÚd_mode
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+mode
+)
+
+575
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+576
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+579 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+580
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+581
+__FUNCTION__
+,
+__LINE__
+);
+
+582 ià(
+USE_RTM_LOCKS
+)
+
+583
+ `¹m_lock
+();
+
+585
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+586 if(
+bÚd_pÜt
+)
+
+587
+ `ifm_»move_pÜt_d\91a\9es
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+588 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+589
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+590 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+591 \15
+IFM_FAILURE
+;
+
+593 ià(
+bÚd_pÜt
+ && bÚd_pÜt->
+bÚd_cÚfig
+->
+mode
+ == mode) {
+
+594 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+595
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+597 " mod\90%u\n\r.",
+__FUNCTION__
+,
+mode
+);
+
+598 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+599
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+600
+__FUNCTION__
+,
+__LINE__
+);
+
+601 ià(
+USE_RTM_LOCKS
+)
+
+602
+ `¹m_uÆock
+();
+
+604
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+605
+ `ifm_»move_pÜt_d\91a\9es
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+606 \15
+IFM_SUCCESS
+;
+
+609 ià(
+ `¹e_\91h_bÚd_mode_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+mode
+) < 0) {
+
+610
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+612
+__FUNCTION__
+,
+mode
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+613 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+614
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+615
+__FUNCTION__
+,
+__LINE__
+);
+
+616 ià(
+USE_RTM_LOCKS
+)
+
+617
+ `¹m_uÆock
+();
+
+619
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+620
+ `ifm_»move_pÜt_d\91a\9es
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+621 \15
+IFM_FAILURE
+;
+
+624
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+ =
+ `¹e_\91h_bÚd_mode_g\91
+(bÚd_pÜt->
+pmdid
+);
+
+626
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+ =
+
+627
+ `¹e_\91h_bÚd_xm\99_pÞicy_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+628 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+629
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+631 "\n\r.",
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+,
+
+632
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+mode
+,
+
+633
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+);
+
+634 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+635
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+636
+__FUNCTION__
+,
+__LINE__
+);
+
+637 ià(
+USE_RTM_LOCKS
+)
+
+638
+ `¹m_uÆock
+();
+
+640
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+641
+ `ifm_»move_pÜt_d\91a\9es
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+642 \15
+IFM_SUCCESS
+;
+
+643
+ }
+}
+
+645 \12
+ $g\91_bÚd_mode
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+647
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+648
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+651 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+652
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+653
+__FUNCTION__
+,
+__LINE__
+);
+
+654 ià(
+USE_RTM_LOCKS
+) {
+
+655
+ `¹m_lock
+();
+
+657
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+659 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+660
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+661 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+662 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+663
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+664
+__FUNCTION__
+,
+__LINE__
+);
+
+665 ià(
+USE_RTM_LOCKS
+) {
+
+666
+ `¹m_uÆock
+();
+
+668
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+670 \15
+IFM_FAILURE
+;
+
+672
+u\9at8_t
+
+mode
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->mode;
+
+673 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+674
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+675
+__FUNCTION__
+,
+__LINE__
+);
+
+676 ià(
+USE_RTM_LOCKS
+) {
+
+677
+ `¹m_uÆock
+();
+
+679
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+681 \15
+mode
+;
+
+682
+ }
+}
+
+684 \12
+ $£t_bÚd_´im¬y
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+)
+
+686
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+687
+l2_phy_\9a\8brçû_t
+ *
+¦ave_pÜt
+;
+
+688
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+690
+¦ave_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+¦ave_pÜt_id
+);
+
+693 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+694
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+695
+__FUNCTION__
+,
+__LINE__
+);
+
+696 ià(
+USE_RTM_LOCKS
+)
+
+697
+ `¹m_lock
+();
+
+699
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+700 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+701
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+702 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+703 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+704
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+705
+__FUNCTION__
+,
+__LINE__
+);
+
+706 ià(
+USE_RTM_LOCKS
+)
+
+707
+ `¹m_uÆock
+();
+
+709
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+710 \15
+IFM_FAILURE
+;
+
+712 ià(
+¦ave_pÜt
+ =ð
+NULL
+) {
+
+713
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given slave\85ort %u is\82ot\87vailable in"
+
+714 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+715 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+716
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+717
+__FUNCTION__
+,
+__LINE__
+);
+
+718 ià(
+USE_RTM_LOCKS
+)
+
+719
+ `¹m_uÆock
+();
+
+721
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+722 \15
+IFM_FAILURE
+;
+
+724 \12
+i
+;
+
+725 \12
+found
+ = 0;
+
+726 \ f
+i
+ = 0; i <
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+; i++) {
+
+727 ià(
+¦ave_pÜt_id
+ =ð
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+[
+i
+]) {
+
+728
+found
+ = 1;
+
+732 ià(!
+found
+) {
+
+733
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Slave\85ort %u is\82ot binded "
+
+735
+__FUNCTION__
+,
+¦ave_pÜt_id
+,
+bÚded_pÜt_id
+);
+
+736 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+737
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+738
+__FUNCTION__
+,
+__LINE__
+);
+
+739 ià(
+USE_RTM_LOCKS
+)
+
+740
+ `¹m_uÆock
+();
+
+742
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+743 \15
+IFM_FAILURE
+;
+
+746 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =ð
+¦ave_pÜt_id
+) {
+
+747 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+748
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+750 "%u\n\r.",
+__FUNCTION__
+,
+bÚded_pÜt_id
+,
+
+751
+¦ave_pÜt_id
+);
+
+752 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+753
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+754
+__FUNCTION__
+,
+__LINE__
+);
+
+755 ià(
+USE_RTM_LOCKS
+)
+
+756
+ `¹m_uÆock
+();
+
+758
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+759 \15
+IFM_SUCCESS
+;
+
+762 ià(
+ `¹e_\91h_bÚd_´im¬y_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+¦ave_pÜt
+->pmdid) < 0) {
+
+763
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+765
+__FUNCTION__
+,
+¦ave_pÜt
+->
+pmdid
+,
+bÚd_pÜt
+->pmdid);
+
+766 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+767
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+768
+__FUNCTION__
+,
+__LINE__
+);
+
+769 ià(
+USE_RTM_LOCKS
+)
+
+770
+ `¹m_uÆock
+();
+
+772
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+773 \15
+IFM_FAILURE
+;
+
+776
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+ =
+
+777
+ `¹e_\91h_bÚd_´im¬y_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+778 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+779
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+781
+__FUNCTION__
+,
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+,
+
+782
+bÚd_pÜt
+->
+pmdid
+);
+
+783 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+784
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+785
+__FUNCTION__
+,
+__LINE__
+);
+
+786 ià(
+USE_RTM_LOCKS
+)
+
+787
+ `¹m_uÆock
+();
+
+789
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+790 \15
+IFM_SUCCESS
+;
+
+791
+ }
+}
+
+793 \12
+ $g\91_bÚd_´im¬y_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+795
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+796
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+799 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+800
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+801
+__FUNCTION__
+,
+__LINE__
+);
+
+802 ià(
+USE_RTM_LOCKS
+) {
+
+803
+ `¹m_lock
+();
+
+805
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+807 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+808
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+809 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+810 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+811
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+812
+__FUNCTION__
+,
+__LINE__
+);
+
+813 ià(
+USE_RTM_LOCKS
+) {
+
+814
+ `¹m_uÆock
+();
+
+816
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+818 \15
+IFM_FAILURE
+;
+
+820
+u\9at8_t
+
+´im¬y
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->primary;
+
+821 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+822
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+823
+__FUNCTION__
+,
+__LINE__
+);
+
+824 ià(
+USE_RTM_LOCKS
+) {
+
+825
+ `¹m_uÆock
+();
+
+827
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+829 \15
+´im¬y
+;
+
+830
+ }
+}
+
+832 \12
+ $g\91_bÚd_¦ave_couÁ
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+834
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+835
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+838 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+839
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+840
+__FUNCTION__
+,
+__LINE__
+);
+
+841 ià(
+USE_RTM_LOCKS
+) {
+
+842
+ `¹m_lock
+();
+
+844
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+846 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+847
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+848 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+849 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+850
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+851
+__FUNCTION__
+,
+__LINE__
+);
+
+852 ià(
+USE_RTM_LOCKS
+) {
+
+853
+ `¹m_uÆock
+();
+
+855
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+857 \15
+IFM_FAILURE
+;
+
+859
+u\9at32_t
+
+¦ave_couÁ
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->slave_count;
+
+860 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+861
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+862
+__FUNCTION__
+,
+__LINE__
+);
+
+863 ià(
+USE_RTM_LOCKS
+) {
+
+864
+ `¹m_uÆock
+();
+
+866
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+868 \15
+¦ave_couÁ
+;
+
+869
+ }
+}
+
+871 \12
+ $g\91_bÚd_aùive_¦ave_couÁ
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+873
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+874
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+877 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+878
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+879
+__FUNCTION__
+,
+__LINE__
+);
+
+880 ià(
+USE_RTM_LOCKS
+) {
+
+881
+ `¹m_lock
+();
+
+883
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+885 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+886
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+887 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+888 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+889
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+890
+__FUNCTION__
+,
+__LINE__
+);
+
+891 ià(
+USE_RTM_LOCKS
+) {
+
+892
+ `¹m_uÆock
+();
+
+894
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+896 \15
+IFM_FAILURE
+;
+
+898
+u\9at32_t
+
+¦ave_couÁ
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+;
+
+899 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+900
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+901
+__FUNCTION__
+,
+__LINE__
+);
+
+902 ià(
+USE_RTM_LOCKS
+) {
+
+903
+ `¹m_uÆock
+();
+
+905
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+907 \15
+¦ave_couÁ
+;
+
+908
+ }
+}
+
+910 \12
+ $g\91_bÚd_¦aves
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦aves
+[
+RTE_MAX_ETHPORTS
+])
+
+912
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+913
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+916 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+917
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+918
+__FUNCTION__
+,
+__LINE__
+);
+
+919 ià(
+USE_RTM_LOCKS
+) {
+
+920
+ `¹m_lock
+();
+
+922
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+924 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+925
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+926 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+927 \15
+IFM_FAILURE
+;
+
+929
+ `memýy
+(
+¦aves
+,
+bÚd_pÜt
+->
+bÚd_cÚfig
+->slaves,
+
+930
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+);
+
+931 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+932
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+933
+__FUNCTION__
+,
+__LINE__
+);
+
+934 ià(
+USE_RTM_LOCKS
+) {
+
+935
+ `¹m_uÆock
+();
+
+937
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+939 \15
+IFM_SUCCESS
+;
+
+940
+ }
+}
+
+942 \12
+ $g\91_bÚd_aùive_¦aves
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+
+943
+u\9at8_t
+
+aùive_¦aves
+[
+RTE_MAX_ETHPORTS
+])
+
+945
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+946
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+949 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+950
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+951
+__FUNCTION__
+,
+__LINE__
+);
+
+952 ià(
+USE_RTM_LOCKS
+) {
+
+953
+ `¹m_lock
+();
+
+955
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+957 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+958
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+959 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+960 \15
+IFM_FAILURE
+;
+
+962
+ `memýy
+(
+aùive_¦aves
+,
+bÚd_pÜt
+->
+bÚd_cÚfig
+->active_slaves,
+
+963
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+);
+
+964 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+965
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+966
+__FUNCTION__
+,
+__LINE__
+);
+
+967 ià(
+USE_RTM_LOCKS
+) {
+
+968
+ `¹m_uÆock
+();
+
+970
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+972 \15
+IFM_SUCCESS
+;
+
+973
+ }
+}
+
+975 \12
+ $£t_bÚd_mac_add»ss
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, \19
+\91h\94_addr
+ *
+mac_addr
+)
+
+977
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+978
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+981 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+982
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+983
+__FUNCTION__
+,
+__LINE__
+);
+
+984 ià(
+USE_RTM_LOCKS
+) {
+
+985
+ `¹m_lock
+();
+
+987
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+989 ià(
+mac_addr
+ =ð
+NULL
+) {
+
+990
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: MAC\87ddress cannot be NULL.\n\r",
+
+991
+__FUNCTION__
+);
+
+992 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+993
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+994
+__FUNCTION__
+,
+__LINE__
+);
+
+995 ià(
+USE_RTM_LOCKS
+) {
+
+996
+ `¹m_uÆock
+();
+
+998
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1000 \15
+IFM_FAILURE
+;
+
+1003 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1004
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1005 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1006 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1007
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1008
+__FUNCTION__
+,
+__LINE__
+);
+
+1009 ià(
+USE_RTM_LOCKS
+) {
+
+1010
+ `¹m_uÆock
+();
+
+1012
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1014 \15
+IFM_FAILURE
+;
+
+1016 ià(
+ `¹e_\91h_bÚd_mac_add»ss_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+mac_addr
+) < 0) {
+
+1017
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o set MAC\87ddr for\85ort %u\n\r",
+
+1018
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1019 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1020
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1021
+__FUNCTION__
+,
+__LINE__
+);
+
+1022 ià(
+USE_RTM_LOCKS
+) {
+
+1023
+ `¹m_uÆock
+();
+
+1025
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1027 \15
+IFM_FAILURE
+;
+
+1029
+ `¹e_\91h_maÿddr_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+1030 (\19
+\91h\94_addr
+ *)
+bÚd_pÜt
+->
+maÿddr
+);
+
+1031 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1032
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1033
+__FUNCTION__
+,
+__LINE__
+);
+
+1034 ià(
+USE_RTM_LOCKS
+) {
+
+1035
+ `¹m_uÆock
+();
+
+1037
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1039 \15
+IFM_SUCCESS
+;
+
+1040
+ }
+}
+
+1042 \12
+ $»£t_bÚd_mac_addr
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+1044
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1045
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1048 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1049
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+1050
+__FUNCTION__
+,
+__LINE__
+);
+
+1051 ià(
+USE_RTM_LOCKS
+) {
+
+1052
+ `¹m_lock
+();
+
+1054
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1056 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1057
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1058 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1059 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1060
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1061
+__FUNCTION__
+,
+__LINE__
+);
+
+1062 ià(
+USE_RTM_LOCKS
+) {
+
+1063
+ `¹m_uÆock
+();
+
+1065
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1067 \15
+IFM_FAILURE
+;
+
+1069 ià(
+ `¹e_\91h_bÚd_mac_add»ss_»£t
+(
+bÚd_pÜt
+->
+pmdid
+) < 0) {
+
+1070
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+1072
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1073 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1074
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1075
+__FUNCTION__
+,
+__LINE__
+);
+
+1076 ià(
+USE_RTM_LOCKS
+) {
+
+1077
+ `¹m_uÆock
+();
+
+1079
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1081 \15
+IFM_FAILURE
+;
+
+1083
+ `¹e_\91h_maÿddr_g\91
+(
+bÚd_pÜt
+->
+pmdid
+,
+
+1084 (\19
+\91h\94_addr
+ *)
+bÚd_pÜt
+->
+maÿddr
+);
+
+1085 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1086
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1087
+__FUNCTION__
+,
+__LINE__
+);
+
+1088 ià(
+USE_RTM_LOCKS
+) {
+
+1089
+ `¹m_uÆock
+();
+
+1091
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1093 \15
+IFM_FAILURE
+;
+
+1094
+ }
+}
+
+1096 \12
+ $£t_bÚd_xm\99pÞicy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+pÞicy
+)
+
+1099
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1100
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1102 \12
+»t
+ = 0;
+
+1104 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1105
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+1106
+__FUNCTION__
+,
+__LINE__
+);
+
+1107 ià(
+USE_RTM_LOCKS
+) {
+
+1108
+ `¹m_lock
+();
+
+1110
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1112 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1113
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1114 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1115 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1116
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1117
+__FUNCTION__
+,
+__LINE__
+);
+
+1118 ià(
+USE_RTM_LOCKS
+) {
+
+1119
+ `¹m_uÆock
+();
+
+1121
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1123 \15
+IFM_FAILURE
+;
+
+1125 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+ =ð
+pÞicy
+) {
+
+1126 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1127
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1129
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1130 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1131
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1132
+__FUNCTION__
+,
+__LINE__
+);
+
+1133 ià(
+USE_RTM_LOCKS
+) {
+
+1134
+ `¹m_uÆock
+();
+
+1136
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1138 \15
+IFM_SUCCESS
+;
+
+1140 ià(
+ `¹e_\91h_bÚd_xm\99_pÞicy_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+pÞicy
+) < 0) {
+
+1141
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o set\85olicy for\85ort %u\n\r",
+
+1142
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1143 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1144
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1145
+__FUNCTION__
+,
+__LINE__
+);
+
+1146 ià(
+USE_RTM_LOCKS
+) {
+
+1147
+ `¹m_uÆock
+();
+
+1149
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1151 \15
+IFM_FAILURE
+;
+
+1153
+»t
+ =
+ `¹e_\91h_bÚd_xm\99_pÞicy_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1154 ià(
+»t
+ < 0) {
+
+1155 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1156
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1158
+__FUNCTION__
+);
+
+1159 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1160
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1161
+__FUNCTION__
+,
+__LINE__
+);
+
+1162 ià(
+USE_RTM_LOCKS
+) {
+
+1163
+ `¹m_uÆock
+();
+
+1165
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1167 \15
+IFM_FAILURE
+;
+
+1169
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+ =
+pÞicy
+;
+
+1170 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1171
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1172
+__FUNCTION__
+,
+__LINE__
+);
+
+1173 ià(
+USE_RTM_LOCKS
+) {
+
+1174
+ `¹m_uÆock
+();
+
+1176
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1178 \15
+IFM_SUCCESS
+;
+
+1179
+ }
+}
+
+1181 \12
+ $g\91_bÚd_xm\99pÞicy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+1183
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1185
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1187 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1188
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: RD Acquiring\86ock @ %d\n\r",
+
+1189
+__FUNCTION__
+,
+__LINE__
+);
+
+1190 ià(
+USE_RTM_LOCKS
+) {
+
+1191
+ `¹m_lock
+();
+
+1193
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1195 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1196
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1197 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1198 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1199
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s:Releasing RD\86ock @ %d\n\r",
+
+1200
+__FUNCTION__
+,
+__LINE__
+);
+
+1201 ià(
+USE_RTM_LOCKS
+) {
+
+1202
+ `¹m_uÆock
+();
+
+1204
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1206 \15
+IFM_FAILURE
+;
+
+1208
+u\9at8_t
+
+pÞicy
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+;
+
+1209 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1210
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s:Releasing RD\86ock @ %d\n\r",
+
+1211
+__FUNCTION__
+,
+__LINE__
+);
+
+1212 ià(
+USE_RTM_LOCKS
+) {
+
+1213
+ `¹m_uÆock
+();
+
+1215
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1217 \15
+pÞicy
+;
+
+1218
+ }
+}
+
+1220 \12
+ $£t_bÚd_l\9ak_mÚt\99Ü_äequ\92cy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+
+1221
+u\9at32_t
+
+\9a\8bº®_ms
+)
+
+1223
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1224 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1225
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+1226
+__FUNCTION__
+,
+__LINE__
+);
+
+1227 ià(
+USE_RTM_LOCKS
+) {
+
+1228
+ `¹m_lock
+();
+
+1230
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1233
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1234 \12
+»t
+ = 0;
+
+1236 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1237
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1238 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1239 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1240
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1241
+__FUNCTION__
+,
+__LINE__
+);
+
+1242 ià(
+USE_RTM_LOCKS
+) {
+
+1243
+ `¹m_uÆock
+();
+
+1245
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1247 \15
+IFM_FAILURE
+;
+
+1249 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+\9a\8bº®_ms
+ == internal_ms) {
+
+1250 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1251
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1253
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1254 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1255
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1256
+__FUNCTION__
+,
+__LINE__
+);
+
+1257 ià(
+USE_RTM_LOCKS
+) {
+
+1258
+ `¹m_uÆock
+();
+
+1260
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1262 \15
+IFM_SUCCESS
+;
+
+1264 ià(
+ `¹e_\91h_bÚd_l\9ak_mÚ\99Ü\9ag_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+\9a\8bº®_ms
+) < 0) {
+
+1265
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+1267
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1268 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1269
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1270
+__FUNCTION__
+,
+__LINE__
+);
+
+1271 ià(
+USE_RTM_LOCKS
+) {
+
+1272
+ `¹m_uÆock
+();
+
+1274
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1276 \15
+IFM_FAILURE
+;
+
+1278
+»t
+ =
+ `¹e_\91h_bÚd_l\9ak_mÚ\99Ü\9ag_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1279 ià(
+»t
+ < 0) {
+
+1280 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1281
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1283
+__FUNCTION__
+);
+
+1284 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1285
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1286
+__FUNCTION__
+,
+__LINE__
+);
+
+1287 ià(
+USE_RTM_LOCKS
+) {
+
+1288
+ `¹m_uÆock
+();
+
+1290
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1292 \15
+IFM_FAILURE
+;
+
+1294
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+\9a\8bº®_ms
+ = internal_ms;
+
+1295 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1296
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1297
+__FUNCTION__
+,
+__LINE__
+);
+
+1298 ià(
+USE_RTM_LOCKS
+) {
+
+1299
+ `¹m_uÆock
+();
+
+1301
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1303 \15
+IFM_SUCCESS
+;
+
+1304
+ }
+}
+
+1306 \12
+ $g\91_bÚd_l\9ak_mÚ\99Ü_äequ\92cy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+1308
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1310
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1312 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1313
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+1314
+__FUNCTION__
+,
+__LINE__
+);
+
+1315 ià(
+USE_RTM_LOCKS
+) {
+
+1316
+ `¹m_lock
+();
+
+1318
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1320 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1321
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1322 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1323 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1324
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1325
+__FUNCTION__
+,
+__LINE__
+);
+
+1326 ià(
+USE_RTM_LOCKS
+) {
+
+1327
+ `¹m_uÆock
+();
+
+1329
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1331 \15
+IFM_FAILURE
+;
+
+1333
+u\9at32_t
+
+\9a\8bº®_ms
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->internal_ms;
+
+1334 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1335
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1336
+__FUNCTION__
+,
+__LINE__
+);
+
+1337 ià(
+USE_RTM_LOCKS
+) {
+
+1338
+ `¹m_uÆock
+();
+
+1340
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1342 \15
+\9a\8bº®_ms
+;
+
+1343
+ }
+}
+
+1345 \12
+ $£t_bÚd_l\9akdown_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+u\9at32_t
+
+d\96ay_ms
+)
+
+1347
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1348 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1349
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+1350
+__FUNCTION__
+,
+__LINE__
+);
+
+1352 ià(
+USE_RTM_LOCKS
+) {
+
+1353
+ `¹m_lock
+();
+
+1355
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1358
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1359 \12
+d\96ay
+ = 0;
+
+1361 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1362
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1363 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1364 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1365
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1366
+__FUNCTION__
+,
+__LINE__
+);
+
+1368 ià(
+USE_RTM_LOCKS
+) {
+
+1369
+ `¹m_uÆock
+();
+
+1371
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1373 \15
+IFM_FAILURE
+;
+
+1375 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_down_d\96ay_ms
+ =ð
+d\96ay_ms
+) {
+
+1376 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1377
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1379
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1380 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1381
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1382
+__FUNCTION__
+,
+__LINE__
+);
+
+1384 ià(
+USE_RTM_LOCKS
+) {
+
+1385
+ `¹m_uÆock
+();
+
+1387
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1389 \15
+IFM_SUCCESS
+;
+
+1391 ià(
+ `¹e_\91h_bÚd_l\9ak_down_´Ý_d\96ay_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+d\96ay_ms
+) <
+
+1393
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o set delay for\85ort %u\n\r",
+
+1394
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1395 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1396
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1397
+__FUNCTION__
+,
+__LINE__
+);
+
+1399 ià(
+USE_RTM_LOCKS
+) {
+
+1400
+ `¹m_uÆock
+();
+
+1402
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1404 \15
+IFM_FAILURE
+;
+
+1406
+d\96ay
+ =
+ `¹e_\91h_bÚd_l\9ak_down_´Ý_d\96ay_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1407 ià(
+d\96ay
+ < 0) {
+
+1408 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1409
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1411
+__FUNCTION__
+);
+
+1412 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1413
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1414
+__FUNCTION__
+,
+__LINE__
+);
+
+1416 ià(
+USE_RTM_LOCKS
+) {
+
+1417
+ `¹m_uÆock
+();
+
+1419
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1421 \15
+IFM_FAILURE
+;
+
+1423
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_down_d\96ay_ms
+ =
+d\96ay
+;
+
+1424 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1425
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1426
+__FUNCTION__
+,
+__LINE__
+);
+
+1428 ià(
+USE_RTM_LOCKS
+) {
+
+1429
+ `¹m_uÆock
+();
+
+1431
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1433 \15
+IFM_SUCCESS
+;
+
+1434
+ }
+}
+
+1436 \12
+ $g\91_bÚd_l\9ak_down_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+1438
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1440
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1441 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1442
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+1443
+__FUNCTION__
+,
+__LINE__
+);
+
+1444 ià(
+USE_RTM_LOCKS
+)
+
+1445
+ `¹m_lock
+();
+
+1447
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1449 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1450
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1451 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1452 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1453
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1454
+__FUNCTION__
+,
+__LINE__
+);
+
+1455 ià(
+USE_RTM_LOCKS
+) {
+
+1456
+ `¹m_uÆock
+();
+
+1458
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1460 \15
+IFM_FAILURE
+;
+
+1462
+u\9at32_t
+
+d\96ay_ms
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_down_d\96ay_ms
+;
+
+1463 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1464
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1465
+__FUNCTION__
+,
+__LINE__
+);
+
+1466 ià(
+USE_RTM_LOCKS
+) {
+
+1467
+ `¹m_uÆock
+();
+
+1469
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1471 \15
+d\96ay_ms
+;
+
+1473
+ }
+}
+
+1475 \12
+ $£t_bÚd_l\9akup_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+u\9at32_t
+
+d\96ay_ms
+)
+
+1477
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1478 \12
+d\96ay
+ = 0;
+
+1479
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1481 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1482
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+1483
+__FUNCTION__
+,
+__LINE__
+);
+
+1484 ià(
+USE_RTM_LOCKS
+)
+
+1485
+ `¹m_uÆock
+();
+
+1487
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1489 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1490
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Given bond\85ort %u is\82ot\87vailable in"
+
+1491 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1492 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1493
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1494
+__FUNCTION__
+,
+__LINE__
+);
+
+1495 ià(
+USE_RTM_LOCKS
+)
+
+1496
+ `¹m_uÆock
+();
+
+1498
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1499 \15
+IFM_FAILURE
+;
+
+1501 ià(
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_up_d\96ay_ms
+ =ð
+d\96ay_ms
+) {
+
+1502 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1503
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1505
+__FUNCTION__
+,
+bÚded_pÜt_id
+);
+
+1506 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1507
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1508
+__FUNCTION__
+,
+__LINE__
+);
+
+1509 ià(
+USE_RTM_LOCKS
+)
+
+1510
+ `¹m_uÆock
+();
+
+1512
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1513 \15
+IFM_SUCCESS
+;
+
+1515 ià(
+ `¹e_\91h_bÚd_l\9ak_up_´Ý_d\96ay_£t
+(
+bÚd_pÜt
+->
+pmdid
+,
+d\96ay_ms
+) < 0) {
+
+1516
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o set delay for\85ort %u\n\r",
+
+1517
+__FUNCTION__
+,
+bÚd_pÜt
+->
+pmdid
+);
+
+1518 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1519
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1520
+__FUNCTION__
+,
+__LINE__
+);
+
+1522 ià(
+USE_RTM_LOCKS
+)
+
+1523
+ `¹m_uÆock
+();
+
+1525
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1526 \15
+IFM_FAILURE
+;
+
+1528
+d\96ay
+ =
+ `¹e_\91h_bÚd_l\9ak_up_´Ý_d\96ay_g\91
+(
+bÚd_pÜt
+->
+pmdid
+);
+
+1529 ià(
+d\96ay
+ < 0) {
+
+1530
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1532
+__FUNCTION__
+);
+
+1533 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1534
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1535
+__FUNCTION__
+,
+__LINE__
+);
+
+1537 ià(
+USE_RTM_LOCKS
+)
+
+1538
+ `¹m_uÆock
+();
+
+1540
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1541 \15
+IFM_FAILURE
+;
+
+1543
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_up_d\96ay_ms
+ =
+d\96ay
+;
+
+1544 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1545
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+1546
+__FUNCTION__
+,
+__LINE__
+);
+
+1548 ià(
+USE_RTM_LOCKS
+)
+
+1549
+ `¹m_uÆock
+();
+
+1551
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1552 \15
+IFM_SUCCESS
+;
+
+1553
+ }
+}
+
+1555 \12
+ $g\91_bÚd_l\9ak_up_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+)
+
+1557
+l2_phy_\9a\8brçû_t
+ *
+bÚd_pÜt
+;
+
+1558
+u\9at32_t
+
+d\96ay_ms
+;
+
+1560
+bÚd_pÜt
+ =
+ `ifm_g\91_pÜt
+(
+bÚded_pÜt_id
+);
+
+1562 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1563
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+1564
+__FUNCTION__
+,
+__LINE__
+);
+
+1565 ià(
+USE_RTM_LOCKS
+)
+
+1566
+ `¹m_lock
+();
+
+1568
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1569 ià(
+bÚd_pÜt
+ =ð
+NULL
+) {
+
+1570 ià(
+ifm_debug
+ &
+IFM_DEBUG
+) {
+
+1571
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+1573 "\85Ü\88li¡.\n\r",
+__FUNCTION__
+,
+
+1574
+bÚded_pÜt_id
+);
+
+1576 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1577
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1578
+__FUNCTION__
+,
+__LINE__
+);
+
+1579 ià(
+USE_RTM_LOCKS
+)
+
+1580
+ `¹m_uÆock
+();
+
+1582
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1583 \15
+IFM_FAILURE
+;
+
+1585
+d\96ay_ms
+ =
+bÚd_pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_up_d\96ay_ms
+;
+
+1587 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1588
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1589
+__FUNCTION__
+,
+__LINE__
+);
+
+1590 ià(
+USE_RTM_LOCKS
+)
+
+1591
+ `¹m_uÆock
+();
+
+1593
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1594 \15
+d\96ay_ms
+;
+
+1595
+ }
+}
+
+ @VIL/l2l3_stack/hle.c
+
+16 \ 2
+ ~"tsx.h
+"
+
+18 \ 2
+ ~<xmm\9a\8c\9a.h
+>
+
+20 \1e
+ $hË_\9a\99
+(\1e)
+
+22
+mu\8bx_v®
+ = 0;
+
+23
+ }
+}
+
+25 \12
+ $hË_lock
+(\1e)
+
+27 \1f
+__©omic_exchªge_n
+
+
+28 (&
+mu\8bx_v®
+, 1,
+__ATOMIC_ACQUIRE
+ |
+__ATOMIC_HLE_ACQUIRE
+))
+
+29
+ `_mm_·u£
+();
+
+30 \15
+TRUE
+;
+
+31
+ }
+}
+
+33 \12
+ $hË_»Ëa£
+(\1e)
+
+35
+ `__©omic_¡Üe_n
+(&
+mu\8bx_v®
+, 0,
+
+36
+__ATOMIC_RELEASE
+ |
+__ATOMIC_HLE_RELEASE
+);
+
+37 \15
+TRUE
+;
+
+38
+ }
+}
+
+40 \12
+ $is_hË_locked
+(\1e)
+
+42 \15 (
+mu\8bx_v®
+ =ð0è?
+FALSE
+ :
+TRUE
+;
+
+43
+ }
+}
+
+ @VIL/l2l3_stack/hle.h
+
+17 \ 1
+ #HLE_TRUE
+ 1
+
+ )
+
+18 \ 1
+ #HLE_FALSE
+ 0
+
+ )
+
+20 vÞ©\9e\90\12
+ gmu\8bx_v®
+;
+
+25 \1e
+hË_mu\8bx
+(\1e);
+
+30 \12
+hË_lock
+(\1e);
+
+35 \12
+hË_»Ëa£
+(\1e);
+
+40 \12
+is_locked
+(\1e);
+
+ @VIL/l2l3_stack/interface.c
+
+16 \ 2
+ ~<\9a\8brçû.h
+>
+
+17 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+18 \ 2
+ ~<lib_¬p.h
+>
+
+19 \ 2
+ ~<tsx.h
+>
+
+21
+\9a\8brçû_ma\9a_t
+
+ gifm
+;
+
+22 \12
+ gUSE_RTM_LOCKS
+ = 0;
+
+23
+¹e_rwlock_t
+
+ grwlock
+;
+
+24
+u\9at8_t
+
+ gifm_debug
+;
+
+25 \18\12
+ g´ev_¡©e
+;
+
+27 \1e
+ $cÚfig_ifm_debug
+(\12
+dbg
+, \12
+æag
+)
+
+29 \1a
+dbg
+) {
+
+30 \ 4
+IFM_DEBUG_CONFIG
+:
+
+31 ià(
+æag
+) {
+
+32
+ifm_debug
+ |ð
+IFM_DEBUG_CONFIG
+;
+
+34
+ifm_debug
+ &ð~
+IFM_DEBUG_CONFIG
+;
+
+37 \ 4
+IFM_DEBUG_RXTX
+:
+
+38 ià(
+æag
+) {
+
+39
+ifm_debug
+ |ð
+IFM_DEBUG_RXTX
+;
+
+41
+ifm_debug
+ &ð~
+IFM_DEBUG_RXTX
+;
+
+44 \ 4
+IFM_DEBUG_LOCKS
+:
+
+45 ià(
+æag
+) {
+
+46
+ifm_debug
+ |ð
+IFM_DEBUG_LOCKS
+;
+
+48
+ifm_debug
+ &ð~
+IFM_DEBUG_LOCKS
+;
+
+51 \ 4
+IFM_DEBUG
+:
+
+52 ià(
+æag
+) {
+
+53
+ifm_debug
+ |ð
+IFM_DEBUG
+;
+
+55
+ifm_debug
+ &ð~
+IFM_DEBUG
+;
+
+59
+ }
+}
+
+61 \1e
+ $ifm_\9a\99
+(\1e)
+
+63 \12
+i
+ = 0;
+
+64
+ `cÚfig_ifm_debug
+(
+IFM_DEBUG_CONFIG
+, 1);
+
+65 ià(
+ `ÿn_u£_\9a\8bl_cÜe_4th_g\92_ã©u»s
+()) {
+
+66 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+67
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "TSX\82ot currently supported...\n\r");
+
+68
+USE_RTM_LOCKS
+ = 0;
+
+70 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+71
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "TSX\82ot supported\n\r");
+
+72
+USE_RTM_LOCKS
+ = 0;
+
+74 ià(
+USE_RTM_LOCKS
+)
+
+75
+ `¹m_\9a\99
+();
+
+77
+ `¹e_rwlock_\9a\99
+(&
+rwlock
+);
+
+79 \ f
+i
+ = 0; i <
+IFM_MAX_PORTARR_SZ
+; i++) {
+
+80 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+81
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+82
+__FUNCTION__
+,
+__LINE__
+);
+
+83 ià(
+USE_RTM_LOCKS
+)
+
+84
+ `¹m_lock
+();
+
+86
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+88
+ifm
+.
+pÜt_li¡
+[
+i
+] =
+NULL
+;
+
+89 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+90
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+91
+__FUNCTION__
+,
+__LINE__
+);
+
+92 ià(
+USE_RTM_LOCKS
+)
+
+93
+ `¹m_uÆock
+();
+
+95
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+97
+ifm
+.
+ÅÜt_\9at\9flized
+ =
+ `¹e_\91h_dev_couÁ
+();
+
+98
+ifm
+.
+ÅÜt_cÚfigu»d
+ = 0;
+
+99
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "IFM_INIT: Number of\85orts initialized during "
+
+100 "PCI\85rob\9ag %u.\n\r",
+ifm
+.
+ÅÜt_\9at\9flized
+);
+
+101
+ }
+}
+
+103 \1e
+ $ifm_»move_pÜt_d\91a\9es
+(
+u\9at8_t
+
+pÜtid
+)
+
+105 ià(
+ifm
+.
+pÜt_li¡
+[
+pÜtid
+] !ð
+NULL
+) {
+
+106 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+107
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring\86ock %d\n\r",
+
+108
+__FUNCTION__
+,
+__LINE__
+);
+
+109 ià(
+USE_RTM_LOCKS
+)
+
+110
+ `¹m_lock
+();
+
+112
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+113
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜtid
+];
+
+114
+ifm
+.
+pÜt_li¡
+[
+pÜtid
+] =
+NULL
+;
+
+115 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+116
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: NULL set for\85ort %u\n\r",
+
+117
+__FUNCTION__
+,
+pÜtid
+);
+
+118
+ `¹e_ä\93
+(
+pÜt
+);
+
+119 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+120
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+121
+__FUNCTION__
+,
+__LINE__
+);
+
+123 ià(
+USE_RTM_LOCKS
+)
+
+124
+ `¹m_uÆock
+();
+
+126
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+128 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+129
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+131 " i ®»ady NuÎ.\n\r",
+__FUNCTION__
+,
+pÜtid
+);
+
+133
+ }
+}
+
+135
+l2_phy_\9a\8brçû_t
+ *
+ $ifm_g\91_pÜt
+(
+u\9at8_t
+
+pÜt_id
+)
+
+137
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+NULL
+;
+
+138 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+139
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+140
+__LINE__
+);
+
+142 ià(
+USE_RTM_LOCKS
+)
+
+143
+ `¹m_lock
+();
+
+145
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+147
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+149 ià(
+pÜt
+ =ð
+NULL
+) {
+
+153 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+154
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+155
+__FUNCTION__
+,
+__LINE__
+);
+
+156 ià(
+USE_RTM_LOCKS
+)
+
+157
+ `¹m_uÆock
+();
+
+159
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+160 \15
+NULL
+;
+
+162 ià(
+pÜt
+->
+pmdid
+ =ð
+pÜt_id
+) {
+
+165 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+166
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+167
+__FUNCTION__
+,
+__LINE__
+);
+
+169 ià(
+USE_RTM_LOCKS
+)
+
+170
+ `¹m_uÆock
+();
+
+172
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+173 \15
+pÜt
+;
+
+180 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+181
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+182
+__LINE__
+);
+
+183 ià(
+USE_RTM_LOCKS
+)
+
+184
+ `¹m_uÆock
+();
+
+186
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+187 \15
+NULL
+;
+
+188
+ }
+}
+
+190
+l2_phy_\9a\8brçû_t
+ *
+ $ifm_g\91_f\9c¡_pÜt
+(\1e)
+
+192
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+NULL
+;
+
+193 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+194
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+195
+__LINE__
+);
+
+197 ià(
+USE_RTM_LOCKS
+)
+
+198
+ `¹m_lock
+();
+
+200
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+201
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[0];
+
+202 ià(
+pÜt
+ =ð
+NULL
+) {
+
+205 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+206
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+207
+__FUNCTION__
+,
+__LINE__
+);
+
+208 ià(
+USE_RTM_LOCKS
+)
+
+209
+ `¹m_uÆock
+();
+
+211
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+212 \15
+NULL
+;
+
+216 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+217
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+218
+__LINE__
+);
+
+219 ià(
+USE_RTM_LOCKS
+)
+
+220
+ `¹m_uÆock
+();
+
+222
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+223 \15
+pÜt
+;
+
+224
+ }
+}
+
+226
+l2_phy_\9a\8brçû_t
+ *
+ $ifm_g\91_Ãxt_pÜt
+(
+u\9at8_t
+
+pÜt_id
+)
+
+228
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+NULL
+;
+
+229 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+230
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+231
+__LINE__
+);
+
+232 ià(
+USE_RTM_LOCKS
+)
+
+233
+ `¹m_lock
+();
+
+235
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+236
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+ + 1];
+
+237 ià(
+pÜt
+ =ð
+NULL
+) {
+
+238 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+239
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+240
+__FUNCTION__
+,
+__LINE__
+);
+
+241 ià(
+USE_RTM_LOCKS
+)
+
+242
+ `¹m_uÆock
+();
+
+244
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+245 \15
+NULL
+;
+
+249 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+250
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+251
+__LINE__
+);
+
+253 ià(
+USE_RTM_LOCKS
+)
+
+254
+ `¹m_uÆock
+();
+
+256
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+257 \15
+pÜt
+;
+
+258
+ }
+}
+
+260
+l2_phy_\9a\8brçû_t
+ *
+ $ifm_g\91_pÜt_by_Çme
+(cڡ \ 5*
+Çme
+)
+
+262
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+NULL
+;
+
+263 \12
+i
+;
+
+264 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+265
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+266
+__LINE__
+);
+
+268 ià(
+USE_RTM_LOCKS
+)
+
+269
+ `¹m_lock
+();
+
+271
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+272 \ f
+i
+ = 0; i <
+RTE_MAX_ETHPORTS
+ &&
+ifm
+.
+pÜt_li¡
+[i]; i++) {
+
+273
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+i
+];
+
+274 ià(
+ `¡rcmp
+(
+Çme
+,
+pÜt
+->
+iâame
+) == 0) {
+
+275 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+276
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "FOUND!\85ort %u %s\n\r",
+
+277
+pÜt
+->
+pmdid
+,\85Üt->
+iâame
+);
+
+278 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+279
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+281
+__FUNCTION__
+,
+__LINE__
+);
+
+282 ià(
+USE_RTM_LOCKS
+)
+
+283
+ `¹m_uÆock
+();
+
+285
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+286 \15
+pÜt
+;
+
+289 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+290
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+291
+__LINE__
+);
+
+292 ià(
+USE_RTM_LOCKS
+)
+
+293
+ `¹m_uÆock
+();
+
+295
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+296 \15
+NULL
+;
+
+297
+ }
+}
+
+299 \1e
+ $lsi_ev\92t_ÿÎback
+(
+u\9at8_t
+
+pÜt_id
+, \f
+¹e_\91h_ev\92t_ty³
+
+ty³
+,
+
+300 \1e*
+·¿m
+)
+
+302 \19
+¹e_\91h_l\9ak
+
+l\9ak
+;
+
+303
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+304 \12
+nþ\9bÁs
+ =
+ifm
+.
+nþ\9bÁ
+;
+
+305 \12
+i
+;
+
+307
+ `RTE_SET_USED
+(
+·¿m
+);
+
+308
+ `RTE_SET_USED
+(
+ty³
+);
+
+310 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+311
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+312
+__FUNCTION__
+,
+__LINE__
+);
+
+313 ià(
+USE_RTM_LOCKS
+) {
+
+314
+ `¹m_lock
+();
+
+316
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+318
+ `¹e_\91h_l\9ak_g\91
+(
+pÜt_id
+, &
+l\9ak
+);
+
+319 \ f
+i
+ = 0; i <
+nþ\9bÁs
+; i++)
+
+320
+ifm
+.
+if_þ\9bÁ
+[
+i
+].
+ `cb_l\9akupd©e
+(
+pÜt_id
+,
+l\9ak
+.
+l\9ak_¡©us
+);
+
+321
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+322 ià(
+pÜt
+ =ð
+NULL
+) {
+
+323
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+325
+__FUNCTION__
+,
+pÜt_id
+);
+
+327 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+328 ià(
+l\9ak
+.
+l\9ak_¡©us
+) {
+
+329
+pÜt
+->
+l\9ak_¡©us
+ =
+IFM_ETH_LINK_UP
+;
+
+330
+pÜt
+->
+l\9ak_¥\93d
+ =
+l\9ak
+.link_speed;
+
+331
+pÜt
+->
+l\9ak_du¶ex
+ =
+l\9ak
+.link_duplex;
+
+332
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+334
+pÜt_id
+, (\1d)
+l\9ak
+.
+l\9ak_¥\93d
+,
+
+335 (
+l\9ak
+.
+l\9ak_du¶ex
+ ==
+
+336
+ETH_LINK_FULL_DUPLEX
+) ? ("full-duplex")
+
+338 ià(
+pÜt
+->
+æags
+ &
+IFM_MASTER
+) {
+
+339
+pÜt
+->
+æags
+ |ð
+IFM_BONDED
+;
+
+340
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+ =
+
+341
+ `¹e_\91h_bÚd_aùive_¦aves_g\91
+(
+pÜt
+->
+pmdid
+,
+
+342
+pÜt
+->
+
+343
+bÚd_cÚfig
+->
+
+344
+aùive_¦aves
+,
+
+345
+RTE_MAX_ETHPORTS
+);
+
+346 \19
+\91h\94_addr
+
+Ãw_mac
+;
+
+347
+ `¹e_\91h_maÿddr_g\91
+(
+pÜt
+->
+pmdid
+,
+
+348 (\19
+\91h\94_addr
+ *)
+
+349 &
+Ãw_mac
+);
+
+350 ià(
+memcmp
+
+
+351 (&
+Ãw_mac
+,
+pÜt
+->
+maÿddr
+,
+
+352 \17(\19
+\91h\94_addr
+))) {
+
+353
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+355
+pÜt
+->
+pmdid
+);
+
+357
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+359
+pÜt
+->
+pmdid
+);
+
+362 ià(
+pÜt
+->
+æags
+ &
+IFM_SLAVE
+) {
+
+363
+u\9at8_t
+
+ma¡\94_pÜtid
+ =
+
+364
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+;
+
+365 \19
+¹e_\91h_l\9ak
+
+l\9ak¡©us
+;
+
+366
+ `¹e_\91h_l\9ak_g\91
+(
+ma¡\94_pÜtid
+, &
+l\9ak¡©us
+);
+
+367
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "PÜ\88%u ' Ma¡\94(%uè¡©u i %u\n\r",
+pÜt_id
+,
+
+368
+ma¡\94_pÜtid
+,
+l\9ak¡©us
+.
+l\9ak_¡©us
+);
+
+370 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+371
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+373
+__FUNCTION__
+,
+__LINE__
+);
+
+375 ià(
+USE_RTM_LOCKS
+) {
+
+376
+ `¹m_uÆock
+();
+
+378
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+380 ià(
+pÜt
+->
+\9dv4_li¡
+ !ð
+NULL
+) {
+
+381 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+382
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+384
+pÜt
+->
+pmdid
+);
+
+385 ià(!
+´ev_¡©e
+) {
+
+386
+ `£nd_g¿tu\99ous_¬p
+(
+pÜt
+);
+
+387
+´ev_¡©e
+ = 1;
+
+392 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+393
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+395
+pÜt
+->
+pmdid
+);
+
+399 ià(
+pÜt
+->
+æags
+ &
+IFM_MASTER
+) {
+
+400
+pÜt
+->
+æags
+ &ð~
+IFM_BONDED
+;
+
+403
+pÜt
+->
+l\9ak_¡©us
+ =
+IFM_ETH_LINK_DOWN
+;
+
+404
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "EVENT-- PORT %u is Link DOWN.\n",
+
+405
+pÜt_id
+);
+
+406 ià(
+pÜt
+->
+æags
+ &
+IFM_SLAVE
+) {
+
+407 \19
+¹e_\91h_l\9ak
+
+l\9ak¡©us
+;
+
+408
+u\9at8_t
+
+ma¡\94_pÜtid
+ =
+
+409
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+;
+
+410
+ `¹e_\91h_l\9ak_g\91_nowa\99
+(
+ma¡\94_pÜtid
+,
+
+411 &
+l\9ak¡©us
+);
+
+412
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+414
+pÜt_id
+,
+ma¡\94_pÜtid
+,
+
+415
+l\9ak¡©us
+.
+l\9ak_¡©us
+);
+
+417 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+418
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+420
+__FUNCTION__
+,
+__LINE__
+);
+
+421 ià(
+USE_RTM_LOCKS
+) {
+
+422
+ `¹m_uÆock
+();
+
+424
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+426
+´ev_¡©e
+ = 0;
+
+430
+ }
+}
+
+432 \1e
+ $ifm_upd©e_l\9ak¡©us
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at16_t
+
+l\9ak¡©us
+)
+
+434 \19
+¹e_\91h_l\9ak
+
+l\9ak
+;
+
+435
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+436 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+437
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+438
+__LINE__
+);
+
+440 ià(
+USE_RTM_LOCKS
+) {
+
+441
+ `¹m_lock
+();
+
+443
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+445
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+447 ià(
+pÜt
+ =ð
+NULL
+) {
+
+448
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+450
+__FUNCTION__
+,
+pÜt_id
+);
+
+452 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+453
+ `¹e_\91h_l\9ak_g\91
+(
+pÜt_id
+, &
+l\9ak
+);
+
+454 ià(
+l\9ak¡©us
+ =ð
+IFM_ETH_LINK_UP
+) {
+
+455
+pÜt
+->
+adm\9a_¡©us
+ =
+IFM_ETH_LINK_UP
+;
+
+456 if(!
+l\9ak
+.
+l\9ak_¡©us
+) {
+
+457 ià(
+ `¹e_\91h_dev_£t_l\9ak_up
+(
+pÜt_id
+) < 0) {
+
+458
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+460
+__FUNCTION__
+,
+pÜt
+->
+pmdid
+);
+
+462 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+463
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+465
+__FUNCTION__
+,
+__LINE__
+);
+
+467 ià(
+USE_RTM_LOCKS
+) {
+
+468
+ `¹m_uÆock
+();
+
+470
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+472 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+473
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+475
+__FUNCTION__
+,
+pÜt
+->
+pmdid
+);
+
+476
+ `£nd_g¿tu\99ous_¬p
+(
+pÜt
+);
+
+480 } \vià(
+l\9ak¡©us
+ =ð
+IFM_ETH_LINK_DOWN
+)
+
+482 \12
+¡©us
+;
+
+483
+pÜt
+->
+adm\9a_¡©us
+ =
+IFM_ETH_LINK_DOWN
+;
+
+485 if(
+l\9ak
+.
+l\9ak_¡©us
+) {
+
+486
+¡©us
+ =
+ `¹e_\91h_dev_£t_l\9ak_down
+(
+pÜt_id
+);
+
+487 ià(
+¡©us
+ < 0)
+
+489
+ `´\9atf
+("(%"
+PRIu32
+ "): PMD set\86ink down... continuing...%"
+
+490
+PRId32
+ "\n",
+pÜt_id
+,
+¡©us
+);
+
+495 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+496
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+497
+__LINE__
+);
+
+499 ià(
+USE_RTM_LOCKS
+) {
+
+500
+ `¹m_uÆock
+();
+
+502
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+504
+ }
+}
+
+506 \1e
+ $ifm_£t_l2_\9a\8brçû_mtu
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at16_t
+
+mtu
+)
+
+508 \12
+»t
+;
+
+509
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+510
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+511 ià(
+pÜt
+ =ð
+NULL
+) {
+
+512
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+514
+__FUNCTION__
+,
+pÜt_id
+);
+
+517 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+518
+»t
+ =
+ `¹e_\91h_dev_£t_mtu
+(
+pÜt_id
+,
+mtu
+);
+
+519 ià(
+»t
+ != 0)
+
+520
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+522
+»t
+);
+
+524 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+525
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+527
+__FUNCTION__
+,
+__LINE__
+);
+
+529 ià(
+USE_RTM_LOCKS
+) {
+
+530
+ `¹m_lock
+();
+
+532
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+534
+pÜt
+->
+mtu
+ = mtu;
+
+535 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+536
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+538
+__FUNCTION__
+,
+__LINE__
+);
+
+540 ià(
+USE_RTM_LOCKS
+) {
+
+541
+ `¹m_uÆock
+();
+
+543
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+548
+ }
+}
+
+550 \1e
+ $ifm_£t_pÜt_´omisc
+(
+u\9at8_t
+
+pÜt_id
+, u\9at8_\88
+\92abË
+)
+
+552
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+553 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+554
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+555
+__FUNCTION__
+,
+__LINE__
+);
+
+556 ià(
+USE_RTM_LOCKS
+) {
+
+557
+ `¹m_lock
+();
+
+559
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+561
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+562 ià(
+pÜt
+ =ð
+NULL
+) {
+
+563
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+565
+__FUNCTION__
+,
+pÜt_id
+);
+
+567 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+568 ià(
+\92abË
+ == 1) {
+
+569
+ `¹e_\91h_´omiscuous_\92abË
+(
+pÜt_id
+);
+
+570
+pÜt
+->
+´omisc
+ = 1;
+
+572
+ `¹e_\91h_´omiscuous_di§bË
+(
+pÜt_id
+);
+
+573
+pÜt
+->
+´omisc
+ = 0;
+
+576 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+577
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+578
+__FUNCTION__
+,
+__LINE__
+);
+
+579 ià(
+USE_RTM_LOCKS
+) {
+
+580
+ `¹m_uÆock
+();
+
+582
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+584
+ }
+}
+
+586
+\9at32_t
+
+ $ifm_g\91_Çùive_pÜts
+(\1e)
+
+588 \15
+ifm
+.
+ÅÜt_cÚfigu»d
+;
+
+589
+ }
+}
+
+591
+\9at32_t
+
+ $ifm_g\91_ÅÜts_\9a\99\9flized
+(\1e)
+
+593 \15
+ifm
+.
+ÅÜt_\9at\9flized
+;
+
+594
+ }
+}
+
+596
+u\9at16_t
+
+ $ifm_»ûive_bulk_pkts
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at16_t
+
+qid
+,
+
+597 \19
+¹e_mbuf
+ **
+rx_pkts
+)
+
+599
+u\9at64_t
+
+no_of_rcvd_pkt
+;
+
+600
+no_of_rcvd_pkt
+ =
+
+601
+ `¹e_\91h_rx_bur¡
+(
+pÜt_id
+,
+qid
+,
+rx_pkts
+,
+IFM_BURST_SIZE
+);
+
+602 ià(
+ifm_debug
+ &
+IFM_DEBUG_RXTX
+)
+
+603
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+605
+pÜt_id
+,
+no_of_rcvd_pkt
+);
+
+606 \15
+no_of_rcvd_pkt
+;
+
+607
+ }
+}
+
+609
+u\9at16_t
+
+ $ifm_\8cªsm\99_bulk_pkts
+(
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+,
+
+610 \19
+¹e_mbuf
+ **
+tx_pkts
+,
+u\9at64_t
+
+Åkts
+)
+
+612
+u\9at32_t
+
+bur¡_tx_d\96ay_time
+ =
+IFM_BURST_TX_WAIT_US
+;
+
+613
+u\9at32_t
+
+bur¡_tx_»\8cy_num
+ =
+IFM_BURST_TX_RETRIES
+;
+
+614
+u\9at32_t
+
+»\8cy
+;
+
+615
+u\9at32_t
+
+no_of_tx_pkt
+;
+
+616 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+617
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+618
+__FUNCTION__
+,
+__LINE__
+);
+
+619 ià(
+USE_RTM_LOCKS
+) {
+
+620
+ `¹m_lock
+();
+
+622
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+624
+no_of_tx_pkt
+ =
+ `¹e_\91h_tx_bur¡
+(
+pÜt
+->
+pmdid
+,
+IFM_TX_DEFAULT_Q
+,
+tx_pkts
+,
+
+625
+Åkts
+);
+
+626 ià(
+ `uÆik\96y
+(
+no_of_tx_pkt
+ <
+Åkts
+)) {
+
+627
+»\8cy
+ = 0;
+
+628 \1f
+no_of_tx_pkt
+ <
+IFM_BURST_SIZE
+
+
+629 &&
+»\8cy
+++ <
+bur¡_tx_»\8cy_num
+) {
+
+630
+ `¹e_d\96ay_us
+(
+bur¡_tx_d\96ay_time
+);
+
+631
+no_of_tx_pkt
+ =
+
+632
+ `¹e_\91h_tx_bur¡
+(
+pÜt
+->
+pmdid
+,
+IFM_TX_DEFAULT_Q
+,
+
+633 &
+tx_pkts
+[
+no_of_tx_pkt
+],
+
+634
+IFM_BURST_SIZE
+ -
+no_of_tx_pkt
+);
+
+637 ià(
+ifm_debug
+ &
+IFM_DEBUG_RXTX
+)
+
+638
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+640
+no_of_tx_pkt
+);
+
+641 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+642
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+643
+__FUNCTION__
+,
+__LINE__
+);
+
+644 ià(
+USE_RTM_LOCKS
+) {
+
+645
+ `¹m_uÆock
+();
+
+647
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+649 \15
+no_of_tx_pkt
+;
+
+650
+ }
+}
+
+652 \12
+ $ifm_\8cªsm\99_s\9agË_pkt
+(
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+, \19
+¹e_mbuf
+ *
+tx_pkts
+)
+
+654
+u\9at64_t
+
+tx_Åkts
+ = 0;
+
+655 ià(
+tx_pkts
+ =ð
+NULL
+ ||
+pÜt
+ == NULL) {
+
+656
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+658 \15
+IFM_FAILURE
+;
+
+660 ià(
+ifm_debug
+ &
+IFM_DEBUG_RXTX
+)
+
+661
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+663
+pÜt
+->
+pmdid
+);
+
+664 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+665
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+666
+__FUNCTION__
+,
+__LINE__
+);
+
+668 ià(
+USE_RTM_LOCKS
+) {
+
+669
+ `¹m_lock
+();
+
+671
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+673
+tx_Åkts
+ =
+
+674
+ `¹e_\91h_tx_bufãr
+(
+pÜt
+->
+pmdid
+,
+IFM_TX_DEFAULT_Q
+,\85Üt->
+tx_bufãr
+,
+
+675
+tx_pkts
+);
+
+676 ià(
+ifm_debug
+ &
+IFM_DEBUG_RXTX
+)
+
+677
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+679
+pÜt
+->
+pmdid
+,
+tx_Åkts
+);
+
+680 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+681
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RW\86ock @ %d\n\r",
+
+682
+__FUNCTION__
+,
+__LINE__
+);
+
+684 ià(
+USE_RTM_LOCKS
+) {
+
+685
+ `¹m_uÆock
+();
+
+687
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+689 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+690
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock @ %d\n\r",
+
+691
+__FUNCTION__
+,
+__LINE__
+);
+
+693 ià(
+USE_RTM_LOCKS
+) {
+
+694
+ `¹m_lock
+();
+
+696
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+698
+pÜt
+->
+n_txpkts
+ +=
+
+699
+ `¹e_\91h_tx_bufãr_æush
+(
+pÜt
+->
+pmdid
+,
+IFM_TX_DEFAULT_Q
+,
+
+700
+pÜt
+->
+tx_bufãr
+);
+
+701 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+702
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock @ %d\n\r",
+
+703
+__FUNCTION__
+,
+__LINE__
+);
+
+705 ià(
+USE_RTM_LOCKS
+) {
+
+706
+ `¹m_uÆock
+();
+
+708
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+710 ià(
+ifm_debug
+ &
+IFM_DEBUG_RXTX
+)
+
+711
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+713
+pÜt
+->
+n_txpkts
+);
+
+714 \15
+tx_Åkts
+;
+
+715
+ }
+}
+
+717
+\9at16_t
+
+ $ifm_add_\9dv4_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9daddr
+, u\9at32_\88
+add¾\92
+)
+
+719
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+720
+\9dv4li¡_t
+ *
+\9dcÚf
+;
+
+721 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+722
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+723
+__LINE__
+);
+
+725 ià(
+USE_RTM_LOCKS
+) {
+
+726
+ `¹m_lock
+();
+
+728
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+730
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+731 ià(
+pÜt
+ =ð
+NULL
+) {
+
+732
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+734
+__FUNCTION__
+,
+pÜt_id
+);
+
+736 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+737
+\9dcÚf
+ = (
+\9dv4li¡_t
+ *è
+ `¹e_zm®loc
+(
+NULL
+, \17(ipv4list_t),
+
+738
+RTE_CACHE_LINE_SIZE
+);
+
+739 ià(
+\9dcÚf
+ !ð
+NULL
+) {
+
+740
+\9dcÚf
+->
+Ãxt
+ =
+NULL
+;
+
+742
+\9dcÚf
+->
+\9daddr
+ = ipaddr;
+
+743
+\9dcÚf
+->
+pÜt
+ =\85ort;
+
+744
+\9dcÚf
+->
+add¾\92
+ =\87ddrlen;
+
+745 ià(
+pÜt
+->
+\9dv4_li¡
+ =ð
+NULL
+)
+
+746
+pÜt
+->
+æags
+ |ð
+IFM_IPV4_ENABLED
+;
+
+747
+\9dcÚf
+->
+Ãxt
+ = (
+\9dv4li¡_t
+ *è
+pÜt
+->
+\9dv4_li¡
+;
+
+748
+pÜt
+->
+\9dv4_li¡
+ = (
+\9dv4li¡_t
+ *è
+\9dcÚf
+;
+
+749 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+750
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+752
+__FUNCTION__
+,
+__LINE__
+);
+
+754 ià(
+USE_RTM_LOCKS
+) {
+
+755
+ `¹m_uÆock
+();
+
+757
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+762 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+763
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+764
+__LINE__
+);
+
+766 ià(
+USE_RTM_LOCKS
+) {
+
+767
+ `¹m_uÆock
+();
+
+769
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+772
+ }
+}
+
+774
+\9at16_t
+
+ $ifm_»move_\9dv4_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9daddr
+,
+
+775
+u\9at32_t
+
+add¾\92
+)
+
+777
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+778
+\9dv4li¡_t
+ *
+\9dli¡
+, *
+´ev\9dli¡
+ =
+NULL
+;
+
+779 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+780
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+781
+__LINE__
+);
+
+783 ià(
+USE_RTM_LOCKS
+) {
+
+784
+ `¹m_lock
+();
+
+786
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+788
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+789 ià(
+pÜt
+ =ð
+NULL
+) {
+
+790
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+792
+__FUNCTION__
+,
+pÜt_id
+);
+
+794 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+795 ià(
+pÜt
+->
+\9dv4_li¡
+ =ð
+NULL
+) {
+
+796 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+797
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+799
+__FUNCTION__
+,
+__LINE__
+);
+
+801 ià(
+USE_RTM_LOCKS
+) {
+
+802
+ `¹m_uÆock
+();
+
+804
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+808
+\9dli¡
+ = (
+\9dv4li¡_t
+ *è
+pÜt
+->
+\9dv4_li¡
+;
+
+809 \1f
+\9dli¡
+ !ð
+NULL
+) {
+
+810 ià(
+add¾\92
+ =ð
+\9dli¡
+->addrlen &&
+
+811
+ `memýy
+(&
+\9dli¡
+->
+\9daddr
+, &\9daddr,
+add¾\92
+)) {
+
+812 ià(
+\9dli¡
+ =ð
+pÜt
+->
+\9dv4_li¡
+) {
+
+813
+pÜt
+->
+\9dv4_li¡
+ =
+\9dli¡
+->
+Ãxt
+;
+
+815 ià(
+´ev\9dli¡
+ !ð
+NULL
+)
+
+816
+´ev\9dli¡
+->
+Ãxt
+ =
+\9dli¡
+->next;
+
+818
+pÜt
+->
+æags
+ &ð~
+IFM_IPV4_ENABLED
+;
+
+819
+ `¹e_ä\93
+(
+\9dli¡
+);
+
+820 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+821
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+823
+__FUNCTION__
+,
+__LINE__
+);
+
+825 ià(
+USE_RTM_LOCKS
+) {
+
+826
+ `¹m_uÆock
+();
+
+828
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+832
+´ev\9dli¡
+ =
+\9dli¡
+;
+
+833
+\9dli¡
+ = i¶i¡->
+Ãxt
+;
+
+837 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+838
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+839
+__LINE__
+);
+
+841 ià(
+USE_RTM_LOCKS
+) {
+
+842
+ `¹m_uÆock
+();
+
+844
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+847
+ }
+}
+
+849
+\9at8_t
+
+ $ifm_add_\9dv6_pÜt
+(
+u\9at8_t
+
+pÜt_id
+, u\9at8_\88
+\9d6addr
+[],
+u\9at32_t
+
+add¾\92
+)
+
+851
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+852
+\9dv6li¡_t
+ *
+\9d6cÚf
+;
+
+853 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+854
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+855
+__LINE__
+);
+
+857 ià(
+USE_RTM_LOCKS
+) {
+
+858
+ `¹m_lock
+();
+
+860
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+862
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+863 ià(
+pÜt
+ =ð
+NULL
+) {
+
+864
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+866
+__FUNCTION__
+,
+pÜt_id
+);
+
+868 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+869
+\9d6cÚf
+ = (
+\9dv6li¡_t
+ *è
+ `¹e_zm®loc
+(
+NULL
+, \17(ipv6list_t),
+
+870
+RTE_CACHE_LINE_SIZE
+);
+
+871 ià(
+\9d6cÚf
+ !ð
+NULL
+) {
+
+872
+\9d6cÚf
+->
+Ãxt
+ =
+NULL
+;
+
+873
+ `memýy
+(
+\9d6cÚf
+->
+\9daddr
+,
+\9d6addr
+,
+IFM_IPV6_ADDR_SIZE
+);
+
+874
+\9d6cÚf
+->
+pÜt
+ =\85ort;
+
+875
+\9d6cÚf
+->
+add¾\92
+ =\87ddrlen;
+
+877 ià(
+pÜt
+->
+\9dv6_li¡
+ =ð
+NULL
+) {
+
+878
+pÜt
+->
+æags
+ |ð
+IFM_IPV6_ENABLED
+;
+
+880
+\9d6cÚf
+->
+Ãxt
+ = (
+\9dv6li¡_t
+ *è
+pÜt
+->
+\9dv6_li¡
+;
+
+881
+pÜt
+->
+\9dv6_li¡
+ = (
+\9dv6li¡_t
+ *è
+\9d6cÚf
+;
+
+882 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+883
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+885
+__FUNCTION__
+,
+__LINE__
+);
+
+887 ià(
+USE_RTM_LOCKS
+) {
+
+888
+ `¹m_uÆock
+();
+
+890
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+895 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+896
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+897
+__LINE__
+);
+
+899 ià(
+USE_RTM_LOCKS
+) {
+
+900
+ `¹m_uÆock
+();
+
+902
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+905
+ }
+}
+
+907
+\9at16_t
+
+ $ifm_»move_\9dv6_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d6addr
+,
+
+908
+u\9at32_t
+
+add¾\92
+)
+
+910
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+911
+\9dv6li¡_t
+ *
+\9d6li¡
+, *
+´ev\9d6li¡
+ =
+NULL
+;
+
+913 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+914
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acqu\9c\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+915
+__LINE__
+);
+
+916 ià(
+USE_RTM_LOCKS
+)
+
+917
+ `¹m_lock
+();
+
+919
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+920
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+921 ià(
+pÜt
+ =ð
+NULL
+) {
+
+922 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+923
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+924
+__FUNCTION__
+,
+__LINE__
+);
+
+925 ià(
+USE_RTM_LOCKS
+) {
+
+926
+ `¹m_uÆock
+();
+
+928
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+930
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+932
+__FUNCTION__
+,
+pÜt_id
+);
+
+934 ià(
+pÜt
+ !ð
+NULL
+ &&\85Üt->
+pmdid
+ =ð
+pÜt_id
+) {
+
+935 ià(
+pÜt
+->
+\9dv6_li¡
+ =ð
+NULL
+) {
+
+936 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+937
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+939
+__FUNCTION__
+,
+__LINE__
+);
+
+941 ià(
+USE_RTM_LOCKS
+) {
+
+942
+ `¹m_uÆock
+();
+
+944
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+948
+\9d6li¡
+ = (
+\9dv6li¡_t
+ *è
+pÜt
+->
+\9dv6_li¡
+;
+
+949 \1f
+\9d6li¡
+ !ð
+NULL
+) {
+
+950 ià(
+add¾\92
+ =ð
+\9d6li¡
+->addrlen &&
+
+951
+ `memýy
+(&
+\9d6li¡
+->
+\9daddr
+, &
+\9d6addr
+,
+add¾\92
+)) {
+
+952 ià(
+\9d6li¡
+ =ð
+pÜt
+->
+\9dv6_li¡
+) {
+
+953
+pÜt
+->
+\9dv6_li¡
+ =
+\9d6li¡
+->
+Ãxt
+;
+
+955 ià(
+´ev\9d6li¡
+ !ð
+NULL
+)
+
+956
+´ev\9d6li¡
+->
+Ãxt
+ =
+
+957
+\9d6li¡
+->
+Ãxt
+;
+
+959
+pÜt
+->
+æags
+ &ð~
+IFM_IPV6_ENABLED
+;
+
+960
+ `¹e_ä\93
+(
+\9d6li¡
+);
+
+961 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+962
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+964
+__FUNCTION__
+,
+__LINE__
+);
+
+966 ià(
+USE_RTM_LOCKS
+) {
+
+967
+ `¹m_uÆock
+();
+
+969
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+973
+´ev\9d6li¡
+ =
+\9d6li¡
+;
+
+974
+\9d6li¡
+ = ip6li¡->
+Ãxt
+;
+
+978 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+979
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: R\96\97s\9ag\86ock @ %d\n\r",
+__FUNCTION__
+,
+
+980
+__LINE__
+);
+
+981 ià(
+USE_RTM_LOCKS
+)
+
+982
+ `¹m_uÆock
+();
+
+984
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+986
+ }
+}
+
+988
+\9at32_t
+
+ $ifm_chk_pÜt_\9dv4_\92abËd
+(
+u\9at8_t
+
+pÜt_id
+)
+
+990
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+992 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+993
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+994
+__FUNCTION__
+,
+__LINE__
+);
+
+995 ià(
+USE_RTM_LOCKS
+)
+
+996
+ `¹m_lock
+();
+
+998
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+999
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+1000 ià(
+pÜt
+ =ð
+NULL
+) {
+
+1001
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+1003
+__FUNCTION__
+,
+pÜt_id
+);
+
+1004 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1005
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+1006
+__FUNCTION__
+,
+__LINE__
+);
+
+1007 ià(
+USE_RTM_LOCKS
+)
+
+1008
+ `¹m_uÆock
+();
+
+1010
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1011 \15
+IFM_FAILURE
+;
+
+1013 ià((
+pÜt
+->
+æags
+ &
+IFM_IPV4_ENABLED
+) == 0) {
+
+1014 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1015
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+1016
+__FUNCTION__
+,
+__LINE__
+);
+
+1017 ià(
+USE_RTM_LOCKS
+)
+
+1018
+ `¹m_uÆock
+();
+
+1020
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1023 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1024
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing\86ock @ %d\n\r",
+
+1025
+__FUNCTION__
+,
+__LINE__
+);
+
+1026 ià(
+USE_RTM_LOCKS
+)
+
+1027
+ `¹m_uÆock
+();
+
+1029
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1032
+ }
+}
+
+1034
+\9at32_t
+
+ $ifm_chk_pÜt_\9dv6_\92abËd
+(
+u\9at8_t
+
+pÜt_id
+)
+
+1036
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+1038 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1039
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RD\86ock @ %d\n\r",
+
+1040
+__FUNCTION__
+,
+__LINE__
+);
+
+1041 ià(
+USE_RTM_LOCKS
+)
+
+1042
+ `¹m_lock
+();
+
+1044
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1046
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+];
+
+1047 ià(
+pÜt
+ =ð
+NULL
+) {
+
+1048 ià(
+ifm_debug
+ &
+IFM_DEBUG
+)
+
+1049
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Port %u info\82ot found..."
+
+1051
+__FUNCTION__
+,
+pÜt_id
+);
+
+1052 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1053
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1054
+__FUNCTION__
+,
+__LINE__
+);
+
+1055 ià(
+USE_RTM_LOCKS
+)
+
+1056
+ `¹m_uÆock
+();
+
+1058
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1059 \15
+IFM_FAILURE
+;
+
+1061 ià((
+pÜt
+->
+æags
+ &
+IFM_IPV6_ENABLED
+) == 0) {
+
+1062 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1063
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1064
+__FUNCTION__
+,
+__LINE__
+);
+
+1065 ià(
+USE_RTM_LOCKS
+)
+
+1066
+ `¹m_uÆock
+();
+
+1068
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1071 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1072
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RD\86ock @ %d\n\r",
+
+1073
+__FUNCTION__
+,
+__LINE__
+);
+
+1074 ià(
+USE_RTM_LOCKS
+)
+
+1075
+ `¹m_uÆock
+();
+
+1077
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1080
+ }
+}
+
+1082 \1e
+ $ifm_»gi¡\94_fÜ_l\9akupd©e
+(
+u\9at32_t
+
+þ\9bÁid
+,
+
+1083 \1e(*
+cb_l\9akupd©e
+è(
+u\9at8_t
+, \1d\12))
+
+1085
+ifm
+.
+if_þ\9bÁ
+[ifm.
+nþ\9bÁ
+].
+cb_l\9akupd©e
+ = cb_linkupdate;
+
+1086
+ifm
+.
+if_þ\9bÁ
+[ifm.
+nþ\9bÁ
+].
+þ\9bÁid
+ = clientid;
+
+1087
+ifm
+.
+nþ\9bÁ
+++;
+
+1088
+ }
+}
+
+1090 \12
+ $ifm_pÜt_£tup
+(
+u\9at8_t
+
+pÜt_id
+,
+pÜt_cÚfig_t
+ *
+pcÚfig
+)
+
+1092 \12
+¡©us
+,
+sock
+;
+
+1093 \ 5
+buf
+[12];
+
+1094 \19
+¹e_\91h_dev_\9afo
+
+dev_\9afo
+;
+
+1095 \19
+¹e_\91h_l\9ak
+
+l\9ak¡©us
+;
+
+1096
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+NULL
+;
+
+1098 ià(!
+ifm
+.
+ÅÜt_\9at\9flized
+) {
+
+1099
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o configure\85ort %u. 0\85orts"
+
+1101
+__FUNCTION__
+,
+pÜt_id
+);
+
+1102 \15
+IFM_FAILURE
+;
+
+1104 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+1105
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Configuring\85ort %u with "
+
+1106 "Äxq: %u,\82txq: %u\n\r",
+__FUNCTION__
+,
+
+1107
+pÜt_id
+,
+pcÚfig
+->
+Äx_queue
+,\85cÚfig->
+Áx_queue
+);
+
+1108 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1109
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock1 @ %d\n\r",
+
+1110
+__FUNCTION__
+,
+__LINE__
+);
+
+1111 ià(
+USE_RTM_LOCKS
+)
+
+1112
+ `¹m_lock
+();
+
+1114
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1116 ià(
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+] =ð
+NULL
+) {
+
+1117
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+] =
+
+1118 (
+l2_phy_\9a\8brçû_t
+ *è
+ `¹e_zm®loc
+(
+NULL
+,
+
+1120 (
+l2_phy_\9a\8brçû_t
+),
+
+1121
+RTE_CACHE_LINE_SIZE
+);
+
+1122
+ifm
+.
+pÜt_li¡
+[
+pÜt_id
+]->
+pmdid
+ =\85ort_id;
+
+1124 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1125
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock1 @ %d\n\r",
+
+1126
+__FUNCTION__
+,
+__LINE__
+);
+
+1127 ià(
+USE_RTM_LOCKS
+)
+
+1128
+ `¹m_uÆock
+();
+
+1130
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1132
+ `¹e_\91h_l\9ak_g\91
+(
+pÜt_id
+, &
+l\9ak¡©us
+);
+
+1133 ià(
+l\9ak¡©us
+.
+l\9ak_¡©us
+) {
+
+1134 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+) {
+
+1135
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: %u is up.Stop it before"
+
+1136 "\84ecÚfigur\9ag.\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1138
+ `¹e_\91h_dev_¡Ý
+(
+pÜt_id
+);
+
+1141
+¡©us
+ =
+ `¹e_\91h_dev_cÚfigu»
+(
+pÜt_id
+,
+pcÚfig
+->
+Äx_queue
+,
+
+1142
+pcÚfig
+->
+Áx_queue
+, &pcÚfig->
+pÜt_cÚf
+);
+
+1143 ià(
+¡©us
+ < 0) {
+
+1144
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1145
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_eth_dev_configure is failed"
+
+1146 "f܅܈%u.\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1147 \15
+IFM_FAILURE
+;
+
+1149
+¡©us
+ =
+ `¹e_\91h_dev_ÿÎback_»gi¡\94
+(
+pÜt_id
+,
+
+1150
+RTE_ETH_EVENT_INTR_LSC
+,
+
+1151
+lsi_ev\92t_ÿÎback
+,
+NULL
+);
+
+1152 ià(
+¡©us
+ < 0) {
+
+1153
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1154
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_eth_dev_callback_register()"
+
+1155 " fa\9eed fÜ\85Ü\88%u.\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1156 \15
+IFM_FAILURE
+;
+
+1159 ià(
+pcÚfig
+->
+´omisc
+)
+
+1160
+ `¹e_\91h_´omiscuous_\92abË
+(
+pÜt_id
+);
+
+1162
+sock
+ =
+ `¹e_\91h_dev_sock\91_id
+(
+pÜt_id
+);
+
+1163 ià(
+sock
+ == -1)
+
+1164
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Warning:\84te_eth_dev_socket_id,"
+
+1166 "ou\88oà¿ng\90%u\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1168 \12
+Áxqs
+;
+
+1169 \ f
+Áxqs
+ = 0;\82txq <
+pcÚfig
+->
+Áx_queue
+;\82txqs++) {
+
+1170
+¡©us
+ =
+ `¹e_\91h_tx_queue_£tup
+(
+pÜt_id
+,
+Áxqs
+,
+
+1171
+IFM_TX_DESC_DEFAULT
+,
+sock
+,
+
+1172 &(
+pcÚfig
+->
+tx_cÚf
+));
+
+1173 ià(
+¡©us
+ < 0) {
+
+1174
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1175
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_eth_tx_queue_setup failed"
+
+1176 " f܅܈%u\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1177 \15
+IFM_FAILURE
+;
+
+1180
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+pÜt_id
+);
+
+1181 ià(
+pÜt
+ =ð
+NULL
+) {
+
+1182
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: PÜ\88i NULL @ %d\n\r",
+__FUNCTION__
+,
+
+1183
+__LINE__
+);
+
+1184 \15
+IFM_FAILURE
+;
+
+1187 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1188
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock 2 @ %d\n\r",
+
+1189
+__FUNCTION__
+,
+__LINE__
+);
+
+1190 ià(
+USE_RTM_LOCKS
+)
+
+1191
+ `¹m_lock
+();
+
+1193
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1195 ià(
+pÜt
+->
+tx_buf_Ën
+ == 0) {
+
+1196
+pÜt
+->
+tx_buf_Ën
+ =
+ `RTE_ETH_TX_BUFFER_SIZE
+(
+IFM_BURST_SIZE
+);
+
+1198
+pÜt
+->
+tx_bufãr
+ =
+ `¹e_zm®loc_sock\91
+("tx_bufãr",\85Üt->
+tx_buf_Ën
+, 0,
+
+1199
+ `¹e_\91h_dev_sock\91_id
+(
+pÜt_id
+));
+
+1201 ià(
+pÜt
+->
+tx_bufãr
+ =ð
+NULL
+) {
+
+1202
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1203
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Failed\81o\87llocate\81x buffers for"
+
+1204 "\85Ü\88%u\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1205 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1206
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock2 %d\n\r",
+
+1207
+__FUNCTION__
+,
+__LINE__
+);
+
+1208 ià(
+USE_RTM_LOCKS
+)
+
+1209
+ `¹m_uÆock
+();
+
+1211
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1212 \15
+IFM_FAILURE
+;
+
+1214
+ `¹e_\91h_tx_bufãr_\9a\99
+(
+pÜt
+->
+tx_bufãr
+,
+IFM_BURST_SIZE
+);
+
+1216
+ `¥r\9atf
+(
+buf
+, "MEMPOOL%d",
+pÜt_id
+);
+
+1217
+pÜt
+->
+mempoÞ
+ =
+ `¹e_mempoÞ_ü\97\8b
+(
+buf
+,
+
+1218
+pcÚfig
+->
+mempoÞ
+.
+poÞ_size
+,
+
+1219
+pcÚfig
+->
+mempoÞ
+.
+bufãr_size
+,
+
+1220
+pcÚfig
+->
+mempoÞ
+.
+ÿche_size
+,
+
+1222
+¹e_pktmbuf_poÞ_´iv©e
+),
+
+1223
+¹e_pktmbuf_poÞ_\9a\99
+,
+NULL
+,
+
+1224
+¹e_pktmbuf_\9a\99
+,
+NULL
+,
+sock
+, 0);
+
+1225 ià(
+pÜt
+->
+mempoÞ
+ =ð
+NULL
+) {
+
+1226
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1227
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_mempool_create is failed for\85ort"
+
+1229
+__FUNCTION__
+,
+pÜt_id
+,
+ `¹e_¡»¼Ü
+(
+¹e_\94ºo
+));
+
+1230 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1231
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock2 %d\n\r",
+
+1232
+__FUNCTION__
+,
+__LINE__
+);
+
+1233 ià(
+USE_RTM_LOCKS
+)
+
+1234
+ `¹m_uÆock
+();
+
+1236
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1237 \15
+IFM_FAILURE
+;
+
+1239 \12
+Äxqs
+;
+
+1240 \ f
+Äxqs
+ = 0;\82rxq <
+pcÚfig
+->
+Äx_queue
+;\82rxqs++) {
+
+1241
+¡©us
+ =
+ `¹e_\91h_rx_queue_£tup
+(
+pÜt_id
+,
+Äxqs
+,
+
+1242
+IFM_RX_DESC_DEFAULT
+,
+sock
+,
+
+1243 &(
+pcÚfig
+->
+rx_cÚf
+),
+
+1244
+pÜt
+->
+mempoÞ
+);
+
+1245 ià(
+¡©us
+ < 0) {
+
+1246
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1247
+ `RTE_LOG
+(
+ERR
+,
+IFM
+,
+
+1250
+__FUNCTION__
+,
+pÜt_id
+,
+Äxqs
+,
+
+1251
+ `¹e_¡»¼Ü
+(
+¹e_\94ºo
+));
+
+1252 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1253
+ `RTE_LOG
+(
+INFO
+,
+IFM
+,
+
+1255
+__FUNCTION__
+,
+__LINE__
+);
+
+1256 ià(
+USE_RTM_LOCKS
+)
+
+1257
+ `¹m_uÆock
+();
+
+1259
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1260 \15
+IFM_FAILURE
+;
+
+1264 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1265
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR\86ock2 @ %d\n\r",
+
+1266
+__FUNCTION__
+,
+__LINE__
+);
+
+1267 ià(
+USE_RTM_LOCKS
+)
+
+1268
+ `¹m_uÆock
+();
+
+1270
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1271
+¡©us
+ =
+ `¹e_\91h_dev_¡¬t
+(
+pÜt_id
+);
+
+1272 ià(
+¡©us
+ < 0) {
+
+1273
+ `ifm_»move_pÜt_d\91a\9es
+(
+pÜt_id
+);
+
+1274
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s:\84te_eth_dev_start is failed for"
+
+1275 "\85Ü\88%u.\n\r",
+__FUNCTION__
+,
+pÜt_id
+);
+
+1276 \15
+IFM_FAILURE
+;
+
+1278
+ `¹e_d\96ay_ms
+(5000);
+
+1280 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1281
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring WR\86ock3 @ %d\n\r",
+
+1282
+__FUNCTION__
+,
+__LINE__
+);
+
+1283 ià(
+USE_RTM_LOCKS
+)
+
+1284
+ `¹m_lock
+();
+
+1286
+ `¹e_rwlock_wr\99e_lock
+(&
+rwlock
+);
+
+1287
+ `¹e_\91h_maÿddr_g\91
+(
+pÜt_id
+, (\19
+\91h\94_addr
+ *)
+pÜt
+->
+maÿddr
+);
+
+1288 ià(
+pcÚfig
+->
+´omisc
+)
+
+1289
+pÜt
+->
+´omisc
+ = 1;
+
+1290
+ `¹e_\91h_l\9ak_g\91
+(
+pÜt_id
+, &
+l\9ak¡©us
+);
+
+1292
+pÜt
+->
+l\9ak_du¶ex
+ =
+l\9ak¡©us
+.link_duplex;
+
+1293
+pÜt
+->
+l\9ak_autÚeg
+ =
+l\9ak¡©us
+.link_autoneg;
+
+1294
+pÜt
+->
+l\9ak_¥\93d
+ =
+l\9ak¡©us
+.link_speed;
+
+1295
+pÜt
+->
+adm\9a_¡©us
+ =
+pcÚfig
+->
+¡©e
+;
+
+1298
+ `mem£t
+(&
+dev_\9afo
+, 0, \17(dev_info));
+
+1299
+ `¹e_\91h_dev_\9afo_g\91
+(
+pÜt_id
+, &
+dev_\9afo
+);
+
+1300
+pÜt
+->
+m\9a_rx_bufsize
+ =
+dev_\9afo
+.min_rx_bufsize;
+
+1301
+pÜt
+->
+max_rx_pk\8e\92
+ =
+dev_\9afo
+.max_rx_pktlen;
+
+1302
+pÜt
+->
+max_rx_queues
+ =
+dev_\9afo
+.max_rx_queues;
+
+1303
+pÜt
+->
+max_tx_queues
+ =
+dev_\9afo
+.max_tx_queues;
+
+1304
+ `¹e_\91h_dev_g\91_mtu
+(
+pÜt_id
+, &(
+pÜt
+->
+mtu
+));
+
+1307
+pÜt
+->
+»\8c\9bve_bulk_pkts
+ = &
+ifm_»ûive_bulk_pkts
+;
+
+1308
+pÜt
+->
+\8cªsm\99_bulk_pkts
+ = &
+ifm_\8cªsm\99_bulk_pkts
+;
+
+1309
+pÜt
+->
+\8cªsm\99_s\9agË_pkt
+ = &
+ifm_\8cªsm\99_s\9agË_pkt
+;
+
+1310 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1311
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing WR3\86ock @ %d\n\r",
+
+1312
+__FUNCTION__
+,
+__LINE__
+);
+
+1313 ià(
+USE_RTM_LOCKS
+)
+
+1314
+ `¹m_uÆock
+();
+
+1316
+ `¹e_rwlock_wr\99e_uÆock
+(&
+rwlock
+);
+
+1317
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Port %u is successfully configured.\n\r",
+
+1318
+__FUNCTION__
+,
+pÜt_id
+);
+
+1319 \15
+IFM_SUCCESS
+;
+
+1320
+ }
+}
+
+1322 \12
+ $ifm_cÚfigu»_pÜts
+(
+pÜt_cÚfig_t
+ *
+pcÚfig
+)
+
+1324
+u\9at8_t
+
+pÜt_id
+;
+
+1325 \12
+¡©us
+ = 0;
+
+1326 ià(!
+ifm
+.
+ÅÜt_\9at\9flized
+) {
+
+1327
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s, Configuring\85orts failed. Zero\85orts "
+
+1328 "¬\90\9at\9flized dur\9ag PCI\85robe",
+__FUNCTION__
+);
+
+1329 \15
+IFM_FAILURE
+;
+
+1331 ià(
+pcÚfig
+ =ð
+NULL
+) {
+
+1332
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s, Configuring\85orts failed. "
+
+1333 "P¬am\85cÚfig i NULL\n\r",
+__FUNCTION__
+);
+
+1334 \15
+IFM_FAILURE
+;
+
+1338 \ f
+pÜt_id
+ = 0;\85Üt_id <
+ifm
+.
+ÅÜt_\9at\9flized
+;\85ort_id++) {
+
+1339 ià(
+ifm_debug
+ &
+IFM_DEBUG_CONFIG
+)
+
+1340
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "Call ifm_port_setup %u\n\r",
+
+1341
+pÜt_id
+);
+
+1342
+¡©us
+ =
+
+1343
+ `ifm_pÜt_£tup
+(
+pcÚfig
+[
+pÜt_id
+].port_id, &pconfig[port_id]);
+
+1344 ià(
+¡©us
+ =ð
+IFM_SUCCESS
+)
+
+1345
+ifm
+.
+ÅÜt_cÚfigu»d
+++;
+
+1347 ià(!
+ifm
+.
+ÅÜt_cÚfigu»d
+) {
+
+1348
+ `RTE_LOG
+(
+ERR
+,
+IFM
+, "%s: Zero\85orts\87re configured\n\r",
+
+1349
+__FUNCTION__
+);
+
+1350 \15
+IFM_FAILURE
+;
+
+1352
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Number of\85orts sucessfully configured:"
+
+1353 " %d\n\r",
+__FUNCTION__
+,
+ifm
+.
+ÅÜt_cÚfigu»d
+);
+
+1354 \15
+IFM_SUCCESS
+;
+
+1355
+ }
+}
+
+1357 \1e
+ $´\9at_\9a\8brçû_d\91a\9es
+(\1e)
+
+1359
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+1360 \12
+i
+ = 0;
+
+1361 \19
+sockaddr_\9a
+
+\9d
+;
+
+1362
+ `´\9atf
+("\n\r");
+
+1364 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1365
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Acquiring RW\86ock @ %d\n\r",
+
+1366
+__FUNCTION__
+,
+__LINE__
+);
+
+1367 ià(
+USE_RTM_LOCKS
+)
+
+1368
+ `¹m_lock
+();
+
+1370
+ `¹e_rwlock_»ad_lock
+(&
+rwlock
+);
+
+1372 \ f
+i
+ = 0; i <
+RTE_MAX_ETHPORTS
+ &&
+ifm
+.
+pÜt_li¡
+[i]; i++) {
+
+1373
+pÜt
+ =
+ifm
+.
+pÜt_li¡
+[
+i
+];
+
+1374
+ `´\9atf
+(" %u",
+pÜt
+->
+pmdid
+);
+
+1375 ià(
+pÜt
+->
+iâame
+ &&
+ `¡¾\92
+(port->ifname)) {
+
+1376
+ `´\9atf
+(" (%s)\t",
+pÜt
+->
+iâame
+);
+
+1378
+ `´\9atf
+("\t\t");
+
+1379
+ `´\9atf
+("MAC:%02x:%02x:%02x:%02x:%02x:%02x Adminstate:%s"
+
+1381
+pÜt
+->
+maÿddr
+[0],\85ort->macaddr[1],
+
+1382
+pÜt
+->
+maÿddr
+[2],\85ort->macaddr[3],
+
+1383
+pÜt
+->
+maÿddr
+[4],\85ort->macaddr[5],
+
+1384
+pÜt
+->
+adm\9a_¡©us
+ ? "UP" : "DOWN",
+
+1385
+pÜt
+->
+l\9ak_¡©us
+ ? "UP" : "DOWN");
+
+1386
+ `´\9atf
+("\t\t");
+
+1387
+ `´\9atf
+("S³ed: %u, %s-du¶ex\n\r",
+pÜt
+->
+l\9ak_¥\93d
+,
+
+1388
+pÜt
+->
+l\9ak_du¶ex
+ ? "full" : "half");
+
+1389
+ `´\9atf
+("\t\t");
+
+1391 ià(
+pÜt
+->
+\9dv4_li¡
+ !ð
+NULL
+) {
+
+1392
+\9d
+.
+s\9a_addr
+.
+s_addr
+ =
+
+1393 (\1d\13)((
+\9dv4li¡_t
+ *è(
+pÜt
+->
+\9dv4_li¡
+))->
+
+1394
+\9daddr
+;
+
+1395
+ `´\9atf
+("IP: %s/%d",
+ `\9a\91_Áß
+(
+\9d
+.
+s\9a_addr
+),
+
+1396 ((
+\9dv4li¡_t
+ *è(
+pÜt
+->
+\9dv4_li¡
+))->
+add¾\92
+);
+
+1398
+ `´\9atf
+("IP: NA");
+
+1401
+ `´\9atf
+("\r\n");
+
+1402
+ `´\9atf
+("\t\t");
+
+1403 ià(
+pÜt
+->
+\9dv6_li¡
+ !ð
+NULL
+) {
+
+1404
+u\9at8_t
+ *
+addr
+ =
+
+1405 ((
+\9dv6li¡_t
+ *è(
+pÜt
+->
+\9dv6_li¡
+))->
+\9daddr
+;
+
+1406
+´\9atf
+
+
+1408
+addr
+[0],\87ddr[1],\87ddr[2],\87ddr[3],\87ddr[4],
+
+1409
+addr
+[5],\87ddr[6],\87ddr[7],\87ddr[8],\87ddr[9],
+
+1410
+addr
+[10],\87ddr[11],\87ddr[12],\87ddr[13],\87ddr[14],
+
+1411
+addr
+[15]);
+
+1413
+ `´\9atf
+("IPv6: NA");
+
+1416 ià(
+pÜt
+->
+æags
+ &
+IFM_SLAVE
+) {
+
+1417
+ `´\9atf
+(" IFM_SLAVE ");
+
+1418
+ `´\9atf
+(" MasterPort: %u",
+
+1419
+pÜt
+->
+bÚd_cÚfig
+->
+bÚd_pÜtid
+);
+
+1421 ià(
+pÜt
+->
+æags
+ &
+IFM_MASTER
+) {
+
+1422
+ `´\9atf
+(" IFM_MASTER ");
+
+1423
+ `´\9atf
+(" Mode: %u",
+pÜt
+->
+bÚd_cÚfig
+->
+mode
+);
+
+1424
+ `´\9atf
+(" Prim¬yPÜt: %u",
+pÜt
+->
+bÚd_cÚfig
+->
+´im¬y
+);
+
+1425
+ `´\9atf
+("\n\r");
+
+1426
+ `´\9atf
+("\t\tSlavePortCount: %u",
+
+1427
+pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+);
+
+1428
+ `´\9atf
+(" SlavePorts:");
+
+1429 \12
+i
+;
+
+1430 \ f
+i
+ = 0; i <
+pÜt
+->
+bÚd_cÚfig
+->
+¦ave_couÁ
+; i++) {
+
+1431
+ `´\9atf
+(" %u ",
+pÜt
+->
+bÚd_cÚfig
+->
+¦aves
+[
+i
+]);
+
+1433
+ `´\9atf
+(" ActivePortCount: %u",
+
+1434
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+);
+
+1435
+ `´\9atf
+(" ActivePorts:");
+
+1436 \ f
+i
+ = 0; i <
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦ave_couÁ
+;
+
+1437
+i
+++) {
+
+1438
+ `´\9atf
+(" %u ",
+
+1439
+pÜt
+->
+bÚd_cÚfig
+->
+aùive_¦aves
+[
+i
+]);
+
+1441
+ `´\9atf
+("\n\r");
+
+1442
+ `´\9atf
+("\t\t");
+
+1443
+ `´\9atf
+("Link_monitor_freq: %u ms ",
+
+1444
+pÜt
+->
+bÚd_cÚfig
+->
+\9a\8bº®_ms
+);
+
+1445
+ `´\9atf
+(" Link_up_prop_delay: %u ms ",
+
+1446
+pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_up_d\96ay_ms
+);
+
+1447
+ `´\9atf
+(" Link_down_prop_delay: %u ms ",
+
+1448
+pÜt
+->
+bÚd_cÚfig
+->
+l\9ak_down_d\96ay_ms
+);
+
+1449
+ `´\9atf
+("\n\r");
+
+1450
+ `´\9atf
+("\t\t");
+
+1451
+ `´\9atf
+("Xmit_policy: %u",
+
+1452
+pÜt
+->
+bÚd_cÚfig
+->
+xm\99_pÞicy
+);
+
+1454
+ `´\9atf
+("\n\r");
+
+1455
+ `´\9atf
+("\t\t");
+
+1456
+ `´\9atf
+("n_rxpkts: %"
+PRIu64
+ " ,n_txpkts: %" PRIu64 " ,",
+
+1457
+pÜt
+->
+n_rxpkts
+,\85Üt->
+n_txpkts
+);
+
+1458 \19
+¹e_\91h_¡©s
+
+\91h_¡©s
+;
+
+1459
+ `¹e_\91h_¡©s_g\91
+(
+pÜt
+->
+pmdid
+, &
+\91h_¡©s
+);
+
+1460
+ `´\9atf
+("pkts_\9a: %"
+PRIu64
+ " ,",
+\91h_¡©s
+.
+\9dack\91s
+);
+
+1461
+ `´\9atf
+("pkts_out: %"
+PRIu64
+ " ",
+\91h_¡©s
+.
+Ýack\91s
+);
+
+1462
+ `´\9atf
+("\n\r");
+
+1463
+ `´\9atf
+("\t\t");
+
+1464
+ `´\9atf
+("\9a_\94rs: %"
+PRIu64
+ " ,",
+\91h_¡©s
+.
+\9b¼Üs
+);
+
+1465
+ `´\9atf
+("\9a_mis£d: %"
+PRIu64
+ " ,",
+\91h_¡©s
+.
+imis£d
+);
+
+1466
+ `´\9atf
+("out_\94rs: %"
+PRIu64
+ " ,",
+\91h_¡©s
+.
+Û¼Üs
+);
+
+1467
+ `´\9atf
+("mbuf_\94rs: %"
+PRIu64
+ " ",
+\91h_¡©s
+.
+rx_nombuf
+);
+
+1468
+ `´\9atf
+("\n\r");
+
+1469
+ `´\9atf
+("\n\r");
+
+1471 ià(
+ifm_debug
+ &
+IFM_DEBUG_LOCKS
+)
+
+1472
+ `RTE_LOG
+(
+INFO
+,
+IFM
+, "%s: Releasing RW\86ock @ %d\n\r",
+
+1473
+__FUNCTION__
+,
+__LINE__
+);
+
+1474 ià(
+USE_RTM_LOCKS
+)
+
+1475
+ `¹m_uÆock
+();
+
+1477
+ `¹e_rwlock_»ad_uÆock
+(&
+rwlock
+);
+
+1478
+ }
+}
+
+ @VIL/l2l3_stack/interface.h
+
+16 #iâdeà
+INTERFACE_H
+
+
+17 \ 1
+ #INTERFACE_H
+
+
+ )
+
+19 \ 2
+ ~<¡dio.h
+>
+
+20 \ 2
+ ~<¡dlib.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<¡d\9at.h
+>
+
+23 \ 2
+ ~<\9a\89y³s.h
+>
+
+24 \ 2
+ ~<sys/ty³s.h
+>
+
+25 \ 2
+ ~<sys/queue.h
+>
+
+26 \ 2
+ ~<Ãt\9a\91/\9a.h
+>
+
+27 \ 2
+ ~<£tjmp.h
+>
+
+28 \ 2
+ ~<¡d¬g.h
+>
+
+29 \ 2
+ ~<ùy³.h
+>
+
+30 \ 2
+ ~<\94ºo.h
+>
+
+31 \ 2
+ ~<g\91Ýt.h
+>
+
+32 \ 2
+ ~<sigÇl.h
+>
+
+33 \ 2
+ ~<¡dboÞ.h
+>
+
+34 \ 2
+ ~<sys/sock\91.h
+>
+
+35 \ 2
+ ~<Ãt\9a\91/\9a.h
+>
+
+36 \ 2
+ ~<¬·/\9a\91.h
+>
+
+37 \ 2
+ ~<¹e_commÚ.h
+>
+
+38 \ 2
+ ~<¹e_log.h
+>
+
+39 \ 2
+ ~<¹e_m®loc.h
+>
+
+40 \ 2
+ ~<¹e_memÜy.h
+>
+
+41 \ 2
+ ~<¹e_memýy.h
+>
+
+42 \ 2
+ ~<¹e_memzÚe.h
+>
+
+43 \ 2
+ ~<¹e_\97l.h
+>
+
+44 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+45 \ 2
+ ~<¹e_Ïunch.h
+>
+
+46 \ 2
+ ~<¹e_©omic.h
+>
+
+47 \ 2
+ ~<¹e_cyþes.h
+>
+
+48 \ 2
+ ~<¹e_´eãtch.h
+>
+
+49 \ 2
+ ~<¹e_lcÜe.h
+>
+
+50 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+51 \ 2
+ ~<¹e_b¿nch_´ediùiÚ.h
+>
+
+52 \ 2
+ ~<¹e_\9a\8b¼u±s.h
+>
+
+53 \ 2
+ ~<¹e_pci.h
+>
+
+54 \ 2
+ ~<¹e_¿ndom.h
+>
+
+55 \ 2
+ ~<¹e_debug.h
+>
+
+56 \ 2
+ ~<¹e_\91h\94.h
+>
+
+57 \ 2
+ ~<¹e_\91hdev.h
+>
+
+58 \ 2
+ ~<¹e_r\9ag.h
+>
+
+59 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+60 \ 2
+ ~<¹e_mbuf.h
+>
+
+61 \ 2
+ ~<¹e_\91h_ù¾.h
+>
+
+62 \ 2
+ ~<¹e_\94ºo.h
+>
+
+63 \ 2
+ ~<¹e_pÜt_\91hdev.h
+>
+
+64 \ 2
+ ~<¹e_\91h_bÚd.h
+>
+
+65 \ 2
+ ~<¹e_rwlock.h
+>
+
+67 \ 1
+ #RTE_LOGTYPE_IFM
+
+RTE_LOGTYPE_USER1
+
+
+ )
+
+68 \ 1
+ #IFM_SUCCESS
+ 0
+
+ )
+
+69 \ 1
+ #IFM_FAILURE
+ -1
+
+ )
+
+73 \ 1
+ #IFM_ETH_LINK_HALF_DUPLEX
+ 0
+
+ )
+
+74 \ 1
+ #IFM_ETH_LINK_FULL_DUPLEX
+ 1
+
+ )
+
+75 \ 1
+ #IFM_ETH_LINK_DOWN
+ 0
+
+ )
+
+76 \ 1
+ #IFM_ETH_LINK_UP
+ 1
+
+ )
+
+77 \ 1
+ #IFM_ETH_LINK_FIXED
+ 0
+
+ )
+
+82 \ 1
+ #IFM_SLAVE
+ (1<<0)
+
+ )
+
+83 \ 1
+ #IFM_MASTER
+ (1<<1)
+
+ )
+
+84 \ 1
+ #IFM_BONDED
+ (1<<2)
+
+ )
+
+85 \ 1
+ #IFM_IPV4_ENABLED
+ (1<<3)
+
+ )
+
+86 \ 1
+ #IFM_IPV6_ENABLED
+ (1<<4)
+
+ )
+
+88 \ 1
+ #IFM_BONDING_MODE_ROUND_ROBIN
+ 0
+
+ )
+
+89 \ 1
+ #IFM_BONDING_MODE_ACTIVE_BACKUP
+ 1
+
+ )
+
+90 \ 1
+ #IFM_BONDING_MODE_BALANCE
+ 2
+
+ )
+
+91 \ 1
+ #IFM_BONDING_MODE_BROADCAST
+ 3
+
+ )
+
+92 \ 1
+ #IFM_BONDING_MODE_8023AD
+ 4
+
+ )
+
+93 \ 1
+ #IFM_BONDING_MODE_TLB
+ 5
+
+ )
+
+94 \ 1
+ #IFM_BONDING_MODE_ALB
+ 6
+
+ )
+
+96 \ 1
+ #IFM_BALANCE_XMIT_POLICY_LAYER2
+ 0
+
+ )
+
+97 \ 1
+ #IFM_BALANCE_XMIT_POLICY_LAYER23
+ 1
+
+ )
+
+98 \ 1
+ #IFM_BALANCE_XMIT_POLICY_LAYER34
+ 2
+
+ )
+
+102 \ 1
+ #IFM_QUEUE_STAT_CNTRS
+ 16
+
+ )
+
+103 \ 1
+ #IFM_TX_DEFAULT_Q
+ 0
+
+ )
+
+104 \ 1
+ #IFM_RX_DEFAULT_Q
+ 0
+
+ )
+
+105 \ 1
+ #IFM_RX_DESC_DEFAULT
+ 128
+
+ )
+
+106 \ 1
+ #IFM_TX_DESC_DEFAULT
+ 512
+
+ )
+
+107 \ 1
+ #IFM_BURST_SIZE
+ 32
+
+ )
+
+108 \ 1
+ #IFM_BURST_TX_WAIT_US
+ 1
+
+ )
+
+109 \ 1
+ #IFM_BURST_TX_RETRIES
+ 64
+
+ )
+
+110 \ 1
+ #BURST_TX_DRAIN_US
+ 100
+
+ )
+
+115 \ 1
+ #IFM_IFNAME_LEN
+ 16
+
+ )
+
+116 \ 1
+ #IFM_CLIENT_NAME
+ 20
+
+ )
+
+117 \ 1
+ #IFM_MAX_CLIENT
+ 10
+
+ )
+
+119 \ 1
+ #IFM_ETHER_ADDR_SIZE
+ 6
+
+ )
+
+120 \ 1
+ #IFM_IPV6_ADDR_SIZE
+ 16
+
+ )
+
+122 \ 1
+ #IFM_DEBUG_CONFIG
+ (1<<0)
+
+ )
+
+123 \ 1
+ #IFM_DEBUG_RXTX
+ (1<<1)
+
+ )
+
+124 \ 1
+ #IFM_DEBUG_LOCKS
+ (1<<2)
+
+ )
+
+125 \ 1
+ #IFM_DEBUG
+ (1<<4)
+
+ )
+
+126 \ 1
+ #IFM_MAX_PORTARR_SZ
+ 64
+
+ )
+
+127 \ 1
+ #IFM_MAX_PORTARR_SZ
+ 64
+
+ )
+
+132 \19
+ smempoÞ_cÚfig
+ {
+
+133
+u\9at32_t
+
+ mpoÞ_size
+;
+
+134
+u\9at32_t
+
+ mbufãr_size
+;
+
+136
+u\9at32_t
+
+ mÿche_size
+;
+
+138
+u\9at32_t
+
+ mýu_sock\91_id
+;
+
+140 }
+ g__¹e_ÿche_®igÃd
+;
+
+147 \e\19
+ s_pÜt_cÚfig_
+ {
+
+148
+u\9at8_t
+
+ mpÜt_id
+;
+
+149 \12
+ mÄx_queue
+;
+
+150 \12
+ mÁx_queue
+;
+
+151
+u\9at32_t
+
+ mtx_buf_size
+;
+
+152
+u\9at32_t
+
+ m¡©e
+;
+
+153
+u\9at32_t
+
+ m´omisc
+;
+
+154 \19
+mempoÞ_cÚfig
+
+ mmempoÞ
+;
+
+156 \19
+¹e_\91h_cÚf
+
+ mpÜt_cÚf
+;
+
+158 \19
+¹e_\91h_rxcÚf
+
+ mrx_cÚf
+;
+
+160 \19
+¹e_\91h_txcÚf
+
+ mtx_cÚf
+;
+
+162 }
+ tpÜt_cÚfig_t
+;
+
+169 \e\19
+ s_if_¡©s_
+ {
+
+170
+u\9at64_t
+
+ mrx_Åkts
+;
+
+171
+u\9at64_t
+
+ mtx_Åkts
+;
+
+172
+u\9at64_t
+
+ mrx_by\8bs
+;
+
+173
+u\9at64_t
+
+ mtx_by\8bs
+;
+
+174
+u\9at64_t
+
+ mrx_mis£d_pkts
+;
+
+176
+u\9at64_t
+
+ mrx_\94r_pkts
+;
+
+177
+u\9at64_t
+
+ mrx_nobuf_ç\9e
+;
+
+178
+u\9at64_t
+
+ mtx_ç\9eed_pkts
+;
+
+179
+u\9at64_t
+
+ mq_rxpkts
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+180
+u\9at64_t
+
+ mq_txpkts
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+181
+u\9at64_t
+
+ mq_rx_by\8bs
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+183
+u\9at64_t
+
+ mq_tx_by\8bs
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+185
+u\9at64_t
+
+ mq_rx_pkt_drÝ
+[
+IFM_QUEUE_STAT_CNTRS
+];
+
+187 }
+ t__¹e_ÿche_®igÃd
+
+ tif_¡©s
+;
+
+191 \19
+ sbÚd_pÜt
+ {
+
+192
+u\9at8_t
+
+ mbÚd_pÜtid
+;
+
+194
+u\9at8_t
+
+ msock\91_id
+;
+
+196
+u\9at8_t
+
+ mmode
+;
+
+198
+u\9at8_t
+
+ mxm\99_pÞicy
+;
+
+200
+u\9at32_t
+
+ m\9a\8bº®_ms
+;
+
+202
+u\9at32_t
+
+ ml\9ak_up_d\96ay_ms
+;
+
+204
+u\9at32_t
+
+ ml\9ak_down_d\96ay_ms
+;
+
+206
+u\9at8_t
+
+ m´im¬y
+;
+
+208
+u\9at8_t
+
+ m¦aves
+[
+RTE_MAX_ETHPORTS
+];
+
+210 \12
+ m¦ave_couÁ
+;
+
+212
+u\9at8_t
+
+ maùive_¦aves
+[
+RTE_MAX_ETHPORTS
+];
+
+214 \12
+ maùive_¦ave_couÁ
+;
+
+216 }
+ g__¹e_ÿche_®igÃd
+;
+
+224 \e\19
+ s_l2_phy_\9a\8brçû_
+ {
+
+225 \19
+_l2_phy_\9a\8brçû_
+ *
+ mÃxt
+;
+
+226
+u\9at8_t
+
+ mpmdid
+;
+
+227 \1d\12
+ mif_\9adex
+;
+
+228 \ 5
+ miâame
+[
+IFM_IFNAME_LEN
+];
+
+229
+u\9at16_t
+
+ mmtu
+;
+
+230
+u\9at8_t
+
+ mmaÿddr
+[
+IFM_ETHER_ADDR_SIZE
+];
+
+231
+u\9at32_t
+
+ m´omisc
+;
+
+232
+u\9at32_t
+
+ mæags
+;
+
+234
+u\9at32_t
+
+ ml\9ak_¥\93d
+;
+
+235
+u\9at16_t
+
+ ml\9ak_du¶ex
+:1;
+
+236
+u\9at16_t
+
+ ml\9ak_autÚeg
+:1;
+
+237
+u\9at16_t
+
+ ml\9ak_¡©us
+:1;
+
+238
+u\9at16_t
+
+ madm\9a_¡©us
+:1;
+
+240 \19
+¹e_mempoÞ
+ *
+ mmempoÞ
+;
+
+241
+u\9at32_t
+
+ mm\9a_rx_bufsize
+;
+
+242
+u\9at32_t
+
+ mmax_rx_pk\8e\92
+;
+
+243
+u\9at16_t
+
+ mmax_rx_queues
+;
+
+244
+u\9at16_t
+
+ mmax_tx_queues
+;
+
+245
+u\9at64_t
+
+ mn_rxpkts
+;
+
+246
+u\9at64_t
+
+ mn_txpkts
+;
+
+247
+if_¡©s
+
+ m¡©s
+;
+
+248
+u\9at16_t
+(*
+»\8c\9bve_bulk_pkts
+è(
+ mu\9at8_t
+,
+ mu\9at16_t
+, \19
+ m¹e_mbuf
+ **);
+
+250
+u\9at16_t
+(*
+\8cªsm\99_bulk_pkts
+è(\19
+ m_l2_phy_\9a\8brçû_
+ *, \19
+ m¹e_mbuf
+ **,
+ mu\9at64_t
+);
+
+252 \12(*
+ m\8cªsm\99_s\9agË_pkt
+è(\19
+ m_l2_phy_\9a\8brçû_
+ *, \19
+ m¹e_mbuf
+ *);
+
+254 \19
+¹e_\91h_dev_tx_bufãr
+ *
+ mtx_bufãr
+;
+
+255
+u\9at64_t
+
+ mtx_buf_Ën
+;
+
+256 \1e*
+ m\9dv4_li¡
+;
+
+257 \1e*
+ m\9dv6_li¡
+;
+
+258 \19
+bÚd_pÜt
+ *
+ mbÚd_cÚfig
+;
+
+259
+pÜt_cÚfig_t
+
+ mpÜt_cÚfig
+;
+
+260 }
+ t__¹e_ÿche_®igÃd
+
+ tl2_phy_\9a\8brçû_t
+;
+
+266 \e\19
+ s_\9dv4li¡_
+ {
+
+267 \19
+_\9dv4li¡_
+ *
+ mÃxt
+;
+
+268
+u\9at32_t
+
+ m\9daddr
+;
+
+269 \1d\12
+ madd¾\92
+;
+
+270 \1d\12
+ mmtu
+;
+
+271
+l2_phy_\9a\8brçû_t
+ *
+ mpÜt
+;
+
+273 }
+ t\9dv4li¡_t
+;
+
+279 \e\19
+ s_\9dv6li¡_
+ {
+
+280 \19
+_\9dv6li¡_
+ *
+ mÃxt
+;
+
+281
+u\9at8_t
+
+ m\9daddr
+[
+IFM_IPV6_ADDR_SIZE
+];
+
+282 \1d\12
+ madd¾\92
+;
+
+283 \1d\12
+ mmtu
+;
+
+284
+l2_phy_\9a\8brçû_t
+ *
+ mpÜt
+;
+
+285 }
+ t\9dv6li¡_t
+;
+
+292 \e\19
+ s_ifm_þ\9bÁ_
+ {
+
+293
+u\9at32_t
+
+ mþ\9bÁid
+;
+
+294 \1e(*
+ mcb_l\9akupd©e
+è(
+ mu\9at8_t
+, \1d\12);
+
+296 }
+ t__¹e_ÿche_®igÃd
+
+ tifm_þ\9bÁ
+;
+
+302 \e\19
+ s_\9a\8brçû_ma\9a_
+ {
+
+303
+l2_phy_\9a\8brçû_t
+ *
+ mpÜt_li¡
+[
+IFM_MAX_PORTARR_SZ
+];
+
+304
+u\9at32_t
+
+ mÅÜt_cÚfigu»d
+;
+
+305
+u\9at32_t
+
+ mÅÜt_\9at\9flized
+;
+
+306
+u\9at8_t
+
+ mnþ\9bÁ
+;
+
+307
+ifm_þ\9bÁ
+
+ mif_þ\9bÁ
+[
+IFM_MAX_CLIENT
+];
+
+308 }
+ t__¹e_ÿche_®igÃd
+
+ t\9a\8brçû_ma\9a_t
+;
+
+320 \12
+ifm_cÚfigu»_pÜts
+(
+pÜt_cÚfig_t
+ *
+pcÚfig
+);
+
+333
+l2_phy_\9a\8brçû_t
+ *
+ifm_g\91_f\9c¡_pÜt
+(\1e);
+
+347
+l2_phy_\9a\8brçû_t
+ *
+ifm_g\91_Ãxt_pÜt
+(
+u\9at8_t
+
+pÜt_id
+);
+
+359
+l2_phy_\9a\8brçû_t
+ *
+ifm_g\91_pÜt
+(
+u\9at8_t
+);
+
+371
+l2_phy_\9a\8brçû_t
+ *
+ifm_g\91_pÜt_by_Çme
+(cڡ \ 5*
+Çme
+);
+
+380 \1e
+ifm_»move_pÜt_d\91a\9es
+(
+u\9at8_t
+
+pÜtid
+);
+
+390 \1e
+ifm_add_pÜt_to_pÜt_li¡
+(
+l2_phy_\9a\8brçû_t
+ *);
+
+399 \12
+is_pÜt_li¡_nuÎ
+(\1e);
+
+412 \12
+ifm_pÜt_£tup
+(
+u\9at8_t
+
+pÜt_id
+,
+pÜt_cÚfig_t
+ *);
+
+421 \1e
+ifm_\9a\99
+(\1e);
+
+433
+\9at32_t
+
+ifm_g\91_ÅÜts_\9a\99\9flized
+(\1e);
+
+445
+\9at32_t
+
+ifm_g\91_Çùive_pÜts
+(\1e);
+
+457
+\9at32_t
+
+ifm_chk_pÜt_\9dv4_\92abËd
+(
+u\9at8_t
+
+pÜt_id
+);
+
+469
+\9at32_t
+
+ifm_chk_pÜt_\9dv6_\92abËd
+(
+u\9at8_t
+
+pÜt_id
+);
+
+485
+\9at16_t
+
+ifm_»move_\9dv4_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9daddr
+,
+
+486
+u\9at32_t
+
+add¾\92
+);
+
+502
+\9at16_t
+
+ifm_»move_\9dv6_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d6addr
+,
+
+503
+u\9at32_t
+
+add¾\92
+);
+
+519
+\9at16_t
+
+ifm_add_\9dv4_pÜt
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9daddr
+, u\9at32_\88
+add¾\92
+);
+
+535
+\9at8_t
+
+ifm_add_\9dv6_pÜt
+(
+u\9at8_t
+
+pÜt_id
+, u\9at8_\88
+\9d6addr
+[],
+u\9at32_t
+
+add¾\92
+);
+
+548 \12
+ifm_\8cªsm\99_s\9agË_pkt
+(
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+,
+
+549 \19
+¹e_mbuf
+ *
+tx_pkts
+);
+
+564
+u\9at16_t
+
+ifm_\8cªsm\99_bulk_pkts
+(
+l2_phy_\9a\8brçû_t
+ *, \19
+¹e_mbuf
+ **
+tx_pkts
+,
+
+565
+u\9at64_t
+
+Åkts
+);
+
+580
+u\9at16_t
+
+ifm_»ûive_bulk_pkts
+(
+u\9at8_t
+
+pÜt_id
+, u\9at16_\88
+qid
+,
+
+581 \19
+¹e_mbuf
+ **
+rx_pkts
+);
+
+594 \1e
+ifm_£t_pÜt_´omisc
+(
+u\9at8_t
+
+pÜt_id
+, u\9at8_\88
+\92abË
+);
+
+607 \1e
+ifm_£t_l2_\9a\8brçû_mtu
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at16_t
+
+mtu
+);
+
+620 \1e
+ifm_upd©e_l\9ak¡©us
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at16_t
+
+l\9ak¡©us
+);
+
+633 \1e
+ifm_»gi¡\94_fÜ_l\9akupd©e
+(
+u\9at32_t
+
+þ\9bÁid
+,
+
+634 \1e(*
+cb_l\9akupd©e
+è(
+u\9at8_t
+, \1d\12));
+
+650 \1e
+ `lsi_ev\92t_ÿÎback
+(
+u\9at8_t
+
+pÜt_id
+, \f
+¹e_\91h_ev\92t_ty³
+
+ty³
+,
+
+651 \1e*
+·¿m
+);
+
+656 \1e
+ `´\9at_\9a\8brçû_d\91a\9es
+(\1e);
+
+667 \12
+ `ifm_bÚd_pÜt_ü\97\8b
+(cڡ \ 5*
+Çme
+, \12
+mode
+,
+pÜt_cÚfig_t
+ *
+pÜtcÚf
+);
+
+674 \12
+ `ifm_bÚd_pÜt_d\96\91e
+(cڡ \ 5*
+Çme
+);
+
+683 \12
+ `ifm_add_¦ave_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+);
+
+692 \12
+ `ifm_»move_¦ave_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+);
+
+701 \12
+ `£t_bÚd_mode
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+mode
+);
+
+708 \12
+ `g\91_bÚd_mode
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+717 \12
+ `£t_bÚd_´im¬y
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦ave_pÜt_id
+);
+
+724 \12
+ `g\91_bÚd_´im¬y_pÜt
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+731 \12
+ `g\91_bÚd_¦ave_couÁ
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+738 \12
+ `g\91_bÚd_aùive_¦ave_couÁ
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+747 \12
+ `g\91_bÚd_¦aves
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+¦aves
+[
+RTE_MAX_ETHPORTS
+]);
+
+756 \12
+ `g\91_bÚd_aùive_¦aves
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+
+757
+u\9at8_t
+
+¦aves
+[
+RTE_MAX_ETHPORTS
+]);
+
+766 \12
+ `£t_bÚd_mac_add»ss
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, \19
+\91h\94_addr
+ *
+mac_addr
+);
+
+773 \12
+ `»£t_bÚd_mac_addr
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+774 \12
+ `g\91_bÚd_mac
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, \19
+\91h\94_addr
+ *
+maÿddr
+);
+
+783 \12
+ `£t_bÚd_xm\99pÞicy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+, u\9at8_\88
+pÞicy
+);
+
+790 \12
+ `g\91_bÚd_xm\99pÞicy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+799 \12
+ `£t_bÚd_l\9ak_mÚt\99Ü_äequ\92cy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+
+800
+u\9at32_t
+
+\9a\8bº®_ms
+);
+
+807 \12
+ `g\91_bÚd_l\9ak_mÚ\99Ü_äequ\92cy
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+816 \12
+ `£t_bÚd_l\9akdown_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+u\9at32_t
+
+d\96ay_ms
+);
+
+823 \12
+ `g\91_bÚd_l\9ak_down_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+832 \12
+ `£t_bÚd_l\9akup_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+,
+u\9at32_t
+
+d\96ay_ms
+);
+
+839 \12
+ `g\91_bÚd_l\9ak_up_d\96ay
+(
+u\9at8_t
+
+bÚded_pÜt_id
+);
+
+845 \1e
+ `´\9at_¡©s
+(\1e);
+
+854 \12
+ `ifm_g\91_pÜt_\9afo
+(
+u\9at8_t
+
+pÜt_id
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt_\9afo
+);
+
+863 \12
+ `ifm_g\91_Ãxt_pÜt_\9afo
+(
+u\9at8_t
+
+pÜt_id
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt_\9afo
+);
+
+872 \1e
+ `cÚfig_ifm_debug
+(\12
+dbg
+, \12
+æag
+);
+
+ @VIL/l2l3_stack/l2_proto.c
+
+22 \ 2
+ ~"l2_´Ùo.h
+"
+
+24 \18\19
+´Ùo_·ck\91_ty³
+ *
+ g´Ùo_li¡
+[3];
+
+29
+ $li¡_add_ty³
+(
+u\9at16_t
+
+ty³
+,
+
+30 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+31
+l2_phy_\9a\8brçû_t
+ *))
+
+33 ià(
+ty³
+ =ð
+ETHER_TYPE_IPv4
+) {
+
+34
+´Ùo_li¡
+[
+IPv4_VAL
+] =
+
+35
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+´Ùo_·ck\91_ty³
+),
+
+36
+RTE_CACHE_LINE_SIZE
+);
+
+37
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+ty³
+ =\81ype;
+
+38
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+func
+ = func;
+
+41 \vià(
+ty³
+ =ð
+ETHER_TYPE_ARP
+) {
+
+42
+´Ùo_li¡
+[
+ARP_VAL
+] =
+
+43
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+´Ùo_·ck\91_ty³
+),
+
+44
+RTE_CACHE_LINE_SIZE
+);
+
+45
+´Ùo_li¡
+[
+ARP_VAL
+]->
+ty³
+ =\81ype;
+
+46
+´Ùo_li¡
+[
+ARP_VAL
+]->
+func
+ = func;
+
+47 } \vià(
+ty³
+ =ð
+ETHER_TYPE_IPv6
+) {
+
+48
+´Ùo_li¡
+[
+IPv6_VAL
+] =
+
+49
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+´Ùo_·ck\91_ty³
+),
+
+50
+RTE_CACHE_LINE_SIZE
+);
+
+51
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+ty³
+ =\81ype;
+
+52
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+func
+ = func;
+
+55
+ }
+}
+
+64
+ $l2_check_mac
+(\19
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+,
+
+65
+u\9at8_t
+
+i
+,
+u\9at64_t
+ *
+pkts_mask
+, u\9at64_\88*
+¬p_pkts_mask
+,
+
+66
+u\9at64_t
+ *
+\9dv4_pkts_mask
+, u\9at64_\88*
+\9dv6_pkts_mask
+)
+
+68 \19
+\91h\94_hdr
+ *
+\91h
+=
+NULL
+;
+
+69
+u\9at16_t
+
+§me_mac
+=0;
+
+70
+u\9at16_t
+
+\91hty³
+ = 0;
+
+72 ià(
+m
+[
+i
+] !ð
+NULL
+) {
+
+73
+\91h
+ =
+ `¹e_pktmbuf_mtod
+(
+m
+[
+i
+], \19
+\91h\94_hdr
+ *);
+
+74 if(
+\91h
+)
+
+75
+\91hty³
+ =
+ `¹e_be_to_ýu_16
+(
+\91h
+->
+\91h\94_ty³
+);
+
+76 ià(
+\91h
+ =ð
+NULL
+) {
+
+78
+ `´\9atf
+("l2_check_mac: Ethernet Dest Addr NULL !!!\n");
+
+81
+\91hty³
+ =
+ `¹e_be_to_ýu_16
+(
+\91h
+->
+\91h\94_ty³
+);
+
+82 #ià
+L2_PROTO_DBG
+
+
+83
+ `´\9atf
+("%s => mbuf\85kt dest mac\87ddr: %x:%x:%x:%x:%x:%x\n",
+
+84
+__FUNCTION__
+,
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[0],
+
+85
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[1],\83th->d_addr.addr_bytes[2],
+
+86
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[3],\83th->d_addr.addr_bytes[4],
+
+87
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[5]);
+
+88
+ `´\9atf
+("% =>\85Ü\88maøaddr: %x:%x:%x:%x:%x:%x\n",
+__FUNCTION__
+,
+
+89
+pÜt
+->
+maÿddr
+[0],\85ort->macaddr[1],\85ort->macaddr[2],
+
+90
+pÜt
+->
+maÿddr
+[3],\85ort->macaddr[4],\85ort->macaddr[5]);
+
+94
+§me_mac
+ =
+
+95 (
+is_§me_\91h\94_addr
+
+
+96 (&
+\91h
+->
+d_addr
+, (\19
+\91h\94_addr
+ *)
+pÜt
+->
+maÿddr
+)
+
+98 ((
+is_brßdÿ¡_\91h\94_addr
+
+
+99 ((\19
+\91h\94_addr
+ *)&
+\91h
+->
+d_addr
+)
+
+100 && (
+\91hty³
+ =ð
+ETHER_TYPE_ARP
+)))
+
+101 || (
+\91hty³
+ =ð
+ETHER_TYPE_IPv6
+
+
+102 &&
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[0] == 0x33
+
+103 &&
+\91h
+->
+d_addr
+.
+addr_by\8bs
+[1] == 0x33));
+
+105 ià(!
+§me_mac
+) {
+
+106
+u\9at64_t
+
+\8bmp_mask
+ = 1LLU <<
+i
+;
+
+107 *
+pkts_mask
+ ^ð
+\8bmp_mask
+;
+
+108
+ `¹e_pktmbuf_ä\93
+(
+m
+[
+i
+]);
+
+109
+m
+[
+i
+] =
+NULL
+;
+
+110 } \vià((
+\91hty³
+ =ð
+ETHER_TYPE_IPv4
+è&&
+§me_mac
+) {
+
+111
+u\9at64_t
+
+\8bmp_mask
+ = 1LLU <<
+i
+;
+
+112 *
+\9dv4_pkts_mask
+ ^ð
+\8bmp_mask
+;
+
+113 } \vià((
+\91hty³
+ =ð
+ETHER_TYPE_ARP
+è&&
+§me_mac
+) {
+
+114
+u\9at64_t
+
+\8bmp_mask
+ = 1LLU <<
+i
+;
+
+115 *
+¬p_pkts_mask
+ ^ð
+\8bmp_mask
+;
+
+116 } \vià((
+\91hty³
+ =ð
+ETHER_TYPE_IPv6
+è&&
+§me_mac
+) {
+
+117
+u\9at64_t
+
+\8bmp_mask
+ = 1LLU <<
+i
+;
+
+118 *
+\9dv6_pkts_mask
+ ^ð
+\8bmp_mask
+;
+
+121
+ `´\9atf
+("\n%s:\87½_pkts_mask = %"
+PRIu64
+ ", ipv4_pkts_mask = %" PRIu64
+
+122 ", ipv6_pkts_mask =%"
+PRIu64
+ ",\85kt-type = %x, sam_mac = %d\n",
+
+123
+__FUNCTION__
+, *
+¬p_pkts_mask
+, *
+\9dv4_pkts_mask
+, *
+\9dv6_pkts_mask
+,
+
+124
+\91hty³
+,
+§me_mac
+);
+
+125
+ }
+}
+
+128
+ $´ÙocÞ_hªdËr_»cv
+(\19
+¹e_mbuf
+ **
+pkts_bur¡
+,
+u\9at16_t
+
+nb_rx
+,
+
+129
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+131
+u\9at8_t
+
+i
+;
+
+132
+u\9at64_t
+
+pkts_mask
+ = 0;
+
+133
+u\9at64_t
+
+¬p_pkts_mask
+ = 0;
+
+134
+u\9at64_t
+
+\9dv4_pkts_mask
+ = 0;
+
+135
+u\9at64_t
+
+\9dv6_pkts_mask
+ = 0;
+
+140 \ f
+i
+ = 0; i <
+nb_rx
+; i++) {
+
+141
+ `l2_check_mac
+(
+pkts_bur¡
+,
+pÜt
+,
+i
+, &
+pkts_mask
+, &
+¬p_pkts_mask
+,
+
+142 &
+\9dv4_pkts_mask
+, &
+\9dv6_pkts_mask
+);
+
+144 ià(
+nb_rx
+) {
+
+145 ià(
+¬p_pkts_mask
+) {
+
+146
+´Ùo_li¡
+[
+ARP_VAL
+]->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+
+147
+¬p_pkts_mask
+,
+pÜt
+);
+
+148
+´\9atf
+
+
+151 ià(
+\9dv4_pkts_mask
+) {
+
+152
+´\9atf
+
+
+154
+ `´\9atf
+("===òb_rx:%u, ipv4_pkts_mask: %lu\n\n",
+nb_rx
+,
+
+155
+\9dv4_pkts_mask
+);
+
+156
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+
+157
+\9dv4_pkts_mask
+,
+pÜt
+);
+
+159 ià(
+\9dv6_pkts_mask
+) {
+
+160
+´\9atf
+
+
+162
+ `´\9atf
+("===òb_rx:%u, ipv6_pkts_mask: %lu\n\n",
+nb_rx
+,
+
+163
+\9dv6_pkts_mask
+);
+
+164
+´Ùo_li¡
+[
+IPv6_VAL
+]->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+
+165
+\9dv6_pkts_mask
+,
+pÜt
+);
+
+168
+ }
+}
+
+171 \1a
+qid
+) {
+
+175
+´\9atf
+
+
+177 \1f
+cur
+->
+ty³
+ !ð
+ETHER_TYPE_ARP
+ && cu¸!ð
+NULL
+) {
+
+178
+cur
+ = cur->
+Ãxt
+;
+
+180 ià(
+cur
+ !ð
+NULL
+) {
+
+182
+´\9atf
+
+
+184
+cur
+->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+pkts_mask
+,
+pÜtid
+);
+
+187
+´Ùo_li¡
+[
+ARP_VAL
+]->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+¬p_pkts_mask
+,
+
+188
+pÜtid
+);
+
+194 \1f
+cur
+->
+ty³
+ !ð
+ETHER_TYPE_IPv4
+ && cu¸!ð
+NULL
+) {
+
+195
+cur
+ = cur->
+Ãxt
+;
+
+197 ià(
+cur
+ !ð
+NULL
+) {
+
+200
+cur
+->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+\9dv4_pkts_mask
+,
+pÜtid
+);
+
+205
+´Ùo_li¡
+[
+IPv4_VAL
+]->
+ `func
+(
+pkts_bur¡
+,
+nb_rx
+,
+\9dv4_pkts_mask
+,
+
+206
+pÜtid
+);
+
+223
+ `¹e_ex\99
+(
+EXIT_FAILURE
+, "Ethertype\82ot found \n");
+
+226
+ }
+}
+
+ @VIL/l2l3_stack/l2_proto.h
+
+26 #iâdeà
+L2_PROTO_H
+
+
+27 \ 1
+ #L2_PROTO_H
+
+
+ )
+
+29 \ 2
+ ~<¡dio.h
+>
+
+30 \ 2
+ ~<¡dlib.h
+>
+
+31 \ 2
+ ~<¡r\9ag.h
+>
+
+32 \ 2
+ ~<¡d\9at.h
+>
+
+33 \ 2
+ ~<\9a\89y³s.h
+>
+
+34 \ 2
+ ~<sys/ty³s.h
+>
+
+35 \ 2
+ ~<sys/queue.h
+>
+
+36 \ 2
+ ~<Ãt\9a\91/\9a.h
+>
+
+37 \ 2
+ ~<£tjmp.h
+>
+
+38 \ 2
+ ~<¡d¬g.h
+>
+
+39 \ 2
+ ~<ùy³.h
+>
+
+40 \ 2
+ ~<\94ºo.h
+>
+
+41 \ 2
+ ~<g\91Ýt.h
+>
+
+42 \ 2
+ ~<sigÇl.h
+>
+
+43 \ 2
+ ~<¡dboÞ.h
+>
+
+45 \ 2
+ ~<¹e_commÚ.h
+>
+
+46 \ 2
+ ~<¹e_log.h
+>
+
+47 \ 2
+ ~<¹e_m®loc.h
+>
+
+48 \ 2
+ ~<¹e_memÜy.h
+>
+
+49 \ 2
+ ~<¹e_memýy.h
+>
+
+50 \ 2
+ ~<¹e_memzÚe.h
+>
+
+51 \ 2
+ ~<¹e_\97l.h
+>
+
+52 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+53 \ 2
+ ~<¹e_Ïunch.h
+>
+
+54 \ 2
+ ~<¹e_©omic.h
+>
+
+55 \ 2
+ ~<¹e_cyþes.h
+>
+
+56 \ 2
+ ~<¹e_´eãtch.h
+>
+
+57 \ 2
+ ~<¹e_lcÜe.h
+>
+
+58 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+59 \ 2
+ ~<¹e_b¿nch_´ediùiÚ.h
+>
+
+60 \ 2
+ ~<¹e_\9a\8b¼u±s.h
+>
+
+61 \ 2
+ ~<¹e_pci.h
+>
+
+62 \ 2
+ ~<¹e_¿ndom.h
+>
+
+63 \ 2
+ ~<¹e_debug.h
+>
+
+64 \ 2
+ ~<¹e_\91h\94.h
+>
+
+65 \ 2
+ ~<¹e_\91hdev.h
+>
+
+66 \ 2
+ ~<¹e_\9d.h
+>
+
+67 \ 2
+ ~<¹e_r\9ag.h
+>
+
+68 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+69 \ 2
+ ~<¹e_mbuf.h
+>
+
+70 \ 2
+ ~<¹e_\91h_ù¾.h
+>
+
+71 \ 2
+ ~<\9a\8brçû.h
+>
+
+74 \ 1
+ #IPv4_VAL
+ 0
+
+ )
+
+75 \ 1
+ #ARP_VAL
+ 1
+
+ )
+
+76 \ 1
+ #IPv6_VAL
+ 2
+
+ )
+
+79 \ 1
+ #L2_PROTO_DBG
+ 1
+
+ )
+
+84 \19
+ s´Ùo_·ck\91_ty³
+ {
+
+85
+u\9at16_t
+
+ mty³
+;
+
+86 \1e(*
+ mfunc
+è(\19
+¹e_mbuf
+ **
+ mm
+,
+u\9at16_t
+
+ mnb_pkts
+,
+u\9at64_t
+
+ mpkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+ mpÜt
+);
+
+87 }
+ g__¹e_ÿche_®igÃd
+;
+
+98
+li¡_add_ty³
+(
+u\9at16_t
+
+ty³
+,
+
+99 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+100
+l2_phy_\9a\8brçû_t
+ *));
+
+130
+ `l2_check_mac
+(\19
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+,
+
+131
+u\9at8_t
+
+pos
+,
+u\9at64_t
+ *
+pkts_mask
+, u\9at64_\88*
+¬p_pkts_mask
+,
+
+132
+u\9at64_t
+ *
+\9dv4_pkts_mask
+, u\9at64_\88*
+\9dv6_pkts_mask
+);
+
+147
+ `´ÙocÞ_hªdËr_»cv
+(\19
+¹e_mbuf
+ *
+m
+[
+IFM_BURST_SIZE
+],
+u\9at16_t
+
+nb_rx
+,
+
+148
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+ @VIL/l2l3_stack/l3fwd_common.h
+
+22 #iâdeà
+L3FWD_COMMON_H
+
+
+23 \ 1
+ #L3FWD_COMMON_H
+
+
+ )
+
+26 \ 2
+ ~<¡dio.h
+>
+
+27 \ 2
+ ~<¡dlib.h
+>
+
+28 \ 2
+ ~<¡d\9at.h
+>
+
+29 \ 2
+ ~<\9a\89y³s.h
+>
+
+30 \ 2
+ ~<sys/ty³s.h
+>
+
+31 \ 2
+ ~<sys/queue.h
+>
+
+32 \ 2
+ ~<sys/·¿m.h
+>
+
+33 \ 2
+ ~<¡r\9ag.h
+>
+
+34 \ 2
+ ~<¡d¬g.h
+>
+
+35 \ 2
+ ~<\94ºo.h
+>
+
+36 \ 2
+ ~<sigÇl.h
+>
+
+37 \ 2
+ ~<¡dboÞ.h
+>
+
+38 \ 2
+ ~<g\91Ýt.h
+>
+
+39 \ 2
+ ~<uni¡d.h
+>
+
+42 \ 2
+ ~<¹e_commÚ.h
+>
+
+43 \ 2
+ ~<¹e_hash.h
+>
+
+44 \ 2
+ ~<¹e_jhash.h
+>
+
+45 \ 2
+ ~<¹e_pÜt.h
+>
+
+46 \ 2
+ ~<¹e_veù.h
+>
+
+47 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+48 \ 2
+ ~<¹e_log.h
+>
+
+49 \ 2
+ ~<¹e_memÜy.h
+>
+
+50 \ 2
+ ~<¹e_memýy.h
+>
+
+51 \ 2
+ ~<¹e_memzÚe.h
+>
+
+52 \ 2
+ ~<¹e_\97l.h
+>
+
+53 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+54 \ 2
+ ~<¹e_Ïunch.h
+>
+
+55 \ 2
+ ~<¹e_©omic.h
+>
+
+56 \ 2
+ ~<¹e_cyþes.h
+>
+
+57 \ 2
+ ~<¹e_´eãtch.h
+>
+
+58 \ 2
+ ~<¹e_lcÜe.h
+>
+
+59 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+60 \ 2
+ ~<¹e_b¿nch_´ediùiÚ.h
+>
+
+61 \ 2
+ ~<¹e_\9a\8b¼u±s.h
+>
+
+62 \ 2
+ ~<¹e_pci.h
+>
+
+63 \ 2
+ ~<¹e_¿ndom.h
+>
+
+64 \ 2
+ ~<¹e_debug.h
+>
+
+65 \ 2
+ ~<¹e_\91h\94.h
+>
+
+66 \ 2
+ ~<¹e_\91hdev.h
+>
+
+67 \ 2
+ ~<¹e_r\9ag.h
+>
+
+68 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+69 \ 2
+ ~<¹e_mbuf.h
+>
+
+70 \ 2
+ ~<¹e_\9d.h
+>
+
+71 \ 2
+ ~<¹e_tý.h
+>
+
+72 \ 2
+ ~<¹e_udp.h
+>
+
+73 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+74 \ 2
+ ~<¹e_\8fbË.h
+>
+
+75 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+76 \ 2
+ ~<¹e_¡r\9ag_âs.h
+>
+
+77 \ 2
+ ~<¹e_ýuæags.h
+>
+
+78 \ 2
+ ~<l3fwd_Ím4.h
+>
+
+79 \ 2
+ ~<l3fwd_Ím6.h
+>
+
+80 \ 2
+ ~<¹e_\8fbË_Ím_\9dv6.h
+>
+
+85 \ 1
+ #MAX_ROUTES
+ 4
+
+ )
+
+86 \ 1
+ #L3FWD_DEBUG
+ 1
+
+ )
+
+87 \ 1
+ #MULTIPATH_FEAT
+ 1
+
+ )
+
+94 \1e
+l3fwd_\9a\99
+(\1e);
+
+99 \1e
+pÝuÏ\8b_Ím4_\8fbË_rou\8bs
+(\1e);
+
+104 \1e
+pÝuÏ\8b_Ím6_\8fbË_rou\8bs
+(\1e);
+
+109 \1e
+pÝuÏ\8b_Ím_rou\8bs
+(\1e);
+
+ @VIL/l2l3_stack/l3fwd_lpm4.c
+
+17 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+18 \ 2
+ ~"\9a\8brçû.h
+"
+
+19 \ 2
+ ~"l2_´Ùo.h
+"
+
+20 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+21 \ 2
+ ~"l3fwd_Ím6.h
+"
+
+22 \ 2
+ ~"lib_¬p.h
+"
+
+23 \ 2
+ ~"lib_icmpv6.h
+"
+
+24 \ 2
+ ~<\9a\89y³s.h
+>
+
+29 \1e*
+ gÍm4_\8fbË
+;
+
+32 \19
+¹e_hash
+ *
+ gl2_adj_hash_hªdË
+;
+
+33 \19
+¹e_hash
+ *
+ gfib_·th_hash_hªdË
+;
+
+35
+l3_¡©s_t
+
+ g¡©s
+;
+
+38
+u\9at8_t
+
+ gnh_l\9aks
+[
+MAX_SUPPORTED_FIB_PATHS
+][
+HASH_BUCKET_SIZE
+] =
+
+87 \ 1
+ #META_DATA_OFFSET
+ 128
+
+ )
+
+89 \ 1
+ #RTE_PKTMBUF_HEADROOM
+ 128
+
+ )
+
+90 \ 1
+ #ETHERNET_START
+ (
+META_DATA_OFFSET
+ +
+RTE_PKTMBUF_HEADROOM
+)
+
+ )
+
+91 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+92 \ 1
+ #IP_START
+ (
+ETHERNET_START
+ +
+ETH_HDR_SIZE
+)
+
+ )
+
+93 \ 1
+ #TCP_START
+ (
+IP_START
+ + 20)
+
+ )
+
+95 \18\1e
+ $´\9at_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+97 \12
+i
+;
+
+98 \12
+size
+ = 14;
+
+99
+u\9at8_t
+ *
+rd
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+ETHERNET_START
+);
+
+101
+ `´\9atf
+("Meta-data:\n");
+
+102 \ f
+i
+ = 0; i <
+size
+; i++) {
+
+103
+ `´\9atf
+("%02x ",
+rd
+[
+i
+]);
+
+104 ià((
+i
+ & 3) == 3)
+
+105
+ `´\9atf
+("\n");
+
+107
+ `´\9atf
+("\n");
+
+108
+ `´\9atf
+("IP\87nd TCP/UDP headers:\n");
+
+109
+rd
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+IP_START
+);
+
+110 \ f
+i
+ = 0; i < 40; i++) {
+
+111
+ `´\9atf
+("%02x ",
+rd
+[
+i
+]);
+
+112 ià((
+i
+ & 3) == 3)
+
+113
+ `´\9atf
+("\n");
+
+116
+ }
+}
+
+118 \18\19
+\9d_´ÙocÞ_ty³
+ *
+ g´Ùo_ty³
+[2];
+
+119 \12
+ $Ím_\9a\99
+(\1e)
+
+123 \19
+¹e_\8fbË_Ím_·¿ms
+
+Ím_·¿ms
+ = {
+
+124 .
+Çme
+ = "LPMv4",
+
+125 .
+n_ruËs
+ =
+IPV4_L3FWD_LPM_MAX_RULES
+,
+
+126 .
+numb\94_tbl8s
+ =
+IPV4_L3FWD_LPM_NUMBER_TBL8S
+,
+
+127 .
+æags
+ = 0,
+
+128 .
+\92\8cy_unique_size
+ = \17(\19
+fib_\9afo
+),
+
+129 .
+off£t
+ = 128,
+
+133
+Ím4_\8fbË
+ =
+
+134
+¹e_\8fbË_Ím_Ýs
+.
+ `f_ü\97\8b
+(&
+Ím_·¿ms
+,
+ `¹e_sock\91_id
+(),
+
+135 \17(\19
+fib_\9afo
+));
+
+136 ià(
+Ím4_\8fbË
+ =ð
+NULL
+) {
+
+137
+ `´\9atf
+("Failed\81o create LPM IPV4\81able\n");
+
+142 \19
+¹e_hash_·¿m\91\94s
+
+l2_adj_\9dv4_·¿ms
+ = {
+
+143 .
+Çme
+ = "l2_ADJ_HASH",
+
+144 .
+\92\8c\9bs
+ = 64,
+
+145 .
+key_Ën
+ = \17(\19
+l2_adj_key_\9dv4
+),
+
+146 .
+hash_func
+ =
+¹e_jhash
+,
+
+147 .
+hash_func_\9a\99_v®
+ = 0,
+
+151
+l2_adj_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+l2_adj_\9dv4_·¿ms
+);
+
+153 ià(
+l2_adj_hash_hªdË
+ =ð
+NULL
+) {
+
+154
+ `´\9atf
+("L2 ADJ\84te_hash_create failed\n");
+
+157
+ `´\9atf
+("l2_adj_hash_hªdË %p\n\n", (\1e*)
+l2_adj_hash_hªdË
+);
+
+161 \19
+¹e_hash_·¿m\91\94s
+
+fib_·th_\9dv4_·¿ms
+ = {
+
+162 .
+Çme
+ = "FIB_PATH_HASH",
+
+163 .
+\92\8c\9bs
+ = 64,
+
+164 .
+key_Ën
+ = \17(\19
+fib_·th_key_\9dv4
+),
+
+165 .
+hash_func
+ =
+¹e_jhash
+,
+
+166 .
+hash_func_\9a\99_v®
+ = 0,
+
+170
+fib_·th_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+fib_·th_\9dv4_·¿ms
+);
+
+172 ià(
+fib_·th_hash_hªdË
+ =ð
+NULL
+) {
+
+173
+ `´\9atf
+("FIB\85ath\84te_hash_create failed\n");
+
+177
+ }
+}
+
+179 \12
+ $Ím4_\8fbË_rou\8b_add
+(\19
+rout\9ag_\9afo
+ *
+d©a
+)
+
+182 \19
+rout\9ag_\9afo
+ *
+fib
+ =
+d©a
+;
+
+183 \19
+¹e_\8fbË_Ím_key
+
+Ím_key
+ = {
+
+184 .
+\9d
+ =
+fib
+->
+d¡_\9d_addr
+,
+
+185 .
+d\95th
+ =
+fib
+->depth,
+
+187
+u\9at8_t
+
+i
+;
+
+188 \18\12
+TÙ®_rou\8b_couÁ
+;
+
+189 \19
+fib_\9afo
+
+\92\8cy
+;
+
+190
+\92\8cy
+.
+d¡_\9d_addr
+ =
+ `¹e_bsw32
+(
+fib
+->dst_ip_addr);
+
+191
+\92\8cy
+.
+d\95th
+ =
+fib
+->depth;
+
+192
+\92\8cy
+.
+fib_nh_size
+ =
+fib
+->fib_nh_size;
+
+194 #ià
+MULTIPATH_FEAT
+
+
+195 ià(
+\92\8cy
+.
+fib_nh_size
+ =ð0 ||\83Áry.fib_nh_siz\90>
+MAX_FIB_PATHS
+)
+
+197 ià(
+\92\8cy
+.
+fib_nh_size
+ != 1)
+
+200
+ `´\9atf
+("Route can't be configured!!,\83ntry.fib_nh_size = %d\n",
+
+201
+\92\8cy
+.
+fib_nh_size
+);
+
+205 #ià
+MULTIPATH_FEAT
+
+
+206 \ f
+i
+ = 0; i <
+\92\8cy
+.
+fib_nh_size
+; i++)
+
+208 \ f
+i
+ = 0; i < 1; i++)
+
+211 \19
+fib_·th
+ *
+fib_·th_addr
+ =
+NULL
+;
+
+213
+fib_·th_addr
+ =
+
+214
+ `pÝuÏ\8b_fib_·th
+(
+fib
+->
+nh_\9d_addr
+[
+i
+], fib->
+out_pÜt
+[i]);
+
+215 ià(
+fib_·th_addr
+) {
+
+217
+\92\8cy
+.
+·th
+[
+i
+] =
+fib_·th_addr
+;
+
+218
+ `´\9atf
+("Fib info for\81he Dest IP");
+
+219
+ `´\9atf
+(" : %"
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+220 "/%"
+PRIu8
+
+
+222 (
+fib
+->
+d¡_\9d_addr
+ & 0xFF000000) >> 24,
+
+223 (
+fib
+->
+d¡_\9d_addr
+ & 0x00FF0000) >> 16,
+
+224 (
+fib
+->
+d¡_\9d_addr
+ & 0x0000FF00) >> 8,
+
+225 (
+fib
+->
+d¡_\9d_addr
+ & 0x000000FF), fib->
+d\95th
+,
+
+226
+fib_·th_addr
+,
+
+227 (\1e*)
+\92\8cy
+.
+·th
+[
+i
+]->
+l2_adj_±r
+);
+
+229
+ `´\9atf
+("Fib infØfÜ\81h\90De¡ IP :\
+%"
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32 "/%"
+PRIu8
+ " => fib_·th Addr: NULL \n", (
+fib
+->
+d¡_\9d_addr
+ & 0xFF000000è>> 24, (fib->d¡_\9d_add¸& 0x00FF0000è>> 16, (fib->d¡_\9d_add¸& 0x0000FF00è>> 8, (fib->d¡_\9d_add¸& 0x000000FF), fib->
+d\95th
+);
+
+231
+\92\8cy
+.
+·th
+[
+i
+] =
+NULL
+;
+
+235 \12
+key_found
+,
+»t
+;
+
+236 \1e*
+\92\8cy_±r
+;
+
+237
+»t
+ =
+
+238
+¹e_\8fbË_Ím_Ýs
+.
+ `f_add
+(
+Ím4_\8fbË
+, (\1e*)&
+Ím_key
+, &
+\92\8cy
+,
+
+239 &
+key_found
+, &
+\92\8cy_±r
+);
+
+241 ià(
+»t
+ != 0) {
+
+242
+ `´\9atf
+("Failed\81o Add IP\84oute\n");
+
+245
+TÙ®_rou\8b_couÁ
+++;
+
+246
+ `´\9atf
+("TÙ® Rou\8bd Added : %u, Key_found: %d\n",
+TÙ®_rou\8b_couÁ
+,
+
+247
+key_found
+);
+
+248
+ `´\9atf
+("Adding Route\81o LPM\81able...\n");
+
+250
+ `´\9atf
+("Iterate with Cuckoo Hash\81able\n");
+
+251
+ `\99\94©e_cuckoo_hash_\8fbË
+();
+
+253
+ }
+}
+
+255 \12
+ $Ím4_\8fbË_rou\8b_d\96\91e
+(
+u\9at32_t
+
+d¡_\9d
+,
+u\9at8_t
+
+d\95th
+)
+
+258 \19
+¹e_\8fbË_Ím_key
+
+Ím_key
+ = {
+
+259 .
+\9d
+ =
+d¡_\9d
+,
+
+260 .
+d\95th
+ = depth,
+
+263 \12
+key_found
+,
+»t
+;
+
+264 \1e*
+\92\8cy
+ =
+NULL
+;
+
+266
+\92\8cy
+ =
+ `¹e_zm®loc
+(
+NULL
+, 512,
+RTE_CACHE_LINE_SIZE
+);
+
+269
+»t
+ =
+
+270
+¹e_\8fbË_Ím_Ýs
+.
+ `f_d\96\91e
+(
+Ím4_\8fbË
+, &
+Ím_key
+, &
+key_found
+,
+\92\8cy
+);
+
+272 ià(
+»t
+) {
+
+273
+ `´\9atf
+("Failed\81o Delete IP\84oute from LPMv4\81able\n");
+
+277
+ `´\9atf
+("Deleted\84oute from LPM\81able (IPv4 Address = %"
+
+278
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+279 "/%u , key_found = %d\n", (
+Ím_key
+.
+\9d
+ & 0xFF000000) >> 24,
+
+280 (
+Ím_key
+.
+\9d
+ & 0x00FF0000) >> 16, (lpm_key.ip & 0x0000FF00) >> 8,
+
+281 (
+Ím_key
+.
+\9d
+ & 0x000000FF),\86pm_key.
+d\95th
+,
+key_found
+);
+
+284
+ `»move_fib_l2_adj_\92\8cy
+(
+\92\8cy
+);
+
+285
+ `¹e_ä\93
+(
+\92\8cy
+);
+
+286
+ `´\9atf
+("Iterate with Cuckoo Hash\81able\n");
+
+287
+ `\99\94©e_cuckoo_hash_\8fbË
+();
+
+289
+ }
+}
+
+292
+ $Ím4_\8fbË_lookup
+(\19
+¹e_mbuf
+ **
+pkts_bur¡
+,
+u\9at16_t
+
+nb_pkts
+,
+
+293
+u\9at64_t
+
+pkts_mask
+,
+
+294
+l2_phy_\9a\8brçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+295
+u\9at64_t
+ *
+h\99_mask
+)
+
+298 \19
+rout\9ag_\8fbË_\92\8cy
+ *
+\9dv4_\92\8c\9bs
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+299
+u\9at64_t
+
+lookup_h\99_mask_\9dv4
+ = 0;
+
+300 \12
+¡©us
+;
+
+301
+u\9at64_t
+
+pkts_key_mask
+ =
+pkts_mask
+;
+
+302
+u\9at64_t
+
+lookup_miss_mask_\9dv4
+ =
+pkts_mask
+;
+
+304 \18
+u\9at64_t
+
+£Á_couÁ
+;
+
+305 \18
+u\9at64_t
+
+rcvd_couÁ
+;
+
+306
+rcvd_couÁ
+ +ð
+nb_pkts
+;
+
+307 ià(
+L3FWD_DEBUG
+) {
+
+308
+´\9atf
+
+
+310
+nb_pkts
+,
+rcvd_couÁ
+, (\1e*)
+pkts_mask
+);
+
+312
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+313
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+315 \ f;
+pkts_key_mask
+;) {
+
+317
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_key_mask
+);
+
+318
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+319
+pkts_key_mask
+ &ð~
+pkt_mask
+;
+
+320 \19
+¹e_mbuf
+ *
+mbuf
+ =
+pkts_bur¡
+[
+pos
+];
+
+321
+u\9at32_t
+ *
+Ím_key
+ =
+NULL
+;
+
+322
+u\9at32_t
+ *
+d¡_addr
+ =
+NULL
+;
+
+323
+Ím_key
+ = (
+u\9at32_t
+ *è
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+, 128);
+
+324
+d¡_addr
+ =
+
+325 (
+u\9at32_t
+ *è
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+,
+
+326
+d¡_addr_off£t
+);
+
+327 *
+Ím_key
+ = *
+d¡_addr
+;
+
+328 ià(
+L3FWD_DEBUG
+) {
+
+330
+ `´\9atf
+("Rcvd Pakt (IPv4 Address = %"
+
+331
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32 ")\n",
+
+332 (
+ `¹e_ýu_to_be_32
+(*
+Ím_key
+) & 0xFF000000) >> 24,
+
+333 (
+ `¹e_ýu_to_be_32
+(*
+Ím_key
+) & 0x00FF0000) >> 16,
+
+334 (
+ `¹e_ýu_to_be_32
+(*
+Ím_key
+) & 0x0000FF00) >> 8,
+
+335 (
+ `¹e_ýu_to_be_32
+(*
+Ím_key
+) & 0x000000FF));
+
+340 ià(
+L3FWD_DEBUG
+)
+
+341
+ `´\9atf
+("\nIPV4 Lookup Mask Before = %p\n",
+
+342 (\1e*)
+lookup_h\99_mask_\9dv4
+);
+
+343
+¡©us
+ =
+
+344
+¹e_\8fbË_Ím_Ýs
+.
+ `f_lookup
+(
+Ím4_\8fbË
+,
+pkts_bur¡
+,
+pkts_mask
+,
+
+345 &
+lookup_h\99_mask_\9dv4
+,
+
+346 (\1e**)
+\9dv4_\92\8c\9bs
+);
+
+348 ià(
+¡©us
+) {
+
+349
+ `´\9atf
+("LPM Lookup failed for IP\84oute\n");
+
+353
+lookup_miss_mask_\9dv4
+ =\86ookup_miss_mask_\9dv4 & (~
+lookup_h\99_mask_\9dv4
+);
+
+354 ià(
+L3FWD_DEBUG
+) {
+
+355
+´\9atf
+
+
+357 (\1e*)
+lookup_h\99_mask_\9dv4
+,
+
+358 (\1e*)
+lookup_miss_mask_\9dv4
+);
+
+361 \ f;
+lookup_miss_mask_\9dv4
+;) {
+
+363
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+lookup_miss_mask_\9dv4
+);
+
+364
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+365
+lookup_miss_mask_\9dv4
+ &ð~
+pkt_mask
+;
+
+366
+ `¹e_pktmbuf_ä\93
+(
+pkts_bur¡
+[
+pos
+]);
+
+367
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+368
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+369 ià(
+L3FWD_DEBUG
+)
+
+370
+ `´\9atf
+("\n DROP PKT IPV4 Lookup_miss_Mask = %p\n",
+
+371 (\1e*)
+lookup_miss_mask_\9dv4
+);
+
+374 *
+h\99_mask
+ =
+lookup_h\99_mask_\9dv4
+;
+
+375 \ f;
+lookup_h\99_mask_\9dv4
+;) {
+
+377
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+lookup_h\99_mask_\9dv4
+);
+
+378
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+379
+lookup_h\99_mask_\9dv4
+ &ð~
+pkt_mask
+;
+
+380 \19
+¹e_mbuf
+ *
+pkt
+ =
+pkts_bur¡
+[
+pos
+];
+
+382 \19
+fib_\9afo
+ *
+\92\8cy
+ = (\19fib_\9afØ*)
+\9dv4_\92\8c\9bs
+[
+pos
+];
+
+384 #ià
+MULTIPATH_FEAT
+
+
+386
+u\9at8_t
+
+ecmp_·th
+ = 0;
+
+387
+ecmp_·th
+ =
+ `\9d_hash_lßd_b®ªû
+(
+pkts_bur¡
+[
+pos
+]);
+
+388
+u\9at8_t
+
+£Ëùed_·th
+ = 0;
+
+389 \19
+fib_·th
+ *fib_·th =
+NULL
+;
+
+390 ià(((
+\92\8cy
+->
+fib_nh_size
+ != 0)
+
+391 && (
+\92\8cy
+->
+fib_nh_size
+ - 1è<
+MAX_SUPPORTED_FIB_PATHS
+)
+
+392 && ((
+ecmp_·th
+ !ð0è&& (ecmp_·th - 1è<
+HASH_BUCKET_SIZE
+))
+
+393
+£Ëùed_·th
+ =
+
+394
+nh_l\9aks
+[
+\92\8cy
+->
+fib_nh_size
+ - 1][
+ecmp_·th
+ - 1];
+
+395 ià(
+£Ëùed_·th
+ <
+MAX_FIB_PATHS
+)
+
+396
+fib_·th
+ =
+\92\8cy
+->
+·th
+[
+£Ëùed_·th
+];
+
+397 ià(
+L3FWD_DEBUG
+) {
+
+398
+´\9atf
+
+
+400
+\92\8cy
+->
+fib_nh_size
+,
+ecmp_·th
+,
+£Ëùed_·th
+);
+
+403 \19
+fib_·th
+ *fib_·th =
+\92\8cy
+->
+·th
+[0];
+
+406 ià(
+fib_·th
+ =ð
+NULL
+) {
+
+407
+ `¹e_pktmbuf_ä\93
+(
+pkt
+);
+
+408
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+409
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+410 *
+h\99_mask
+ &ð~
+pkt_mask
+;
+
+411 ià(
+L3FWD_DEBUG
+)
+
+412
+´\9atf
+
+
+417 ià(
+fib_·th
+->
+l2_adj_±r
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+) {
+
+418 ià(
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+->
+\9dv4_li¡
+ !ð
+NULL
+)
+
+419
+ `»que¡_¬p
+(
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+->
+
+420
+pmdid
+,
+fib_·th
+->
+nh_\9d
+);
+
+422
+ `¹e_pktmbuf_ä\93
+(
+pkts_bur¡
+[
+pos
+]);
+
+423
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+424 *
+h\99_mask
+ &ð~
+pkt_mask
+;
+
+425 ià(
+L3FWD_DEBUG
+)
+
+426
+´\9atf
+
+
+432
+u\9at8_t
+ *
+\91h_de¡
+ =
+
+433
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+MBUF_HDR_ROOM
+);
+
+434
+u\9at8_t
+ *
+\91h_¤c
+ =
+
+435
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+MBUF_HDR_ROOM
+ + 6);
+
+436 ià(
+L3FWD_DEBUG
+) {
+
+437
+´\9atf
+
+
+440
+\91h_de¡
+[0],\83th_de¡[1],\83th_de¡[2],\83th_de¡[3],\83th_de¡[4],\83th_de¡[5],
+\91h_¤c
+[0],\83th_src[1],
+
+441
+\91h_¤c
+[2],\83th_src[3],\83th_src[4],\83th_src[5]);
+
+444
+ `memýy
+(
+\91h_de¡
+,
+fib_·th
+->
+l2_adj_±r
+->
+l2_¡r\9ag
+, \17(\19
+\91h\94_addr
+) * 2);
+
+445 ià(
+L3FWD_DEBUG
+) {
+
+446 \12
+k
+ = 0;
+
+447 \ f
+k
+ = 0; k < 14; k++) {
+
+448
+ `´\9atf
+("%02x ",
+
+449
+fib_·th
+->
+l2_adj_±r
+->
+l2_¡r\9ag
+[
+k
+]);
+
+450
+ `´\9atf
+("\n");
+
+452
+´\9atf
+
+
+453 ("MAC AFTER DST MAC %02x:%02x:%02x:%02x:%02x:%02x, \
+ MAC %02x:%02x:%02x:%02x:%02x:%02x\n",
+\91h_de¡
+[0],\83th_de¡[1],\83th_de¡[2],\83th_de¡[3],\83th_de¡[4],\83th_de¡[5],
+\91h_¤c
+[0],\83th_src[1],\83th_src[2],\83th_src[3],\83th_src[4],\83th_src[5]);
+
+456
+pÜt_±r
+[
+pos
+] =
+fib_·th
+->
+l2_adj_±r
+->
+phy_pÜt
+;
+
+457 ià(
+L3FWD_DEBUG
+) {
+
+458
+ `´\9atf
+("l3fwd_lookup API!!!!\n");
+
+462
+£Á_couÁ
+++;
+
+463
+¡©s
+.
+nb_tx_l3_pkt
+++;
+
+464 ià(
+L3FWD_DEBUG
+)
+
+465
+´\9atf
+
+
+467
+fib_·th
+->
+out_pÜt
+,
+£Á_couÁ
+);
+
+470
+ }
+}
+
+472 \12
+ $is_v®id_\9dv4_pkt
+(\19
+\9dv4_hdr
+ *
+pkt
+,
+u\9at32_t
+
+l\9ak_Ën
+)
+
+474 ià(
+l\9ak_Ën
+ < \17(\19
+\9dv4_hdr
+))
+
+476 ià(((
+pkt
+->
+v\94siÚ_ihl
+) >> 4) != 4)
+
+478 ià((
+pkt
+->
+v\94siÚ_ihl
+ & 0xf) < 5)
+
+480 ià(
+ `¹e_ýu_to_be_16
+(
+pkt
+->
+tÙ®_Ëngth
+è< \17(\19
+\9dv4_hdr
+))
+
+483
+ }
+}
+
+486
+ $g\91_de¡_mac_fÜ_ÃxthÝ
+(
+u\9at32_t
+
+Ãxt_hÝ_\9d
+,
+
+487
+u\9at8_t
+
+out_phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+489 \19
+¬p_\92\8cy_d©a
+ *
+¬p_d©a
+ =
+NULL
+;
+
+490 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+491
+¬p_key
+.
+pÜt_id
+ =
+out_phy_pÜt
+;
+
+492
+¬p_key
+.
+\9d
+ =
+Ãxt_hÝ_\9d
+;
+
+494
+¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+¬p_key
+);
+
+495 ià(
+¬p_d©a
+ =ð
+NULL
+) {
+
+496
+ `´\9atf
+("ARP\83ntry is\82ot found for ip %x,\85ort %d\n",
+
+497
+Ãxt_hÝ_\9d
+,
+out_phy_pÜt
+);
+
+500
+ `\91h\94_addr_cÝy
+(&
+¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+502
+ }
+}
+
+504 \19
+l2_adj_\92\8cy
+ *
+ $»\8c\9bve_l2_adj_\92\8cy
+(\19
+l2_adj_key_\9dv4
+
+l2_adj_key
+)
+
+506 \19
+l2_adj_\92\8cy
+ *
+»t_l2_adj_d©a
+ =
+NULL
+;
+
+507
+l2_adj_key
+.
+f\9eËr1
+ = 0;
+
+508
+l2_adj_key
+.
+f\9eËr2
+ = 0;
+
+509
+l2_adj_key
+.
+f\9eËr3
+ = 0;
+
+511 \12
+»t
+ =
+
+512
+ `¹e_hash_lookup_d©a
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+,
+
+513 (\1e**)&
+»t_l2_adj_d©a
+);
+
+514 ià(
+»t
+ < 0) {
+
+515 #ifdeà
+L2L3_DEBUG
+
+
+516
+´\9atf
+
+
+518
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+520 \15
+NULL
+;
+
+522 #ifdeà
+L2L3_DEBUG
+
+
+523
+´\9atf
+
+
+525
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+527 \15
+»t_l2_adj_d©a
+;
+
+529
+ }
+}
+
+531 \1e
+ $»move_fib_l2_adj_\92\8cy
+(\1e*
+\92\8cy
+)
+
+533 \19
+fib_\9afo
+
+\92\8cy1
+;
+
+534
+ `memýy
+(&
+\92\8cy1
+,
+\92\8cy
+, \17(\19
+fib_\9afo
+));
+
+536 \19
+fib_·th
+ *
+fib_·th_addr
+ =
+\92\8cy1
+.
+·th
+[0];
+
+537 ià(
+fib_·th_addr
+->
+»fcouÁ
+ > 1) {
+
+538
+´\9atf
+
+
+540
+fib_·th_addr
+->
+nh_\9d
+, fib_·th_addr->
+out_pÜt
+,
+
+541
+fib_·th_addr
+->
+»fcouÁ
+);
+
+542
+fib_·th_addr
+->
+»fcouÁ
+--;
+
+543
+ `´\9atf
+("AFTER fib_path\83ntry,\82h_ip %x,\85ort %d,\84efcount %d\n",
+
+544
+fib_·th_addr
+->
+nh_\9d
+, fib_·th_addr->
+out_pÜt
+,
+
+545
+fib_·th_addr
+->
+»fcouÁ
+);
+
+549 \19
+l2_adj_\92\8cy
+ *
+adj_addr
+ =
+NULL
+;
+
+550
+adj_addr
+ =
+fib_·th_addr
+->
+l2_adj_±r
+;
+
+552 ià(
+adj_addr
+ !ð
+NULL
+) {
+
+554 \19
+l2_adj_key_\9dv4
+
+l2_adj_key
+ = {
+
+555 .
+Next_hÝ_\9d
+ =
+fib_·th_addr
+->
+nh_\9d
+,
+
+556 .
+out_pÜt_id
+ =
+fib_·th_addr
+->
+out_pÜt
+,
+
+558 #ifdeà
+L3FWD_DEBUG
+
+
+559
+´\9atf
+
+
+561
+l2_adj_key
+.
+Next_hÝ_\9d
+,\862_adj_key.
+out_pÜt_id
+,
+
+562
+adj_addr
+->
+»fcouÁ
+);
+
+565
+ `¹e_hash_d\96_key
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+);
+
+566
+ `¹e_ä\93
+(
+adj_addr
+);
+
+567
+adj_addr
+ =
+NULL
+;
+
+570 \19
+fib_·th_key_\9dv4
+
+·th_key
+ = {
+
+571 .
+nh_\9d
+ =
+fib_·th_addr
+->nh_ip,
+
+572 .
+out_pÜt
+ =
+fib_·th_addr
+->out_port,
+
+575
+´\9atf
+
+
+577
+fib_·th_addr
+->
+nh_\9d
+, fib_·th_addr->
+out_pÜt
+,
+
+578
+fib_·th_addr
+->
+»fcouÁ
+);
+
+579
+ `¹e_hash_d\96_key
+(
+fib_·th_hash_hªdË
+, &
+·th_key
+);
+
+580
+ `¹e_ä\93
+(
+fib_·th_addr
+);
+
+581
+fib_·th_addr
+ =
+NULL
+;
+
+583
+ }
+}
+
+585 \19
+l2_adj_\92\8cy
+ *
+ $pÝuÏ\8b_l2_adj
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+)
+
+588 \19
+l2_adj_key_\9dv4
+
+l2_adj_key
+;
+
+589
+l2_adj_key
+.
+out_pÜt_id
+ =
+pÜtid
+;
+
+590
+l2_adj_key
+.
+Next_hÝ_\9d
+ =
+\9daddr
+;
+
+591
+l2_adj_key
+.
+f\9eËr1
+ = 0;
+
+592
+l2_adj_key
+.
+f\9eËr2
+ = 0;
+
+593
+l2_adj_key
+.
+f\9eËr3
+ = 0;
+
+595 \19
+\91h\94_addr
+
+\91h_d¡
+;
+
+596 \19
+l2_adj_\92\8cy
+ *
+adj_d©a
+ =
+NULL
+;
+
+599
+adj_d©a
+ =
+ `»\8c\9bve_l2_adj_\92\8cy
+(
+l2_adj_key
+);
+
+601 ià(
+adj_d©a
+) {
+
+603
+´\9atf
+
+
+605
+l2_adj_key
+.
+Next_hÝ_\9d
+,\862_adj_key.
+out_pÜt_id
+,
+
+606
+adj_d©a
+->
+»fcouÁ
+,\87dj_data);
+
+607
+ `\91h\94_addr_cÝy
+(&
+adj_d©a
+->
+\91h_addr
+, &
+\91h_d¡
+);
+
+608
+adj_d©a
+->
+»fcouÁ
+++;
+
+609
+´\9atf
+
+
+611
+l2_adj_key
+.
+Next_hÝ_\9d
+,\862_adj_key.
+out_pÜt_id
+,
+
+612
+adj_d©a
+->
+»fcouÁ
+,\87dj_data);
+
+613 \15
+adj_d©a
+;
+
+616 \19
+\91h\94_addr
+
+\91h_¤c
+;
+
+617
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+619
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+pÜtid
+);
+
+621 ià(
+pÜt
+ !ð
+NULL
+) {
+
+622
+ `memýy
+(&
+\91h_¤c
+, &
+pÜt
+->
+maÿddr
+, \17(\19
+\91h\94_addr
+));
+
+623 \1d\ 5*
+p
+ = (\1d\ 5*)
+\91h_¤c
+.
+addr_by\8bs
+;
+
+624
+ `´\9atf
+("S-MAC %x:%x:%x:%x:%x:%x\n\r",
+p
+[0],\85[1],\85[2],\85[3],
+
+625
+p
+[4],\85[5]);
+
+627
+u\9at32_t
+
+size
+ =
+
+628
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+l2_adj_\92\8cy
+));
+
+629
+adj_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+630 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+631
+ `´\9atf
+("L2 Adjacency memory\87llocation failed !\n");
+
+632 \15
+NULL
+;
+
+635
+adj_d©a
+->
+out_pÜt_id
+ =
+pÜtid
+;
+
+636
+adj_d©a
+->
+Next_hÝ_\9d
+ =
+\9daddr
+;
+
+637
+adj_d©a
+->
+»fcouÁ
+++;
+
+639
+adj_d©a
+->
+phy_pÜt
+ =
+pÜt
+;
+
+640
+ `mem£t
+(&
+adj_d©a
+->
+\91h_addr
+, 0, \17(\19
+\91h\94_addr
+));
+
+641
+ `mem£t
+(&
+adj_d©a
+->
+l2_¡r\9ag
+, 0, 256);
+
+644
+ `¹e_hash_add_key_d©a
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+,
+
+645
+adj_d©a
+);
+
+646 #ifdeà
+L2L3_DEBUG
+
+
+647
+´\9atf
+
+
+649
+adj_d©a
+);
+
+652 #ifdeà
+L2L3_DEBUG
+
+
+653
+ `´\9atf
+("\ÀPORT %u IS DOWN...\n",
+pÜtid
+);
+
+655 \15
+NULL
+;
+
+658 ià(
+ `g\91_de¡_mac_fÜ_ÃxthÝ
+(
+\9daddr
+,
+pÜtid
+, &
+\91h_d¡
+)) {
+
+659 \1d\ 5*
+p
+ = (\1d\ 5*)
+\91h_d¡
+.
+addr_by\8bs
+;
+
+660
+´\9atf
+
+
+662
+p
+[0],\85[1],\85[2],\85[3],\85[4],\85[5]);
+
+664
+ `memýy
+(
+adj_d©a
+->
+l2_¡r\9ag
+, &
+\91h_d¡
+, \17(\19
+\91h\94_addr
+));
+
+665
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6], &
+\91h_¤c
+,
+
+666 \17(\19
+\91h\94_addr
+));
+
+669
+ `\91h\94_addr_cÝy
+(&
+\91h_d¡
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+670
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+672
+adj_d©a
+->
+æags
+ =
+L2_ADJ_UNRESOLVED
+;
+
+673
+´\9atf
+
+
+676 \15
+adj_d©a
+;
+
+677
+ }
+}
+
+679 \19
+fib_·th
+ *
+ $pÝuÏ\8b_fib_·th
+(
+u\9at32_t
+
+nh_\9d
+,
+u\9at8_t
+
+pÜtid
+)
+
+682 \19
+fib_·th_key_\9dv4
+
+·th_key
+;
+
+683
+·th_key
+.
+out_pÜt
+ =
+pÜtid
+;
+
+684
+·th_key
+.
+nh_\9d
+ =\82h_ip;
+
+685
+·th_key
+.
+f\9eËr1
+ = 0;
+
+686
+·th_key
+.
+f\9eËr2
+ = 0;
+
+687
+·th_key
+.
+f\9eËr3
+ = 0;
+
+689 \19
+fib_·th
+ *
+fib_d©a
+ =
+NULL
+;
+
+692
+fib_d©a
+ =
+ `»\8c\9bve_fib_·th_\92\8cy
+(
+·th_key
+);
+
+694 ià(
+fib_d©a
+) {
+
+697
+´\9atf
+
+
+699
+fib_d©a
+->
+nh_\9d
+, fib_d©a->
+out_pÜt
+, fib_d©a->
+»fcouÁ
+,
+
+700
+fib_d©a
+);
+
+701
+fib_d©a
+->
+»fcouÁ
+++;
+
+702
+fib_d©a
+->
+l2_adj_±r
+->
+»fcouÁ
+++;
+
+703
+´\9atf
+
+
+705
+fib_d©a
+->
+nh_\9d
+, fib_d©a->
+out_pÜt
+, fib_d©a->
+»fcouÁ
+);
+
+706 \15
+fib_d©a
+;
+
+708
+ `´\9atf
+("fib_path\83ntry Doesn't Exists.......\n");
+
+711
+fib_d©a
+ =
+NULL
+;
+
+712 \19
+l2_adj_\92\8cy
+ *
+l2_adj_±r
+ =
+NULL
+;
+
+713
+l2_adj_±r
+ =
+ `pÝuÏ\8b_l2_adj
+(
+nh_\9d
+,
+pÜtid
+);
+
+715 ià(
+l2_adj_±r
+) {
+
+717
+u\9at32_t
+
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+fib_·th
+));
+
+718
+fib_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+720
+fib_d©a
+->
+out_pÜt
+ =
+pÜtid
+;
+
+721
+fib_d©a
+->
+nh_\9d
+ =\82h_ip;
+
+722
+fib_d©a
+->
+»fcouÁ
+++;
+
+723
+fib_d©a
+->
+l2_adj_±r
+ =\862_adj_ptr;
+
+725
+ `´\9atf
+("%s: g\91\85Ü\88d\91a\9e %u %d\n\r",
+__FUNCTION__
+,
+pÜtid
+,
+
+726
+__LINE__
+);
+
+728 \12
+¡©us
+;
+
+729
+¡©us
+ =
+
+730
+ `¹e_hash_add_key_d©a
+(
+fib_·th_hash_hªdË
+, &
+·th_key
+,
+
+731
+fib_d©a
+);
+
+732 ià(
+¡©us
+) {
+
+733
+´\9atf
+
+
+735
+fib_d©a
+->
+nh_\9d
+, fib_d©a->
+out_pÜt
+,
+
+736
+fib_d©a
+->
+»fcouÁ
+);
+
+738
+ `¹e_ä\93
+(
+fib_d©a
+);
+
+740
+´\9atf
+
+
+742
+fib_d©a
+->
+nh_\9d
+, fib_d©a->
+out_pÜt
+,
+
+743
+fib_d©a
+->
+»fcouÁ
+);
+
+744
+´\9atf
+
+
+746
+l2_adj_±r
+,
+fib_d©a
+, fib_data->l2_adj_ptr);
+
+747
+´\9atf
+
+
+749
+l2_adj_±r
+,
+fib_d©a
+);
+
+750 \15
+fib_d©a
+;
+
+753
+´\9atf
+
+
+756 \15
+NULL
+;
+
+757
+ }
+}
+
+759 \19
+fib_·th
+ *
+ $»\8c\9bve_fib_·th_\92\8cy
+(\19
+fib_·th_key_\9dv4
+
+·th_key
+)
+
+761
+ `´\9atf
+("FIB PATH fÜ NExtHOP IP : %x,\85Ü\88:%u\n",
+·th_key
+.
+nh_\9d
+,
+
+762
+·th_key
+.
+out_pÜt
+);
+
+764 \19
+fib_·th
+ *
+»t_fib_·th_d©a
+ =
+NULL
+;
+
+765 \12
+»t
+ =
+
+766
+ `¹e_hash_lookup_d©a
+(
+fib_·th_hash_hªdË
+, &
+·th_key
+,
+
+767 (\1e**)&
+»t_fib_·th_d©a
+);
+
+768 ià(
+»t
+ < 0) {
+
+769
+´\9atf
+
+
+771
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+772 \15
+NULL
+;
+
+774
+ `´\9atf
+("FIB PATH ALREADY Exists for NExtHOP IP: %x,\85ort: %u\n",
+
+775
+·th_key
+.
+nh_\9d
+,\85©h_key.
+out_pÜt
+);
+
+776 \15
+»t_fib_·th_d©a
+;
+
+778
+ }
+}
+
+780 \1e
+ $\99\94©e_cuckoo_hash_\8fbË
+(\1e)
+
+782 cڡ \1e*
+Ãxt_key
+;
+
+783 \1e*
+Ãxt_d©a
+;
+
+784
+u\9at32_t
+
+\99\94
+ = 0;
+
+786
+ `´\9atf
+("\n\t\t\t FIB_path Cache\81able....");
+
+787
+´\9atf
+
+
+789
+ `´\9atf
+("\n\tNextHop IP Port Refcount\862_adj_ptr_addrress\n");
+
+790
+´\9atf
+
+
+793 \1f
+¹e_hash_\99\94©e
+
+
+794 (
+fib_·th_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >= 0) {
+
+795 \19
+fib_·th
+ *
+tmp_d©a
+ = (\19fib_·th *)
+Ãxt_d©a
+;
+
+796 \19
+fib_·th_key_\9dv4
+
+tmp_key
+;
+
+797
+ `memýy
+(&
+tmp_key
+,
+Ãxt_key
+, \17(tmp_key));
+
+798
+ `´\9atf
+("\\88%"
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+800 (
+tmp_d©a
+->
+nh_\9d
+ & 0xFF000000) >> 24,
+
+801 (
+tmp_d©a
+->
+nh_\9d
+ & 0x00FF0000) >> 16,
+
+802 (
+tmp_d©a
+->
+nh_\9d
+ & 0x0000FF00) >> 8,
+
+803 (
+tmp_d©a
+->
+nh_\9d
+ & 0x000000FF),\81mp_d©a->
+out_pÜt
+,
+
+804
+tmp_d©a
+->
+»fcouÁ
+,\81mp_d©a->
+l2_adj_±r
+);
+
+807
+\99\94
+ = 0;
+
+809
+ `´\9atf
+("\n\t\t\t L2 ADJ Cache\81able.....");
+
+810
+´\9atf
+
+
+812
+´\9atf
+
+
+814
+´\9atf
+
+
+817 \1f
+¹e_hash_\99\94©e
+
+
+818 (
+l2_adj_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >= 0) {
+
+819 \19
+l2_adj_\92\8cy
+ *
+l2_d©a
+ = (\19l2_adj_\92\8cy *)
+Ãxt_d©a
+;
+
+820 \19
+l2_adj_key_\9dv4
+
+l2_key
+;
+
+821
+ `memýy
+(&
+l2_key
+,
+Ãxt_key
+, \17(l2_key));
+
+822
+ `´\9atf
+("\\88%"
+PRIu32
+ ".%" PRIu32 ".%" PRIu32 ".%" PRIu32
+
+824 (
+l2_d©a
+->
+Next_hÝ_\9d
+ & 0xFF000000) >> 24,
+
+825 (
+l2_d©a
+->
+Next_hÝ_\9d
+ & 0x00FF0000) >> 16,
+
+826 (
+l2_d©a
+->
+Next_hÝ_\9d
+ & 0x0000FF00) >> 8,
+
+827 (
+l2_d©a
+->
+Next_hÝ_\9d
+ & 0x000000FF),
+
+828
+l2_d©a
+->
+out_pÜt_id
+,\862_d©a->
+l2_¡r\9ag
+[0],
+
+829
+l2_d©a
+->
+l2_¡r\9ag
+[1],\862_data->l2_string[2],
+
+830
+l2_d©a
+->
+l2_¡r\9ag
+[3],\862_data->l2_string[4],
+
+831
+l2_d©a
+->
+l2_¡r\9ag
+[5],\862_data->l2_string[6],
+
+832
+l2_d©a
+->
+l2_¡r\9ag
+[7],\862_data->l2_string[8],
+
+833
+l2_d©a
+->
+l2_¡r\9ag
+[9],\862_data->l2_string[10],
+
+834
+l2_d©a
+->
+l2_¡r\9ag
+[11],\862_d©a->
+phy_pÜt
+);
+
+836
+ }
+}
+
+838 \1e
+ $´\9at_l3_¡©s
+(\1e)
+
+840
+ `´\9atf
+("==============================================\n");
+
+841
+ `´\9atf
+("\t\t L3 STATISTICS \t\n");
+
+842
+ `´\9atf
+("==============================================\n");
+
+843
+ `´\9atf
+(" Num oàReûived L3 Pkt : %lu\n",
+¡©s
+.
+nb_rx_l3_pkt
+);
+
+844
+ `´\9atf
+(" Num oàDrݳd L3 Pkt : %lu\n",
+¡©s
+.
+nb_l3_drÝ_pkt
+);
+
+845
+ `´\9atf
+(" Num oàT¿nsm\99\8bd L3 Pkt : %lu\n",
+¡©s
+.
+nb_tx_l3_pkt
+);
+
+846
+ `´\9atf
+(" Num oàICMP Pkt Rcvd\87\88L3 : %lu\n",
+¡©s
+.
+nb_rx_l3_icmp_pkt
+);
+
+847
+ `´\9atf
+(" Num oàICMP Pkt Tx\81ØICMP : %lu\n",
+¡©s
+.
+nb_tx_l3_icmp_pkt
+);
+
+848
+¡©s
+.
+tٮ_nb_rx_l3_pkt
+ = s\8fts.
+nb_rx_l3_icmp_pkt
+ + s\8fts.
+nb_rx_l3_pkt
+;
+
+849
+¡©s
+.
+tٮ_nb_tx_l3_pkt
+ = s\8fts.
+nb_tx_l3_icmp_pkt
+ + s\8fts.
+nb_tx_l3_pkt
+;
+
+850
+ `´\9atf
+(" Total Num of Rcvd\85kts\87t L3: %lu\n",
+
+851
+¡©s
+.
+tٮ_nb_rx_l3_pkt
+);
+
+852
+ `´\9atf
+(" Total Num of Sent\85kts\87t L3: %lu\n",
+
+853
+¡©s
+.
+tٮ_nb_tx_l3_pkt
+);
+
+854
+ }
+}
+
+857
+ $\9d_loÿl_·ck\91s_´oûss
+(\19
+¹e_mbuf
+ **
+pkt_bur¡
+,
+u\9at16_t
+
+nb_rx
+,
+
+858
+u\9at64_t
+
+icmp_pkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+860
+ `´oûss_¬picmp_pkt_·r£
+(
+pkt_bur¡
+,
+nb_rx
+,
+icmp_pkt_mask
+,
+pÜt
+);
+
+861
+ }
+}
+
+864
+ $\9d_fÜw¬d_d\96iv\94
+(\19
+¹e_mbuf
+ **
+pkt_bur¡
+,
+u\9at16_t
+
+nb_pkts
+,
+
+865
+u\9at64_t
+
+\9dv4_fÜw¬d_pkts_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+867 ià(
+L3FWD_DEBUG
+) {
+
+868
+´\9atf
+
+
+870
+nb_pkts
+,
+pÜt
+->
+pmdid
+);
+
+872
+u\9at64_t
+
+pkts_fÜ_´oûss
+ =
+\9dv4_fÜw¬d_pkts_mask
+;
+
+874 \19
+\9dv4_hdr
+ *ipv4_hdr;
+
+875
+l2_phy_\9a\8brçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+876
+u\9at64_t
+
+h\99_mask
+ = 0;
+
+878 \ f;
+pkts_fÜ_´oûss
+;) {
+
+880
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+881
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+882
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+883
+\9dv4_hdr
+ =
+
+884
+ `¹e_pktmbuf_mtod_off£t
+(
+pkt_bur¡
+[
+pos
+], \19
+\9dv4_hdr
+ *,
+
+885 \17(\19
+\91h\94_hdr
+));
+
+887 ià(
+ `is_v®id_\9dv4_pkt
+(
+\9dv4_hdr
+,
+pkt_bur¡
+[
+pos
+]->
+pkt_Ën
+) < 0) {
+
+888
+ `¹e_pktmbuf_ä\93
+(
+pkt_bur¡
+[
+pos
+]);
+
+889
+pkt_bur¡
+[
+pos
+] =
+NULL
+;
+
+890
+\9dv4_fÜw¬d_pkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+891
+nb_pkts
+--;
+
+892
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+896 ià(
+L3FWD_DEBUG
+) {
+
+897
+´\9atf
+
+
+899
+nb_pkts
+,
+\9dv4_fÜw¬d_pkts_mask
+);
+
+903
+ `Ím4_\8fbË_lookup
+(
+pkt_bur¡
+,
+nb_pkts
+,
+\9dv4_fÜw¬d_pkts_mask
+,
+pÜt_±r
+,
+
+904 &
+h\99_mask
+);
+
+906 \ f;
+h\99_mask
+;) {
+
+908
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+h\99_mask
+);
+
+909
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+910
+h\99_mask
+ &ð~
+pkt_mask
+;
+
+912
+pÜt_±r
+[
+pos
+]->
+ `\8cªsm\99_s\9agË_pkt
+(port_ptr[pos],
+
+913
+pkt_bur¡
+[
+pos
+]);
+
+916
+ }
+}
+
+919
+ $l3_´ÙocÞ_ty³_add
+(
+u\9at8_t
+
+´ÙocÞ_ty³
+,
+
+920 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+921
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+))
+
+923 \1a
+´ÙocÞ_ty³
+) {
+
+924 \ 4
+IPPROTO_ICMP
+:
+
+925
+´Ùo_ty³
+[
+IP_LOCAL
+] =
+
+926
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+\9d_´ÙocÞ_ty³
+),
+
+927
+RTE_CACHE_LINE_SIZE
+);
+
+928
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+´ÙocÞ_ty³
+ =\85rotocol_type;
+
+929
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+func
+ = func;
+
+932 \ 4
+IPPROTO_TCP
+:
+
+933 \ 4
+IPPROTO_UDP
+:
+
+934
+´Ùo_ty³
+[
+IP_REMOTE
+] =
+
+935
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+\9d_´ÙocÞ_ty³
+),
+
+936
+RTE_CACHE_LINE_SIZE
+);
+
+937
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+´ÙocÞ_ty³
+ =\85rotocol_type;
+
+938
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+func
+ = func;
+
+943
+ }
+}
+
+945 \1e
+ $l3fwd_rx_\9dv4_·ck\91s
+(\19
+¹e_mbuf
+ **
+m
+,
+u\9at16_t
+
+nb_pkts
+,
+
+946
+u\9at64_t
+
+v®id_pkts_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+948 ià(
+L3FWD_DEBUG
+) {
+
+949
+´\9atf
+
+
+951
+nb_pkts
+,
+pÜt
+->
+pmdid
+);
+
+953
+u\9at64_t
+
+pkts_fÜ_´oûss
+ =
+v®id_pkts_mask
+;
+
+955 \19
+\9dv4_hdr
+ *ipv4_hdr;
+
+956
+u\9at32_t
+
+cÚfigu»_pÜt_\9d
+ = 0;
+
+957
+u\9at64_t
+
+icmp_pkts_mask
+ =
+ `RTE_LEN2MASK
+(
+nb_pkts
+, uint64_t);
+
+958
+u\9at64_t
+
+\9dv4_fÜw¬d_pkts_mask
+ =
+ `RTE_LEN2MASK
+(
+nb_pkts
+, uint64_t);
+
+959
+u\9at16_t
+
+nb_icmp_pkt
+ = 0;
+
+960
+u\9at16_t
+
+nb_l3_pkt
+ = 0;
+
+962 ià(
+pÜt
+->
+\9dv4_li¡
+ !ð
+NULL
+)
+
+963
+cÚfigu»_pÜt_\9d
+ =
+
+964 (
+u\9at32_t
+è(((
+\9dv4li¡_t
+ *è(
+pÜt
+->
+\9dv4_li¡
+))->
+\9daddr
+);
+
+966 \ f;
+pkts_fÜ_´oûss
+;) {
+
+968
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+969
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+970
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+971
+\9dv4_hdr
+ =
+
+972
+ `¹e_pktmbuf_mtod_off£t
+(
+m
+[
+pos
+], \19
+\9dv4_hdr
+ *,
+
+973 \17(\19
+\91h\94_hdr
+));
+
+975 ià((
+\9dv4_hdr
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+)
+
+976 && (
+\9dv4_hdr
+->
+d¡_addr
+ =ð
+cÚfigu»_pÜt_\9d
+)) {
+
+977
+\9dv4_fÜw¬d_pkts_mask
+ &ð~
+pkt_mask
+;
+
+978
+¡©s
+.
+nb_rx_l3_icmp_pkt
+++;
+
+979
+nb_icmp_pkt
+++;
+
+981
+icmp_pkts_mask
+ &ð~
+pkt_mask
+;
+
+982
+¡©s
+.
+nb_rx_l3_pkt
+++;
+
+983
+nb_l3_pkt
+++;
+
+987 ià(
+icmp_pkts_mask
+) {
+
+988 ià(
+L3FWD_DEBUG
+)
+
+989
+´\9atf
+
+
+991
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+ `func
+(
+m
+,
+nb_icmp_pkt
+,
+icmp_pkts_mask
+,
+
+992
+pÜt
+);
+
+995 ià(
+\9dv4_fÜw¬d_pkts_mask
+) {
+
+996 ià(
+L3FWD_DEBUG
+)
+
+997
+´\9atf
+
+
+999
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+ `func
+(
+m
+,
+nb_l3_pkt
+,
+
+1000
+\9dv4_fÜw¬d_pkts_mask
+,
+pÜt
+);
+
+1002
+ }
+}
+
+1005
+ $»sÞve_l2_adj
+(
+u\9at32_t
+
+ÃxthÝ_\9d
+,
+u\9at8_t
+
+out_pÜt_id
+,
+
+1006 cڡ \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+1008 \19
+l2_adj_key_\9dv4
+
+l2_adj_key
+ = {
+
+1009 .
+Next_hÝ_\9d
+ =
+ÃxthÝ_\9d
+,
+
+1010 .
+out_pÜt_id
+ = out_port_id,
+
+1014 \19
+l2_adj_\92\8cy
+ *
+adj_d©a
+ =
+ `»\8c\9bve_l2_adj_\92\8cy
+(
+l2_adj_key
+);
+
+1016 ià(
+adj_d©a
+) {
+
+1018
+´\9atf
+
+
+1020
+l2_adj_key
+.
+Next_hÝ_\9d
+,\862_adj_key.
+out_pÜt_id
+,
+
+1021
+adj_d©a
+->
+»fcouÁ
+,\87dj_data);
+
+1023 ià(
+adj_d©a
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+
+
+1024 ||
+ `memcmp
+(
+hw_addr
+, &
+adj_d©a
+->
+\91h_addr
+,
+
+1025 \17(\19
+\91h\94_addr
+))) {
+
+1026
+ `memýy
+(
+adj_d©a
+->
+l2_¡r\9ag
+,
+hw_addr
+, \17(\19
+\91h\94_addr
+));
+
+1027
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6],
+
+1028 &
+adj_d©a
+->
+phy_pÜt
+->
+maÿddr
+,
+
+1029 \17(\19
+\91h\94_addr
+));
+
+1032
+ `\91h\94_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+1033
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+1039
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+1040
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+out_pÜt_id
+);
+
+1041 ià(
+pÜt
+ !ð
+NULL
+) {
+
+1043
+u\9at32_t
+
+size
+ =
+
+1044
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+l2_adj_\92\8cy
+));
+
+1045
+adj_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1046 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+1047
+ `´\9atf
+("L2 Adjacency memory\87llocation failed !\n");
+
+1051
+adj_d©a
+->
+out_pÜt_id
+ = out_port_id;
+
+1052
+adj_d©a
+->
+Next_hÝ_\9d
+ =
+ÃxthÝ_\9d
+;
+
+1053
+adj_d©a
+->
+phy_pÜt
+ =
+pÜt
+;
+
+1055
+ `memýy
+(
+adj_d©a
+->
+l2_¡r\9ag
+,
+hw_addr
+, \17(\19
+\91h\94_addr
+));
+
+1056
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6], &adj_d©a->
+phy_pÜt
+->
+maÿddr
+,
+
+1057 \17(\19
+\91h\94_addr
+));
+
+1060
+ `\91h\94_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+1061
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+1063
+ `¹e_hash_add_key_d©a
+(
+l2_adj_hash_hªdË
+, &
+l2_adj_key
+,
+
+1064
+adj_d©a
+);
+
+1065
+´\9atf
+
+
+1067
+adj_d©a
+);
+
+1069
+ `´\9atf
+("PORT:%u IS DOWN...\n",
+out_pÜt_id
+);
+
+1072
+ }
+}
+
+1074
+u\9at8_t
+
+ $\9d_hash_lßd_b®ªû
+(\19
+¹e_mbuf
+ *
+mbuf
+)
+
+1076
+u\9at32_t
+
+¤c_addr_off£t
+ =
+
+1077
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_SRC_ADR_OFST
+;
+
+1078
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+1079
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+1080
+u\9at32_t
+ *
+d¡_addr
+ =
+NULL
+;
+
+1081
+u\9at32_t
+ *
+¤c_addr
+ =
+NULL
+;
+
+1082
+¤c_addr
+ =
+
+1083 (
+u\9at32_t
+ *è
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+,
+¤c_addr_off£t
+);
+
+1084
+d¡_addr
+ =
+
+1085 (
+u\9at32_t
+ *è
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+mbuf
+,
+d¡_addr_off£t
+);
+
+1087
+u\9at32_t
+
+hash_key1
+ = *
+¤c_addr
+;
+
+1088
+u\9at32_t
+
+hash_key2
+ = *
+d¡_addr
+;
+
+1090
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+1091
+hash_key2
+ =
+hash_key1
+;
+
+1093
+hash_key1
+ =
+ `rÙr32
+(hash_key1, 16);
+
+1094
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+1096
+hash_key2
+ =
+hash_key1
+;
+
+1098
+hash_key1
+ =
+ `rÙr32
+(hash_key1, 8);
+
+1099
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+1101
+hash_key1
+ = hash_key1 & (
+HASH_BUCKET_SIZE
+ - 1);
+
+1102 ià(
+L3FWD_DEBUG
+)
+
+1103
+ `´\9atf
+("Hash ResuÉ_key: %d, \n",
+hash_key1
+);
+
+1104 \15
+hash_key1
+;
+
+1105
+ }
+}
+
+1107
+u\9at32_t
+
+ $rÙr32
+(
+u\9at32_t
+
+v®ue
+, \1d\12
+couÁ
+)
+
+1109 cڡ \1d\12
+mask
+ = (
+CHAR_BIT
+ * \17(
+v®ue
+) - 1);
+
+1110
+couÁ
+ &ð
+mask
+;
+
+1111 \15 (
+v®ue
+ >>
+couÁ
+è| (v®u\90<< ((-couÁè&
+mask
+));
+
+1112
+ }
+}
+
+1115
+ $\9d_loÿl_out_d\96iv\94
+(\19
+¹e_mbuf
+ **
+pkt_bur¡
+,
+u\9at16_t
+
+nb_rx
+,
+
+1116
+u\9at64_t
+
+\9dv4_pkts_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+1118
+ `\9d_fÜw¬d_d\96iv\94
+(
+pkt_bur¡
+,
+nb_rx
+,
+\9dv4_pkts_mask
+,
+pÜt
+);
+
+1119
+ }
+}
+
+ @VIL/l2l3_stack/l3fwd_lpm4.h
+
+21 #iâdeà
+L3FWD_LPM_H
+
+
+22 \ 1
+ #L3FWD_LPM_H
+
+
+ )
+
+24 \ 2
+ ~<¡dio.h
+>
+
+25 \ 2
+ ~<¡dlib.h
+>
+
+26 \ 2
+ ~<¡d\9at.h
+>
+
+27 \ 2
+ ~<\9a\89y³s.h
+>
+
+28 \ 2
+ ~<sys/ty³s.h
+>
+
+29 \ 2
+ ~<¡r\9ag.h
+>
+
+30 \ 2
+ ~<sys/queue.h
+>
+
+31 \ 2
+ ~<¡d¬g.h
+>
+
+32 \ 2
+ ~<\94ºo.h
+>
+
+33 \ 2
+ ~<g\91Ýt.h
+>
+
+34 \ 2
+ ~<¡dboÞ.h
+>
+
+36 \ 2
+ ~<¹e_debug.h
+>
+
+37 \ 2
+ ~<¹e_memÜy.h
+>
+
+38 \ 2
+ ~<¹e_\91h\94.h
+>
+
+39 \ 2
+ ~<¹e_\91hdev.h
+>
+
+40 \ 2
+ ~<¹e_r\9ag.h
+>
+
+41 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+42 \ 2
+ ~<¹e_cyþes.h
+>
+
+43 \ 2
+ ~<¹e_mbuf.h
+>
+
+44 \ 2
+ ~<¹e_\9d.h
+>
+
+45 \ 2
+ ~<¹e_tý.h
+>
+
+46 \ 2
+ ~<¹e_udp.h
+>
+
+47 \ 2
+ ~<¹e_Ím.h
+>
+
+48 \ 2
+ ~<¹e_Ím6.h
+>
+
+49 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+50 \ 2
+ ~"l3fwd_Ím6.h
+"
+
+51 \ 2
+ ~"\9a\8brçû.h
+"
+
+57 \ 1
+ #MBUF_HDR_ROOM
+ 256
+
+ )
+
+60 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+61 \ 1
+ #IP_HDR_SIZE
+ 20
+
+ )
+
+62 \ 1
+ #IP_HDR_DST_ADR_OFST
+ 16
+
+ )
+
+63 \ 1
+ #IP_HDR_SRC_ADR_OFST
+ 12
+
+ )
+
+66 \ 1
+ #IPV4_L3FWD_LPM_MAX_RULES
+ 256
+
+ )
+
+67 \ 1
+ #IPV4_L3FWD_LPM_NUMBER_TBL8S
+ (1 << 8è
+
+ )
+
+68 \ 1
+ #MAX_FIB_PATHS
+ 8
+
+ )
+
+69 \ 1
+ #IP_LOCAL
+ 0
+
+ )
+
+70 \ 1
+ #IP_REMOTE
+ 1
+
+ )
+
+73 \ 1
+ #MAX_SUPPORTED_FIB_PATHS
+ 8
+
+ )
+
+74 \ 1
+ #HASH_BUCKET_SIZE
+ 64
+
+ )
+
+77 \ 1
+ #L2_ADJ_RESOLVED
+ 0x00
+
+ )
+
+78 \ 1
+ #L2_ADJ_UNRESOLVED
+ 0x01
+
+ )
+
+83 \19
+ srout\9ag_\9afo
+ {
+
+84
+u\9at32_t
+
+ md¡_\9d_addr
+;
+
+85
+u\9at8_t
+
+ md\95th
+;
+
+86
+u\9at32_t
+
+ mm\91ric
+;
+
+87
+u\9at32_t
+
+ mfib_nh_size
+;
+
+88
+u\9at32_t
+
+ mnh_\9d_addr
+[
+MAX_FIB_PATHS
+];
+
+89
+u\9at8_t
+
+ mout_pÜt
+[
+MAX_FIB_PATHS
+];
+
+90 }
+ g__¹e_ÿche_®igÃd
+;
+
+96 \19
+ sfib_·th
+ {
+
+97
+u\9at32_t
+
+ mnh_\9d
+;
+
+98
+u\9at8_t
+
+ mout_pÜt
+;
+
+99
+u\9at32_t
+
+ m»fcouÁ
+;
+
+100 \19
+l2_adj_\92\8cy
+ *
+ ml2_adj_±r
+;
+
+101 }
+ g__¹e_ÿche_®igÃd
+;
+
+107 \19
+ sfib_\9afo
+ {
+
+108
+u\9at32_t
+
+ md¡_\9d_addr
+;
+
+109
+u\9at32_t
+
+ mm\91ric
+;
+
+110
+u\9at32_t
+
+ mfib_nh_size
+;
+
+111
+u\9at8_t
+
+ md\95th
+;
+
+112 \19
+fib_·th
+ *
+ m·th
+[
+MAX_FIB_PATHS
+];
+
+113 }
+ g__¹e_ÿche_®igÃd
+;
+
+118 \19
+ sl2_adj_\92\8cy
+ {
+
+119 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+120
+u\9at32_t
+
+ mNext_hÝ_\9d
+;
+
+121
+u\9at8_t
+
+ mout_pÜt_id
+;
+
+122
+u\9at32_t
+
+ m»fcouÁ
+;
+
+123
+u\9at8_t
+
+ ml2_¡r\9ag
+[256];
+
+124
+l2_phy_\9a\8brçû_t
+ *
+ mphy_pÜt
+;
+
+125
+u\9at8_t
+
+ mæags
+;
+
+126 }
+ g__¹e_ÿche_®igÃd
+;
+
+131 \19
+ sfib_·th_key_\9dv4
+ {
+
+132
+u\9at32_t
+
+ mnh_\9d
+;
+
+133
+u\9at8_t
+
+ mout_pÜt
+;
+
+134
+u\9at8_t
+
+ mf\9eËr1
+;
+
+135
+u\9at8_t
+
+ mf\9eËr2
+;
+
+136
+u\9at8_t
+
+ mf\9eËr3
+;
+
+142 \19
+ sl2_adj_key_\9dv4
+ {
+
+143
+u\9at32_t
+
+ mNext_hÝ_\9d
+;
+
+144
+u\9at8_t
+
+ mout_pÜt_id
+;
+
+145
+u\9at8_t
+
+ mf\9eËr1
+;
+
+146
+u\9at8_t
+
+ mf\9eËr2
+;
+
+147
+u\9at8_t
+
+ mf\9eËr3
+;
+
+153 \19
+ srout\9ag_\8fbË_\92\8cy
+ {
+
+154
+u\9at32_t
+
+ m\9d
+;
+
+155
+u\9at8_t
+
+ mpÜt_id
+;
+
+156 \19
+l2_adj_\92\8cy
+ *
+ ml2_adj_±r
+;
+
+157 }
+ g__¹e_ÿche_®igÃd
+;
+
+162 \e\19
+ sl3fwd_¡©s
+ {
+
+163
+u\9at64_t
+
+ mnb_rx_l3_pkt
+;
+
+164
+u\9at64_t
+
+ mnb_tx_l3_pkt
+;
+
+165
+u\9at64_t
+
+ mnb_rx_l3_icmp_pkt
+;
+
+167
+u\9at64_t
+
+ mnb_tx_l3_icmp_pkt
+;
+
+169
+u\9at64_t
+
+ mnb_l3_drÝ_pkt
+;
+
+170
+u\9at64_t
+
+ mtٮ_nb_rx_l3_pkt
+;
+
+172
+u\9at64_t
+
+ mtٮ_nb_tx_l3_pkt
+;
+
+174 }
+ tl3_¡©s_t
+;
+
+176 \19
+ s\9d_´ÙocÞ_ty³
+ {
+
+177
+u\9at8_t
+
+ m´ÙocÞ_ty³
+;
+
+178 \1e(*
+ mfunc
+è(\19
+ m¹e_mbuf
+ **,
+ mu\9at16_t
+,
+ mu\9at64_t
+,
+
+179
+ ml2_phy_\9a\8brçû_t
+ *);
+
+180 }
+ g__¹e_ÿche_®igÃd
+;
+
+189 \12
+Ím_\9a\99
+(\1e);
+
+198 \12
+Ím4_\8fbË_rou\8b_add
+(\19
+rout\9ag_\9afo
+ *
+\9aput_¬¿y
+);
+
+209 \12
+Ím4_\8fbË_rou\8b_d\96\91e
+(
+u\9at32_t
+
+\9d
+,
+u\9at8_t
+
+d\95th
+);
+
+222 \12
+Ím4_\8fbË_lookup
+(\19
+¹e_mbuf
+ **
+pkts_bur¡
+,
+u\9at16_t
+
+nb_pkts
+,
+
+223
+u\9at64_t
+
+v®id_pkts_mask
+,
+
+224
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+225
+u\9at64_t
+ *
+h\99_mask
+);
+
+236 \12
+is_v®id_\9dv4_pkt
+(\19
+\9dv4_hdr
+ *
+pkt
+,
+u\9at32_t
+
+l\9ak_Ën
+);
+
+251 \1e
+l3fwd_rx_\9dv4_·ck\91s
+(\19
+¹e_mbuf
+ **
+m
+,
+u\9at16_t
+
+nb_pkts
+,
+
+252
+u\9at64_t
+
+pkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+265 \12
+g\91_de¡_mac_fÜ_ÃxthÝ
+(
+u\9at32_t
+
+Ãxt_hÝ_\9d
+,
+
+266
+u\9at8_t
+
+out_phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+276 \19
+l2_adj_\92\8cy
+ *
+»\8c\9bve_l2_adj_\92\8cy
+(\19
+l2_adj_key_\9dv4
+
+l2_adj_key
+);
+
+288 \19
+l2_adj_\92\8cy
+ *
+pÝuÏ\8b_l2_adj
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+);
+
+299 \19
+fib_·th
+ *
+pÝuÏ\8b_fib_·th
+(
+u\9at32_t
+
+nh_\9d
+,
+u\9at8_t
+
+pÜtid
+);
+
+310 \19
+fib_·th
+ *
+»\8c\9bve_fib_·th_\92\8cy
+(\19
+fib_·th_key_\9dv4
+
+·th_key
+);
+
+317 \1e
+»move_fib_l2_adj_\92\8cy
+(\1e*);
+
+324 \1e
+\99\94©e_cuckoo_hash_\8fbË
+(\1e);
+
+331 \1e
+´\9at_l3_¡©s
+(\1e);
+
+341
+u\9at8_t
+
+\9d_hash_lßd_b®ªû
+(\19
+¹e_mbuf
+ *
+mbuf
+);
+
+353
+u\9at32_t
+
+rÙr32
+(u\9at32_\88
+v®ue
+, \1d\12
+couÁ
+);
+
+356
+»sÞve_l2_adj
+(
+u\9at32_t
+
+ÃxthÝ_\9d
+,
+u\9at8_t
+
+out_pÜt_id
+,
+
+357 cڡ \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+360
+l3_´ÙocÞ_ty³_add
+(
+u\9at8_t
+
+´ÙocÞ_ty³
+,
+
+361 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+362
+l2_phy_\9a\8brçû_t
+ *));
+
+365
+ `\9d_loÿl_·ck\91s_´oûss
+(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+366
+l2_phy_\9a\8brçû_t
+ *);
+
+367 \1e
+ `\9d_loÿl_out_d\96iv\94
+(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+368
+l2_phy_\9a\8brçû_t
+ *);
+
+371
+ `\9d_fÜw¬d_d\96iv\94
+(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+372
+l2_phy_\9a\8brçû_t
+ *);
+
+ @VIL/l2l3_stack/l3fwd_lpm6.c
+
+17 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+18 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+19 \ 2
+ ~"l3fwd_Ím6.h
+"
+
+20 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+21 \ 2
+ ~"\9a\8brçû.h
+"
+
+22 \ 2
+ ~"l2_´Ùo.h
+"
+
+23 \ 2
+ ~"lib_¬p.h
+"
+
+24 \ 2
+ ~"lib_icmpv6.h
+"
+
+29 \1e*
+ gÍm6_\8fbË
+;
+
+30 \19
+¹e_hash
+ *
+ gl2_adj_\9dv6_hash_hªdË
+;
+
+31 \19
+¹e_hash
+ *
+ gfib_·th_\9dv6_hash_hªdË
+;
+
+32 \r
+u\9at8_t
+
+nh_l\9aks
+[
+MAX_SUPPORTED_FIB_PATHS
+][
+HASH_BUCKET_SIZE
+];
+
+33 \r
+l3_¡©s_t
+
+¡©s
+;
+
+35 \18\19
+\9dv6_´ÙocÞ_ty³
+ *
+ g´Ùo_ty³
+[2];
+
+37 \12
+ $Ím6_\9a\99
+(\1e)
+
+42 \19
+¹e_\8fbË_Ím_\9dv6_·¿ms
+
+Ím6_·¿ms
+ = {
+
+43 .
+Çme
+ = "LPMv6",
+
+44 .
+n_ruËs
+ =
+IPV6_L3FWD_LPM_MAX_RULES
+,
+
+45 .
+numb\94_tbl8s
+ =
+IPV6_L3FWD_LPM_NUMBER_TBL8S
+,
+
+46 .
+\92\8cy_unique_size
+ = \17(\19
+\9dv6_fib_\9afo
+),
+
+47 .
+off£t
+ = 128,
+
+51
+Ím6_\8fbË
+ =
+
+52
+¹e_\8fbË_Ím_\9dv6_Ýs
+.
+ `f_ü\97\8b
+(&
+Ím6_·¿ms
+,
+ `¹e_sock\91_id
+(),
+
+53 \17(\19
+\9dv6_fib_\9afo
+));
+
+54 ià(
+Ím6_\8fbË
+ =ð
+NULL
+) {
+
+55
+ `´\9atf
+("Failed\81o create LPM IPV6\81able\n");
+
+60 \19
+¹e_hash_·¿m\91\94s
+
+l2_adj_\9dv6_·¿ms
+ = {
+
+61 .
+Çme
+ = "l2_ADJ_IPV6_HASH",
+
+62 .
+\92\8c\9bs
+ = 64,
+
+63 .
+key_Ën
+ = \17(\19
+l2_adj_key_\9dv6
+),
+
+64 .
+hash_func
+ =
+¹e_jhash
+,
+
+65 .
+hash_func_\9a\99_v®
+ = 0,
+
+68
+l2_adj_\9dv6_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+l2_adj_\9dv6_·¿ms
+);
+
+69 ià(
+l2_adj_\9dv6_hash_hªdË
+ =ð
+NULL
+) {
+
+70
+ `´\9atf
+("ND for IPV6\84te_hash_create failed.\n");
+
+73
+ `´\9atf
+("ND IPV6_hash_handle %p\n\n",
+
+74 (\1e*)
+l2_adj_\9dv6_hash_hªdË
+);
+
+78 \19
+¹e_hash_·¿m\91\94s
+
+fib_·th_\9dv6_·¿ms
+ = {
+
+79 .
+Çme
+ = "FIB_PATH_IPV6_HASH",
+
+80 .
+\92\8c\9bs
+ = 64,
+
+81 .
+key_Ën
+ = \17(\19
+fib_·th_key_\9dv6
+),
+
+82 .
+hash_func
+ =
+¹e_jhash
+,
+
+83 .
+hash_func_\9a\99_v®
+ = 0,
+
+84 .
+ex\8ca_æag
+ = 1,
+
+88
+fib_·th_\9dv6_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+fib_·th_\9dv6_·¿ms
+);
+
+90 ià(
+fib_·th_\9dv6_hash_hªdË
+ =ð
+NULL
+) {
+
+91
+ `´\9atf
+("FIB\85ath\84te_hash_create failed\n");
+
+95
+ }
+}
+
+97 \12
+ $Ím6_\8fbË_rou\8b_add
+(\19
+\9dv6_rout\9ag_\9afo
+ *
+d©a
+)
+
+100 \19
+\9dv6_rout\9ag_\9afo
+ *
+fib
+ =
+d©a
+;
+
+102 \19
+¹e_\8fbË_Ím_\9dv6_key
+
+Ím6_key
+;
+
+103
+u\9at8_t
+
+i
+;
+
+104 \ f
+i
+ = 0; i < 16; i++) {
+
+105
+Ím6_key
+.
+\9d
+[
+i
+] =
+fib
+->
+d¡_\9dv6
+[i];
+
+107
+Ím6_key
+.
+d\95th
+ =
+fib
+->depth;
+
+109 \18\12
+TÙ®_rou\8b_couÁ
+;
+
+110 \19
+\9dv6_fib_\9afo
+
+\92\8cy
+;
+
+111 \ f
+i
+ = 0; i < 16; i++) {
+
+112
+\92\8cy
+.
+d¡_\9dv6
+[
+i
+] =
+fib
+->dst_ipv6[i];
+
+114
+\92\8cy
+.
+d\95th
+ =
+fib
+->depth;
+
+115
+\92\8cy
+.
+fib_nh_size
+ =
+fib
+->fib_nh_size;
+
+117 #ià
+MULTIPATH_FEAT
+
+
+118 ià(
+\92\8cy
+.
+fib_nh_size
+ =ð0 ||\83Áry.fib_nh_siz\90>
+MAX_FIB_PATHS
+)
+
+120 ià(
+\92\8cy
+.
+fib_nh_size
+ != 1)
+
+123
+´\9atf
+
+
+125
+\92\8cy
+.
+fib_nh_size
+);
+
+130 #ià
+MULTIPATH_FEAT
+
+
+131 \ f
+i
+ = 0; i <
+\92\8cy
+.
+fib_nh_size
+; i++)
+
+133 \ f
+i
+ = 0; i < 1; i++)
+
+136 \19
+\9dv6_fib_·th
+ *
+\9dv6_fib_·th_addr
+ =
+NULL
+;
+
+137
+\9dv6_fib_·th_addr
+ =
+
+138
+ `pÝuÏ\8b_\9dv6_fib_·th
+(
+fib
+->
+nh_\9dv6
+[
+i
+], fib->
+out_pÜt
+[i]);
+
+140 ià(
+\9dv6_fib_·th_addr
+) {
+
+141
+\92\8cy
+.
+·th
+[
+i
+] =
+\9dv6_fib_·th_addr
+;
+
+142
+ `´\9atf
+("Fib\85ath for IPv6 destination = "
+
+145
+Ím6_key
+.
+\9d
+[0],\86pm6_key.ip[1],\86pm6_key.ip[2],
+
+146
+Ím6_key
+.
+\9d
+[3],\86pm6_key.ip[4],\86pm6_key.ip[5],
+
+147
+Ím6_key
+.
+\9d
+[6],\86pm6_key.ip[7],\86pm6_key.ip[8],
+
+148
+Ím6_key
+.
+\9d
+[9],\86pm6_key.ip[10],\86pm6_key.ip[11],
+
+149
+Ím6_key
+.
+\9d
+[12],\86pm6_key.ip[13],
+
+150
+Ím6_key
+.
+\9d
+[14],\86pm6_key.\9d[15],
+fib
+->
+d\95th
+,
+
+151
+\9dv6_fib_·th_addr
+,
+
+152 (\1e*)
+\92\8cy
+.
+·th
+[
+i
+]->
+l2_adj_\9dv6_±r
+);
+
+154
+ `´\9atf
+("Fib\85ath for IPv6 destination = "
+
+157
+Ím6_key
+.
+\9d
+[0],\86pm6_key.ip[1],\86pm6_key.ip[2],
+
+158
+Ím6_key
+.
+\9d
+[3],\86pm6_key.ip[4],\86pm6_key.ip[5],
+
+159
+Ím6_key
+.
+\9d
+[6],\86pm6_key.ip[7],\86pm6_key.ip[8],
+
+160
+Ím6_key
+.
+\9d
+[9],\86pm6_key.ip[10],\86pm6_key.ip[11],
+
+161
+Ím6_key
+.
+\9d
+[12],\86pm6_key.ip[13],
+
+162
+Ím6_key
+.
+\9d
+[14],\86pm6_key.\9d[15],
+fib
+->
+d\95th
+);
+
+163
+\92\8cy
+.
+·th
+[
+i
+] =
+NULL
+;
+
+167 \12
+key_found
+,
+»t
+;
+
+168 \1e*
+\92\8cy_±r
+;
+
+171
+ `´\9atf
+("%s, L\9a\90%u \n",
+__FUNCTION__
+,
+__LINE__
+);
+
+173
+»t
+ =
+
+174
+¹e_\8fbË_Ím_\9dv6_Ýs
+.
+ `f_add
+(
+Ím6_\8fbË
+, (\1e*)&
+Ím6_key
+, &
+\92\8cy
+,
+
+175 &
+key_found
+, &
+\92\8cy_±r
+);
+
+176
+ `´\9atf
+("%s, L\9a\90%u \n",
+__FUNCTION__
+,
+__LINE__
+);
+
+178 ià(
+»t
+) {
+
+179
+ `´\9atf
+("Failed\81o Add IP\84oute in LPMv6\n");
+
+182
+ `´\9atf
+("Added\84oute\81o IPv6 LPM\81able (IPv6 destination = "
+
+185
+Ím6_key
+.
+\9d
+[0],\86pm6_key.ip[1],\86pm6_key.ip[2],\86pm6_key.ip[3],
+
+186
+Ím6_key
+.
+\9d
+[4],\86pm6_key.ip[5],\86pm6_key.ip[6],\86pm6_key.ip[7],
+
+187
+Ím6_key
+.
+\9d
+[8],\86pm6_key.ip[9],\86pm6_key.ip[10],\86pm6_key.ip[11],
+
+188
+Ím6_key
+.
+\9d
+[12],\86pm6_key.ip[13],\86pm6_key.ip[14],
+
+189
+Ím6_key
+.
+\9d
+[15],
+fib
+->
+d\95th
+);
+
+191
+TÙ®_rou\8b_couÁ
+++;
+
+192
+ `´\9atf
+("TÙ® Rou\8bd Added : %u, Key_found: %d\n",
+TÙ®_rou\8b_couÁ
+,
+
+193
+key_found
+);
+
+195 ià(
+TÙ®_rou\8b_couÁ
+ == 2)
+
+196
+ `\9dv6_\99\94©e__hash_\8fbË
+();
+
+199
+ }
+}
+
+202
+ $Ím6_\8fbË_rou\8b_d\96\91e
+(
+u\9at8_t
+
+d¡_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], u\9at8_\88
+d\95th
+)
+
+206 \19
+¹e_\8fbË_Ím_\9dv6_key
+
+Ím6_key
+;
+
+207
+ `memýy
+(&
+Ím6_key
+.
+\9d
+, &
+d¡_\9dv6
+, \17(
+RTE_LPM_IPV6_ADDR_SIZE
+));
+
+208
+Ím6_key
+.
+d\95th
+ = depth;
+
+209 \12
+key_found
+,
+»t
+;
+
+210 \ 5*
+\92\8cy
+ =
+NULL
+;
+
+211
+\92\8cy
+ =
+ `¹e_zm®loc
+(
+NULL
+, 512,
+RTE_CACHE_LINE_SIZE
+);
+
+213
+»t
+ =
+
+214
+¹e_\8fbË_Ím_\9dv6_Ýs
+.
+ `f_d\96\91e
+(
+Ím6_\8fbË
+, &
+Ím6_key
+, &
+key_found
+,
+
+215
+\92\8cy
+);
+
+217 ià(
+»t
+) {
+
+218
+ `´\9atf
+("Failed\81o Delete IP\84oute from LPMv6\81able\n");
+
+222
+ `´\9atf
+("Deleted\84oute from IPv6 LPM\81able (IPv6 destination = "
+
+225
+Ím6_key
+.
+\9d
+[0],\86pm6_key.ip[1],\86pm6_key.ip[2],\86pm6_key.ip[3],
+
+226
+Ím6_key
+.
+\9d
+[4],\86pm6_key.ip[5],\86pm6_key.ip[6],\86pm6_key.ip[7],
+
+227
+Ím6_key
+.
+\9d
+[8],\86pm6_key.ip[9],\86pm6_key.ip[10],\86pm6_key.ip[11],
+
+228
+Ím6_key
+.
+\9d
+[12],\86pm6_key.ip[13],\86pm6_key.ip[14],
+
+229
+Ím6_key
+.
+\9d
+[15],\86pm6_key.
+d\95th
+,
+key_found
+);
+
+232
+ `»move_\9dv6_fib_l2_adj_\92\8cy
+(
+\92\8cy
+);
+
+233
+ `¹e_ä\93
+(
+\92\8cy
+);
+
+235
+ }
+}
+
+238
+ $Ím6_\8fbË_lookup
+(\19
+¹e_mbuf
+ **
+pkts_bur¡
+,
+
+239
+u\9at16_t
+
+nb_pkts
+,
+
+240
+u\9at64_t
+
+pkts_mask
+,
+
+241
+l2_phy_\9a\8brçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+242
+u\9at64_t
+ *
+h\99_mask
+)
+
+244 \19
+\9dv6_rout\9ag_\8fbË_\92\8cy
+
+
+245 *
+\9dv6_\92\8c\9bs
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+246
+u\9at64_t
+
+lookup_h\99_mask_\9dv6
+ = 0;
+
+247 \12
+¡©us
+;
+
+248
+u\9at64_t
+
+lookup_miss_mask
+ =
+pkts_mask
+;
+
+250
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+251
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST_IPV6
+;
+
+252
+u\9at64_t
+
+pkts_key_mask
+ =
+pkts_mask
+;
+
+255 \ f;
+pkts_key_mask
+;) {
+
+257
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_key_mask
+);
+
+258
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+259
+pkts_key_mask
+ &ð~
+pkt_mask
+;
+
+261
+u\9at8_t
+ *
+Ím6_key
+;
+
+262
+u\9at8_t
+
+d¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+263
+ `memýy
+(
+d¡_addr
+,
+
+264 (
+u\9at8_t
+ *è
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts_bur¡
+[
+pos
+],
+
+265
+d¡_addr_off£t
+),
+
+266
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+267
+Ím6_key
+ =
+
+268 (
+u\9at8_t
+ *è
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkts_bur¡
+[
+pos
+],
+
+270
+ `memýy
+(
+Ím6_key
+,
+d¡_addr
+,
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+273
+ `´\9atf
+(" IPV6 Lookup Mask Before = %p,\82b_pkts :%u\n",
+
+274 (\1e*)
+pkts_mask
+,
+nb_pkts
+);
+
+275
+¡©us
+ =
+
+276
+¹e_\8fbË_Ím_Ýs
+.
+ `f_lookup
+(
+Ím6_\8fbË
+,
+pkts_bur¡
+,
+pkts_mask
+,
+
+277 &
+lookup_h\99_mask_\9dv6
+,
+
+278 (\1e**)
+\9dv6_\92\8c\9bs
+);
+
+279 ià(
+¡©us
+) {
+
+280
+ `´\9atf
+("LPM Lookup failed for IP\84oute\n");
+
+283
+ `´\9atf
+(" IPV6 Looku°Mask Aá\94 = %p\n", (\1e*)
+lookup_h\99_mask_\9dv6
+);
+
+284
+lookup_miss_mask
+ =\86ookup_miss_mask & (~
+lookup_h\99_mask_\9dv6
+);
+
+285 ià(
+L3FWD_DEBUG
+) {
+
+286
+ `´\9atf
+("AFTER\86ookup_hit_mask = %p,\86ookup_miss_mask =%p\n",
+
+287 (\1e*)
+lookup_h\99_mask_\9dv6
+, (\1e*)
+lookup_miss_mask
+);
+
+290 \ f;
+lookup_miss_mask
+;) {
+
+292
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+lookup_miss_mask
+);
+
+293
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+294
+lookup_miss_mask
+ &ð~
+pkt_mask
+;
+
+295
+ `¹e_pktmbuf_ä\93
+(
+pkts_bur¡
+[
+pos
+]);
+
+296
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+297 ià(
+L3FWD_DEBUG
+)
+
+298
+ `´\9atf
+("\n DROP PKT IPV4 Lookup_miss_Mask = %p\n",
+
+299 (\1e*)
+lookup_miss_mask
+);
+
+302 *
+h\99_mask
+ =
+lookup_h\99_mask_\9dv6
+;
+
+303 \ f;
+lookup_h\99_mask_\9dv6
+;) {
+
+304
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+lookup_h\99_mask_\9dv6
+);
+
+305
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+306
+lookup_h\99_mask_\9dv6
+ &ð~
+pkt_mask
+;
+
+307 \19
+¹e_mbuf
+ *
+pkt
+ =
+pkts_bur¡
+[
+pos
+];
+
+309 \19
+\9dv6_fib_\9afo
+ *
+\92\8cy
+ =
+
+310 (\19
+\9dv6_fib_\9afo
+ *)
+\9dv6_\92\8c\9bs
+[
+pos
+];
+
+312 #ià
+MULTIPATH_FEAT
+
+
+314
+u\9at8_t
+
+ecmp_·th
+ =
+ `\9dv6_hash_lßd_b®ªû
+(
+pkts_bur¡
+[
+pos
+]);
+
+315
+u\9at8_t
+
+£Ëùed_·th
+ = 0;
+
+316 \19
+\9dv6_fib_·th
+ *
+fib_·th
+ =
+NULL
+;
+
+317 ià(((
+\92\8cy
+->
+fib_nh_size
+ != 0)
+
+318 && (
+\92\8cy
+->
+fib_nh_size
+ - 1è<
+MAX_SUPPORTED_FIB_PATHS
+)
+
+319 && ((
+ecmp_·th
+ !ð0è&& (ecmp_·th - 1è<
+HASH_BUCKET_SIZE
+))
+
+320
+£Ëùed_·th
+ =
+
+321
+nh_l\9aks
+[
+\92\8cy
+->
+fib_nh_size
+ - 1][
+ecmp_·th
+ - 1];
+
+322 ià(
+£Ëùed_·th
+ <
+MAX_FIB_PATHS
+)
+
+323
+fib_·th
+ =
+\92\8cy
+->
+·th
+[
+£Ëùed_·th
+];
+
+324
+´\9atf
+
+
+326
+\92\8cy
+->
+fib_nh_size
+,
+ecmp_·th
+,
+£Ëùed_·th
+);
+
+328 \19
+\9dv6_fib_·th
+ *
+fib_·th
+ =
+\92\8cy
+->
+·th
+[0];
+
+330 ià(
+fib_·th
+ =ð
+NULL
+) {
+
+331
+ `´\9atf
+("Fib_path is NULL, ND has\82ot\84esolved\n");
+
+332
+ `¹e_pktmbuf_ä\93
+(
+pkt
+);
+
+333
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+334
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+335 *
+h\99_mask
+ &ð~
+pkt_mask
+;
+
+336
+´\9atf
+
+
+341 ià(
+fib_·th
+->
+l2_adj_\9dv6_±r
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+) {
+
+342
+ `¹e_pktmbuf_ä\93
+(
+pkts_bur¡
+[
+pos
+]);
+
+343
+pkts_bur¡
+[
+pos
+] =
+NULL
+;
+
+344 *
+h\99_mask
+ &ð~
+pkt_mask
+;
+
+345 ià(
+L3FWD_DEBUG
+)
+
+346
+´\9atf
+
+
+351
+u\9at8_t
+ *
+\91h_de¡
+ =
+
+352
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+MBUF_HDR_ROOM
+);
+
+353
+u\9at8_t
+ *
+\91h_¤c
+ =
+
+354
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+MBUF_HDR_ROOM
+ + 6);
+
+355 ià(
+L3FWD_DEBUG
+) {
+
+356
+´\9atf
+
+
+361
+\91h_de¡
+[0],\83th_dest[1],\83th_dest[2],
+
+362
+\91h_de¡
+[3],
+
+363
+\91h_de¡
+[4],\83th_de¡[5],
+\91h_¤c
+[0],
+
+364
+\91h_¤c
+[1],
+
+365
+\91h_¤c
+[2],\83th_src[3],
+
+366
+\91h_¤c
+[4],\83th_src[5]);
+
+370
+ `memýy
+(
+\91h_de¡
+,
+fib_·th
+->
+l2_adj_\9dv6_±r
+->
+l2_¡r\9ag
+,
+
+371 \17(\19
+\91h\94_addr
+) * 2 + 2);
+
+373 ià(
+L3FWD_DEBUG
+) {
+
+374
+´\9atf
+
+
+377 "%02x:%02x\n",
+\91h_de¡
+[0],
+
+378
+\91h_de¡
+[1],\83th_dest[2],\83th_dest[3],
+
+379
+\91h_de¡
+[4],
+
+380
+\91h_de¡
+[5],
+\91h_¤c
+[0],\83th_src[1],
+
+381
+\91h_¤c
+[2],
+
+382
+\91h_¤c
+[3],\83th_src[4],\83th_src[5]);
+
+384
+pÜt_±r
+[
+pos
+] =
+fib_·th
+->
+l2_adj_\9dv6_±r
+->
+phy_pÜt
+;
+
+387 ià(
+L3FWD_DEBUG
+)
+
+388
+ `´\9atf
+("Successfully sent\81o\85ort %u \n\r",
+
+389
+fib_·th
+->
+out_pÜt
+);
+
+392
+ }
+}
+
+394 \1e
+ $l3fwd_rx_\9dv6_·ck\91s
+(\19
+¹e_mbuf
+ **
+m
+,
+u\9at16_t
+
+nb_pkts
+,
+
+395
+u\9at64_t
+
+v®id_pkts_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+397 ià(!
+pÜt
+)
+
+399 ià(
+L3FWD_DEBUG
+) {
+
+400
+´\9atf
+
+
+402
+PRIu64
+ "\n",
+nb_pkts
+,
+pÜt
+->
+pmdid
+,
+v®id_pkts_mask
+);
+
+404
+u\9at64_t
+
+pkts_fÜ_´oûss
+ =
+v®id_pkts_mask
+;
+
+406 \19
+\9dv6_hdr
+ *ipv6_hdr;
+
+408
+u\9at64_t
+
+icmp_pkts_mask
+ =
+v®id_pkts_mask
+;
+
+409
+u\9at64_t
+
+\9dv6_fÜw¬d_pkts_mask
+ =
+v®id_pkts_mask
+;
+
+410
+u\9at16_t
+
+nb_icmpv6_pkt
+ = 0;
+
+411
+u\9at16_t
+
+nb_l3_pkt
+ = 0;
+
+413
+u\9at8_t
+
+cÚfigu»d_pÜt_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+] = { 0 };
+
+414
+\9at8_t
+
+sÞic\99ed_node_muÉiÿ¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+] = {
+
+417
+u\9at8_t
+
+de¡_\9dv6_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+419
+ `mem£t
+(
+de¡_\9dv6_addr
+, 0,
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+421
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+422 \12
+ii
+;
+
+423 ià(
+pÜt
+->
+\9dv6_li¡
+ !ð
+NULL
+) {
+
+424 \ f
+ii
+ = 0; ii < 16; ii += 1) {
+
+425
+cÚfigu»d_pÜt_\9dv6
+[
+ii
+] =
+
+426 ((
+\9dv6li¡_t
+ *è(
+pÜt
+->
+\9dv6_li¡
+))->
+\9daddr
+[
+ii
+];
+
+431 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+432 ià(
+pÜt
+ &&\85Üt->
+\9dv6_li¡
+)
+
+433
+ `´\9atf
+("%02X%02X ",
+
+434 ((
+\9dv6li¡_t
+ *è(
+pÜt
+->
+\9dv6_li¡
+))->
+\9daddr
+[
+ii
+],
+
+435 ((
+\9dv6li¡_t
+ *è(
+pÜt
+->
+\9dv6_li¡
+))->
+\9daddr
+[
+ii
+ +
+
+439
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+440 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+441
+ `´\9atf
+("%02X%02X ",
+cÚfigu»d_pÜt_\9dv6
+[
+ii
+],
+
+442
+cÚfigu»d_pÜt_\9dv6
+[
+ii
+ + 1]);
+
+445 \ f;
+pkts_fÜ_´oûss
+;) {
+
+447
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+448
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+449
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+450
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+453
+ `´\9atf
+("\n% : LINE #%u, POS%u\n",
+__FUNCTION__
+,
+__LINE__
+,
+
+454
+pos
+);
+
+456 ià(
+m
+[
+pos
+] =ð
+NULL
+) {
+
+457
+ `´\9atf
+("\n%s : M_POS IS NULLLLLLL, LINE: %u\n",
+
+458
+__FUNCTION__
+,
+__LINE__
+);
+
+461
+\9dv6_hdr
+ =
+
+462
+ `¹e_pktmbuf_mtod_off£t
+(
+m
+[
+pos
+], \19
+\9dv6_hdr
+ *,
+
+463 \17(\19
+\91h\94_hdr
+));
+
+464
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+465 \ f
+ii
+ = 0; ii < 13; ii += 1) {
+
+466
+de¡_\9dv6_addr
+[
+ii
+] =
+\9dv6_hdr
+->
+d¡_addr
+[ii];
+
+469
+ `´\9atf
+("\n");
+
+470
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+471 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+472
+ `´\9atf
+("%02X%02X ",
+\9dv6_hdr
+->
+d¡_addr
+[
+ii
+],
+
+473
+\9dv6_hdr
+->
+d¡_addr
+[
+ii
+ + 1]);
+
+475
+ `´\9atf
+("\n");
+
+476
+ `´\9atf
+("\n% : LINE # %u\n",
+__FUNCTION__
+,
+__LINE__
+);
+
+477 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+478
+ `´\9atf
+("%02X%02X ",
+de¡_\9dv6_addr
+[
+ii
+],
+
+479
+de¡_\9dv6_addr
+[
+ii
+ + 1]);
+
+482
+ `´\9atf
+("\n% : LINE # %u",
+__FUNCTION__
+,
+__LINE__
+);
+
+483 ià((
+\9dv6_hdr
+->
+´Ùo
+ =ð
+IPPROTO_ICMPV6
+) &&
+
+484 (!
+memcmp
+
+
+485 (&
+\9dv6_hdr
+->
+d¡_addr
+, &
+cÚfigu»d_pÜt_\9dv6
+[0],
+
+486
+RTE_LPM_IPV6_ADDR_SIZE
+)
+
+487 || !
+ `memcmp
+(&
+de¡_\9dv6_addr
+[0],
+
+488 &
+sÞic\99ed_node_muÉiÿ¡_addr
+[0],
+
+489
+RTE_LPM_IPV6_ADDR_SIZE
+))) {
+
+490
+\9dv6_fÜw¬d_pkts_mask
+ &ð~
+pkt_mask
+;
+
+491
+¡©s
+.
+nb_rx_l3_icmp_pkt
+++;
+
+492
+nb_icmpv6_pkt
+++;
+
+494
+icmp_pkts_mask
+ &ð~
+pkt_mask
+;
+
+495
+¡©s
+.
+nb_rx_l3_pkt
+++;
+
+496
+nb_l3_pkt
+++;
+
+500 ià(
+icmp_pkts_mask
+) {
+
+501 ià(
+L3FWD_DEBUG
+)
+
+502
+´\9atf
+
+
+504
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+ `func
+(
+m
+,
+nb_icmpv6_pkt
+,
+icmp_pkts_mask
+,
+
+505
+pÜt
+);
+
+508 ià(
+\9dv6_fÜw¬d_pkts_mask
+) {
+
+509 ià(
+L3FWD_DEBUG
+)
+
+510
+´\9atf
+
+
+512
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+ `func
+(
+m
+,
+nb_l3_pkt
+,
+
+513
+\9dv6_fÜw¬d_pkts_mask
+,
+pÜt
+);
+
+515
+ }
+}
+
+517 \19
+\9dv6_fib_·th
+ *
+ $pÝuÏ\8b_\9dv6_fib_·th
+(
+u\9at8_t
+
+
+518
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+519
+u\9at8_t
+
+pÜtid
+)
+
+522 \19
+fib_·th_key_\9dv6
+
+·th_key
+;
+
+523
+u\9at8_t
+
+i
+;
+
+524 \ f
+i
+ = 0; i < 16; i++) {
+
+525
+·th_key
+.
+nh_\9dv6
+[
+i
+] =\82h_ipv6[i];
+
+527
+·th_key
+.
+out_pÜt
+ =
+pÜtid
+;
+
+528
+·th_key
+.
+f\9eËr1
+ = 0;
+
+529
+·th_key
+.
+f\9eËr2
+ = 0;
+
+530
+·th_key
+.
+f\9eËr3
+ = 0;
+
+532 \19
+\9dv6_fib_·th
+ *
+fib_d©a
+ =
+NULL
+;
+
+534
+fib_d©a
+ =
+ `»\8c\9bve_\9dv6_fib_·th_\92\8cy
+(
+·th_key
+);
+
+536 ià(
+fib_d©a
+) {
+
+538
+ `´\9atf
+(" Fib\85ath\83ntry\83xists for IPv6 destination = "
+
+541
+nh_\9dv6
+[0],\82h_ipv6[1],\82h_ipv6[2],\82h_ipv6[3],
+
+542
+nh_\9dv6
+[4],\82h_ipv6[5],\82h_ipv6[6],\82h_ipv6[7],
+
+543
+nh_\9dv6
+[8],\82h_ipv6[9],\82h_ipv6[10],\82h_ipv6[11],
+
+544
+nh_\9dv6
+[12],\82h_ipv6[13],\82h_ipv6[14],\82h_ipv6[15],
+
+545
+pÜtid
+);
+
+547
+fib_d©a
+->
+»fcouÁ
+++;
+
+548 \15
+fib_d©a
+;
+
+550
+ `´\9atf
+("IPv6 fib_path\83ntry Doesn't Exists.......\n");
+
+554
+fib_d©a
+ =
+NULL
+;
+
+555 \19
+l2_adj_\9dv6_\92\8cy
+ *
+l2_adj_±r
+ =
+NULL
+;
+
+556
+l2_adj_±r
+ =
+ `pÝuÏ\8b_\9dv6_l2_adj
+(
+nh_\9dv6
+,
+pÜtid
+);
+
+558 ià(
+l2_adj_±r
+) {
+
+560
+u\9at32_t
+
+size
+ =
+
+561
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+\9dv6_fib_·th
+));
+
+562
+fib_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+564 \ f
+i
+ = 0; i < 16; i++) {
+
+565
+fib_d©a
+->
+nh_\9dv6
+[
+i
+] =\82h_ipv6[i];
+
+567
+fib_d©a
+->
+out_pÜt
+ =
+pÜtid
+;
+
+570
+fib_d©a
+->
+»fcouÁ
+++;
+
+571
+fib_d©a
+->
+l2_adj_\9dv6_±r
+ =
+l2_adj_±r
+;
+
+574
+ `¹e_hash_add_key_d©a
+(
+fib_·th_\9dv6_hash_hªdË
+, &
+·th_key
+,
+
+575
+fib_d©a
+);
+
+576
+´\9atf
+
+
+578
+l2_adj_±r
+,
+fib_d©a
+);
+
+579 \15
+fib_d©a
+;
+
+581
+´\9atf
+
+
+584 \15
+NULL
+;
+
+586
+ }
+}
+
+588 \19
+l2_adj_\9dv6_\92\8cy
+ *
+ $pÝuÏ\8b_\9dv6_l2_adj
+(
+u\9at8_t
+
+
+589
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+590
+u\9at8_t
+
+pÜtid
+)
+
+593 \19
+l2_adj_key_\9dv6
+
+l2_adj_key
+;
+
+594
+u\9at8_t
+
+i
+;
+
+595 \ f
+i
+ = 0; i < 16; i++) {
+
+596
+l2_adj_key
+.
+nh_\9dv6
+[
+i
+] =\82h_ipv6[i];
+
+598
+l2_adj_key
+.
+out_pÜt_id
+ =
+pÜtid
+;
+
+599
+l2_adj_key
+.
+f\9eËr1
+ = 0;
+
+600
+l2_adj_key
+.
+f\9eËr2
+ = 0;
+
+601
+l2_adj_key
+.
+f\9eËr3
+ = 0;
+
+603 \19
+l2_adj_\9dv6_\92\8cy
+ *
+adj_d©a
+ =
+NULL
+;
+
+604 \19
+\91h\94_addr
+
+\91h_d¡
+;
+
+606
+adj_d©a
+ =
+ `»\8c\9bve_\9dv6_l2_adj_\92\8cy
+(
+l2_adj_key
+);
+
+608 ià(
+adj_d©a
+) {
+
+610
+ `´\9atf
+("ipv6_l2_adj_entry\83xists for Next Hop IPv6 = "
+
+613
+nh_\9dv6
+[0],\82h_ipv6[1],\82h_ipv6[2],\82h_ipv6[3],
+
+614
+nh_\9dv6
+[4],\82h_ipv6[5],\82h_ipv6[6],\82h_ipv6[7],
+
+615
+nh_\9dv6
+[8],\82h_ipv6[9],\82h_ipv6[10],\82h_ipv6[11],
+
+616
+nh_\9dv6
+[12],\82h_ipv6[13],\82h_ipv6[14],\82h_ipv6[15],
+
+617
+pÜtid
+);
+
+619
+ `\91h\94_addr_cÝy
+(&
+adj_d©a
+->
+\91h_addr
+, &
+\91h_d¡
+);
+
+620
+adj_d©a
+->
+»fcouÁ
+++;
+
+621 \15
+adj_d©a
+;
+
+624 \19
+\91h\94_addr
+
+\91h_¤c
+;
+
+625
+u\9at16_t
+
+\91h\94_ty³
+ = 0x086DD;
+
+626
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+627
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+pÜtid
+);
+
+628 ià(
+pÜt
+ =ð
+NULL
+) {
+
+629
+ `´\9atf
+("PORT %u IS DOWN.. UÇbË\81Ø´oûs !\n",
+pÜtid
+);
+
+630 \15
+NULL
+;
+
+633
+ `memýy
+(&
+\91h_¤c
+, &
+pÜt
+->
+maÿddr
+, \17(\19
+\91h\94_addr
+));
+
+634
+u\9at32_t
+
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+l2_adj_\92\8cy
+));
+
+635
+adj_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+636 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+637
+ `´\9atf
+("L2 Adjacency memory\87llocation failed !\n");
+
+638 \15
+NULL
+;
+
+641
+adj_d©a
+->
+out_pÜt_id
+ =
+pÜtid
+;
+
+643 \ f
+i
+ = 0; i < 16; i++) {
+
+644
+adj_d©a
+->
+nh_\9dv6
+[
+i
+] =\82h_ipv6[i];
+
+646
+adj_d©a
+->
+»fcouÁ
+++;
+
+647
+adj_d©a
+->
+phy_pÜt
+ =
+pÜt
+;
+
+649
+ `¹e_hash_add_key_d©a
+(
+l2_adj_\9dv6_hash_hªdË
+, &
+l2_adj_key
+,
+adj_d©a
+);
+
+652 ià(
+ `g\91_de¡_mac_fÜ_ÃxthÝ_\9dv6
+(
+nh_\9dv6
+,
+pÜtid
+, &
+\91h_d¡
+)) {
+
+654
+ `\91h\94_addr_cÝy
+(&
+\91h_d¡
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+657
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+, &
+\91h_d¡
+,
+
+658 \17(\19
+\91h\94_addr
+));
+
+659
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6], &
+\91h_¤c
+,
+
+660 \17(\19
+\91h\94_addr
+));
+
+661
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[12], &
+\91h\94_ty³
+, 2);
+
+663
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+664
+´\9atf
+
+
+666
+adj_d©a
+);
+
+668 \15
+adj_d©a
+;
+
+670
+adj_d©a
+->
+æags
+ =
+L2_ADJ_UNRESOLVED
+;
+
+671
+´\9atf
+
+
+674 \15
+NULL
+;
+
+675
+ }
+}
+
+677 \19
+l2_adj_\9dv6_\92\8cy
+ *
+ $»\8c\9bve_\9dv6_l2_adj_\92\8cy
+(\19
+l2_adj_key_\9dv6
+
+
+678
+l2_adj_key
+)
+
+680 \19
+l2_adj_\9dv6_\92\8cy
+ *
+»t_l2_adj_d©a
+ =
+NULL
+;
+
+682 \12
+»t
+ =
+
+683
+ `¹e_hash_lookup_d©a
+(
+l2_adj_\9dv6_hash_hªdË
+, &
+l2_adj_key
+,
+
+684 (\1e**)&
+»t_l2_adj_d©a
+);
+
+685 ià(
+»t
+ < 0) {
+
+686
+´\9atf
+
+
+688
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+690
+ `´\9atf
+("L2 Adj hash\86ookup Successful..!!!\n");
+
+691 \15
+»t_l2_adj_d©a
+;
+
+693 \15
+NULL
+;
+
+694
+ }
+}
+
+696 \12
+ $g\91_de¡_mac_fÜ_ÃxthÝ_\9dv6
+(
+u\9at8_t
+
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+697
+u\9at32_t
+
+out_phy_pÜt
+,
+
+698 \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+700 \19
+nd_\92\8cy_d©a
+ *
+nd_d©a
+ =
+NULL
+;
+
+701 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+702
+u\9at8_t
+
+i
+;
+
+703 \ f
+i
+ = 0; i < 16; i++) {
+
+704
+tmp_nd_key
+.
+\9dv6
+[
+i
+] =
+nh_\9dv6
+[i];
+
+706
+tmp_nd_key
+.
+pÜt_id
+ =
+out_phy_pÜt
+;
+
+708
+nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+tmp_nd_key
+);
+
+709 ià(
+nd_d©a
+ =ð
+NULL
+) {
+
+710
+ `´\9atf
+("ND\83ntry is\82ot found\n");
+
+713
+ `\91h\94_addr_cÝy
+(&
+nd_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+716
+ }
+}
+
+718 \19
+\9dv6_fib_·th
+ *
+ $»\8c\9bve_\9dv6_fib_·th_\92\8cy
+(\19
+fib_·th_key_\9dv6
+
+
+719
+·th_key
+)
+
+722 \19
+\9dv6_fib_·th
+ *
+»t_fib_·th_d©a
+ =
+NULL
+;
+
+723 \12
+»t
+ =
+
+724
+ `¹e_hash_lookup_d©a
+(
+fib_·th_\9dv6_hash_hªdË
+, &
+·th_key
+,
+
+725 (\1e**)&
+»t_fib_·th_d©a
+);
+
+726 ià(
+»t
+ < 0) {
+
+727
+´\9atf
+
+
+729
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+730 \15
+NULL
+;
+
+732 \15
+»t_fib_·th_d©a
+;
+
+734
+ }
+}
+
+736 \1e
+ $»move_\9dv6_fib_l2_adj_\92\8cy
+(\1e*
+\92\8cy
+)
+
+738 \19
+\9dv6_fib_\9afo
+
+\92\8cy1
+;
+
+739
+ `memýy
+(&
+\92\8cy1
+,
+\92\8cy
+, \17(\19
+\9dv6_fib_\9afo
+));
+
+741 \19
+\9dv6_fib_·th
+ *
+fib_·th_addr
+ =
+\92\8cy1
+.
+·th
+[0];
+
+742 ià(
+fib_·th_addr
+->
+»fcouÁ
+ > 1) {
+
+743
+ `´\9atf
+("BEFORE fib_path\83ntry is\82ot Removed!\82h_iPv6 = "
+
+746
+fib_·th_addr
+->
+nh_\9dv6
+[0], fib_path_addr->nh_ipv6[1],
+
+747
+fib_·th_addr
+->
+nh_\9dv6
+[2], fib_path_addr->nh_ipv6[3],
+
+748
+fib_·th_addr
+->
+nh_\9dv6
+[4], fib_path_addr->nh_ipv6[5],
+
+749
+fib_·th_addr
+->
+nh_\9dv6
+[6], fib_path_addr->nh_ipv6[7],
+
+750
+fib_·th_addr
+->
+nh_\9dv6
+[8], fib_path_addr->nh_ipv6[9],
+
+751
+fib_·th_addr
+->
+nh_\9dv6
+[10], fib_path_addr->nh_ipv6[11],
+
+752
+fib_·th_addr
+->
+nh_\9dv6
+[12], fib_path_addr->nh_ipv6[13],
+
+753
+fib_·th_addr
+->
+nh_\9dv6
+[14], fib_path_addr->nh_ipv6[15],
+
+754
+fib_·th_addr
+->
+out_pÜt
+, fib_·th_addr->
+»fcouÁ
+);
+
+755
+fib_·th_addr
+->
+»fcouÁ
+--;
+
+756
+ `´\9atf
+("AFTER fib_path\83ntry is\82ot Removed!\82h_iPv6 = "
+
+759
+fib_·th_addr
+->
+nh_\9dv6
+[0], fib_path_addr->nh_ipv6[1],
+
+760
+fib_·th_addr
+->
+nh_\9dv6
+[2], fib_path_addr->nh_ipv6[3],
+
+761
+fib_·th_addr
+->
+nh_\9dv6
+[4], fib_path_addr->nh_ipv6[5],
+
+762
+fib_·th_addr
+->
+nh_\9dv6
+[6], fib_path_addr->nh_ipv6[7],
+
+763
+fib_·th_addr
+->
+nh_\9dv6
+[8], fib_path_addr->nh_ipv6[9],
+
+764
+fib_·th_addr
+->
+nh_\9dv6
+[10], fib_path_addr->nh_ipv6[11],
+
+765
+fib_·th_addr
+->
+nh_\9dv6
+[12], fib_path_addr->nh_ipv6[13],
+
+766
+fib_·th_addr
+->
+nh_\9dv6
+[14], fib_path_addr->nh_ipv6[15],
+
+767
+fib_·th_addr
+->
+out_pÜt
+, fib_·th_addr->
+»fcouÁ
+);
+
+770 \19
+l2_adj_\9dv6_\92\8cy
+ *
+adj_addr
+ =
+NULL
+;
+
+771
+adj_addr
+ =
+fib_·th_addr
+->
+l2_adj_\9dv6_±r
+;
+
+773 ià(
+adj_addr
+ !ð
+NULL
+) {
+
+774
+ `´\9atf
+("%s: CHECK %d\n\r",
+__FUNCTION__
+,
+__LINE__
+);
+
+775 \19
+l2_adj_key_\9dv6
+
+l2_adj_key
+;
+
+776
+ `memýy
+(&
+l2_adj_key
+.
+nh_\9dv6
+,
+fib_·th_addr
+->nh_ipv6,
+
+777
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+778
+l2_adj_key
+.
+out_pÜt_id
+ =
+
+779
+fib_·th_addr
+->
+out_pÜt
+,
+
+780
+ `¹e_hash_d\96_key
+(
+l2_adj_\9dv6_hash_hªdË
+,
+
+781 &
+l2_adj_key
+);
+
+782
+ `¹e_ä\93
+(
+adj_addr
+);
+
+783
+adj_addr
+ =
+NULL
+;
+
+786 \19
+fib_·th_key_\9dv6
+
+·th_key
+;
+
+787
+ `memýy
+(&
+·th_key
+.
+nh_\9dv6
+,
+fib_·th_addr
+->nh_ipv6,
+
+788
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+789
+·th_key
+.
+out_pÜt
+ =
+fib_·th_addr
+->out_port;
+
+790
+ `¹e_hash_d\96_key
+(
+fib_·th_\9dv6_hash_hªdË
+, &
+·th_key
+);
+
+791
+ `¹e_ä\93
+(
+fib_·th_addr
+);
+
+792
+fib_·th_addr
+ =
+NULL
+;
+
+794
+ }
+}
+
+796 \12
+ $is_v®id_\9dv6_pkt
+(\19
+\9dv6_hdr
+ *
+pkt
+,
+u\9at32_t
+
+l\9ak_Ën
+)
+
+798 ià(
+l\9ak_Ën
+ < \17(\19
+\9dv4_hdr
+))
+
+800 ià(
+ `¹e_ýu_to_be_16
+(
+pkt
+->
+·ylßd_Ën
+è< \17(\19
+\9dv6_hdr
+))
+
+804
+ }
+}
+
+807
+ $\9dv6_l3_´ÙocÞ_ty³_add
+(
+u\9at8_t
+
+´ÙocÞ_ty³
+,
+
+808 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+809
+l2_phy_\9a\8brçû_t
+ *))
+
+811 \1a
+´ÙocÞ_ty³
+) {
+
+812 \ 4
+IPPROTO_ICMPV6
+:
+
+813
+´Ùo_ty³
+[
+IP_LOCAL
+] =
+
+814
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+\9d_´ÙocÞ_ty³
+),
+
+815
+RTE_CACHE_LINE_SIZE
+);
+
+816
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+´ÙocÞ_ty³
+ =\85rotocol_type;
+
+817
+´Ùo_ty³
+[
+IP_LOCAL
+]->
+func
+ = func;
+
+820 \ 4
+IPPROTO_TCP
+:
+
+821 \ 4
+IPPROTO_UDP
+:
+
+822
+´Ùo_ty³
+[
+IP_REMOTE
+] =
+
+823
+ `¹e_m®loc
+(
+NULL
+, \17(\19
+\9d_´ÙocÞ_ty³
+),
+
+824
+RTE_CACHE_LINE_SIZE
+);
+
+825
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+´ÙocÞ_ty³
+ =\85rotocol_type;
+
+826
+´Ùo_ty³
+[
+IP_REMOTE
+]->
+func
+ = func;
+
+829
+ }
+}
+
+832
+ $\9dv6_loÿl_d\96iv\94
+(\19
+¹e_mbuf
+ **
+pkt_bur¡
+,
+__¹e_unu£d
+
+u\9at16_t
+
+nb_rx
+,
+
+833
+u\9at64_t
+
+icmp_pkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+835 \ f;
+icmp_pkt_mask
+;) {
+
+837
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+icmp_pkt_mask
+);
+
+838
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+839
+icmp_pkt_mask
+ &ð~
+pkt_mask
+;
+
+841
+ `´oûss_icmpv6_pkt
+(
+pkt_bur¡
+[
+pos
+],
+pÜt
+);
+
+843
+ }
+}
+
+846
+ $\9dv6_fÜw¬d_d\96iv\94
+(\19
+¹e_mbuf
+ **
+pkt_bur¡
+,
+u\9at16_t
+
+nb_pkts
+,
+
+847
+u\9at64_t
+
+\9dv6_fÜw¬d_pkts_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+849 ià(
+L3FWD_DEBUG
+) {
+
+850
+´\9atf
+
+
+852
+nb_pkts
+,
+pÜt
+->
+pmdid
+);
+
+854
+u\9at64_t
+
+pkts_fÜ_´oûss
+ =
+\9dv6_fÜw¬d_pkts_mask
+;
+
+856 \19
+\9dv6_hdr
+ *ipv6_hdr;
+
+857
+l2_phy_\9a\8brçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+858
+u\9at64_t
+
+h\99_mask
+ = 0;
+
+860 \ f;
+pkts_fÜ_´oûss
+;) {
+
+862
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+863
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+;
+
+864
+pkts_fÜ_´oûss
+ &ð~
+pkt_mask
+;
+
+865
+\9dv6_hdr
+ =
+
+866
+ `¹e_pktmbuf_mtod_off£t
+(
+pkt_bur¡
+[
+pos
+], \19
+\9dv6_hdr
+ *,
+
+867 \17(\19
+\91h\94_hdr
+));
+
+870 ià(
+ `is_v®id_\9dv6_pkt
+(
+\9dv6_hdr
+,
+pkt_bur¡
+[
+pos
+]->
+pkt_Ën
+) < 0) {
+
+871
+ `¹e_pktmbuf_ä\93
+(
+pkt_bur¡
+[
+pos
+]);
+
+872
+pkt_bur¡
+[
+pos
+] =
+NULL
+;
+
+873
+\9dv6_fÜw¬d_pkts_mask
+ &ð~(1LLU <<
+pos
+);
+
+874
+nb_pkts
+--;
+
+875
+¡©s
+.
+nb_l3_drÝ_pkt
+++;
+
+879 ià(
+L3FWD_DEBUG
+) {
+
+880
+´\9atf
+
+
+882
+nb_pkts
+,
+\9dv6_fÜw¬d_pkts_mask
+);
+
+886
+ `Ím6_\8fbË_lookup
+(
+pkt_bur¡
+,
+nb_pkts
+,
+\9dv6_fÜw¬d_pkts_mask
+,
+pÜt_±r
+,
+
+887 &
+h\99_mask
+);
+
+888
+ }
+}
+
+890
+u\9at8_t
+
+ $\9dv6_hash_lßd_b®ªû
+(\19
+¹e_mbuf
+ *
+mbuf
+)
+
+892
+u\9at32_t
+
+¤c_addr_off£t
+ =
+
+893
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_SRC_ADR_OFST_IPV6
+;
+
+894
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+895
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST_IPV6
+;
+
+896
+u\9at8_t
+
+¤c_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+897
+u\9at8_t
+
+d¡_addr
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+899
+ `memýy
+(&
+¤c_addr
+,
+
+900 (
+u\9at8_t
+ *è
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+mbuf
+,
+¤c_addr_off£t
+),
+
+901
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+902
+ `memýy
+(&
+d¡_addr
+,
+
+903 (
+u\9at8_t
+ *è
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+mbuf
+,
+d¡_addr_off£t
+),
+
+904
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+905
+u\9at32_t
+
+hash_key1
+ = 0;
+
+906
+u\9at32_t
+
+hash_key2
+ = 0;
+
+907
+u\9at8_t
+
+i
+;
+
+908 \ f
+i
+ = 0; i <
+RTE_LPM_IPV6_ADDR_SIZE
+; i++) {
+
+909
+hash_key1
+ +ð
+¤c_addr
+[
+i
+];
+
+910
+hash_key2
+ +ð
+d¡_addr
+[
+i
+];
+
+912
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+913
+hash_key2
+ =
+hash_key1
+;
+
+914
+hash_key1
+ =
+ `rÙr32
+(hash_key1,
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+915
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+917
+hash_key2
+ =
+hash_key1
+;
+
+919
+hash_key1
+ =
+ `rÙr32
+(hash_key1, 8);
+
+920
+hash_key1
+ = hash_key1 ^
+hash_key2
+;
+
+922
+hash_key1
+ = hash_key1 & (
+HASH_BUCKET_SIZE
+ - 1);
+
+923 ià(
+L3FWD_DEBUG
+)
+
+924
+ `´\9atf
+("Hash ResuÉ_key: %d, \n",
+hash_key1
+);
+
+925 \15
+hash_key1
+;
+
+926
+ }
+}
+
+929
+ $»sÞve_\9dv6_l2_adj
+(
+u\9at8_t
+
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], u\9at8_\88
+pÜtid
+,
+
+930 \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+932 \19
+l2_adj_\9dv6_\92\8cy
+ *
+adj_d©a
+ =
+NULL
+;
+
+933 \19
+\91h\94_addr
+
+\91h_d¡
+;
+
+934
+u\9at16_t
+
+\91h\94_ty³
+ = 0x086DD;
+
+936 \19
+l2_adj_key_\9dv6
+
+l2_adj_key
+;
+
+937
+ `memýy
+(&
+l2_adj_key
+.
+nh_\9dv6
+, &nh_\9dv6,
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+938
+l2_adj_key
+.
+out_pÜt_id
+ =
+pÜtid
+;
+
+940
+adj_d©a
+ =
+ `»\8c\9bve_\9dv6_l2_adj_\92\8cy
+(
+l2_adj_key
+);
+
+941 ià(
+adj_d©a
+) {
+
+942 ià(
+adj_d©a
+->
+æags
+ =ð
+L2_ADJ_UNRESOLVED
+
+
+943 ||
+ `memcmp
+(&
+adj_d©a
+->
+\91h_addr
+,
+hw_addr
+, 6)) {
+
+944
+ `\91h\94_addr_cÝy
+(
+hw_addr
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+947
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+,
+hw_addr
+,
+
+948 \17(\19
+\91h\94_addr
+));
+
+949
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6],
+
+950 &
+adj_d©a
+->
+phy_pÜt
+->
+maÿddr
+,
+
+951 \17(\19
+\91h\94_addr
+));
+
+952
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[12], &
+\91h\94_ty³
+, 2);
+
+954
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+960
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+;
+
+961
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+pÜtid
+);
+
+962 ià(
+pÜt
+ =ð
+NULL
+) {
+
+963
+ `´\9atf
+("PORT %u IS DOWN..! UÇbË\81ØProûss\n",
+pÜtid
+);
+
+966
+u\9at32_t
+
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+l2_adj_\92\8cy
+));
+
+967
+adj_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+968 ià(
+adj_d©a
+ =ð
+NULL
+) {
+
+969
+ `´\9atf
+("L2 Adjacency memory\87llocation failed !\n");
+
+973
+adj_d©a
+->
+out_pÜt_id
+ =
+pÜtid
+;
+
+974
+ `memýy
+(
+adj_d©a
+->
+nh_\9dv6
+, &nh_\9dv6,
+RTE_LPM_IPV6_ADDR_SIZE
+);
+
+976
+adj_d©a
+->
+phy_pÜt
+ =
+pÜt
+;
+
+978
+ `\91h\94_addr_cÝy
+(&
+\91h_d¡
+, &
+adj_d©a
+->
+\91h_addr
+);
+
+981
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+,
+hw_addr
+, \17(\19
+\91h\94_addr
+));
+
+982
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[6], &
+pÜt
+->
+maÿddr
+,
+
+983 \17(\19
+\91h\94_addr
+));
+
+984
+ `memýy
+(&
+adj_d©a
+->
+l2_¡r\9ag
+[12], &
+\91h\94_ty³
+, 2);
+
+986
+adj_d©a
+->
+æags
+ =
+L2_ADJ_RESOLVED
+;
+
+989
+ `¹e_hash_add_key_d©a
+(
+l2_adj_\9dv6_hash_hªdË
+, &
+l2_adj_key
+,
+adj_d©a
+);
+
+991
+ `´\9atf
+(" ND\84esolution successful\87nd stored in ipv6_l2_adj_entry %p\n",
+
+992
+adj_d©a
+);
+
+993
+ }
+}
+
+995 \1e
+ $\9dv6_\99\94©e__hash_\8fbË
+(\1e)
+
+997 cڡ \1e*
+Ãxt_key
+;
+
+998 \1e*
+Ãxt_d©a
+;
+
+999
+u\9at32_t
+
+\99\94
+ = 0;
+
+1000
+u\9at8_t
+
+ii
+;
+
+1001
+ `´\9atf
+("\n\t\t\t IPv6 FIB_path Cache\81able....");
+
+1002
+´\9atf
+
+
+1004
+´\9atf
+
+
+1006
+´\9atf
+
+
+1009 \1f
+¹e_hash_\99\94©e
+
+
+1010 (
+fib_·th_\9dv6_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >= 0) {
+
+1011 \19
+\9dv6_fib_·th
+ *
+tmp_d©a
+ =
+
+1012 (\19
+\9dv6_fib_·th
+ *)
+Ãxt_d©a
+;
+
+1013 \19
+fib_·th_key_\9dv6
+
+tmp_key
+;
+
+1014
+ `memýy
+(&
+tmp_key
+,
+Ãxt_key
+, \17(tmp_key));
+
+1015 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+1016
+ `´\9atf
+("%02X%02X ",
+tmp_d©a
+->
+nh_\9dv6
+[
+ii
+],
+
+1017
+tmp_d©a
+->
+nh_\9dv6
+[
+ii
+ + 1]);
+
+1019
+ `´\9atf
+(" \\88%u \\88%u \\88%p\n",
+tmp_d©a
+->
+out_pÜt
+,
+
+1020
+tmp_d©a
+->
+»fcouÁ
+,\81mp_d©a->
+l2_adj_\9dv6_±r
+);
+
+1024
+\99\94
+ = 0;
+
+1026
+ `´\9atf
+("\n\t\t\t L2 ADJ Cache\81able.....");
+
+1027
+´\9atf
+
+
+1029
+´\9atf
+
+
+1031
+´\9atf
+
+
+1033 \1f
+¹e_hash_\99\94©e
+
+
+1034 (
+l2_adj_\9dv6_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >= 0) {
+
+1035 \19
+l2_adj_\9dv6_\92\8cy
+ *
+l2_d©a
+ =
+
+1036 (\19
+l2_adj_\9dv6_\92\8cy
+ *)
+Ãxt_d©a
+;
+
+1037 \19
+l2_adj_key_\9dv6
+
+l2_key
+;
+
+1038
+ `memýy
+(&
+l2_key
+,
+Ãxt_key
+, \17(l2_key));
+
+1039 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+1040
+ `´\9atf
+("%02X%02X ",
+l2_d©a
+->
+nh_\9dv6
+[
+ii
+],
+
+1041
+l2_d©a
+->
+nh_\9dv6
+[
+ii
+ + 1]);
+
+1043
+ `´\9atf
+(" \t%u\t%x:%x:%x:%x:%x:%x:%x:%x:%x:%x:%x:%x\t%p\n",
+
+1044
+l2_d©a
+->
+out_pÜt_id
+,
+
+1045
+l2_d©a
+->
+l2_¡r\9ag
+[0],
+
+1046
+l2_d©a
+->
+l2_¡r\9ag
+[1],
+
+1047
+l2_d©a
+->
+l2_¡r\9ag
+[2],
+
+1048
+l2_d©a
+->
+l2_¡r\9ag
+[3],
+
+1049
+l2_d©a
+->
+l2_¡r\9ag
+[4],
+
+1050
+l2_d©a
+->
+l2_¡r\9ag
+[5],
+
+1051
+l2_d©a
+->
+l2_¡r\9ag
+[6],
+
+1052
+l2_d©a
+->
+l2_¡r\9ag
+[7],
+
+1053
+l2_d©a
+->
+l2_¡r\9ag
+[8],
+
+1054
+l2_d©a
+->
+l2_¡r\9ag
+[9],
+
+1055
+l2_d©a
+->
+l2_¡r\9ag
+[10],
+
+1056
+l2_d©a
+->
+l2_¡r\9ag
+[11],\862_d©a->
+phy_pÜt
+);
+
+1058
+ }
+}
+
+ @VIL/l2l3_stack/l3fwd_lpm6.h
+
+22 #iâdeà
+L3FWD_LPM6_H
+
+
+23 \ 1
+ #L3FWD_LPM6_H
+
+
+ )
+
+25 \ 2
+ ~<¡dio.h
+>
+
+26 \ 2
+ ~<¡dlib.h
+>
+
+27 \ 2
+ ~<¡d\9at.h
+>
+
+28 \ 2
+ ~<\9a\89y³s.h
+>
+
+29 \ 2
+ ~<sys/ty³s.h
+>
+
+30 \ 2
+ ~<¡r\9ag.h
+>
+
+31 \ 2
+ ~<sys/queue.h
+>
+
+32 \ 2
+ ~<¡d¬g.h
+>
+
+33 \ 2
+ ~<\94ºo.h
+>
+
+34 \ 2
+ ~<g\91Ýt.h
+>
+
+35 \ 2
+ ~<¡dboÞ.h
+>
+
+37 \ 2
+ ~<¹e_debug.h
+>
+
+38 \ 2
+ ~<¹e_\91h\94.h
+>
+
+39 \ 2
+ ~<¹e_\91hdev.h
+>
+
+40 \ 2
+ ~<¹e_r\9ag.h
+>
+
+41 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+42 \ 2
+ ~<¹e_cyþes.h
+>
+
+43 \ 2
+ ~<¹e_mbuf.h
+>
+
+44 \ 2
+ ~<¹e_\9d.h
+>
+
+45 \ 2
+ ~<¹e_tý.h
+>
+
+46 \ 2
+ ~<¹e_udp.h
+>
+
+47 \ 2
+ ~<¹e_Ím.h
+>
+
+48 \ 2
+ ~<¹e_Ím6.h
+>
+
+49 \ 2
+ ~<¹e_\8fbË_Ím_\9dv6.h
+>
+
+50 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+51 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+52 \ 2
+ ~"\9a\8brçû.h
+"
+
+58 \ 1
+ #MBUF_HDR_ROOM
+ 256
+
+ )
+
+60 \ 1
+ #IP_HDR_SIZE_IPV6
+ 40
+
+ )
+
+61 \ 1
+ #IP_HDR_SRC_ADR_OFST_IPV6
+ 8
+
+ )
+
+62 \ 1
+ #IP_HDR_DST_ADR_OFST_IPV6
+ 24
+
+ )
+
+65 \ 1
+ #IPV6_L3FWD_LPM_MAX_RULES
+ 1024
+
+ )
+
+66 \ 1
+ #IPV6_L3FWD_LPM_NUMBER_TBL8S
+ (1 << 16è
+
+ )
+
+68 \ 1
+ #MAX_FIB_PATHS
+ 8
+
+ )
+
+74 \19
+ s\9dv6_rout\9ag_\9afo
+ {
+
+75
+u\9at8_t
+
+ md¡_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+76
+u\9at8_t
+
+ md\95th
+;
+
+77
+u\9at32_t
+
+ mm\91ric
+;
+
+78
+u\9at32_t
+
+ mfib_nh_size
+;
+
+79
+u\9at8_t
+
+ mnh_\9dv6
+[
+MAX_FIB_PATHS
+][
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+80
+u\9at8_t
+
+ mout_pÜt
+[
+MAX_FIB_PATHS
+];
+
+81 }
+ g__¹e_ÿche_®igÃd
+;
+
+87 \19
+ s\9dv6_fib_·th
+ {
+
+88
+u\9at8_t
+
+ mnh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+89
+u\9at32_t
+
+ m»fcouÁ
+;
+
+90
+u\9at8_t
+
+ mout_pÜt
+;
+
+91 \19
+l2_adj_\9dv6_\92\8cy
+ *
+ ml2_adj_\9dv6_±r
+;
+
+92 }
+ g__¹e_ÿche_®igÃd
+;
+
+98 \19
+ s\9dv6_fib_\9afo
+ {
+
+99
+u\9at8_t
+
+ md¡_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+100
+u\9at8_t
+
+ md\95th
+;
+
+101
+u\9at32_t
+
+ mm\91ric
+;
+
+102
+u\9at32_t
+
+ mfib_nh_size
+;
+
+103 \19
+\9dv6_fib_·th
+ *
+ m·th
+[
+MAX_FIB_PATHS
+];
+
+104 }
+ g__¹e_ÿche_®igÃd
+;
+
+109 \19
+ sl2_adj_\9dv6_\92\8cy
+ {
+
+110 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+111
+u\9at8_t
+
+ mout_pÜt_id
+;
+
+112
+u\9at8_t
+
+ mnh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+113
+u\9at32_t
+
+ m»fcouÁ
+;
+
+114
+u\9at8_t
+
+ ml2_¡r\9ag
+[256];
+
+115
+l2_phy_\9a\8brçû_t
+ *
+ mphy_pÜt
+;
+
+116
+u\9at8_t
+
+ mæags
+;
+
+117 }
+ g__¹e_ÿche_®igÃd
+;
+
+122 \19
+ sl2_adj_key_\9dv6
+ {
+
+125
+u\9at8_t
+
+ mnh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+126
+u\9at8_t
+
+ mout_pÜt_id
+;
+
+127
+u\9at8_t
+
+ mf\9eËr1
+;
+
+128
+u\9at8_t
+
+ mf\9eËr2
+;
+
+129
+u\9at8_t
+
+ mf\9eËr3
+;
+
+135 \19
+ sfib_·th_key_\9dv6
+ {
+
+138
+u\9at8_t
+
+ mnh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+];
+
+139
+u\9at8_t
+
+ mout_pÜt
+;
+
+140
+u\9at8_t
+
+ mf\9eËr1
+;
+
+141
+u\9at8_t
+
+ mf\9eËr2
+;
+
+142
+u\9at8_t
+
+ mf\9eËr3
+;
+
+145 \19
+ s\9dv6_´ÙocÞ_ty³
+ {
+
+146
+u\9at8_t
+
+ m´ÙocÞ_ty³
+;
+
+147 \1e(*
+ mfunc
+è(\19
+ m¹e_mbuf
+ **,
+ mu\9at16_t
+,
+ mu\9at64_t
+,
+
+148
+ ml2_phy_\9a\8brçû_t
+ *);
+
+149 }
+ g__¹e_ÿche_®igÃd
+;
+
+157 \12
+Ím6_\9a\99
+(\1e);
+
+166 \12
+Ím6_\8fbË_rou\8b_add
+(\19
+\9dv6_rout\9ag_\9afo
+ *
+d©a
+);
+
+177 \12
+Ím6_\8fbË_rou\8b_d\96\91e
+(
+u\9at8_t
+
+d¡_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+178
+u\9at8_t
+
+d\95th
+);
+
+191 \12
+Ím6_\8fbË_lookup
+(\19
+¹e_mbuf
+ **
+pkts_bur¡
+,
+u\9at16_t
+
+nb_pkts
+,
+
+192
+u\9at64_t
+
+pkts_mask
+,
+
+193
+l2_phy_\9a\8brçû_t
+ *
+pÜt_±r
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+],
+
+194
+u\9at64_t
+ *
+h\99_mask
+);
+
+209 \1e
+l3fwd_rx_\9dv6_·ck\91s
+(\19
+¹e_mbuf
+ **
+m
+,
+u\9at16_t
+
+nb_pkts
+,
+
+210
+u\9at64_t
+
+v®id_pkts_mask
+,
+
+211
+l2_phy_\9a\8brçû_t
+ *
+\9a_pÜt
+);
+
+222 \19
+\9dv6_fib_·th
+ *
+pÝuÏ\8b_\9dv6_fib_·th
+(
+u\9at8_t
+
+
+223
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+224
+u\9at8_t
+
+out_pÜt
+);
+
+234 \19
+\9dv6_fib_·th
+ *
+»\8c\9bve_\9dv6_fib_·th_\92\8cy
+(\19
+fib_·th_key_\9dv6
+
+
+235
+·th_key
+);
+
+245 \19
+l2_adj_\9dv6_\92\8cy
+ *
+»\8c\9bve_\9dv6_l2_adj_\92\8cy
+(\19
+l2_adj_key_\9dv6
+
+
+246
+l2_adj_key
+);
+
+257 \19
+l2_adj_\9dv6_\92\8cy
+ *
+pÝuÏ\8b_\9dv6_l2_adj
+(
+u\9at8_t
+
+
+258
+nh_\9d
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+259
+u\9at8_t
+
+pÜtid
+);
+
+272 \12
+g\91_de¡_mac_fÜ_ÃxthÝ_\9dv6
+(
+u\9at8_t
+
+nh_\9dv6
+[
+RTE_LPM_IPV6_ADDR_SIZE
+],
+
+273
+u\9at32_t
+
+out_phy_pÜt
+,
+
+274 \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+281 \1e
+»move_\9dv6_fib_l2_adj_\92\8cy
+(\1e*
+\92\8cy
+);
+
+284
+\9dv6_l3_´ÙocÞ_ty³_add
+(
+u\9at8_t
+
+´ÙocÞ_ty³
+,
+
+285 \1e(*
+func
+è(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+286
+l2_phy_\9a\8brçû_t
+ *));
+
+289
+ `\9dv6_loÿl_d\96iv\94
+(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+290
+l2_phy_\9a\8brçû_t
+ *);
+
+293
+ `\9dv6_fÜw¬d_d\96iv\94
+(\19
+¹e_mbuf
+ **,
+u\9at16_t
+,
+u\9at64_t
+,
+
+294
+l2_phy_\9a\8brçû_t
+ *);
+
+296 \12
+ `is_v®id_\9dv6_pkt
+(\19
+\9dv6_hdr
+ *
+pkt
+,
+u\9at32_t
+
+l\9ak_Ën
+);
+
+297
+u\9at8_t
+
+ `\9dv6_hash_lßd_b®ªû
+(\19
+¹e_mbuf
+ *
+mbuf
+);
+
+311 \1e
+ `»sÞve_\9dv6_l2_adj
+(
+u\9at8_t
+
+nh_\9d
+[
+RTE_LPM_IPV6_ADDR_SIZE
+], u\9at8_\88
+pÜtid
+,
+
+312 \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+314 \1e
+ `\9dv6_\99\94©e__hash_\8fbË
+(\1e);
+
+ @VIL/l2l3_stack/l3fwd_main.c
+
+24 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+25 \ 2
+ ~"l2_´Ùo.h
+"
+
+26 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+27 \ 2
+ ~"l3fwd_Ím6.h
+"
+
+28 \ 2
+ ~"\9a\8brçû.h
+"
+
+29 \ 2
+ ~"lib_¬p.h
+"
+
+30 \ 2
+ ~"lib_icmpv6.h
+"
+
+32 \19
+rout\9ag_\9afo
+
+ g\9aput_¬¿y
+[] = {
+
+33 #ià
+MULTIPATH_FEAT
+
+
+34 {
+IPv4
+(30, 12, 0, 1), 24, 0, 4,
+
+35 {
+IPv4
+(192, 168, 0, 2), IPv4(1, 1, 1, 7), IPv4(120, 0, 0, 2),
+
+36
+IPv4
+(30, 40, 50, 60)}, {1, 1, 1, 1} },
+
+38 {
+IPv4
+(40, 12, 0, 1), 24, 0, 4,
+
+39 {
+IPv4
+(192, 168, 0, 2), IPv4(1, 1, 1, 7), IPv4(120, 0, 0, 2),
+
+40
+IPv4
+(30, 40, 50, 60)}, {1, 1, 1, 1} },
+
+42 {
+IPv4
+(50, 12, 0, 1), 24, 0, 4,
+
+43 {
+IPv4
+(192, 168, 0, 2), IPv4(1, 1, 1, 7), IPv4(120, 0, 0, 2),
+
+44
+IPv4
+(30, 40, 50, 60)}, {1, 1, 1, 1} },
+
+46 {
+IPv4
+(60, 12, 0, 1), 24, 0, 4,
+
+47 {
+IPv4
+(192, 168, 0, 2), IPv4(1, 1, 1, 7), IPv4(120, 0, 0, 2),
+
+48
+IPv4
+(30, 40, 50, 60)}, {1, 1, 1, 1} },
+
+50 {
+IPv4
+(100, 100, 100, 100), 24, 0, 2,
+
+51 {
+IPv4
+(120, 0, 0, 2), IPv4(120, 0, 0, 2)}, {1, 1} },
+
+53 {
+IPv4
+(200, 100, 100, 100), 24, 0, 2,
+
+54 {
+IPv4
+(80, 0, 0, 2), IPv4(80, 40, 50, 60)}, {1, 1} },
+
+56 {
+IPv4
+(30, 12, 0, 1), 24, 0, 1,
+
+57 {
+IPv4
+(192, 168, 0, 2)}, {1} },
+
+59 {
+IPv4
+(20, 12, 0, 1), 24, 0, 1,
+
+60 {
+IPv4
+(120, 0, 0, 2)}, {1} },
+
+64 \19
+\9dv6_rout\9ag_\9afo
+
+ g\9dv6_\9aput_¬¿y
+[] = {
+
+81 \1e
+ $l3fwd_\9a\99
+(\1e)
+
+83
+ `´\9atf
+(" *********** L3 Initialization START ************\n");
+
+84 ià(
+ `Ím_\9a\99
+() == 0) {
+
+85
+ `¹e_ex\99
+(
+EXIT_FAILURE
+, "L3 Initialization IPv4 Failed\n");
+
+87 ià(
+ `Ím6_\9a\99
+() == 0) {
+
+88
+ `¹e_ex\99
+(
+EXIT_FAILURE
+, "L3 Initialization for IPV6 Failed\n");
+
+91
+ `li¡_add_ty³
+(
+ETHER_TYPE_IPv4
+,
+l3fwd_rx_\9dv4_·ck\91s
+);
+
+92
+ `li¡_add_ty³
+(
+ETHER_TYPE_IPv6
+,
+l3fwd_rx_\9dv6_·ck\91s
+);
+
+94
+ `l3_´ÙocÞ_ty³_add
+(
+IPPROTO_ICMP
+,
+\9d_loÿl_·ck\91s_´oûss
+);
+
+95
+ `l3_´ÙocÞ_ty³_add
+(
+IPPROTO_TCP
+,
+\9d_fÜw¬d_d\96iv\94
+);
+
+96
+ `l3_´ÙocÞ_ty³_add
+(
+IPPROTO_UDP
+,
+\9d_fÜw¬d_d\96iv\94
+);
+
+98
+ `\9dv6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_ICMPV6
+,
+\9dv6_loÿl_d\96iv\94
+);
+
+99
+ `\9dv6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_TCP
+,
+\9dv6_fÜw¬d_d\96iv\94
+);
+
+100
+ `\9dv6_l3_´ÙocÞ_ty³_add
+(
+IPPROTO_UDP
+,
+\9dv6_fÜw¬d_d\96iv\94
+);
+
+102
+ }
+}
+
+104 \1e
+ $pÝuÏ\8b_Ím_rou\8bs
+(\1e)
+
+106
+ `pÝuÏ\8b_Ím4_\8fbË_rou\8bs
+();
+
+108
+ }
+}
+
+110 \1e
+ $pÝuÏ\8b_Ím4_\8fbË_rou\8bs
+(\1e)
+
+112
+u\9at8_t
+
+i
+;
+
+113
+´\9atf
+
+
+115 \ f
+i
+ = 0; i <
+MAX_ROUTES
+; i++) {
+
+116 ià(
+ `Ím4_\8fbË_rou\8b_add
+(&
+\9aput_¬¿y
+[
+i
+])) {
+
+118
+ `´\9atf
+("TÙ®\84ou\8b Added# %d\n",
+i
+ + 1);
+
+120
+ `¹e_ex\99
+(
+EXIT_FAILURE
+,
+
+122
+i
+);
+
+125
+´\9atf
+
+
+127
+ }
+}
+
+129 \1e
+ $pÝuÏ\8b_Ím6_\8fbË_rou\8bs
+(\1e)
+
+131
+u\9at8_t
+
+i
+;
+
+132
+´\9atf
+
+
+134 \ f
+i
+ = 0; i < 2; i++) {
+
+135 ià(
+ `Ím6_\8fbË_rou\8b_add
+(&
+\9dv6_\9aput_¬¿y
+[
+i
+])) {
+
+137
+ `´\9atf
+("Added\84ou\8b # %d\n",
+i
+);
+
+139
+ `¹e_ex\99
+(
+EXIT_FAILURE
+,
+
+141
+i
+);
+
+144
+ `´\9atf
+(" *********** L3 IPV6 Route Initialization END ************\n");
+
+145
+ }
+}
+
+ @VIL/l2l3_stack/lib_arp.c
+
+17 \ 2
+ ~<exec\9afo.h
+>
+
+18 \ 2
+ ~<¡dio.h
+>
+
+19 \ 2
+ ~<¡dlib.h
+>
+
+20 \ 2
+ ~<¡d\9at.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<uni¡d.h
+>
+
+23 \ 2
+ ~<¹e_commÚ.h
+>
+
+24 \ 2
+ ~<¹e_m®loc.h
+>
+
+25 \ 2
+ ~<¹e_\9d.h
+>
+
+26 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+27 \ 2
+ ~<¹e_log.h
+>
+
+28 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+29 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+30 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+31 \ 2
+ ~<¹e_¬p.h
+>
+
+32 \ 2
+ ~<¹e_icmp.h
+>
+
+33 \ 2
+ ~<¹e_hash.h
+>
+
+34 \ 2
+ ~<¹e_jhash.h
+>
+
+35 \ 2
+ ~<¹e_cyþes.h
+>
+
+36 \ 2
+ ~<¹e_tim\94.h
+>
+
+37 \ 2
+ ~"\9a\8brçû.h
+"
+
+38 \ 2
+ ~"l2_´Ùo.h
+"
+
+39 \ 2
+ ~"lib_¬p.h
+"
+
+40 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+41 \ 2
+ ~"vnf_commÚ.h
+"
+
+43 #ià(
+RTE_BYTE_ORDER
+ =ð
+RTE_LITTLE_ENDIAN
+)
+
+44 \ 1
+ #CHECK_ENDIAN_16
+(
+x
+è
+ `¹e_be_to_ýu_16
+(x)
+
+ )
+
+45 \ 1
+ #CHECK_ENDIAN_32
+(
+x
+è
+ `¹e_be_to_ýu_32
+(x)
+
+ )
+
+47 \ 1
+ #CHECK_ENDIAN_16
+(
+x
+è(x)
+
+ )
+
+48 \ 1
+ #CHECK_ENDIAN_32
+(
+x
+è(x)
+
+ )
+
+51 \ 1
+ #NB_ARPICMP_MBUF
+ 64
+
+ )
+
+52 \ 1
+ #NB_NDICMP_MBUF
+ 64
+
+ )
+
+53 \ 1
+ #IP_VERSION_4
+ 0x40
+
+ )
+
+54 \ 1
+ #IP_HDRLEN
+ 0x05
+
+ )
+
+55 \ 1
+ #IP_VHL_DEF
+ (
+IP_VERSION_4
+ |
+IP_HDRLEN
+)
+
+ )
+
+57 \ 1
+ #is_muÉiÿ¡_\9dv4_addr
+(
+\9dv4_addr
+) \
+
+58 (((
+ `¹e_be_to_ýu_32
+((
+\9dv4_addr
+)è>> 24è& 0x000000FFè=ð0xE0)
+
+ )
+
+60 \r
+u\9at8_t
+
+´v_\9a_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+61 \r
+u\9at32_t
+
+tim\94_lcÜe
+;
+
+62
+u\9at32_t
+
+ g¬p_timeout
+ =
+ARP_TIMER_EXPIRY
+;
+
+65 \ 1
+ #INADDRSZ
+ 4
+
+ )
+
+66 \ 1
+ #IN6ADDRSZ
+ 16
+
+ )
+
+67 \18\12
+my_\9a\91_±Ú_\9dv6
+(\12
+af
+, cڡ \ 5*
+¤c
+, \1e*
+d¡
+);
+
+68 \18\12
+\9a\91_±Ú_\9dv6
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+);
+
+69 \18\12
+\9a\91_±Ú_\9dv4
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+);
+
+70 \r\1e
+cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+u\9at32_t
+
+d\95th
+,
+
+71
+u\9at8_t
+
+Ãtmask_\9dv6
+[]);
+
+73
+u\9at8_t
+
+ gvnf_commÚ_¬p_lib_\9a\99
+;
+
+74
+u\9at8_t
+
+ gvnf_commÚ_nd_lib_\9a\99
+;
+
+75
+u\9at8_t
+
+ glßdb_p\9d\96\9ae_couÁ
+;
+
+77
+u\9at32_t
+
+ gARPICMP_DEBUG
+;
+
+78
+u\9at32_t
+
+ gNDIPV6_DEBUG
+;
+
+80
+u\9at32_t
+
+ g¬p_rou\8b_tbl_\9adex
+;
+
+81
+u\9at32_t
+
+ gnd_rou\8b_tbl_\9adex
+;
+
+82
+u\9at32_t
+
+ gl\9ak_hw_addr_¬¿y_idx
+;
+
+84
+u\9at32_t
+
+ glib_¬p_g\91_mac_»q
+;
+
+85
+u\9at32_t
+
+ glib_¬p_nh_found
+;
+
+86
+u\9at32_t
+
+ glib_¬p_no_nh_found
+;
+
+87
+u\9at32_t
+
+ glib_¬p_¬p_\92\8cy_found
+;
+
+88
+u\9at32_t
+
+ glib_¬p_no_¬p_\92\8cy_found
+;
+
+89
+u\9at32_t
+
+ glib_¬p_pÝuÏ\8b_ÿÎed
+;
+
+90
+u\9at32_t
+
+ glib_¬p_d\96\91e_ÿÎed
+;
+
+91
+u\9at32_t
+
+ glib_¬p_du¶iÿ\8b_found
+;
+
+93
+u\9at32_t
+
+ glib_nd_g\91_mac_»q
+;
+
+94
+u\9at32_t
+
+ glib_nd_nh_found
+;
+
+95
+u\9at32_t
+
+ glib_nd_no_nh_found
+;
+
+96
+u\9at32_t
+
+ glib_nd_nd_\92\8cy_found
+;
+
+97
+u\9at32_t
+
+ glib_nd_no_¬p_\92\8cy_found
+;
+
+98
+u\9at32_t
+
+ glib_nd_pÝuÏ\8b_ÿÎed
+;
+
+99
+u\9at32_t
+
+ glib_nd_d\96\91e_ÿÎed
+;
+
+100
+u\9at32_t
+
+ glib_nd_du¶iÿ\8b_found
+;
+
+101 \19
+¹e_mempoÞ
+ *
+ glib_¬p_pktmbuf_tx_poÞ
+;
+
+102 \19
+¹e_mempoÞ
+ *
+ glib_nd_pktmbuf_tx_poÞ
+;
+
+104 \19
+¹e_mbuf
+ *
+ glib_¬p_pkt
+;
+
+105 \19
+¹e_mbuf
+ *
+ glib_nd_pkt
+;
+
+107
+u\9at8_t
+
+ gdeçuÉ_\91h\94_addr
+[6] = { 0, 0, 0, 0, 1, 1 };
+
+108
+u\9at8_t
+
+ gdeçuÉ_\9d
+[4] = { 0, 0, 1, 1 };
+
+110 \18\19
+¹e_hash_·¿m\91\94s
+
+ g¬p_hash_·¿ms
+ = {
+
+111 .
+Çme
+ = "ARP",
+
+112 .
+ g\92\8c\9bs
+ = 64,
+
+113 .
+ gȣrved
+ = 0,
+
+114 .
+ gkey_Ën
+ = \17(\19
+¬p_key_\9dv4
+),
+
+115 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+116 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+119 \18\19
+¹e_hash_·¿m\91\94s
+
+ gnd_hash_·¿ms
+ = {
+
+120 .
+Çme
+ = "ND",
+
+121 .
+ g\92\8c\9bs
+ = 64,
+
+122 .
+ gȣrved
+ = 0,
+
+123 .
+ gkey_Ën
+ = \17(\19
+nd_key_\9dv6
+),
+
+124 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+125 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+128 \19
+¹e_hash
+ *
+ g¬p_hash_hªdË
+;
+
+129 \19
+¹e_hash
+ *
+ gnd_hash_hªdË
+;
+
+131 \1e
+´\9at_pkt1
+(\19
+¹e_mbuf
+ *
+pkt
+);
+
+133 \19
+p_·¿ms
+ *
+ gmyAµ
+;
+
+134 \19
+¹e_p\9d\96\9ae
+ *
+ gmyP
+;
+
+135
+u\9at8_t
+
+ gnum_vnf_th»ads
+;
+
+140 \19
+ s¬p_pÜt_add»ss
+ {
+
+141
+u\9at32_t
+
+ m\9d
+;
+
+142
+u\9at8_t
+
+ mmac_addr
+[6];
+
+145 \19
+¬p_pÜt_add»ss
+
+ g¬p_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+146 \19
+¹e_mempoÞ
+ *
+ gtim\94_mempoÞ_¬p
+;
+
+148 \12
+ gtim\94_objs_mempoÞ_couÁ
+ = 70000;
+
+150 \ 1
+ #MAX_NUM_ARP_ENTRIES
+ 64
+
+ )
+
+151 \ 1
+ #MAX_NUM_ND_ENTRIES
+ 64
+
+ )
+
+153
+u\9at32_t
+
+g\91_nh
+(uint32_t, uint32_t *);
+
+154 \1e
+g\91_nh_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[],
+u\9at32_t
+ *
+pÜt
+, u\9at8_\88
+nh\9dv6
+[]);
+
+156 \ 1
+ #MAX_ARP_DATA_ENTRY_TABLE
+ 7
+
+ )
+
+158 \19
+\8fbË_¬p_\92\8cy_d©a
+
+ g¬p_\92\8cy_d©a_\8fbË
+[
+MAX_ARP_DATA_ENTRY_TABLE
+] = {
+
+159 {{0, 0, 0, 0, 0, 1}, 1,
+INCOMPLETE
+,
+IPv4
+(192, 168, 0, 2)},
+
+160 {{0, 0, 0, 0, 0, 2}, 0,
+INCOMPLETE
+,
+IPv4
+(192, 168, 0, 3)},
+
+161 {{0, 0, 0, 0, 0, 1}, 1,
+INCOMPLETE
+,
+IPv4
+(30, 40, 50, 60)},
+
+162 {{0, 0, 0, 0, 0, 1}, 1,
+INCOMPLETE
+,
+IPv4
+(120, 0, 0, 2)},
+
+163 {{0, 0, 0, 0, 0, 4}, 3,
+INCOMPLETE
+,
+IPv4
+(1, 1, 1, 4)},
+
+164 {{0, 0, 0, 0, 0, 5}, 4,
+INCOMPLETE
+,
+IPv4
+(1, 1, 1, 5)},
+
+165 {{0, 0, 0, 0, 0, 6}, 1,
+INCOMPLETE
+,
+IPv4
+(1, 1, 1, 7)},
+
+168 \ 1
+ #MAX_ND_DATA_ENTRY_TABLE
+ 7
+
+ )
+
+169 \19
+\8fbË_nd_\92\8cy_d©a
+
+ gnd_\92\8cy_d©a_\8fbË
+[
+MAX_ND_DATA_ENTRY_TABLE
+] = {
+
+170 {{0, 0, 0, 0, 0, 8}, 1,
+INCOMPLETE
+,
+
+173 {{0, 0, 0, 0, 0, 9}, 1,
+INCOMPLETE
+,
+
+175 {{0, 0, 0, 0, 0, 10}, 2,
+INCOMPLETE
+,
+
+177 {{0, 0, 0, 0, 0, 11}, 3,
+INCOMPLETE
+,
+
+179 {{0, 0, 0, 0, 0, 12}, 4,
+INCOMPLETE
+,
+
+181 {{0, 0, 0, 0, 0, 13}, 5,
+INCOMPLETE
+,
+
+183 {{0, 0, 0, 0, 0, 14}, 6,
+INCOMPLETE
+,
+
+187 \19
+lib_nd_rou\8b_\8fbË_\92\8cy
+
+ glib_nd_rou\8b_\8fbË
+[
+MAX_ND_RT_ENTRY
+] = {
+
+222 \19
+lib_¬p_rou\8b_\8fbË_\92\8cy
+
+ glib_¬p_rou\8b_\8fbË
+[
+MAX_ARP_RT_ENTRY
+] = {
+
+241 \1e
+´\9at_\8caû
+(\1e);
+
+244 \1e
+ $´\9at_\8caû
+(\1e)
+
+246 \1e*
+¬¿y
+[10];
+
+247
+size_t
+
+size
+;
+
+248 \ 5**
+¡r\9ags
+;
+
+249
+size_t
+
+i
+;
+
+251
+size
+ =
+ `back\8caû
+(
+¬¿y
+, 10);
+
+252
+¡r\9ags
+ =
+ `back\8caû_symbÞs
+(
+¬¿y
+,
+size
+);
+
+254
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Ob\8f\9aed %zd s\8fck f¿mes.\n",
+size
+);
+
+256 \ f
+i
+ = 0; i <
+size
+; i++)
+
+257
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%s\n",
+¡r\9ags
+[
+i
+]);
+
+259
+ `ä\93
+(
+¡r\9ags
+);
+
+260
+ }
+}
+
+262
+u\9at32_t
+
+ $g\91_nh
+(
+u\9at32_t
+
+\9d
+, u\9at32_\88*
+pÜt
+)
+
+264 \12
+i
+ = 0;
+
+265 \ f
+i
+ = 0; i <
+MAX_ARP_RT_ENTRY
+; i++) {
+
+266 ià(((
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+
+267
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+) ==
+
+268 (
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+))) {
+
+270 *
+pÜt
+ =
+lib_¬p_rou\8b_\8fbË
+[
+i
+].port;
+
+271
+lib_¬p_nh_found
+++;
+
+272 \15
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+nh
+;
+
+274 ià(
+ARPICMP_DEBUG
+)
+
+275
+ `´\9atf
+("No\82h match ip 0x%x,\85ort %u,\81_ip "
+
+277
+\9d
+, *
+pÜt
+,
+lib_¬p_rou\8b_\8fbË
+[
+i
+].ip,
+
+278
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+pÜt
+,
+
+279
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+,
+
+280 (
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+\9d
+ &
+
+281
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+),
+
+282 (
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+));
+
+284 ià(
+ARPICMP_DEBUG
+)
+
+285
+ `´\9atf
+("NØNH - i°0x%x,\85Ü\88%u\n",
+\9d
+, *
+pÜt
+);
+
+286
+lib_¬p_no_nh_found
+++;
+
+288
+ }
+}
+
+291 \1e
+ $g\91_nh_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[],
+u\9at32_t
+ *
+pÜt
+, u\9at8_\88
+nh\9dv6
+[])
+
+293 \12
+i
+ = 0;
+
+294
+u\9at8_t
+
+Ãtmask_\9dv6
+[16],
+Ãt\9d_nd
+[16],
+Ãt\9d_\9a
+[16];
+
+295
+u\9at8_t
+
+k
+ = 0,
+l
+ = 0,
+d\95thæags
+ = 0,
+d\95thæags1
+ = 0;
+
+296
+ `mem£t
+(
+Ãtmask_\9dv6
+, 0, \17(netmask_ipv6));
+
+297
+ `mem£t
+(
+Ãt\9d_nd
+, 0, \17(netip_nd));
+
+298
+ `mem£t
+(
+Ãt\9d_\9a
+, 0, \17(netip_in));
+
+299 ià(!
+\9dv6
+)
+
+301 \ f
+i
+ = 0; i <
+MAX_ARP_RT_ENTRY
+; i++) {
+
+303
+ `cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+d\95th
+,
+
+304
+Ãtmask_\9dv6
+);
+
+306 \ f
+k
+ = 0; k < 16; k++) {
+
+307 ià(
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+k
+] &
+Ãtmask_\9dv6
+[k]) {
+
+308
+d\95thæags
+++;
+
+309
+Ãt\9d_nd
+[
+k
+] =
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[k];
+
+313 \ f
+l
+ = 0;\86 < 16;\86++) {
+
+314 ià(
+\9dv6
+[
+l
+] &
+Ãtmask_\9dv6
+[l]) {
+
+315
+d\95thæags1
+++;
+
+316
+Ãt\9d_\9a
+[
+l
+] =
+\9dv6
+[l];
+
+319 \12
+j
+ = 0;
+
+320 ià((
+d\95thæags
+ =ð
+d\95thæags1
+)
+
+321 && (
+ `memcmp
+(
+Ãt\9d_nd
+,
+Ãt\9d_\9a
+, \17(netip_nd)) == 0)) {
+
+323 *
+pÜt
+ =
+lib_nd_rou\8b_\8fbË
+[
+i
+].port;
+
+324
+lib_nd_nh_found
+++;
+
+326 \ f
+j
+ = 0; j < 16; j++)
+
+327
+nh\9dv6
+[
+j
+] =
+lib_nd_rou\8b_\8fbË
+[
+i
+].nhipv6[j];
+
+332 ià(
+NDIPV6_DEBUG
+)
+
+333
+ `´\9atf
+("No\82h match\n");
+
+334
+d\95thæags
+ = 0;
+
+335
+d\95thæags1
+ = 0;
+
+337 ià(
+NDIPV6_DEBUG
+)
+
+338
+ `´\9atf
+("NØNH - i°0x%x,\85Ü\88%u\n",
+\9dv6
+[0], *
+pÜt
+);
+
+339
+lib_nd_no_nh_found
+++;
+
+340
+ }
+}
+
+343 \12
+ $g\91_de¡_mac_addr_pÜt
+(cڡ
+u\9at32_t
+
+\9daddr
+,
+
+344
+u\9at32_t
+ *
+phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+346
+lib_¬p_g\91_mac_»q
+++;
+
+347
+u\9at32_t
+
+nh\9d
+ = 0;
+
+349
+nh\9d
+ =
+ `g\91_nh
+(
+\9daddr
+,
+phy_pÜt
+);
+
+350 ià(
+nh\9d
+ == 0) {
+
+351 ià(
+ARPICMP_DEBUG
+)
+
+352
+ `´\9atf
+("ARPICMP\82o\82h found for ip %x,\85ort %d\n",
+
+353
+\9daddr
+, *
+phy_pÜt
+);
+
+355 \15
+NH_NOT_FOUND
+;
+
+358 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+359 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+360
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+361
+tmp_¬p_key
+.
+\9d
+ =
+nh\9d
+;
+
+363 ià(
+ARPICMP_DEBUG
+)
+
+364
+ `´\9atf
+("%s:\82h\9d: %x,\85hypÜt: %d\n",
+__FUNCTION__
+,
+nh\9d
+,
+
+365 *
+phy_pÜt
+);
+
+367
+»t_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+tmp_¬p_key
+);
+
+368 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+369 ià(
+ARPICMP_DEBUG
+) {
+
+370
+´\9atf
+
+
+372
+\9daddr
+, *
+phy_pÜt
+);
+
+373
+ `´\9at_¬p_\8fbË
+();
+
+375 ià(
+nh\9d
+ != 0) {
+
+376 ià(
+ARPICMP_DEBUG
+)
+
+377
+ `´\9atf
+("CG-NAPT\84equesting ARP for ip %x, "
+
+378 "p܈%d\n",
+nh\9d
+, *
+phy_pÜt
+);
+
+379
+ `»que¡_¬p
+(*
+phy_pÜt
+,
+nh\9d
+);
+
+382
+lib_¬p_no_¬p_\92\8cy_found
+++;
+
+383 \15
+ARP_NOT_FOUND
+;
+
+385
+ `\91h\94_addr_cÝy
+(&
+»t_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+386
+lib_¬p_¬p_\92\8cy_found
+++;
+
+387 ià(
+ARPICMP_DEBUG
+)
+
+388
+ `´\9atf
+("%s: ARPICMP hwadd¸found\n",
+__FUNCTION__
+);
+
+389 \15
+ARP_FOUND
+;
+
+390
+ }
+}
+
+392 \12
+ $g\91_de¡_mac_add»ss
+(cڡ
+u\9at32_t
+
+\9daddr
+, u\9at32_\88*
+phy_pÜt
+,
+
+393 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+ *
+nh\9d
+)
+
+395
+lib_¬p_g\91_mac_»q
+++;
+
+397 *
+nh\9d
+ =
+ `g\91_nh
+(
+\9daddr
+,
+phy_pÜt
+);
+
+398 ià(*
+nh\9d
+ == 0) {
+
+399 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+)
+
+400
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+402
+\9daddr
+, *
+phy_pÜt
+);
+
+406 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+407 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+408
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+409
+tmp_¬p_key
+.
+\9d
+ = *
+nh\9d
+;
+
+411
+»t_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+tmp_¬p_key
+);
+
+412 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+413 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+) {
+
+414
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+416
+\9daddr
+, *
+phy_pÜt
+);
+
+417
+ `´\9at_¬p_\8fbË
+();
+
+419
+lib_¬p_no_¬p_\92\8cy_found
+++;
+
+422
+ `\91h\94_addr_cÝy
+(&
+»t_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+423
+lib_¬p_¬p_\92\8cy_found
+++;
+
+426
+ }
+}
+
+428 \12
+ $g\91_de¡_mac_addr
+(cڡ
+u\9at32_t
+
+\9daddr
+,
+
+429
+u\9at32_t
+ *
+phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+431
+lib_¬p_g\91_mac_»q
+++;
+
+432
+u\9at32_t
+
+nh\9d
+ = 0;
+
+434
+nh\9d
+ =
+ `g\91_nh
+(
+\9daddr
+,
+phy_pÜt
+);
+
+435 ià(
+nh\9d
+ == 0) {
+
+436 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+)
+
+437
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+439
+\9daddr
+, *
+phy_pÜt
+);
+
+443 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+444 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+445
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+446
+tmp_¬p_key
+.
+\9d
+ =
+nh\9d
+;
+
+448
+»t_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+tmp_¬p_key
+);
+
+449 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+450 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+) {
+
+451
+´\9atf
+
+
+453
+\9daddr
+, *
+phy_pÜt
+);
+
+454
+ `´\9at_¬p_\8fbË
+();
+
+457 ià(
+nh\9d
+ != 0) {
+
+458 ià(
+ARPICMP_DEBUG
+ > 4)
+
+459
+´\9atf
+
+
+461
+nh\9d
+, *
+phy_pÜt
+);
+
+462 ià(
+ `ifm_chk_pÜt_\9dv4_\92abËd
+(*
+phy_pÜt
+)) {
+
+463
+ `»que¡_¬p
+(*
+phy_pÜt
+,
+nh\9d
+);
+
+465 ià(
+ARPICMP_DEBUG
+)
+
+466
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+468
+__FUNCTION__
+, *
+phy_pÜt
+);
+
+472
+lib_¬p_no_¬p_\92\8cy_found
+++;
+
+475
+ `\91h\94_addr_cÝy
+(&
+»t_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+476
+lib_¬p_¬p_\92\8cy_found
+++;
+
+478
+ }
+}
+
+480 \12
+ $g\91_de¡_mac_add»ss_\9dv6_pÜt
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+481 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[])
+
+483 \12
+i
+ = 0,
+j
+ = 0,
+æag
+ = 0;
+
+484
+lib_nd_g\91_mac_»q
+++;
+
+486
+ `g\91_nh_\9dv6
+(
+\9dv6addr
+,
+phy_pÜt
+,
+nh\9dv6
+);
+
+487 \ f
+j
+ = 0; j < 16; j++) {
+
+488 ià(
+nh\9dv6
+[
+j
+])
+
+489
+æag
+++;
+
+491 ià(
+æag
+ == 0) {
+
+492 ià(
+NDIPV6_DEBUG
+)
+
+493
+ `´\9atf
+("NDIPV6\82o\82h found for ipv6 "
+
+496
+\9dv6addr
+[0], ipv6addr[1], ipv6addr[2],
+
+497
+\9dv6addr
+[3], ipv6addr[4], ipv6addr[5],
+
+498
+\9dv6addr
+[6], ipv6addr[7], ipv6addr[8],
+
+499
+\9dv6addr
+[9], ipv6addr[10], ipv6addr[11],
+
+500
+\9dv6addr
+[12], ipv6addr[13], ipv6addr[14],
+
+501
+\9dv6addr
+[15], *
+phy_pÜt
+);
+
+505 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+506 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+507
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+509 \ f
+i
+ = 0; i < 16; i++)
+
+510
+tmp_nd_key
+.
+\9dv6
+[
+i
+] =
+nh\9dv6
+[i];
+
+512
+»t_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+tmp_nd_key
+);
+
+513 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+514 ià(
+NDIPV6_DEBUG
+) {
+
+515
+ `´\9atf
+("NDIPV6\82o\82d\83ntry found for ip %x,\85ort %d\n",
+
+516
+\9dv6addr
+[0], *
+phy_pÜt
+);
+
+518
+lib_nd_no_¬p_\92\8cy_found
+++;
+
+521
+ `\91h\94_addr_cÝy
+(&
+»t_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+522
+lib_nd_nd_\92\8cy_found
+++;
+
+524
+ }
+}
+
+526 \12
+ $g\91_de¡_mac_add»ss_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+527 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[])
+
+529 \12
+i
+ = 0,
+j
+ = 0,
+æag
+ = 0;
+
+530
+lib_nd_g\91_mac_»q
+++;
+
+532
+ `g\91_nh_\9dv6
+(
+\9dv6addr
+,
+phy_pÜt
+,
+nh\9dv6
+);
+
+533 \ f
+j
+ = 0; j < 16; j++) {
+
+534 ià(
+nh\9dv6
+[
+j
+]) {
+
+535
+æag
+++;
+
+538 ià(
+æag
+ == 0) {
+
+539 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+)
+
+540
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+542
+\9dv6addr
+[0], *
+phy_pÜt
+);
+
+546 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+547 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+548
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+550 \ f
+i
+ = 0; i < 16; i++) {
+
+551
+tmp_nd_key
+.
+\9dv6
+[
+i
+] =
+nh\9dv6
+[i];
+
+554
+»t_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+tmp_nd_key
+);
+
+555 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+556 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+) {
+
+557
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+559
+\9dv6addr
+[0], *
+phy_pÜt
+);
+
+561 ià(
+æag
+ != 0) {
+
+562 ià(
+ARPICMP_DEBUG
+ > 4)
+
+563
+´\9atf
+
+
+565 *
+phy_pÜt
+);
+
+566
+ `»que¡_nd
+(&
+nh\9dv6
+[0],
+ `ifm_g\91_pÜt
+(*
+phy_pÜt
+));
+
+570
+lib_nd_no_¬p_\92\8cy_found
+++;
+
+573
+ `\91h\94_addr_cÝy
+(&
+»t_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+574
+lib_nd_nd_\92\8cy_found
+++;
+
+576
+ }
+}
+
+582 \19
+ slib_¬p_¬p_\8fbË_\92\8cy
+ {
+
+583 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+ mh\97d
+;
+
+584
+u\9at64_t
+
+ mmaÿddr
+;
+
+587 \18cڡ \ 5*
+ $¬p_Ý_Çme
+(
+u\9at16_t
+
+¬p_Ý
+)
+
+589 \1a
+ `CHECK_ENDIAN_16
+(
+¬p_Ý
+)) {
+
+590 \ 4(
+ARP_OP_REQUEST
+):
+
+592 \ 4(
+ARP_OP_REPLY
+):
+
+594 \ 4(
+ARP_OP_REVREQUEST
+):
+
+596 \ 4(
+ARP_OP_REVREPLY
+):
+
+598 \ 4(
+ARP_OP_INVREQUEST
+):
+
+600 \ 4(
+ARP_OP_INVREPLY
+):
+
+606
+ }
+}
+
+608 \18\1e
+ $´\9at_icmp_·ck\91
+(\19
+icmp_hdr
+ *
+icmp_h
+)
+
+610
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " ICMP:\81ype=%d (%s) code=%d id=%d seqnum=%d\n",
+
+611
+icmp_h
+->
+icmp_ty³
+,
+
+612 (
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REPLY
+ ? "Reply" :
+
+613 (
+icmp_h
+->
+icmp_ty³
+ ==
+
+614
+IP_ICMP_ECHO_REQUEST
+ ? "Reqest" : "Undef")),
+
+615
+icmp_h
+->
+icmp_code
+,
+ `CHECK_ENDIAN_16
+(icmp_h->
+icmp_id\92t
+),
+
+616
+ `CHECK_ENDIAN_16
+(
+icmp_h
+->
+icmp_£q_nb
+));
+
+617
+ }
+}
+
+619 \18\1e
+ $´\9at_\9dv4_h
+(\19
+\9dv4_hdr
+ *
+\9d_h
+)
+
+621 \19
+icmp_hdr
+ *
+icmp_h
+ =
+
+622 (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+623
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " IPv4: Version=%d HLEN=%d Type=%d Length=%d\n",
+
+624 (
+\9d_h
+->
+v\94siÚ_ihl
+ & 0xf0) >> 4, (ip_h->version_ihl & 0x0f),
+
+625
+\9d_h
+->
+ty³_of_£rviû
+,
+ `¹e_ýu_to_be_16
+(\9d_h->
+tÙ®_Ëngth
+));
+
+626 ià(
+\9d_h
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+) {
+
+627
+ `´\9at_icmp_·ck\91
+(
+icmp_h
+);
+
+629
+ }
+}
+
+631 \18\1e
+ $´\9at_¬p_·ck\91
+(\19
+¬p_hdr
+ *
+¬p_h
+)
+
+633
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " ARP: hrd=%d\85roto=0x%04x hln=%d "
+
+635
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+),
+
+636
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+),\87½_h->
+¬p_hÊ
+,
+
+637
+¬p_h
+->
+¬p_¶n
+,
+ `CHECK_ENDIAN_16
+_h->
+¬p_Ý
+),
+
+638
+ `¬p_Ý_Çme
+(
+¬p_h
+->
+¬p_Ý
+));
+
+640 ià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+) {
+
+641
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+643 (
+¬p_h
+->
+¬p_hrd
+));
+
+644 } \vià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+) {
+
+645
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+647 (
+¬p_h
+->
+¬p_´o
+));
+
+648 } \vià(
+¬p_h
+->
+¬p_hÊ
+ != 6) {
+
+649
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+651
+¬p_h
+->
+¬p_hÊ
+);
+
+652 } \vià(
+¬p_h
+->
+¬p_¶n
+ != 4) {
+
+653
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+655
+¬p_h
+->
+¬p_¶n
+);
+
+657
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+659
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[0],
+
+660
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[1],
+
+661
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[2],
+
+662
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[3],
+
+663
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[4],
+
+664
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[5]);
+
+665
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " sip=%d.%d.%d.%d\n",
+
+666 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 24) & 0xFF,
+
+667 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 16) & 0xFF,
+
+668 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 8) & 0xFF,
+
+669
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) & 0xFF);
+
+670
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+672
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[0],
+
+673
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[1],
+
+674
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[2],
+
+675
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[3],
+
+676
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[4],
+
+677
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[5]);
+
+678
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\81ip=%d.%d.%d.%d\n",
+
+679 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 24) & 0xFF,
+
+680 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 16) & 0xFF,
+
+681 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 8) & 0xFF,
+
+682
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) & 0xFF);
+
+684
+ }
+}
+
+686 \18\1e
+ $´\9at_\91h
+(\19
+\91h\94_hdr
+ *
+\91h_h
+)
+
+688
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " ETH: src=%02X:%02X:%02X:%02X:%02X:%02X",
+
+689
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[0],
+
+690
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[1],
+
+691
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[2],
+
+692
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[3],
+
+693
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[4],\83th_h->s_addr.addr_bytes[5]);
+
+694
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " dst=%02X:%02X:%02X:%02X:%02X:%02X\n",
+
+695
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[0],
+
+696
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[1],
+
+697
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[2],
+
+698
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[3],
+
+699
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[4],\83th_h->d_addr.addr_bytes[5]);
+
+701
+ }
+}
+
+704
+ $´\9at_mbuf
+(cڡ \ 5*
+rx_tx
+,
+u\9at8_t
+
+pÜtid
+, \19
+¹e_mbuf
+ *
+mbuf
+,
+
+705 \1d
+l\9ae
+)
+
+707 \19
+\91h\94_hdr
+ *
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+mbuf
+, \19ether_hdr *);
+
+708 \19
+¬p_hdr
+ *
+¬p_h
+ =
+
+709 (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+710 \19
+\9dv4_hdr
+ *
+\9dv4_h
+ =
+
+711 (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+713
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%s(%d): on\85ort %d\85kt-len=%u\82b-segs=%u\n",
+
+714
+rx_tx
+,
+l\9ae
+,
+pÜtid
+,
+mbuf
+->
+pkt_Ën
+, mbuf->
+nb_£gs
+);
+
+715
+ `´\9at_\91h
+(
+\91h_h
+);
+
+716 \1a
+ `¹e_ýu_to_be_16
+(
+\91h_h
+->
+\91h\94_ty³
+)) {
+
+717 \ 4
+ETHER_TYPE_IPv4
+:
+
+718
+ `´\9at_\9dv4_h
+(
+\9dv4_h
+);
+
+720 \ 4
+ETHER_TYPE_ARP
+:
+
+721
+ `´\9at_¬p_·ck\91
+(
+¬p_h
+);
+
+724
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, " unknown\85acket\81ype\n");
+
+727
+ `fæush
+(
+¡dout
+);
+
+728
+ }
+}
+
+730 \19
+¬p_\92\8cy_d©a
+ *
+ $»\8c\9bve_¬p_\92\8cy
+(\19
+¬p_key_\9dv4
+
+¬p_key
+)
+
+732 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+733
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+734
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+735
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+737 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+738 (\1e**)&
+»t_¬p_d©a
+);
+
+739 ià(
+»t
+ < 0) {
+
+743 ià(
+»t_¬p_d©a
+->
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+744 \19
+¬p_tim\94_key
+
+ÿÎback_key
+;
+
+745
+ÿÎback_key
+.
+pÜt_id
+ =
+»t_¬p_d©a
+->
+pÜt
+;
+
+746
+ÿÎback_key
+.
+\9d
+ =
+»t_¬p_d©a
+->ip;
+
+748 ià(
+ `¹e_tim\94_»£t
+(
+»t_¬p_d©a
+->
+tim\94
+,
+
+749 (
+¬p_timeout
+ *
+ `¹e_g\91_tsc_hz
+()),
+
+750
+SINGLE
+,
+tim\94_lcÜe
+,
+
+751
+¬p_tim\94_ÿÎback
+,
+
+752 &
+ÿÎback_key
+) < 0)
+
+753 ià(
+ARPICMP_DEBUG
+)
+
+754
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+758 \15
+»t_¬p_d©a
+;
+
+761 \15
+NULL
+;
+
+762
+ }
+}
+
+764 \19
+nd_\92\8cy_d©a
+ *
+ $»\8c\9bve_nd_\92\8cy
+(\19
+nd_key_\9dv6
+
+nd_key
+)
+
+766 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+767
+nd_key
+.
+f\9eËr1
+ = 0;
+
+768
+nd_key
+.
+f\9eËr2
+ = 0;
+
+769
+nd_key
+.
+f\9eËr3
+ = 0;
+
+770 \12
+i
+ = 0;
+
+773 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+
+774 (\1e**)&
+»t_nd_d©a
+);
+
+775 ià(
+»t
+ < 0) {
+
+779 ià(
+»t_nd_d©a
+->
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+780 \19
+nd_tim\94_key
+
+ÿÎback_key
+;
+
+781
+ÿÎback_key
+.
+pÜt_id
+ =
+»t_nd_d©a
+->
+pÜt
+;
+
+783 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+784
+ÿÎback_key
+.
+\9dv6
+[
+i
+] =
+»t_nd_d©a
+->ipv6[i];
+
+788 ià(
+¹e_tim\94_»£t
+
+
+789 (
+»t_nd_d©a
+->
+tim\94
+,
+
+790 (
+¬p_timeout
+ *
+ `¹e_g\91_tsc_hz
+()),
+SINGLE
+,
+
+791
+tim\94_lcÜe
+,
+nd_tim\94_ÿÎback
+, &
+ÿÎback_key
+) < 0)
+
+792 ià(
+ARPICMP_DEBUG
+)
+
+793
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+796 \15
+»t_nd_d©a
+;
+
+799 \15
+NULL
+;
+
+800
+ }
+}
+
+802 \1e
+ $´\9at_¬p_\8fbË
+(\1e)
+
+804 cڡ \1e*
+Ãxt_key
+;
+
+805 \1e*
+Ãxt_d©a
+;
+
+806
+u\9at32_t
+
+\99\94
+ = 0;
+
+808
+´\9atf
+
+
+810
+´\9atf
+
+
+812
+ `´\9atf
+("\tport hw\87ddr status ip\87ddr\n");
+
+813
+´\9atf
+
+
+816 \1f
+ `¹e_hash_\99\94©e
+(
+¬p_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+)
+
+819 \19
+¬p_\92\8cy_d©a
+ *
+tmp_¬p_d©a
+ =
+
+820 (\19
+¬p_\92\8cy_d©a
+ *)
+Ãxt_d©a
+;
+
+821 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+822
+ `memýy
+(&
+tmp_¬p_key
+,
+Ãxt_key
+, \17(\19
+¬p_key_\9dv4
+));
+
+823
+´\9atf
+
+
+825
+tmp_¬p_d©a
+->
+pÜt
+,\81mp_¬p_d©a->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+826
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+827
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+828
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+829
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+830
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+831
+tmp_¬p_d©a
+->
+¡©us
+ ==
+
+832
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE",
+
+833 (
+tmp_¬p_d©a
+->
+\9d
+ >> 24),
+
+834 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x00ff0000) >> 16),
+
+835 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x0000ff00) >> 8),
+
+836 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x000000ff)));
+
+839
+u\9at32_t
+
+i
+ = 0;
+
+840
+ `´\9atf
+("\nARP\84out\9ag\81abË ha %d\83Ár\9bs\n",
+¬p_rou\8b_tbl_\9adex
+);
+
+841
+ `´\9atf
+("\nIP_Address Mask Port NH_IP_Address\n");
+
+842 \ f
+i
+ = 0; i <
+¬p_rou\8b_tbl_\9adex
+; i++) {
+
+843
+ `´\9atf
+("0x%x 0x%x %d 0x%x\n",
+
+844
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+\9d
+,
+
+845
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+,
+
+846
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+pÜt
+,\86ib_¬p_rou\8b_\8fbË[i].
+nh
+);
+
+849
+´\9atf
+
+
+851
+lib_¬p_g\91_mac_»q
+,
+lib_¬p_nh_found
+,
+lib_¬p_no_nh_found
+,
+
+852
+lib_¬p_¬p_\92\8cy_found
+,
+lib_¬p_no_¬p_\92\8cy_found
+,
+
+853
+lib_¬p_pÝuÏ\8b_ÿÎed
+,
+lib_¬p_d\96\91e_ÿÎed
+,
+
+854
+lib_¬p_du¶iÿ\8b_found
+);
+
+856
+ `´\9atf
+("ARP\81abË key\86\92 i %lu\n", \17(\19
+¬p_key_\9dv4
+));
+
+857
+ }
+}
+
+860 \1e
+ $´\9at_nd_\8fbË
+(\1e)
+
+862 cڡ \1e*
+Ãxt_key
+;
+
+863 \1e*
+Ãxt_d©a
+;
+
+864
+u\9at32_t
+
+\99\94
+ = 0;
+
+865
+u\9at8_t
+
+ii
+ = 0,
+j
+ = 0,
+k
+ = 0;
+
+866
+´\9atf
+
+
+868
+ `´\9atf
+("\tport hw\87ddr status ip\87ddr\n");
+
+870
+´\9atf
+
+
+872 \1f
+ `¹e_hash_\99\94©e
+(
+nd_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >=
+
+875 \19
+nd_\92\8cy_d©a
+ *
+tmp_nd_d©a
+ =
+
+876 (\19
+nd_\92\8cy_d©a
+ *)
+Ãxt_d©a
+;
+
+877 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+878
+ `memýy
+(&
+tmp_nd_key
+,
+Ãxt_key
+, \17(\19
+nd_key_\9dv6
+));
+
+879
+ `´\9atf
+("\t%4d %02X:%02X:%02X:%02X:%02X:%02X %10s\n",
+
+880
+tmp_nd_d©a
+->
+pÜt
+,
+
+881
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+882
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+883
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+884
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+885
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+886
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+887
+tmp_nd_d©a
+->
+¡©us
+ ==
+
+888
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE");
+
+889
+ `´\9atf
+("\t\t\t\t\t\t");
+
+890 \ f
+ii
+ = 0; i\98<
+ND_IPV6_ADDR_SIZE
+; ii += 2) {
+
+891
+ `´\9atf
+("%02X%02X ",
+tmp_nd_d©a
+->
+\9dv6
+[
+ii
+],
+
+892
+tmp_nd_d©a
+->
+\9dv6
+[
+ii
+ + 1]);
+
+894
+ `´\9atf
+("\n");
+
+897
+u\9at32_t
+
+i
+ = 0;
+
+898
+ `´\9atf
+("\n\nND IPV6\84outing\81able has %d\83ntries\n",
+
+899
+nd_rou\8b_tbl_\9adex
+);
+
+900
+´\9atf
+
+
+902 \ f
+i
+ = 0; i <
+nd_rou\8b_tbl_\9adex
+; i++) {
+
+903
+ `´\9atf
+("\n");
+
+905 \ f
+j
+ = 0; j <
+ND_IPV6_ADDR_SIZE
+; j += 2) {
+
+906
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+
+907
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+j
+],
+
+908
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+j
+ + 1]);
+
+911
+´\9atf
+
+
+913
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+d\95th
+,\86ib_nd_rou\8b_\8fbË[i].
+pÜt
+);
+
+914
+ `´\9atf
+("\t\t\t\t\t\t\t\t\t");
+
+915 \ f
+k
+ = 0; k <
+ND_IPV6_ADDR_SIZE
+; k += 2) {
+
+916
+ `´\9atf
+("%02X%02X ",
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+nh\9dv6
+[
+k
+],
+
+917
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+k
+ + 1]);
+
+920
+´\9atf
+
+
+922
+lib_nd_g\91_mac_»q
+,
+lib_nd_nh_found
+,
+lib_nd_no_nh_found
+,
+
+923
+lib_nd_nd_\92\8cy_found
+,
+lib_nd_no_¬p_\92\8cy_found
+,
+
+924
+lib_nd_pÝuÏ\8b_ÿÎed
+,
+lib_nd_d\96\91e_ÿÎed
+,
+
+925
+lib_nd_du¶iÿ\8b_found
+);
+
+926
+ `´\9atf
+("ND\81abË key\86\92 i %lu\n\n", \17(\19
+nd_key_\9dv6
+));
+
+927
+ }
+}
+
+929 \1e
+ $»move_¬p_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+, \1e*
+¬g
+)
+
+932 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+933
+¬p_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+934
+¬p_key
+.
+\9d
+ =
+\9daddr
+;
+
+935
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+936
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+937
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+939
+lib_¬p_d\96\91e_ÿÎed
+++;
+
+941 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+943 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+944 (\1e**)&
+»t_¬p_d©a
+);
+
+945 ià(
+»t
+ < 0) {
+
+949 ià(
+»t_¬p_d©a
+->
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+950 ià(
+»t_¬p_d©a
+->
+»\8cy_couÁ
+ == 3) {
+
+951
+ `¹e_tim\94_¡Ý
+(
+»t_¬p_d©a
+->
+tim\94
+);
+
+952
+ `¹e_ä\93
+(
+»t_¬p_d©a
+->
+tim\94_key
+);
+
+953 ià(
+ARPICMP_DEBUG
+) {
+
+954
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+956 (
+¬p_key
+.
+\9d
+ >> 24),
+
+957 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >>
+
+959 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >>
+
+961 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+
+962
+¬p_key
+.
+pÜt_id
+);
+
+964
+ `¹e_hash_d\96_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+967
+»t_¬p_d©a
+->
+»\8cy_couÁ
+++;
+
+968 ià(
+ARPICMP_DEBUG
+)
+
+969
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+971
+»t_¬p_d©a
+->
+»\8cy_couÁ
+);
+
+973 ià(
+ARPICMP_DEBUG
+)
+
+974
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+976
+ARP_TIMER_EXPIRY
+);
+
+977 ià(
+ifm_chk_pÜt_\9dv4_\92abËd
+
+
+978 (
+»t_¬p_d©a
+->
+pÜt
+)) {
+
+979
+ `»que¡_¬p
+(
+»t_¬p_d©a
+->
+pÜt
+,
+
+980
+»t_¬p_d©a
+->
+\9d
+);
+
+982 ià(
+ARPICMP_DEBUG
+)
+
+983
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+985
+__FUNCTION__
+,
+
+986
+»t_¬p_d©a
+->
+pÜt
+);
+
+988 ià(
+ `¹e_tim\94_»£t
+(
+»t_¬p_d©a
+->
+tim\94
+,
+
+989 (
+¬p_timeout
+ *
+
+990
+ `¹e_g\91_tsc_hz
+()),
+SINGLE
+,
+
+991
+tim\94_lcÜe
+,
+
+992
+¬p_tim\94_ÿÎback
+,
+
+993
+¬g
+) < 0)
+
+994 ià(
+ARPICMP_DEBUG
+)
+
+995
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1000
+ `¹e_hash_d\96_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+1003
+ }
+}
+
+1006 \1e
+ $»move_nd_\92\8cy_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[], u\9at8_\88
+pÜtid
+)
+
+1008 \12
+i
+ = 0;
+
+1009 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+1010 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+1011
+nd_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1013 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1014
+nd_key
+.
+\9dv6
+[
+i
+] =
+\9dv6addr
+[i];
+
+1017
+nd_key
+.
+f\9eËr1
+ = 0;
+
+1018
+nd_key
+.
+f\9eËr2
+ = 0;
+
+1019
+nd_key
+.
+f\9eËr3
+ = 0;
+
+1021
+lib_nd_d\96\91e_ÿÎed
+++;
+
+1023 ià(
+NDIPV6_DEBUG
+) {
+
+1024
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1026
+nd_key
+.
+pÜt_id
+);
+
+1027 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1028
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+nd_key
+.
+\9dv6
+[
+i
+],
+
+1029
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+1032 \19
+nd_tim\94_key
+
+ÿÎback_key
+;
+
+1033
+ÿÎback_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1035 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1036
+ÿÎback_key
+.
+\9dv6
+[
+i
+] =
+\9dv6addr
+[i];
+
+1039 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+ÿÎback_key
+,
+
+1040 (\1e**)&
+»t_nd_d©a
+);
+
+1041 ià(
+»t
+ < 0) {
+
+1044 ià(
+»t_nd_d©a
+->
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+1045
+ `¹e_tim\94_¡Ý
+(
+»t_nd_d©a
+->
+tim\94
+);
+
+1046
+ `¹e_ä\93
+(
+»t_nd_d©a
+->
+tim\94
+);
+
+1049
+ `¹e_hash_d\96_key
+(
+nd_hash_hªdË
+, &
+nd_key
+);
+
+1050
+ }
+}
+
+1053
+ $pÝuÏ\8b_¬p_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+
+\9daddr
+,
+
+1054
+u\9at8_t
+
+pÜtid
+, u\9at8_\88
+mode
+)
+
+1056 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+1057
+¬p_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1058
+¬p_key
+.
+\9d
+ =
+\9daddr
+;
+
+1059
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+1060
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+1061
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+1063
+lib_¬p_pÝuÏ\8b_ÿÎed
+++;
+
+1065 ià(
+ARPICMP_DEBUG
+)
+
+1066
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "populate_arp_entry ip %x,\85ort %d\n",
+
+1067
+¬p_key
+.
+\9d
+,\87½_key.
+pÜt_id
+);
+
+1069 \19
+¬p_\92\8cy_d©a
+ *
+Ãw_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+¬p_key
+);
+
+1070 ià(
+Ãw_¬p_d©a
+ && (Òew_¬p_d©a->
+mode
+ =ð
+STATIC_ARP
+
+
+1071 &&
+mode
+ =ð
+DYNAMIC_ARP
+è|| (
+Ãw_¬p_d©a
+->mode == DYNAMIC_ARP
+
+1072 &&
+mode
+ =ð
+STATIC_ARP
+))) {
+
+1073 ià(
+ARPICMP_DEBUG
+)
+
+1074
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,"populate_arp_entry: ARP\83ntry\87lready\83xists(%d %d)\n",
+
+1075
+Ãw_¬p_d©a
+->
+mode
+, mode);
+
+1080 ià(
+mode
+ =ð
+DYNAMIC_ARP
+) {
+
+1081 ià(
+Ãw_¬p_d©a
+
+
+1082 &&
+ `is_§me_\91h\94_addr
+(&
+Ãw_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+)) {
+
+1083 ià(
+ARPICMP_DEBUG
+) {
+
+1084
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1086 (
+¬p_key
+.
+\9d
+ >> 24),
+
+1087 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >> 16),
+
+1088 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1089 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+
+1090
+¬p_key
+.
+pÜt_id
+);
+
+1092
+lib_¬p_du¶iÿ\8b_found
+++;
+
+1093
+Ãw_¬p_d©a
+->
+»\8cy_couÁ
+ = 0;
+
+1094 ià(
+ `¹e_tim\94_»£t
+(
+Ãw_¬p_d©a
+->
+tim\94
+,
+
+1095 (
+¬p_timeout
+ *
+ `¹e_g\91_tsc_hz
+()),
+
+1096
+SINGLE
+,
+tim\94_lcÜe
+,
+
+1097
+¬p_tim\94_ÿÎback
+,
+
+1098
+Ãw_¬p_d©a
+->
+tim\94_key
+) < 0)
+
+1099 ià(
+ARPICMP_DEBUG
+)
+
+1100
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1105
+u\9at32_t
+
+size
+ =
+
+1106
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+¬p_\92\8cy_d©a
+));
+
+1107
+Ãw_¬p_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1108
+Ãw_¬p_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1109
+Ãw_¬p_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+1110
+Ãw_¬p_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1111
+Ãw_¬p_d©a
+->
+\9d
+ =
+\9daddr
+;
+
+1112
+Ãw_¬p_d©a
+->
+mode
+ = mode;
+
+1113 ià(
+¹e_mempoÞ_g\91
+
+
+1114 (
+tim\94_mempoÞ_¬p
+, (\1e**)&(
+Ãw_¬p_d©a
+->
+tim\94
+)) < 0) {
+
+1115
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1120
+ `¹e_hash_add_key_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+Ãw_¬p_d©a
+);
+
+1121 ià(
+ARPICMP_DEBUG
+) {
+
+1122
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1124 (
+¬p_key
+.
+\9d
+ >> 24),
+
+1125 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >> 16),
+
+1126 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1127 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),\87½_key.
+pÜt_id
+);
+
+1130
+ `»sÞve_l2_adj
+(
+\9daddr
+,
+pÜtid
+,
+hw_addr
+);
+
+1132
+ `¹e_tim\94_\9a\99
+(
+Ãw_¬p_d©a
+->
+tim\94
+);
+
+1133 \19
+¬p_tim\94_key
+ *
+ÿÎback_key
+ =
+
+1134 (\19
+¬p_tim\94_key
+ *)
+ `¹e_m®loc
+(
+NULL
+,
+
+1136
+¬p_tim\94_key
+ *),
+
+1137
+RTE_CACHE_LINE_SIZE
+);
+
+1138
+ÿÎback_key
+->
+pÜt_id
+ =
+pÜtid
+;
+
+1139
+ÿÎback_key
+->
+\9d
+ =
+\9daddr
+;
+
+1141 ià(
+ARPICMP_DEBUG
+)
+
+1142
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "TIMER STARTED FOR %u seconds\n",
+
+1143
+ARP_TIMER_EXPIRY
+);
+
+1144 ià(
+¹e_tim\94_»£t
+
+
+1145 (
+Ãw_¬p_d©a
+->
+tim\94
+, (
+¬p_timeout
+ *
+ `¹e_g\91_tsc_hz
+()),
+
+1146
+SINGLE
+,
+tim\94_lcÜe
+,
+¬p_tim\94_ÿÎback
+,
+ÿÎback_key
+) < 0)
+
+1147 ià(
+ARPICMP_DEBUG
+)
+
+1148
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1151
+Ãw_¬p_d©a
+->
+tim\94_key
+ =
+ÿÎback_key
+;
+
+1153 ià(
+Ãw_¬p_d©a
+
+
+1154 &&
+ `is_§me_\91h\94_addr
+(&
+Ãw_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+)) {
+
+1155 ià(
+ARPICMP_DEBUG
+) {
+
+1156
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1158 (
+¬p_key
+.
+\9d
+ >> 24),
+
+1159 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >> 16),
+
+1160 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1161 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+
+1162
+¬p_key
+.
+pÜt_id
+);
+
+1164
+lib_¬p_du¶iÿ\8b_found
+++;
+
+1166
+u\9at32_t
+
+size
+ =
+
+1167
+ `RTE_CACHE_LINE_ROUNDUP
+(\17
+
+1168 (\19
+¬p_\92\8cy_d©a
+));
+
+1169
+Ãw_¬p_d©a
+ =
+
+1170
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1171
+Ãw_¬p_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1172
+Ãw_¬p_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+1173
+Ãw_¬p_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1174
+Ãw_¬p_d©a
+->
+\9d
+ =
+\9daddr
+;
+
+1175
+Ãw_¬p_d©a
+->
+mode
+ = mode;
+
+1177
+ `¹e_hash_add_key_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+1178
+Ãw_¬p_d©a
+);
+
+1179 ià(
+ARPICMP_DEBUG
+) {
+
+1180
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1182 (
+¬p_key
+.
+\9d
+ >> 24),
+
+1183 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >> 16),
+
+1184 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1185 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+
+1186
+¬p_key
+.
+pÜt_id
+);
+
+1189
+ `»sÞve_l2_adj
+(
+\9daddr
+,
+pÜtid
+,
+hw_addr
+);
+
+1192 ià(
+ARPICMP_DEBUG
+) {
+
+1194
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1196
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1197
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1198
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1199
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1200
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1201
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+1202 (
+¬p_key
+.
+\9d
+ >> 24), ((arp_key.ip & 0x00ff0000) >> 16),
+
+1203 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1204 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+pÜtid
+);
+
+1205
+ `puts
+("");
+
+1207
+ }
+}
+
+1216 \1e
+ $pÝuÏ\8b_nd_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+\9dv6
+[],
+
+1217
+u\9at8_t
+
+pÜtid
+, u\9at8_\88
+mode
+)
+
+1222
+u\9at8_t
+
+i
+;
+
+1223 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+1224
+nd_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1226 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+1227
+nd_key
+.
+\9dv6
+[
+i
+] = ipv6[i];
+
+1230
+nd_key
+.
+f\9eËr1
+ = 0;
+
+1231
+nd_key
+.
+f\9eËr2
+ = 0;
+
+1232
+nd_key
+.
+f\9eËr3
+ = 0;
+
+1234
+lib_nd_pÝuÏ\8b_ÿÎed
+++;
+
+1237 \19
+nd_\92\8cy_d©a
+ *
+Ãw_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+nd_key
+);
+
+1239 ià(
+mode
+ =ð
+DYNAMIC_ND
+) {
+
+1240 ià(
+Ãw_nd_d©a
+
+
+1241 &&
+ `is_§me_\91h\94_addr
+(&
+Ãw_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+)) {
+
+1243 ià(
+NDIPV6_DEBUG
+) {
+
+1244
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1246
+nd_key
+.
+pÜt_id
+);
+
+1247 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1249
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+
+1250
+nd_key
+.
+\9dv6
+[
+i
+],
+
+1251
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+1255
+lib_nd_du¶iÿ\8b_found
+++;
+
+1256
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "nd_entry\83xists\n");
+
+1259
+u\9at32_t
+
+size
+ =
+
+1260
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+nd_\92\8cy_d©a
+));
+
+1261
+Ãw_nd_d©a
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1264
+Ãw_nd_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1265
+Ãw_nd_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+1266
+Ãw_nd_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1267
+Ãw_nd_d©a
+->
+mode
+ = mode;
+
+1268 ià(
+¹e_mempoÞ_g\91
+
+
+1269 (
+tim\94_mempoÞ_¬p
+, (\1e**)&(
+Ãw_nd_d©a
+->
+tim\94
+)) < 0) {
+
+1270
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1275 ià(
+NDIPV6_DEBUG
+)
+
+1276
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "populate_nd_entry ipv6=");
+
+1278 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1279
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1282 ià(
+NDIPV6_DEBUG
+) {
+
+1283 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1285
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+
+1286
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+],
+
+1287
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+ + 1]);
+
+1292
+ `¹e_hash_add_key_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+Ãw_nd_d©a
+);
+
+1296
+ `¹e_tim\94_\9a\99
+(
+Ãw_nd_d©a
+->
+tim\94
+);
+
+1297 \19
+nd_tim\94_key
+ *
+ÿÎback_key
+ =
+
+1298 (\19
+nd_tim\94_key
+ *)
+ `¹e_m®loc
+(
+NULL
+,
+
+1299 \17(\19
+nd_tim\94_key
+
+
+1301
+RTE_CACHE_LINE_SIZE
+);
+
+1302
+ÿÎback_key
+->
+pÜt_id
+ =
+pÜtid
+;
+
+1304 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1305
+ÿÎback_key
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1307 ià(
+¹e_tim\94_»£t
+
+
+1308 (
+Ãw_nd_d©a
+->
+tim\94
+, (
+¬p_timeout
+ *
+ `¹e_g\91_tsc_hz
+()),
+
+1309
+SINGLE
+,
+tim\94_lcÜe
+,
+nd_tim\94_ÿÎback
+,
+ÿÎback_key
+) < 0)
+
+1310
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Err : Timer\87lready\84unning\n");
+
+1312 ià(
+Ãw_nd_d©a
+
+
+1313 &&
+ `is_§me_\91h\94_addr
+(&
+Ãw_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+)) {
+
+1314 ià(
+NDIPV6_DEBUG
+) {
+
+1315
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1317
+nd_key
+.
+pÜt_id
+);
+
+1318 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1320
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+
+1321
+nd_key
+.
+\9dv6
+[
+i
+],
+
+1322
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+1326
+lib_nd_du¶iÿ\8b_found
+++;
+
+1328
+u\9at32_t
+
+size
+ =
+
+1329
+ `RTE_CACHE_LINE_ROUNDUP
+(\17
+
+1330 (\19
+nd_\92\8cy_d©a
+));
+
+1331
+Ãw_nd_d©a
+ =
+
+1332
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1335
+Ãw_nd_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1336
+Ãw_nd_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+1337
+Ãw_nd_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1338
+Ãw_nd_d©a
+->
+mode
+ = mode;
+
+1339 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+1340
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1344
+ `¹e_hash_add_key_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+
+1345
+Ãw_nd_d©a
+);
+
+1349 ià(
+NDIPV6_DEBUG
+)
+
+1350
+´\9atf
+
+
+1355
+´\9atf
+
+
+1357
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1358
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1359
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1360
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1361
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1362
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+pÜtid
+);
+
+1363
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\tipv6=");
+
+1364 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1365
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1366
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02X%02X ",
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+],
+
+1367
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+ + 1]);
+
+1370
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\n");
+
+1372
+ `puts
+("");
+
+1374
+ }
+}
+
+1376 \1e
+ $´\9at_pkt1
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+1378
+u\9at8_t
+ *
+rd
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 0);
+
+1379 \12
+i
+ = 0,
+j
+ = 0;
+
+1380
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\nPacket Contents...\n");
+
+1381 \ f
+i
+ = 0; i < 20; i++) {
+
+1382 \ f
+j
+ = 0; j < 20; j++)
+
+1383
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%02x ",
+rd
+[(20 *
+i
+è+
+j
+]);
+
+1384
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\n");
+
+1386
+ }
+}
+
+1388 \19
+\91h\94_addr
+
+ gbrßdÿ¡_\91h\94_addr
+ = {
+
+1389 .
+addr_by\8bs
+[0] = 0xFF,
+
+1390 .
+ gaddr_by\8bs
+[1] = 0xFF,
+
+1391 .
+ gaddr_by\8bs
+[2] = 0xFF,
+
+1392 .
+ gaddr_by\8bs
+[3] = 0xFF,
+
+1393 .
+ gaddr_by\8bs
+[4] = 0xFF,
+
+1394 .
+ gaddr_by\8bs
+[5] = 0xFF,
+
+1397 \18cڡ \19
+\91h\94_addr
+
+ gnuÎ_\91h\94_addr
+ = {
+
+1398 .
+addr_by\8bs
+[0] = 0x00,
+
+1399 .
+ gaddr_by\8bs
+[1] = 0x00,
+
+1400 .
+ gaddr_by\8bs
+[2] = 0x00,
+
+1401 .
+ gaddr_by\8bs
+[3] = 0x00,
+
+1402 .
+ gaddr_by\8bs
+[4] = 0x00,
+
+1403 .
+ gaddr_by\8bs
+[5] = 0x00,
+
+1406 \ 1
+ #MAX_NUM_MAC_ADDRESS
+ 16
+
+ )
+
+1407 \19
+\91h\94_addr
+
+ gl\9ak_hw_addr
+[
+MAX_NUM_MAC_ADDRESS
+] = {
+
+1408 {.
+addr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc8} },
+
+1409 {.
+ gaddr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1410 {.
+ gaddr_by\8bs
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1411 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1412 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1413 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1414 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1415 {.
+ gaddr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1416 {.
+ gaddr_by\8bs
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1417 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1418 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1419 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1420 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1421 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1422 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1423 {.
+ gaddr_by\8bs
+ = {0x18, 0x19, 0x1a, 0x1b, 0xcd, 0xef} }
+
+1426 \19
+\91h\94_addr
+ *
+ $g\91_l\9ak_hw_addr
+(
+u\9at8_t
+
+out_pÜt
+)
+
+1428 \15 &
+l\9ak_hw_addr
+[
+out_pÜt
+];
+
+1429
+ }
+}
+
+1431 \1e
+ $»que¡_¬p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+)
+
+1434 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1435 \19
+¬p_hdr
+ *
+¬p_h
+;
+
+1437
+l2_phy_\9a\8brçû_t
+ *
+l\9ak
+;
+
+1438
+l\9ak
+ =
+ `ifm_g\91_pÜt
+(
+pÜt_id
+);
+
+1439 \19
+¹e_mbuf
+ *
+¬p_pkt
+ =
+lib_¬p_pkt
+;
+
+1441 ià(
+¬p_pkt
+ =ð
+NULL
+) {
+
+1442 ià(
+ARPICMP_DEBUG
+)
+
+1443
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1448
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+¬p_pkt
+, \19
+\91h\94_hdr
+ *);
+
+1450
+ `\91h\94_addr_cÝy
+(&
+brßdÿ¡_\91h\94_addr
+, &
+\91h_h
+->
+d_addr
+);
+
+1451
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1452 &
+l\9ak
+->
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+1453
+\91h_h
+->
+\91h\94_ty³
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+1455
+¬p_h
+ = (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1456
+¬p_h
+->
+¬p_hrd
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_HRD_ETHER
+);
+
+1457
+¬p_h
+->
+¬p_´o
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv4
+);
+
+1458
+¬p_h
+->
+¬p_hÊ
+ =
+ETHER_ADDR_LEN
+;
+
+1459
+¬p_h
+->
+¬p_¶n
+ = \17(
+u\9at32_t
+);
+
+1460
+¬p_h
+->
+¬p_Ý
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+1462
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1463 &
+l\9ak
+->
+maÿddr
+[0], &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1464 ià(
+l\9ak
+ &&\86\9ak->
+\9dv4_li¡
+) {
+
+1465
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+ =
+
+1466 (((
+\9dv4li¡_t
+ *è(
+l\9ak
+->
+\9dv4_li¡
+))->
+\9daddr
+);
+
+1468
+ `\91h\94_addr_cÝy
+(&
+nuÎ_\91h\94_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1469
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ =
+ `¹e_ýu_to_be_32
+(
+\9d
+);
+
+1470 ià(
+ARPICMP_DEBUG
+)
+
+1471
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "arp\81ip:%x\87rp sip :%x\n",
+
+1472
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+,\87½_h->¬p_d©a.
+¬p_s\9d
+);
+
+1474
+¬p_pkt
+->
+pkt_Ën
+ = 42;
+
+1475
+¬p_pkt
+->
+d©a_Ën
+ = 42;
+
+1477 ià(
+ARPICMP_DEBUG
+) {
+
+1478
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Sending\87rp\84equest\n");
+
+1479
+ `´\9at_mbuf
+("TX",
+pÜt_id
+,
+¬p_pkt
+,
+__LINE__
+);
+
+1481 ià(
+l\9ak
+)
+
+1482
+l\9ak
+->
+ `\8cªsm\99_s\9agË_pkt
+֚k,
+¬p_pkt
+);
+
+1483
+ }
+}
+
+1485 \19
+¹e_mbuf
+ *
+ $»que¡_echo
+(
+u\9at32_t
+
+pÜt_id
+, u\9at32_\88
+\9d
+)
+
+1487 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1488 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1489 \19
+icmp_hdr
+ *
+icmp_h
+;
+
+1490
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ =
+ `ifm_g\91_pÜt
+(
+pÜt_id
+);
+
+1492 \19
+¹e_mbuf
+ *
+icmp_pkt
+ =
+lib_¬p_pkt
+;
+
+1493 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1494 ià(
+ARPICMP_DEBUG
+)
+
+1495
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1497 \15
+NULL
+;
+
+1500
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmp_pkt
+, \19
+\91h\94_hdr
+ *);
+
+1502
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1503
+icmp_h
+ = (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1505
+\9d_h
+->
+v\94siÚ_ihl
+ =
+IP_VHL_DEF
+;
+
+1506
+\9d_h
+->
+ty³_of_£rviû
+ = 0;
+
+1507
+\9d_h
+->
+tÙ®_Ëngth
+ =
+
+1508
+ `¹e_ýu_to_be_16
+(\17(\19
+\9dv4_hdr
+è+ \17(\19
+icmp_hdr
+));
+
+1509
+\9d_h
+->
+·ck\91_id
+ = 0xaabb;
+
+1510
+\9d_h
+->
+äagm\92t_off£t
+ = 0x0000;
+
+1511
+\9d_h
+->
+time_to_live
+ = 64;
+
+1512
+\9d_h
+->
+Ãxt_´Ùo_id
+ =
+IPPROTO_ICMP
+;
+
+1513 ià(
+pÜt
+ &&\85Üt->
+\9dv4_li¡
+)
+
+1514
+\9d_h
+->
+¤c_addr
+ =
+
+1515
+ `¹e_ýu_to_be_32
+(((
+\9dv4li¡_t
+ *è
+pÜt
+->
+\9dv4_li¡
+)->
+\9daddr
+);
+
+1516
+\9d_h
+->
+d¡_addr
+ =
+ `¹e_ýu_to_be_32
+(
+\9d
+);
+
+1518
+\9d_h
+->
+hdr_checksum
+ = 0;
+
+1519
+\9d_h
+->
+hdr_checksum
+ =
+ `¹e_\9dv4_cksum
+(ip_h);
+
+1521
+icmp_h
+->
+icmp_ty³
+ =
+IP_ICMP_ECHO_REQUEST
+;
+
+1522
+icmp_h
+->
+icmp_code
+ = 0;
+
+1523
+icmp_h
+->
+icmp_id\92t
+ = 0xdead;
+
+1524
+icmp_h
+->
+icmp_£q_nb
+ = 0xbeef;
+
+1526
+icmp_h
+->
+icmp_cksum
+ = ~
+ `¹e_¿w_cksum
+(icmp_h, \17(\19
+icmp_hdr
+));
+
+1528
+icmp_pkt
+->
+pkt_Ën
+ =
+
+1529 \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv4_hdr
+) +
+
+1530 \17(\19
+icmp_hdr
+);
+
+1531
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1533
+ `´\9at_mbuf
+("TX", 0,
+icmp_pkt
+,
+__LINE__
+);
+
+1535 \15
+icmp_pkt
+;
+
+1536
+ }
+}
+
+1543 \19
+¹e_mbuf
+ *
+ $£nd_icmp_de¡_uÄ\97chabË_msg
+(
+u\9at32_t
+
+¤c_\9d
+,
+
+1544
+u\9at32_t
+
+de¡_\9d
+)
+
+1546 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1547 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1548 \19
+icmp_hdr
+ *
+icmp_h
+;
+
+1549 \19
+¹e_mbuf
+ *
+icmp_pkt
+ =
+lib_¬p_pkt
+;
+
+1551 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1552 ià(
+ARPICMP_DEBUG
+)
+
+1553
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1555 \15
+NULL
+;
+
+1558
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmp_pkt
+, \19
+\91h\94_hdr
+ *);
+
+1559
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1560
+icmp_h
+ = (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1562
+\9d_h
+->
+v\94siÚ_ihl
+ =
+IP_VHL_DEF
+;
+
+1563
+\9d_h
+->
+ty³_of_£rviû
+ = 0;
+
+1564
+\9d_h
+->
+tÙ®_Ëngth
+ =
+
+1565
+ `¹e_ýu_to_be_16
+(\17(\19
+\9dv4_hdr
+è+ \17(\19
+icmp_hdr
+));
+
+1566
+\9d_h
+->
+·ck\91_id
+ = 0xaabb;
+
+1567
+\9d_h
+->
+äagm\92t_off£t
+ = 0x0000;
+
+1568
+\9d_h
+->
+time_to_live
+ = 64;
+
+1569
+\9d_h
+->
+Ãxt_´Ùo_id
+ = 1;
+
+1571
+\9d_h
+->
+d¡_addr
+ =
+ `¹e_bsw32
+(
+de¡_\9d
+);
+
+1572
+\9d_h
+->
+¤c_addr
+ =
+ `¹e_bsw32
+(
+¤c_\9d
+);
+
+1574
+\9d_h
+->
+hdr_checksum
+ = 0;
+
+1575
+\9d_h
+->
+hdr_checksum
+ =
+ `¹e_\9dv4_cksum
+(ip_h);
+
+1577
+icmp_h
+->
+icmp_ty³
+ = 3;
+
+1578
+icmp_h
+->
+icmp_code
+ = 13;
+
+1580
+icmp_h
+->
+icmp_cksum
+ = ~
+ `¹e_¿w_cksum
+(icmp_h, \17(\19
+icmp_hdr
+));
+
+1582
+icmp_pkt
+->
+pkt_Ën
+ = \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv4_hdr
+) +
+
+1583 \17(\19
+icmp_hdr
+);
+
+1584
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1586 \15
+icmp_pkt
+;
+
+1587
+ }
+}
+
+1590
+ $´oûss_¬picmp_pkt_·r£
+(\19
+¹e_mbuf
+ **
+pkt
+,
+u\9at16_t
+
+pkt_num
+,
+
+1591
+u\9at64_t
+
+pkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+1593
+ `RTE_SET_USED
+(
+pkt_num
+);
+
+1594 ià(
+ARPICMP_DEBUG
+)
+
+1595
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1597 ià(
+pkt_mask
+) {
+
+1598 ià(
+ARPICMP_DEBUG
+)
+
+1599
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1603
+u\9at64_t
+
+pkts_fÜ_´oûss
+ =
+pkt_mask
+;
+
+1604 \ f;
+pkts_fÜ_´oûss
+;) {
+
+1606
+u\9at8_t
+
+pos
+ = (u\9at8_tè
+ `__bu\9et\9a_ùzÎ
+(
+pkts_fÜ_´oûss
+);
+
+1607
+u\9at64_t
+
+pkts_mask
+ = 1LLU <<
+pos
+;
+
+1608
+pkts_fÜ_´oûss
+ &ð~
+pkts_mask
+;
+
+1609
+ `´oûss_¬picmp_pkt
+(
+pkt
+[
+pos
+],
+pÜt
+);
+
+1612
+ }
+}
+
+1614 \1e
+ $´oûss_¬picmp_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+1616
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+->
+pÜt
+;
+
+1617 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1618 \19
+¬p_hdr
+ *
+¬p_h
+;
+
+1619 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1620 \19
+icmp_hdr
+ *
+icmp_h
+;
+
+1622
+u\9at32_t
+
+cksum
+;
+
+1623
+u\9at32_t
+
+\9d_addr
+;
+
+1625
+u\9at32_t
+
+»q_t\9d
+;
+
+1627
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+1629 ià(
+\91h_h
+->
+\91h\94_ty³
+ =ð
+ `¹e_ýu_to_be_16
+(
+ETHER_TYPE_ARP
+)) {
+
+1630 ià(
+ARPICMP_DEBUG
+)
+
+1631
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "%s,\85ortid %u. Line %d\n\r",
+
+1632
+__FUNCTION__
+,
+pÜt
+->
+pmdid
+,
+__LINE__
+);
+
+1633
+¬p_h
+ =
+
+1634 (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ +
+
+1635 \17(\19
+\91h\94_hdr
+));
+
+1636 ià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+)
+
+1637
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1639 \vià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+)
+
+1640
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1642 \vià(
+¬p_h
+->
+¬p_hÊ
+ != 6)
+
+1643
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1645 \vià(
+¬p_h
+->
+¬p_¶n
+ != 4)
+
+1646
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1649 ià(
+pÜt
+->
+\9dv4_li¡
+ =ð
+NULL
+) {
+
+1650
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1655 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ !=
+
+1656 ((
+\9dv4li¡_t
+ *è(
+pÜt
+->
+\9dv4_li¡
+))->
+\9daddr
+) {
+
+1657 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ =ð¬p_h->¬p_d©a.
+¬p_s\9d
+) {
+
+1658
+ `pÝuÏ\8b_¬p_\92\8cy
+(
+
+1659 (\19
+\91h\94_addr
+ *)&
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1660
+ `¹e_ýu_to_be_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+),
+
+1661
+\9a_pÜt_id
+,
+
+1662
+DYNAMIC_ARP
+);
+
+1665
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,"ARP\84equested IP\87ddress mismatches interface IP - discarding\n");
+
+1670 \vià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1671
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REQUEST
+)) {
+
+1672 ià(
+ARPICMP_DEBUG
+) {
+
+1673
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1675
+__FUNCTION__
+,
+pÜt
+->
+pmdid
+,
+
+1676
+__LINE__
+);
+
+1678
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1680
+¬p_h
+->
+¬p_Ý
+,
+
+1681
+¹e_ýu_to_be_16
+
+
+1682 (
+ARP_OP_REQUEST
+));
+
+1683
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+pkt
+,
+
+1684
+__LINE__
+);
+
+1687
+ `pÝuÏ\8b_¬p_\92\8cy
+((\19
+\91h\94_addr
+ *)
+
+1688 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1689
+¹e_ýu_to_be_32
+
+
+1690 (
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+),
+
+1691
+\9a_pÜt_id
+,
+DYNAMIC_ARP
+);
+
+1694
+»q_t\9d
+ =
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+;
+
+1695
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+, &\91h_h->
+d_addr
+);
+
+1696
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+1697
+¬p_h
+->
+¬p_Ý
+ =
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+);
+
+1698
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+1699 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1700
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ =
+
+1701
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+;
+
+1702
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+ =
+»q_t\9d
+;
+
+1703
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+d_addr
+,
+
+1704 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1706 ià(
+ARPICMP_DEBUG
+)
+
+1707
+ `´\9at_mbuf
+("TX ARP REPLY PKT",
+
+1708
+pÜt
+->
+pmdid
+,
+pkt
+,
+__LINE__
+);
+
+1709
+pÜt
+->
+ `\8cªsm\99_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+1710 ià(
+ARPICMP_DEBUG
+)
+
+1711
+ `´\9at_mbuf
+("TX",
+pÜt
+->
+pmdid
+,
+pkt
+,
+
+1712
+__LINE__
+);
+
+1715 } \vià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1716
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+)) {
+
+1717 ià(
+ARPICMP_DEBUG
+) {
+
+1718
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1720
+ `´\9at_mbuf
+("RX",
+pÜt
+->
+pmdid
+,
+pkt
+,
+
+1721
+__LINE__
+);
+
+1723
+ `pÝuÏ\8b_¬p_\92\8cy
+((\19
+\91h\94_addr
+ *)
+
+1724 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1725
+ `¹e_bsw32
+(
+¬p_h
+->
+
+1726
+¬p_d©a
+.
+¬p_s\9d
+),
+
+1727
+\9a_pÜt_id
+,
+DYNAMIC_ARP
+);
+
+1731 ià(
+ARPICMP_DEBUG
+)
+
+1732
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1734
+¬p_h
+->
+¬p_Ý
+);
+
+1738
+ `¹e_pktmbuf_ä\93
+(
+pkt
+);
+
+1740
+\9d_h
+ =
+
+1741 (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ +
+
+1742 \17(\19
+\91h\94_hdr
+));
+
+1743
+icmp_h
+ =
+
+1744 (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1746 ià(
+\91h_h
+->
+\91h\94_ty³
+ =ð
+ `¹e_ýu_to_be_16
+(
+ETHER_TYPE_IPv4
+)) {
+
+1748 ià(
+\9d_h
+->
+Ãxt_´Ùo_id
+ !ð
+IPPROTO_ICMP
+) {
+
+1749 ià(
+ARPICMP_DEBUG
+) {
+
+1750
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1753 } \vià((
+\9d_h
+->
+v\94siÚ_ihl
+ & 0xf0è!ð
+IP_VERSION_4
+) {
+
+1754 ià(
+ARPICMP_DEBUG
+) {
+
+1755
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1758 } \vià((
+\9d_h
+->
+v\94siÚ_ihl
+ & 0x0fè!ð
+IP_HDRLEN
+) {
+
+1759 ià(
+ARPICMP_DEBUG
+) {
+
+1760
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1764 ià(
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REQUEST
+
+
+1765 &&
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1766 ià(
+ARPICMP_DEBUG
+)
+
+1767
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+
+1768
+pkt
+,
+__LINE__
+);
+
+1770
+\9d_addr
+ =
+\9d_h
+->
+¤c_addr
+;
+
+1771
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+1772 &
+\91h_h
+->
+d_addr
+);
+
+1773
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1774 &
+pÜt
+->
+maÿddr
+[0],
+
+1775 &
+\91h_h
+->
+s_addr
+);
+
+1776 ià(
+ARPICMP_DEBUG
+)
+
+1777
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1779
+__FUNCTION__
+,
+
+1780
+pÜt
+->
+pmdid
+,
+__LINE__
+);
+
+1782 ià(
+is_muÉiÿ¡_\9dv4_addr
+
+
+1783 (
+\9d_h
+->
+d¡_addr
+)) {
+
+1784
+u\9at32_t
+
+\9d_¤c
+;
+
+1786
+\9d_¤c
+ =
+
+1787
+ `¹e_be_to_ýu_32
+(
+\9d_addr
+);
+
+1788 ià((
+\9d_¤c
+ & 0x00000003) == 1)
+
+1789
+\9d_¤c
+ =
+
+1790 (
+\9d_¤c
+ &
+
+1794
+\9d_¤c
+ =
+
+1795 (
+\9d_¤c
+ &
+
+1798
+\9d_h
+->
+¤c_addr
+ =
+
+1799
+ `¹e_ýu_to_be_32
+(
+\9d_¤c
+);
+
+1800
+\9d_h
+->
+d¡_addr
+ =
+\9d_addr
+;
+
+1802
+\9d_h
+->
+hdr_checksum
+ = 0;
+
+1803
+\9d_h
+->
+hdr_checksum
+ =
+
+1804 ~
+ `¹e_¿w_cksum
+(
+\9d_h
+,
+
+1806
+\9dv4_hdr
+));
+
+1808 ià(
+ARPICMP_DEBUG
+)
+
+1809
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1811
+__FUNCTION__
+,
+
+1812
+pÜt
+->
+pmdid
+,
+
+1813
+__LINE__
+);
+
+1814
+\9d_h
+->
+¤c_addr
+ = ip_h->
+d¡_addr
+;
+
+1815
+\9d_h
+->
+d¡_addr
+ =
+\9d_addr
+;
+
+1818
+icmp_h
+->
+icmp_ty³
+ =
+IP_ICMP_ECHO_REPLY
+;
+
+1819
+cksum
+ = ~
+icmp_h
+->
+icmp_cksum
+ & 0xffff;
+
+1820
+cksum
+ +=
+
+1821 ~
+ `htÚs
+(
+IP_ICMP_ECHO_REQUEST
+ << 8) &
+
+1823
+cksum
+ +ð
+ `htÚs
+(
+IP_ICMP_ECHO_REPLY
+ << 8);
+
+1824
+cksum
+ =
+
+1825 (
+cksum
+ & 0xffff) + (cksum >> 16);
+
+1826
+cksum
+ =
+
+1827 (
+cksum
+ & 0xffff) + (cksum >> 16);
+
+1828
+icmp_h
+->
+icmp_cksum
+ = ~
+cksum
+;
+
+1830 ià(
+ARPICMP_DEBUG
+)
+
+1831
+´\9at_mbuf
+
+
+1833
+\9a_pÜt_id
+,
+pkt
+,
+__LINE__
+);
+
+1834
+pÜt
+->
+ `\8cªsm\99_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+1835 ià(
+ARPICMP_DEBUG
+)
+
+1836
+ `´\9at_mbuf
+("TX",
+pÜt
+->
+pmdid
+,
+
+1837
+pkt
+,
+__LINE__
+);
+
+1840 } \vià(
+icmp_h
+->
+icmp_ty³
+ ==
+
+1841
+IP_ICMP_ECHO_REPLY
+
+
+1842 &&
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1843 ià(
+ARPICMP_DEBUG
+)
+
+1844
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+
+1845
+pkt
+,
+__LINE__
+);
+
+1847 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+1848
+¬p_key
+.
+pÜt_id
+ =
+\9a_pÜt_id
+;
+
+1849
+¬p_key
+.
+\9d
+ =
+
+1850
+ `¹e_bsw32
+(
+\9d_h
+->
+¤c_addr
+);
+
+1851
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+1852
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+1853
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+1855 \19
+¬p_\92\8cy_d©a
+ *
+¬p_\92\8cy
+ =
+
+1856
+ `»\8c\9bve_¬p_\92\8cy
+(
+¬p_key
+);
+
+1857 ià(
+¬p_\92\8cy
+ =ð
+NULL
+) {
+
+1858 ià(
+ARPICMP_DEBUG
+)
+
+1859
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+1861
+¬p_key
+.
+\9d
+,
+
+1862
+¬p_key
+.
+pÜt_id
+);
+
+1865
+¬p_\92\8cy
+->
+¡©us
+ =
+COMPLETE
+;
+
+1870
+ `¹e_pktmbuf_ä\93
+(
+pkt
+);
+
+1872
+ }
+}
+
+1885 \18\12
+ $my_\9a\91_±Ú_\9dv6
+(\12
+af
+, cڡ \ 5*
+¤c
+, \1e*
+d¡
+)
+
+1887 \1a
+af
+) {
+
+1888 \ 4
+AF_INET
+:
+
+1889 \15
+ `\9a\91_±Ú_\9dv4
+(
+¤c
+,
+d¡
+);
+
+1890 \ 4
+AF_INET6
+:
+
+1891 \15
+ `\9a\91_±Ú_\9dv6
+(
+¤c
+,
+d¡
+);
+
+1893
+\94ºo
+ =
+EAFNOSUPPORT
+;
+
+1897
+ }
+}
+
+1909 \18\12
+ $\9a\91_±Ú_\9dv4
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+)
+
+1911 \18cڡ \ 5
+dig\99s
+[] = "0123456789";
+
+1912 \12
+§w_dig\99
+,
+où\91s
+,
+ch
+;
+
+1913 \1d\ 5
+tmp
+[
+INADDRSZ
+], *
+\8d
+;
+
+1915
+§w_dig\99
+ = 0;
+
+1916
+où\91s
+ = 0;
+
+1917 *(
+\8d
+ =
+tmp
+) = 0;
+
+1918 \1f(
+ch
+ = *
+¤c
+++) != '\0') {
+
+1919 cڡ \ 5*
+pch
+;
+
+1921
+pch
+ =
+ `¡rchr
+(
+dig\99s
+,
+ch
+);
+
+1922 ià(
+pch
+ !ð
+NULL
+) {
+
+1923 \1d\12
+Ãw
+ = *
+\8d
+ * 10 + (
+pch
+ -
+dig\99s
+);
+
+1925 ià(
+Ãw
+ > 255)
+
+1927 ià(!
+§w_dig\99
+) {
+
+1928 ià(++
+où\91s
+ > 4)
+
+1930
+§w_dig\99
+ = 1;
+
+1932 *
+\8d
+ = (\1d\ 5)
+Ãw
+;
+
+1933 } \vià(
+ch
+ =ð'.' &&
+§w_dig\99
+) {
+
+1934 ià(
+où\91s
+ == 4)
+
+1936 *++
+\8d
+ = 0;
+
+1937
+§w_dig\99
+ = 0;
+
+1941 ià(
+où\91s
+ < 4)
+
+1944
+ `memýy
+(
+d¡
+,
+tmp
+,
+INADDRSZ
+);
+
+1946
+ }
+}
+
+1961 \18\12
+ $\9a\91_±Ú_\9dv6
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+)
+
+1963 \18cڡ \ 5
+xdig\99s_l
+[] = "0123456789abcdef",
+
+1964
+xdig\99s_u
+[] = "0123456789ABCDEF";
+
+1965 \1d\ 5
+tmp
+[
+IN6ADDRSZ
+], *
+\8d
+ = 0, *
+\92dp
+ = 0, *
+cÞÚp
+ = 0;
+
+1966 cڡ \ 5*
+xdig\99s
+ = 0, *
+cu¹ok
+ = 0;
+
+1967 \12
+ch
+ = 0,
+§w_xdig\99
+ = 0,
+couÁ_xdig\99
+ = 0;
+
+1968 \1d\12
+v®
+ = 0;
+
+1969 \1d\12
+dbloù_couÁ
+ = 0;
+
+1971
+ `mem£t
+((
+\8d
+ =
+tmp
+), '\0',
+IN6ADDRSZ
+);
+
+1972
+\92dp
+ =
+\8d
+ +
+IN6ADDRSZ
+;
+
+1973
+cÞÚp
+ =
+NULL
+;
+
+1975 ià(*
+¤c
+ == ':')
+
+1976 ià(*++
+¤c
+ != ':')
+
+1978
+cu¹ok
+ =
+¤c
+;
+
+1979
+§w_xdig\99
+ =
+couÁ_xdig\99
+ = 0;
+
+1980
+v®
+ = 0;
+
+1982 \1f(
+ch
+ = *
+¤c
+++) != '\0') {
+
+1983 cڡ \ 5*
+pch
+;
+
+1985
+pch
+ =
+ `¡rchr
+((
+xdig\99s
+ =
+xdig\99s_l
+),
+ch
+);
+
+1986 ià(
+pch
+ =ð
+NULL
+)
+
+1987
+pch
+ =
+ `¡rchr
+((
+xdig\99s
+ =
+xdig\99s_u
+),
+ch
+);
+
+1988 ià(
+pch
+ !ð
+NULL
+) {
+
+1989 ià(
+couÁ_xdig\99
+ >= 4)
+
+1991
+v®
+ <<= 4;
+
+1992
+v®
+ |ð(
+pch
+ -
+xdig\99s
+);
+
+1993 ià(
+v®
+ > 0xffff)
+
+1995
+§w_xdig\99
+ = 1;
+
+1996
+couÁ_xdig\99
+++;
+
+1999 ià(
+ch
+ == ':') {
+
+2000
+cu¹ok
+ =
+¤c
+;
+
+2001 ià(!
+§w_xdig\99
+) {
+
+2002 ià(
+cÞÚp
+)
+
+2004
+cÞÚp
+ =
+\8d
+;
+
+2006 } \vià(*
+¤c
+ == '\0') {
+
+2009 ià(
+\8d
+ + \17(
+\9at16_t
+è>
+\92dp
+)
+
+2011 *
+\8d
+++ = (\1d\ 5)((
+v®
+ >> 8) & 0xff);
+
+2012 *
+\8d
+++ = (\1d\ 5)(
+v®
+ & 0xff);
+
+2013
+§w_xdig\99
+ = 0;
+
+2014
+couÁ_xdig\99
+ = 0;
+
+2015
+v®
+ = 0;
+
+2016
+dbloù_couÁ
+++;
+
+2019 ià(
+ch
+ =ð'.' && ((
+\8d
+ +
+INADDRSZ
+è<ð
+\92dp
+) &&
+
+2020
+ `\9a\91_±Ú_\9dv4
+(
+cu¹ok
+,
+\8d
+) > 0) {
+
+2021
+\8d
+ +ð
+INADDRSZ
+;
+
+2022
+§w_xdig\99
+ = 0;
+
+2023
+dbloù_couÁ
+ += 2;
+
+2028 ià(
+§w_xdig\99
+) {
+
+2029 ià(
+\8d
+ + \17(
+\9at16_t
+è>
+\92dp
+)
+
+2031 *
+\8d
+++ = (\1d\ 5)((
+v®
+ >> 8) & 0xff);
+
+2032 *
+\8d
+++ = (\1d\ 5)(
+v®
+ & 0xff);
+
+2033
+dbloù_couÁ
+++;
+
+2035 ià(
+cÞÚp
+ !ð
+NULL
+) {
+
+2037 ià(
+dbloù_couÁ
+ == 8)
+
+2044 cڡ \12
+n
+ =
+\8d
+ -
+cÞÚp
+;
+
+2045 \12
+i
+;
+
+2047 \ f
+i
+ = 1; i <ð
+n
+; i++) {
+
+2048
+\92dp
+[-
+i
+] =
+cÞÚp
+[
+n
+ - i];
+
+2049
+cÞÚp
+[
+n
+ -
+i
+] = 0;
+
+2051
+\8d
+ =
+\92dp
+;
+
+2053 ià(
+\8d
+ !ð
+\92dp
+)
+
+2055
+ `memýy
+(
+d¡
+,
+tmp
+,
+IN6ADDRSZ
+);
+
+2057
+ }
+}
+
+2059 \18\12
+ $¬p_·r£_¬gs
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+)
+
+2061
+u\9at32_t
+
+¬p_rou\8b_tbl_´e£Á
+ = 0;
+
+2062
+u\9at32_t
+
+nd_rou\8b_tbl_´e£Á
+ = 0;
+
+2063
+u\9at32_t
+
+pÜts_mac_li¡_´e£Á
+ = 0;
+
+2064
+u\9at32_t
+
+numArg
+;
+
+2065
+u\9at32_t
+
+n_vnf_th»ads_´e£Á
+ = 0;
+
+2067
+u\9at32_t
+
+pktq_\9a_´v_´e£Á
+ = 0;
+
+2068
+u\9at32_t
+
+´v_to_pub_m_´e£Á
+ = 0;
+
+2070
+u\9at8_t
+
+n_´v_\9a_pÜt
+ = 0;
+
+2071 \12
+i
+;
+
+2072 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+2073
+\9a_pÜt_d\9c_a
+[
+i
+] = 0;
+
+2074
+´v_to_pub_m
+[
+i
+] = 0xff;
+
+2075
+pub_to_´v_m
+[
+i
+] = 0xff;
+
+2078
+ `RTE_SET_USED
+(
+pÜts_mac_li¡_´e£Á
+);
+
+2079
+ `RTE_SET_USED
+(
+nd_rou\8b_tbl_´e£Á
+);
+
+2080
+ `RTE_SET_USED
+(
+¬p_rou\8b_tbl_´e£Á
+);
+
+2081 \ f
+numArg
+ = 0;\82umArg <
+·¿ms
+->
+n_¬gs
+;\82umArg++) {
+
+2082 \ 5*
+¬g_Çme
+ =
+·¿ms
+->
+¬gs_Çme
+[
+numArg
+];
+
+2083 \ 5*
+¬g_v®ue
+ =
+·¿ms
+->
+¬gs_v®ue
+[
+numArg
+];
+
+2086 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "arp_timer_expiry") == 0) {
+
+2087
+¬p_timeout
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+2091 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "pktq_in_prv") == 0) {
+
+2092 ià(
+pktq_\9a_´v_´e£Á
+) {
+
+2093
+´\9atf
+
+
+2097
+pktq_\9a_´v_´e£Á
+ = 1;
+
+2099 \12
+rxpÜt
+ = 0,
+j
+ = 0;
+
+2100 \ 5
+phy_pÜt_num
+[5];
+
+2101 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+2102 \1f
+tok\92
+) {
+
+2103
+j
+ = 0;
+
+2104 \1f(
+j
+ < 4è&& (
+tok\92
+[j] != '.')) {
+
+2105
+phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+2106
+j
+++;
+
+2108
+phy_pÜt_num
+[
+j
+] = '\0';
+
+2109
+rxpÜt
+ =
+ `©oi
+(
+phy_pÜt_num
+);
+
+2110
+´v_\9a_pÜt_a
+[
+n_´v_\9a_pÜt
+++] =
+rxpÜt
+;
+
+2111 ià(
+rxpÜt
+ < 0)
+
+2112
+rxpÜt
+ = 0;
+
+2113
+´\9atf
+
+
+2115
+tok\92
+,
+phy_pÜt_num
+,
+rxpÜt
+);
+
+2116
+´v_\9a_pÜt_a
+[
+n_´v_\9a_pÜt
+++] =
+rxpÜt
+;
+
+2117 if(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+2118
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] = 1;
+
+2119
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "RXQ");
+
+2122 ià(
+n_´v_\9a_pÜt
+ == 0) {
+
+2123
+´\9atf
+
+
+2131 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+2132 ià(
+´v_to_pub_m_´e£Á
+) {
+
+2133
+´\9atf
+
+
+2137
+´v_to_pub_m_´e£Á
+ = 1;
+
+2139 \12
+rxpÜt
+ = 0,
+txpÜt
+ = 0,
+j
+ = 0,
+k
+ = 0;
+
+2140 \ 5
+rx_phy_pÜt_num
+[5];
+
+2141 \ 5
+tx_phy_pÜt_num
+[5];
+
+2142 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2143 \1f
+tok\92
+) {
+
+2144
+j
+ = 0;
+
+2145 \1f(
+j
+ < 4è&& (
+tok\92
+[j] != ',')) {
+
+2146
+rx_phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+2147
+j
+++;
+
+2149
+rx_phy_pÜt_num
+[
+j
+] = '\0';
+
+2150
+rxpÜt
+ =
+ `©oi
+(
+rx_phy_pÜt_num
+);
+
+2151 ià(
+rxpÜt
+ < 0)
+
+2152
+rxpÜt
+ = 0;
+
+2154
+j
+++;
+
+2155
+k
+ = 0;
+
+2156 \1f(
+k
+ < 4è&& (
+tok\92
+[
+j
+ + k] != ')')) {
+
+2157
+tx_phy_pÜt_num
+[
+k
+] =
+tok\92
+[
+j
+ + k];
+
+2158
+k
+++;
+
+2160
+tx_phy_pÜt_num
+[
+k
+] = '\0';
+
+2161
+txpÜt
+ =
+ `©oi
+(
+tx_phy_pÜt_num
+);
+
+2162 ià(
+txpÜt
+ < 0)
+
+2163
+txpÜt
+ = 0;
+
+2165
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "token: %s,"
+
+2168
+tok\92
+,
+rx_phy_pÜt_num
+,
+rxpÜt
+,
+
+2169
+tx_phy_pÜt_num
+,
+txpÜt
+);
+
+2171 ià((
+rxpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+2172 (
+txpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+2173 (
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] != 1)) {
+
+2174
+´\9atf
+
+
+2176
+rxpÜt
+,
+txpÜt
+,
+
+2177
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+]);
+
+2181
+´v_to_pub_m
+[
+rxpÜt
+] =
+txpÜt
+;
+
+2182
+pub_to_´v_m
+[
+txpÜt
+] =
+rxpÜt
+;
+
+2183
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2189 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "n_vnf_threads") == 0) {
+
+2190 ià(
+n_vnf_th»ads_´e£Á
+)
+
+2192
+n_vnf_th»ads_´e£Á
+ = 1;
+
+2193
+ `\8cim
+(
+¬g_v®ue
+);
+
+2194
+num_vnf_th»ads
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+2195 ià(
+num_vnf_th»ads
+ <= 0) {
+
+2196
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2200
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "n_vnf_threads: 0x%x\n",
+
+2201
+num_vnf_th»ads
+);
+
+2205 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "lib_arp_debug") == 0) {
+
+2206
+ARPICMP_DEBUG
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+2212 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "ports_mac_list") == 0) {
+
+2213
+pÜts_mac_li¡_´e£Á
+ = 1;
+
+2215
+u\9at32_t
+
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+MAC_NUM_BYTES
+ = 6;
+
+2217 \ 5
+by\8bS\8c
+[
+MAC_NUM_BYTES
+][3];
+
+2218
+u\9at32_t
+
+by\8b
+[
+MAC_NUM_BYTES
+];
+
+2220 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, " ");
+
+2221 \1f
+tok\92
+) {
+
+2222
+k
+ = 0;
+
+2223 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++) {
+
+2224 \ f
+j
+ = 0; j < 2; j++) {
+
+2225
+by\8bS\8c
+[
+i
+][
+j
+] =
+tok\92
+[
+k
+++];
+
+2227
+by\8bS\8c
+[
+i
+][
+j
+] = '\0';
+
+2228
+k
+++;
+
+2231 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++) {
+
+2232
+by\8b
+[
+i
+] =
+ `¡¹oul
+(
+by\8bS\8c
+[i],
+NULL
+, 16);
+
+2235 ià(
+ARPICMP_DEBUG
+) {
+
+2236
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "token: %s",
+
+2237
+tok\92
+);
+
+2238 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++)
+
+2239
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2240 ", by\8b[%u] %u",
+i
+,
+
+2241
+by\8b
+[
+i
+]);
+
+2242
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "\n");
+
+2245 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++)
+
+2246
+l\9ak_hw_addr
+
+
+2247 [
+l\9ak_hw_addr_¬¿y_idx
+].
+addr_by\8bs
+
+
+2248 [
+i
+] =
+by\8b
+[i];
+
+2250
+l\9ak_hw_addr_¬¿y_idx
+++;
+
+2251
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, " ");
+
+2258 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "arp_route_tbl") == 0) {
+
+2259
+¬p_rou\8b_tbl_´e£Á
+ = 1;
+
+2261
+u\9at32_t
+
+de¡_\9d
+ = 0,
+mask
+ = 0,
+tx_pÜt
+ = 0,
+nh_\9d
+ =
+
+2262 0,
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+l
+ = 0;
+
+2263
+u\9at32_t
+
+¬p_rou\8b_tbl_¡r_max_Ën
+ = 10;
+
+2264 \ 5
+de¡_\9d_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2265 \ 5
+mask_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2266 \ 5
+tx_pÜt_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2267 \ 5
+nh_\9d_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2268 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2269 \1f
+tok\92
+) {
+
+2270
+i
+ = 0;
+
+2271 \1f(
+i
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2272 && (
+tok\92
+[
+i
+] != ',')) {
+
+2273
+de¡_\9d_¡r
+[
+i
+] =
+tok\92
+[i];
+
+2274
+i
+++;
+
+2276
+de¡_\9d_¡r
+[
+i
+] = '\0';
+
+2277
+de¡_\9d
+ =
+ `¡¹oul
+(
+de¡_\9d_¡r
+,
+NULL
+, 16);
+
+2279
+i
+++;
+
+2280
+j
+ = 0;
+
+2281 \1f(
+j
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2282 && (
+tok\92
+[
+i
+ +
+j
+] != ',')) {
+
+2283
+mask_¡r
+[
+j
+] =
+tok\92
+[
+i
+ + j];
+
+2284
+j
+++;
+
+2286
+mask_¡r
+[
+j
+] = '\0';
+
+2287
+mask
+ =
+ `¡¹oul
+(
+mask_¡r
+,
+NULL
+, 16);
+
+2289
+j
+++;
+
+2290
+k
+ = 0;
+
+2291 \1f(
+k
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2292 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+] != ',')) {
+
+2293
+tx_pÜt_¡r
+[
+k
+] =
+tok\92
+[
+i
+ +
+j
+ + k];
+
+2294
+k
+++;
+
+2296
+tx_pÜt_¡r
+[
+k
+] = '\0';
+
+2297
+tx_pÜt
+ =
+ `¡¹oul
+(
+tx_pÜt_¡r
+,
+NULL
+, 16);
+
+2299
+k
+++;
+
+2300
+l
+ = 0;
+
+2301 \1f(
+l
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2302 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +
+l
+] != ')')) {
+
+2303
+nh_\9d_¡r
+[
+l
+] =
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +\86];
+
+2304
+l
+++;
+
+2306
+nh_\9d_¡r
+[
+l
+] = '\0';
+
+2307
+nh_\9d
+ =
+ `¡¹oul
+(
+nh_\9d_¡r
+,
+NULL
+, 16);
+
+2310
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "token: %s, "
+
+2315
+tok\92
+,
+de¡_\9d_¡r
+,
+de¡_\9d
+,
+
+2316
+mask_¡r
+,
+mask
+,
+tx_pÜt_¡r
+,
+
+2317
+tx_pÜt
+,
+nh_\9d_¡r
+,
+nh_\9d
+);
+
+2328
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+\9d
+ =
+
+2329
+de¡_\9d
+;
+
+2330
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+mask
+ =
+
+2331
+mask
+;
+
+2332
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+pÜt
+ =
+
+2333
+tx_pÜt
+;
+
+2334
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+nh
+ =
+
+2335
+nh_\9d
+;
+
+2336
+¬p_rou\8b_tbl_\9adex
+++;
+
+2337
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2344 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "nd_route_tbl") == 0) {
+
+2345
+nd_rou\8b_tbl_´e£Á
+ = 1;
+
+2347
+u\9at8_t
+
+de¡_\9dv6
+[16],
+d\95th
+ = 0,
+tx_pÜt
+ =
+
+2348 0,
+nh_\9dv6
+[16],
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+l
+ = 0;
+
+2349
+u\9at8_t
+
+nd_rou\8b_tbl_¡r_max_Ën
+ = 128;
+
+2350 \ 5
+de¡_\9dv6_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2351 \ 5
+d\95th_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2352 \ 5
+tx_pÜt_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2353 \ 5
+nh_\9dv6_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2354 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2355 \1f
+tok\92
+) {
+
+2356
+i
+ = 0;
+
+2357 \1f(
+i
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2358 && (
+tok\92
+[
+i
+] != ',')) {
+
+2359
+de¡_\9dv6_¡r
+[
+i
+] =
+tok\92
+[i];
+
+2360
+i
+++;
+
+2362
+de¡_\9dv6_¡r
+[
+i
+] = '\0';
+
+2363
+ `my_\9a\91_±Ú_\9dv6
+(
+AF_INET6
+,
+de¡_\9dv6_¡r
+,
+
+2364 &
+de¡_\9dv6
+);
+
+2366
+i
+++;
+
+2367
+j
+ = 0;
+
+2368 \1f(
+j
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2369 && (
+tok\92
+[
+i
+ +
+j
+] != ',')) {
+
+2370
+d\95th_¡r
+[
+j
+] =
+tok\92
+[
+i
+ + j];
+
+2371
+j
+++;
+
+2373
+d\95th_¡r
+[
+j
+] = '\0';
+
+2375 \12
+s
+;
+
+2376 \ f
+s
+ = 0;
+d\95th_¡r
+[s] != '\0'; ++s)
+
+2377
+d\95th
+ = d\95th * 10 +
+d\95th_¡r
+[
+s
+] - '0';
+
+2379
+j
+++;
+
+2380
+k
+ = 0;
+
+2381 \1f(
+k
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2382 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+] != ',')) {
+
+2383
+tx_pÜt_¡r
+[
+k
+] =
+tok\92
+[
+i
+ +
+j
+ + k];
+
+2384
+k
+++;
+
+2386
+tx_pÜt_¡r
+[
+k
+] = '\0';
+
+2387
+tx_pÜt
+ =
+ `¡¹oul
+(
+tx_pÜt_¡r
+,
+NULL
+, 16);
+
+2389
+k
+++;
+
+2390
+l
+ = 0;
+
+2391 \1f(
+l
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2392 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +
+l
+] != ')')) {
+
+2393
+nh_\9dv6_¡r
+[
+l
+] =
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +\86];
+
+2394
+l
+++;
+
+2396
+nh_\9dv6_¡r
+[
+l
+] = '\0';
+
+2397
+ `my_\9a\91_±Ú_\9dv6
+(
+AF_INET6
+,
+nh_\9dv6_¡r
+,
+
+2398 &
+nh_\9dv6
+);
+
+2401 \ f
+i
+ = 0; i < 16; i++) {
+
+2402
+lib_nd_rou\8b_\8fbË
+
+
+2403 [
+nd_rou\8b_tbl_\9adex
+].
+\9dv6
+[
+i
+] =
+
+2404
+de¡_\9dv6
+[
+i
+];
+
+2405
+lib_nd_rou\8b_\8fbË
+
+
+2406 [
+nd_rou\8b_tbl_\9adex
+].
+nh\9dv6
+[
+i
+] =
+
+2407
+nh_\9dv6
+[
+i
+];
+
+2409
+lib_nd_rou\8b_\8fbË
+[
+nd_rou\8b_tbl_\9adex
+].
+d\95th
+ =
+
+2410
+d\95th
+;
+
+2411
+lib_nd_rou\8b_\8fbË
+[
+nd_rou\8b_tbl_\9adex
+].
+pÜt
+ =
+
+2412
+tx_pÜt
+;
+
+2414
+nd_rou\8b_tbl_\9adex
+++;
+
+2415
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2434
+ }
+}
+
+2436 \1e
+ $lib_¬p_\9a\99
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+2437
+__¹e_unu£d
+ \19
+p_·¿ms
+ *
+p
+)
+
+2440
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "ARP initialization ...\n");
+
+2443 ià(
+ `¬p_·r£_¬gs
+(
+·¿ms
+)) {
+
+2444
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "arp_parse_args failed ...\n");
+
+2449
+lib_¬p_pktmbuf_tx_poÞ
+ =
+
+2450
+ `¹e_pktmbuf_poÞ_ü\97\8b
+("lib_¬p_mbuf_tx_poÞ",
+NB_ARPICMP_MBUF
+, 32,
+
+2451 0,
+RTE_MBUF_DEFAULT_BUF_SIZE
+,
+
+2452
+ `¹e_sock\91_id
+());
+
+2454 ià(
+lib_¬p_pktmbuf_tx_poÞ
+ =ð
+NULL
+) {
+
+2455
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "ARP mbuf\85ool create failed.\n");
+
+2459
+lib_¬p_pkt
+ =
+ `¹e_pktmbuf_®loc
+(
+lib_¬p_pktmbuf_tx_poÞ
+);
+
+2460 ià(
+lib_¬p_pkt
+ =ð
+NULL
+) {
+
+2461
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "ARP\86ib_arp_pkt\87lloc failed.\n");
+
+2465
+¬p_hash_·¿ms
+.
+sock\91_id
+ =
+ `¹e_sock\91_id
+();
+
+2466
+¬p_hash_·¿ms
+.
+\92\8c\9bs
+ =
+MAX_NUM_ARP_ENTRIES
+;
+
+2467
+¬p_hash_·¿ms
+.
+key_Ën
+ = \17(\19
+¬p_key_\9dv4
+);
+
+2468
+¬p_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+¬p_hash_·¿ms
+);
+
+2470 ià(
+¬p_hash_hªdË
+ =ð
+NULL
+) {
+
+2471
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2473
+¬p_hash_·¿ms
+.
+sock\91_id
+);
+
+2475
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "arp_hash_handle %p\n\n",
+
+2476 (\1e*)
+¬p_hash_hªdË
+);
+
+2481
+tim\94_mempoÞ_¬p
+ =
+ `¹e_mempoÞ_ü\97\8b
+("timer_mempool_arp",
+
+2482
+tim\94_objs_mempoÞ_couÁ
+,
+
+2483 \17(\19
+¹e_tim\94
+),
+
+2485
+NULL
+, NULL,
+
+2486
+NULL
+, NULL,
+ `¹e_sock\91_id
+(), 0);
+
+2487 ià(
+tim\94_mempoÞ_¬p
+ =ð
+NULL
+) {
+
+2488
+ `¹e_·nic
+("timer_mempool create\83rror\n");
+
+2490
+ `¹e_tim\94_subsy¡em_\9a\99
+();
+
+2491
+ `li¡_add_ty³
+(
+ETHER_TYPE_ARP
+,
+´oûss_¬picmp_pkt_·r£
+);
+
+2494
+nd_hash_·¿ms
+.
+sock\91_id
+ =
+ `¹e_sock\91_id
+();
+
+2495
+nd_hash_·¿ms
+.
+\92\8c\9bs
+ =
+MAX_NUM_ND_ENTRIES
+;
+
+2496
+nd_hash_·¿ms
+.
+key_Ën
+ = \17(\19
+nd_key_\9dv6
+);
+
+2497
+nd_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+nd_hash_·¿ms
+);
+
+2498 ià(
+nd_hash_hªdË
+ =ð
+NULL
+) {
+
+2499
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2501
+nd_hash_·¿ms
+.
+sock\91_id
+);
+
+2503
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "nd_hash_handle %p\n\n",
+
+2504 (\1e*)
+nd_hash_hªdË
+);
+
+2508
+ }
+}
+
+2510 \1e
+ $¬p_tim\94_ÿÎback
+(\19
+¹e_tim\94
+ *
+tim\94
+, \1e*
+¬g
+)
+
+2512 \19
+¬p_tim\94_key
+ *
+»move_key
+ = (\19¬p_tim\94_key *)
+¬g
+;
+
+2513 ià(
+ARPICMP_DEBUG
+)
+
+2514
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "ARP TIMER callback :\83xpire :%d\n",
+
+2515 (\12)
+tim\94
+->
+exp\9ce
+);
+
+2516 ià(
+ARPICMP_DEBUG
+)
+
+2517
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2519 (
+»move_key
+->
+\9d
+ >> 24),
+
+2520 ((
+»move_key
+->
+\9d
+ & 0x00ff0000) >> 16),
+
+2521 ((
+»move_key
+->
+\9d
+ & 0x0000ff00) >> 8),
+
+2522 ((
+»move_key
+->
+\9d
+ & 0x000000ff)),\84emove_key->
+pÜt_id
+);
+
+2523
+ `»move_¬p_\92\8cy
+((
+u\9at32_t
+è
+»move_key
+->
+\9d
+,
+
+2524 (
+u\9at8_t
+è
+»move_key
+->
+pÜt_id
+,
+¬g
+);
+
+2526
+ }
+}
+
+2528 \1e
+ $nd_tim\94_ÿÎback
+(\19
+¹e_tim\94
+ *
+tim\94
+, \1e*
+¬g
+)
+
+2530 \19
+nd_tim\94_key
+ *
+»move_key
+ = (\19nd_tim\94_key *)
+¬g
+;
+
+2531 ià(
+ARPICMP_DEBUG
+)
+
+2532
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "nd\81ime callback :\83xpire :%d\n",
+
+2533 (\12)
+tim\94
+->
+exp\9ce
+);
+
+2534
+ `»move_nd_\92\8cy_\9dv6
+(
+»move_key
+->
+\9dv6
+,\84emove_key->
+pÜt_id
+);
+
+2536
+ }
+}
+
+2538 \1e
+ $ü\97\8b_¬p_\8fbË
+(\1e)
+
+2541 \12
+i
+;
+
+2542 \ f
+i
+ = 0; i <
+MAX_ARP_DATA_ENTRY_TABLE
+; i++) {
+
+2543
+ `pÝuÏ\8b_¬p_\92\8cy
+((cڡ \19
+\91h\94_addr
+ *)
+
+2544 &
+¬p_\92\8cy_d©a_\8fbË
+[
+i
+].
+\91h_addr
+,
+
+2545
+¬p_\92\8cy_d©a_\8fbË
+[
+i
+].
+\9d
+,
+
+2546 (
+u\9at8_t
+è
+¬p_\92\8cy_d©a_\8fbË
+[
+i
+].
+pÜt
+,
+
+2547
+STATIC_ARP
+);
+
+2549
+ `´\9at_¬p_\8fbË
+();
+
+2551
+ }
+}
+
+2553 \1e
+ $ü\97\8b_nd_\8fbË
+(\1e)
+
+2556 \12
+i
+;
+
+2557 \ f
+i
+ = 0; i <
+MAX_ND_DATA_ENTRY_TABLE
+; i++) {
+
+2558
+ `pÝuÏ\8b_nd_\92\8cy
+((cڡ \19
+\91h\94_addr
+ *)
+
+2559
+nd_\92\8cy_d©a_\8fbË
+[
+i
+].
+\91h_addr
+,
+
+2560
+nd_\92\8cy_d©a_\8fbË
+[
+i
+].
+\9dv6
+,
+
+2561 (
+u\9at8_t
+è
+nd_\92\8cy_d©a_\8fbË
+[
+i
+].
+pÜt
+,
+
+2562
+STATIC_ND
+);
+
+2564
+ `´\9at_nd_\8fbË
+();
+
+2566
+ }
+}
+
+2568 \1e
+ $£nd_g¿tu\99ous_¬p
+(
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+2570 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+2571 \19
+¬p_hdr
+ *
+¬p_h
+;
+
+2573 \19
+¹e_mbuf
+ *
+¬p_pkt
+ =
+lib_¬p_pkt
+;
+
+2575 ià(
+pÜt
+ =ð
+NULL
+) {
+
+2576
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "PORT ID DOWN.. %s\n",
+__FUNCTION__
+);
+
+2581 ià(
+¬p_pkt
+ =ð
+NULL
+) {
+
+2582 ià(
+ARPICMP_DEBUG
+)
+
+2583
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2588
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+¬p_pkt
+, \19
+\91h\94_hdr
+ *);
+
+2590
+ `\91h\94_addr_cÝy
+(&
+brßdÿ¡_\91h\94_addr
+, &
+\91h_h
+->
+d_addr
+);
+
+2591
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+2592 &
+pÜt
+->
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+2593
+\91h_h
+->
+\91h\94_ty³
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+2595
+¬p_h
+ = (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+2596
+¬p_h
+->
+¬p_hrd
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_HRD_ETHER
+);
+
+2597
+¬p_h
+->
+¬p_´o
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv4
+);
+
+2598
+¬p_h
+->
+¬p_hÊ
+ =
+ETHER_ADDR_LEN
+;
+
+2599
+¬p_h
+->
+¬p_¶n
+ = \17(
+u\9at32_t
+);
+
+2600
+¬p_h
+->
+¬p_Ý
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+2602
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+2603 &
+pÜt
+->
+maÿddr
+[0], &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+2604 ià(
+pÜt
+->
+\9dv4_li¡
+ =ð
+NULL
+) {
+
+2605 ià(
+ARPICMP_DEBUG
+)
+
+2606
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "port->ipv4_list is NULL.. %s\n",
+
+2607
+__FUNCTION__
+);
+
+2610
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+ = (((
+\9dv4li¡_t
+ *è(
+pÜt
+->
+\9dv4_li¡
+))->
+\9daddr
+);
+
+2611
+ `\91h\94_addr_cÝy
+(&
+nuÎ_\91h\94_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+2613
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ = 0;
+
+2617
+¬p_pkt
+->
+pkt_Ën
+ = 42;
+
+2618
+¬p_pkt
+->
+d©a_Ën
+ = 42;
+
+2620 ià(
+ARPICMP_DEBUG
+) {
+
+2621
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "SENDING GRATUITOUS ARP REQUEST\n");
+
+2622
+ `´\9at_mbuf
+("TX",
+pÜt
+->
+pmdid
+,
+¬p_pkt
+,
+__LINE__
+);
+
+2624
+pÜt
+->
+ `\8cªsm\99_s\9agË_pkt
+ÕÜt,
+¬p_pkt
+);
+
+2625
+ }
+}
+
+2627 \1e
+ $£t_¬pdebug
+(\12
+æag
+)
+
+2629 ià(
+æag
+) {
+
+2630
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Debugs\81urned on\n\r");
+
+2631
+ARPICMP_DEBUG
+ = 1;
+
+2632
+NDIPV6_DEBUG
+ = 1;
+
+2635
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Debugs\81urned off\n\r");
+
+2636
+ARPICMP_DEBUG
+ = 0;
+
+2637
+NDIPV6_DEBUG
+ = 0;
+
+2639
+ }
+}
+
+2641 \1e
+ $£t_¬±imeout
+(
+u\9at32_t
+
+timeout_v®
+)
+
+2643 ià(
+timeout_v®
+ == 0) {
+
+2644
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "Cannot be zero...\n\r");
+
+2647 ià(
+ARPICMP_DEBUG
+)
+
+2648
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+,
+
+2650
+¬p_timeout
+,
+timeout_v®
+);
+
+2651
+¬p_timeout
+ =
+timeout_v®
+;
+
+2652 ià(
+ARPICMP_DEBUG
+)
+
+2653
+ `RTE_LOG
+(
+INFO
+,
+LIBARP
+, "set_arptimeout:\87rp_timeout %u\n\r",
+
+2654
+¬p_timeout
+);
+
+2655
+ }
+}
+
+ @VIL/l2l3_stack/lib_arp.h
+
+17 #iâdeà
+__INCLUDE_LIB_ARP_H__
+
+
+18 \ 1
+ #__INCLUDE_LIB_ARP_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+21 \ 2
+ ~"¹e_\91h\94.h
+"
+
+22 \ 2
+ ~"l2_´Ùo.h
+"
+
+23 \ 2
+ ~"p.h
+"
+
+25 \ 1
+ #ND_IPV6_ADDR_SIZE
+ 16
+
+ )
+
+26 \ 1
+ #ND_IPV6_TIMER_EXPIRY
+ 300
+
+ )
+
+27 \ 1
+ #ARP_TIMER_EXPIRY
+ 1800
+
+ )
+
+28 \ 1
+ #TIMER_MILLISECOND
+ 1
+
+ )
+
+29 \ 1
+ #RTE_LOGTYPE_LIBARP
+
+RTE_LOGTYPE_USER1
+
+
+ )
+
+30 \ 1
+ #MAX_ND_RT_ENTRY
+ 16
+
+ )
+
+31 \ 1
+ #MAX_ARP_RT_ENTRY
+ 16
+
+ )
+
+37 \19
+ slib_¬p_rou\8b_\8fbË_\92\8cy
+ {
+
+38
+u\9at32_t
+
+ m\9d
+;
+
+39
+u\9at32_t
+
+ mmask
+;
+
+40
+u\9at32_t
+
+ mpÜt
+;
+
+41
+u\9at32_t
+
+ mnh
+;
+
+48 \19
+ slib_nd_rou\8b_\8fbË_\92\8cy
+ {
+
+49
+u\9at8_t
+
+ m\9dv6
+[16];
+
+50
+u\9at8_t
+
+ md\95th
+;
+
+51
+u\9at32_t
+
+ mpÜt
+;
+
+52
+u\9at8_t
+
+ mnh\9dv6
+[16];
+
+55 \r\19
+lib_nd_rou\8b_\8fbË_\92\8cy
+
+lib_nd_rou\8b_\8fbË
+[
+MAX_ND_RT_ENTRY
+];
+
+56 \r\19
+lib_¬p_rou\8b_\8fbË_\92\8cy
+
+lib_¬p_rou\8b_\8fbË
+[
+MAX_ARP_RT_ENTRY
+];
+
+59
+ mARP_FOUND
+,
+
+60
+ mARP_NOT_FOUND
+,
+
+61
+ mNH_NOT_FOUND
+,
+
+64 \f
+ e¬p_key_ty³
+ {
+
+65
+ mARP_IPV4
+,
+
+66
+ mND_IPV6
+,
+
+69 \19
+ s¬p_key_\9dv4
+ {
+
+70
+u\9at32_t
+
+ m\9d
+;
+
+71
+u\9at8_t
+
+ mpÜt_id
+;
+
+72
+u\9at8_t
+
+ mf\9eËr1
+;
+
+73
+u\9at8_t
+
+ mf\9eËr2
+;
+
+74
+u\9at8_t
+
+ mf\9eËr3
+;
+
+80 \19
+ snd_key_\9dv6
+ {
+
+81
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+82
+u\9at8_t
+
+ mpÜt_id
+;
+
+83
+u\9at8_t
+
+ mf\9eËr1
+;
+
+84
+u\9at8_t
+
+ mf\9eËr2
+;
+
+85
+u\9at8_t
+
+ mf\9eËr3
+;
+
+91 \19
+ s¬p_key
+ {
+
+92 \f
+¬p_key_ty³
+
+ mty³
+;
+
+94 \19
+¬p_key_\9dv4
+
+ m\9dv4
+;
+
+95 }
+ mkey
+;
+
+103 \19
+ snd_tim\94_key
+ {
+
+104
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+105
+u\9at8_t
+
+ mpÜt_id
+;
+
+106 }
+ g__¹e_ÿche_®igÃd
+;
+
+112 \19
+ s¬p_tim\94_key
+ {
+
+113
+u\9at32_t
+
+ m\9d
+;
+
+114
+u\9at8_t
+
+ mpÜt_id
+;
+
+115 }
+ g__¹e_ÿche_®igÃd
+;
+
+117 \r
+u\9at32_t
+
+ARPICMP_DEBUG
+;
+
+119 \ 1
+ #COMPLETE
+ 1
+
+ )
+
+120 \ 1
+ #INCOMPLETE
+ 0
+
+ )
+
+122 \r
+u\9at32_t
+
+NDIPV6_DEBUG
+;
+
+124 \ 1
+ #ICMPv6_COMPLETE
+ 1
+
+ )
+
+125 \ 1
+ #ICMPv6_INCOMPLETE
+ 0
+
+ )
+
+126 \ 1
+ #STATIC_ARP
+ 1
+
+ )
+
+127 \ 1
+ #DYNAMIC_ARP
+ 0
+
+ )
+
+128 \ 1
+ #STATIC_ND
+ 1
+
+ )
+
+129 \ 1
+ #DYNAMIC_ND
+ 0
+
+ )
+
+136 \19
+ s¬p_\92\8cy_d©a
+ {
+
+137 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+138
+u\9at32_t
+
+ m\9d
+;
+
+139
+u\9at8_t
+
+ mpÜt
+;
+
+140
+u\9at8_t
+
+ m¡©us
+;
+
+141
+u\9at8_t
+
+ mmode
+;
+
+142
+u\9at8_t
+
+ m»\8cy_couÁ
+;
+
+143 \19
+¹e_tim\94
+ *
+ mtim\94
+;
+
+144 \19
+¬p_tim\94_key
+ *
+ mtim\94_key
+;
+
+145 }
+__©\8cibu\8b__
+ ((
+·cked
+));
+
+152 \19
+ s\8fbË_¬p_\92\8cy_d©a
+ {
+
+153
+u\9at8_t
+
+ m\91h_addr
+[6];
+
+154
+u\9at8_t
+
+ mpÜt
+;
+
+155
+u\9at8_t
+
+ m¡©us
+;
+
+156
+u\9at32_t
+
+ m\9d
+;
+
+157 }
+__©\8cibu\8b__
+ ((
+·cked
+));
+
+164 \19
+ snd_\92\8cy_d©a
+ {
+
+165 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+166
+u\9at8_t
+
+ mpÜt
+;
+
+167
+u\9at8_t
+
+ m¡©us
+;
+
+168
+u\9at8_t
+
+ mmode
+;
+
+169
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+170 \19
+¹e_tim\94
+ *
+ mtim\94
+;
+
+171 }
+__©\8cibu\8b__
+ ((
+·cked
+));
+
+179 \19
+ s\8fbË_nd_\92\8cy_d©a
+ {
+
+180
+u\9at8_t
+
+ m\91h_addr
+[6];
+
+181
+u\9at8_t
+
+ mpÜt
+;
+
+182
+u\9at8_t
+
+ m¡©us
+;
+
+183
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+184 \19
+¹e_tim\94
+ *
+ mtim\94
+;
+
+185 }
+__©\8cibu\8b__
+ ((
+·cked
+));
+
+201 \12
+g\91_de¡_mac_add»ss
+(cڡ
+u\9at32_t
+
+\9daddr
+, u\9at32_\88*
+phy_pÜt
+,
+
+202 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+ *
+nh\9d
+);
+
+216 \12
+g\91_de¡_mac_addr_pÜt
+(cڡ
+u\9at32_t
+
+\9daddr
+,
+
+217
+u\9at32_t
+ *
+phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+230 \12
+g\91_de¡_mac_addr
+(cڡ
+u\9at32_t
+
+\9daddr
+, u\9at32_\88*
+phy_pÜt
+,
+
+231 \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+246 \12
+g\91_de¡_mac_add»ss_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+247 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[]);
+
+262 \12
+g\91_de¡_mac_add»ss_\9dv6_pÜt
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+263 \19
+\91h\94_addr
+ *
+hw_addr
+,
+
+264
+u\9at8_t
+
+nh\9dv6
+[]);
+
+272 \19
+\91h\94_addr
+ *
+g\91_l\9ak_hw_addr
+(
+u\9at8_t
+
+out_pÜt
+);
+
+279 \1e
+´\9at_¬p_\8fbË
+(\1e);
+
+286 \1e
+´\9at_nd_\8fbË
+(\1e);
+
+295 \1e
+»move_¬p_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+, \1e*
+¬g
+);
+
+305 \1e
+»move_nd_\92\8cy_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[], u\9at8_\88
+pÜtid
+);
+
+318 \1e
+pÝuÏ\8b_¬p_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+
+\9daddr
+,
+
+319
+u\9at8_t
+
+pÜtid
+, u\9at8_\88
+mode
+);
+
+333 \1e
+pÝuÏ\8b_nd_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+\9d
+[],
+
+334
+u\9at8_t
+
+pÜtid
+, u\9at8_\88
+mode
+);
+
+344 \1e
+»que¡_¬p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+);
+
+353 \19
+¹e_mbuf
+ *
+»que¡_echo
+(
+u\9at32_t
+
+pÜt_id
+, u\9at32_\88
+\9d
+);
+
+362 \19
+¹e_mbuf
+ *
+»que¡_icmpv6_echo
+(
+u\9at8_t
+
+\9dv6
+[],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+371 \19
+¹e_mbuf
+ *
+»que¡_nd
+(
+u\9at8_t
+
+\9dv6
+[],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+382 \1e
+´oûss_¬picmp_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+390 \19
+¬p_\92\8cy_d©a
+ *
+»\8c\9bve_¬p_\92\8cy
+(cڡ \19
+¬p_key_\9dv4
+
+¬p_key
+);
+
+399 \19
+nd_\92\8cy_d©a
+ *
+»\8c\9bve_nd_\92\8cy
+(\19
+nd_key_\9dv6
+
+nd_key
+);
+
+405 \1e
+lib_¬p_\9a\99
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+, \19
+p_·¿ms
+ *
+p
+);
+
+407 \1e
+£t_pÜt_to_lßdb_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+);
+
+412
+u\9at8_t
+
+g\91_pÜt_to_lßdb_m
+(u\9at8_\88
+phy_pÜt_id
+);
+
+414 \1e
+£t_phy_\9apÜt_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, u\9at8_\88*
+m
+);
+
+415 \1e
+£t_phy_ou\8dÜt_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, u\9at8_\88*
+m
+);
+
+421
+u\9at8_t
+
+g\91_lßdb_ou\8dÜt_id
+(u\9at8_\88
+aùu®_phy_pÜt
+);
+
+422
+u\9at8_t
+
+g\91_vnf_£t_num
+(u\9at8_\88
+p\9d\96\9ae_num
+);
+
+424 \1e
+p\9d\96\9aes_pÜt_\9afo
+(\1e);
+
+425 \1e
+p\9d\96\9aes_m_\9afo
+(\1e);
+
+434 \1e
+¬p_tim\94_ÿÎback
+(\19
+¹e_tim\94
+ *, \1e*
+¬g
+);
+
+443 \1e
+nd_tim\94_ÿÎback
+(\19
+¹e_tim\94
+ *
+tim\94
+, \1e*
+¬g
+);
+
+449 \1e
+ü\97\8b_¬p_\8fbË
+(\1e);
+
+454 \1e
+ü\97\8b_nd_\8fbË
+(\1e);
+
+467 \1e
+´oûss_¬picmp_pkt_·r£
+(\19
+¹e_mbuf
+ **
+pkt
+,
+u\9at16_t
+
+pkt_num
+,
+
+468
+u\9at64_t
+
+pkt_mask
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+475 \1e
+£nd_g¿tu\99ous_¬p
+(
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+481 \1e
+£t_¬pdebug
+(\12
+æag
+);
+
+487 \1e
+£t_¬±imeout
+(
+u\9at32_t
+
+timeout_v®
+);
+
+495
+u\9at32_t
+
+g\91_nh
+(uint32_t, uint32_t *);
+
+505 \1e
+g\91_nh_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[],
+u\9at32_t
+ *
+pÜt
+, u\9at8_\88
+nh\9dv6
+[]);
+
+ @VIL/l2l3_stack/lib_icmpv6.c
+
+18 \ 2
+ ~"lib_icmpv6.h
+"
+
+20 \18\1e
+ $´\9at_pkt
+(
+u\9at8_t
+ *
+rd
+)
+
+22 \12
+i
+ = 0,
+j
+ = 0;
+
+24
+ `´\9atf
+("Packet Contents:\n");
+
+26 \ f
+i
+ = 0; i < 20; i++) {
+
+27 \ f
+j
+ = 0; j < 20; j++)
+
+28
+ `´\9atf
+("%02x ",
+rd
+[(20 *
+i
+è+
+j
+]);
+
+30
+ `´\9atf
+("\n");
+
+32
+ }
+}
+
+34 \18
+u\9at16_t
+
+ $icmpv6_\9dv6_nd_checksum
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+36 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+37 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+38 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+40
+size_t
+
+tm¶\92
+,
+off£t
+;
+
+41
+u\9at8_t
+ *
+tmµack\91
+, *
+\8dack\91
+;
+
+43
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+44
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+45
+icmpv6_h
+ =
+
+46 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+48
+u\9at32_t
+
+·ylßdËn
+ = 0x20;
+
+49
+·ylßdËn
+ =
+ `¹e_bsw32
+(payloadlen);
+
+51
+tm¶\92
+ = 40 + \17(\19
+icmpv6_hdr
+è+ \17(\19
+icmpv6_nd_hdr
+);
+
+52
+tm¶\92
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(tmplen);
+
+53
+tmµack\91
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+tm¶\92
+,
+RTE_CACHE_LINE_SIZE
+);
+
+54
+\8dack\91
+ =
+tmµack\91
+;
+
+56
+off£t
+ = 16;
+
+57
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+¤c_addr
+[0],
+off£t
+);
+
+58
+\8dack\91
+ +ð
+off£t
+;
+
+59
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+d¡_addr
+[0],
+off£t
+);
+
+60
+\8dack\91
+ +ð
+off£t
+;
+
+61 *
+\8dack\91
+ = 0;
+
+62
+\8dack\91
+++;
+
+63 *
+\8dack\91
+ = 0;
+
+64
+\8dack\91
+++;
+
+65 *
+\8dack\91
+ = 0;
+
+66
+\8dack\91
+++;
+
+67
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+´Ùo
+, 1);
+
+68
+\8dack\91
+++;
+
+69
+ `memýy
+(
+\8dack\91
+, &
+·ylßdËn
+, 4);
+
+70
+\8dack\91
+ += 4;
+
+71
+ `memýy
+(
+\8dack\91
+,
+icmpv6_h
+,
+
+72 \17(\19
+icmpv6_hdr
+è+ \17(\19
+icmpv6_nd_hdr
+));
+
+74 ià(
+ARPICMP_DEBUG
+)
+
+75
+ `´\9at_pkt
+(
+tmµack\91
+);
+
+77 \15
+ `¹e_¿w_cksum
+(
+tmµack\91
+,
+tm¶\92
+);
+
+78
+ }
+}
+
+80 \18
+u\9at16_t
+
+ $icmpv6_\9dv6_echo_checksum
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+82 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+83 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+84 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+86
+size_t
+
+tm¶\92
+,
+off£t
+;
+
+87
+u\9at8_t
+ *
+tmµack\91
+, *
+\8dack\91
+;
+
+89
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+90
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+91
+icmpv6_h
+ =
+
+92 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+94
+u\9at32_t
+
+·ylßdËn
+ =
+ `¹e_bsw16
+(
+\9dv6_h
+->
+·ylßd_Ën
+);
+
+95
+u\9at32_t
+
+·ylßdËn_sw
+ =
+ `¹e_bsw32
+(
+·ylßdËn
+);
+
+97 ià(
+ARPICMP_DEBUG
+)
+
+98
+ `´\9atf
+("%s:\85aylßdËn: %u\n",
+__FUNCTION__
+,
+·ylßdËn
+);
+
+100
+tm¶\92
+ = 40 +
+·ylßdËn
+;
+
+101
+tm¶\92
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(tmplen);
+
+102
+tmµack\91
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+tm¶\92
+,
+RTE_CACHE_LINE_SIZE
+);
+
+103
+\8dack\91
+ =
+tmµack\91
+;
+
+105
+off£t
+ = 16;
+
+106
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+¤c_addr
+[0],
+off£t
+);
+
+107
+\8dack\91
+ +ð
+off£t
+;
+
+108
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+d¡_addr
+[0],
+off£t
+);
+
+109
+\8dack\91
+ +ð
+off£t
+;
+
+110 *
+\8dack\91
+ = 0;
+
+111
+\8dack\91
+++;
+
+112 *
+\8dack\91
+ = 0;
+
+113
+\8dack\91
+++;
+
+114 *
+\8dack\91
+ = 0;
+
+115
+\8dack\91
+++;
+
+116
+ `memýy
+(
+\8dack\91
+, &
+\9dv6_h
+->
+´Ùo
+, 1);
+
+117
+\8dack\91
+++;
+
+118
+ `memýy
+(
+\8dack\91
+, &
+·ylßdËn_sw
+, 4);
+
+119
+\8dack\91
+ += 4;
+
+120
+ `memýy
+(
+\8dack\91
+,
+icmpv6_h
+,
+·ylßdËn
+);
+
+122 ià(
+ARPICMP_DEBUG
+)
+
+123
+ `´\9at_pkt
+(
+tmµack\91
+);
+
+125 \15
+ `¹e_¿w_cksum
+(
+tmµack\91
+,
+tm¶\92
+);
+
+126
+ }
+}
+
+128 \1e
+ $´oûss_icmpv6_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+131 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+132 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+133 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+134 \19
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+135
+u\9at8_t
+
+\9dv6_addr
+[16];
+
+136
+u\9at8_t
+
+i
+ = 0;
+
+137
+u\9at8_t
+
+»q_t\9dv6
+[16];
+
+140 ià(
+pÜt
+ =ð
+NULL
+) {
+
+141
+ `´\9atf
+("port is NULL");
+
+143 } \vià(
+pÜt
+->
+\9dv6_li¡
+ =ð
+NULL
+) {
+
+144
+ `´\9atf
+("IPV6\87ddress\82ot configured on\86ink\n");
+
+148
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+149
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+150
+icmpv6_h
+ =
+
+151 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+153 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REQUEST
+)
+
+154 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+155 \ f
+i
+ = 0; i < 16; i++) {
+
+156
+\9dv6_addr
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+159
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+, &\91h_h->
+d_addr
+);
+
+160
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+pÜt
+->
+maÿddr
+[0],
+
+161 &
+\91h_h
+->
+s_addr
+);
+
+163 \ f
+i
+ = 0; i < 16; i++)
+
+164
+\9dv6_h
+->
+¤c_addr
+[
+i
+] = ipv6_h->
+d¡_addr
+[i];
+
+165 \ f
+i
+ = 0; i < 16; i++)
+
+166
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+\9dv6_addr
+[i];
+
+168
+icmpv6_h
+->
+icmpv6_ty³
+ =
+ICMPV6_ECHO_REPLY
+;
+
+169
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+170
+icmpv6_h
+->
+icmpv6_cksum
+ = ~
+ `icmpv6_\9dv6_echo_checksum
+(
+pkt
+);
+
+171
+pÜt
+->
+ `\8cªsm\99_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+174 } \vià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REPLY
+)
+
+175 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+176 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+177
+nd_key
+.
+pÜt_id
+ =
+pÜt
+->
+pmdid
+;
+
+178 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+179
+nd_key
+.
+\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+182
+nd_key
+.
+f\9eËr1
+ = 0;
+
+183
+nd_key
+.
+f\9eËr2
+ = 0;
+
+184
+nd_key
+.
+f\9eËr3
+ = 0;
+
+187 \19
+nd_\92\8cy_d©a
+ *
+Ãw_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+nd_key
+);
+
+188 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+189
+´\9atf
+
+
+191
+nd_key
+.
+pÜt_id
+);
+
+192 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+193
+ `´\9atf
+("%02X%02X ",
+nd_key
+.
+\9dv6
+[
+i
+],
+
+194
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+199
+Ãw_nd_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+200 } \vià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_SOLICITATION
+)
+
+201 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+203
+icmpv6_nd_h
+ =
+
+204 (\19
+icmpv6_nd_hdr
+ *)((\ 5*)
+icmpv6_h
+ +
+
+205 \17(\19
+icmpv6_hdr
+));
+
+206 \19
+\91h\94_addr
+ *
+¤c_hw_addr
+ = &
+\91h_h
+->
+s_addr
+;
+
+207
+u\9at8_t
+
+¤c_\9dv6
+[16],
+d¡_\9dv6
+[16];
+
+208
+u\9at16_t
+
+muÉi_addr
+;
+
+210 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+211
+¤c_\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+212 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+213
+d¡_\9dv6
+[
+i
+] =
+\9dv6_h
+->
+d¡_addr
+[i];
+
+215
+muÉi_addr
+ =
+d¡_\9dv6
+[0];
+
+218 ià((
+IPV6_MULTICAST
+ & ((
+muÉi_addr
+ << 8è|
+d¡_\9dv6
+[1]))
+
+219 || !
+ `memcmp
+(&
+pÜt
+->
+maÿddr
+[0], &
+\91h_h
+->
+d_addr
+, 6)) {
+
+220
+ `pÝuÏ\8b_nd_\92\8cy
+(
+¤c_hw_addr
+,
+¤c_\9dv6
+,
+pÜt
+->
+pmdid
+,
+
+221
+DYNAMIC_ND
+);
+
+224 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+225
+»q_t\9dv6
+[
+i
+] =
+icmpv6_nd_h
+->
+\8frg\91_\9dv6
+[i];
+
+227 ià(!
+memcmp
+
+
+228 (&
+»q_t\9dv6
+[0],
+
+229 &((
+\9dv6li¡_t
+ *è
+pÜt
+->
+\9dv6_li¡
+)->
+\9daddr
+[0],
+
+232
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+, &\91h_h->
+d_addr
+);
+
+233
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+pÜt
+->
+
+234
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+237 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+238
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+
+239
+\9dv6_h
+->
+¤c_addr
+[
+i
+];
+
+240 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+241
+\9dv6_h
+->
+¤c_addr
+[
+i
+] =
+»q_t\9dv6
+[i];
+
+242
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+243
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+;
+
+244
+icmpv6_nd_h
+->
+ty³
+ =
+e_T¬g\91_L\9ak_Lay\94_Add»ss
+;
+
+245
+icmpv6_nd_h
+->
+Ëngth
+ = 1;
+
+246
+ `memýy
+(&
+icmpv6_nd_h
+->
+l\9ak_Ïy\94_addr
+[0],
+
+247 &
+pÜt
+->
+maÿddr
+[0], 6);
+
+248
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ = 0;
+
+249
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ |=
+
+250
+¹e_ýu_to_be_32
+
+
+251 (
+NEIGHBOR_ROUTER_OVERRIDE_SET
+);
+
+253
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+254
+icmpv6_h
+->
+icmpv6_cksum
+ =
+
+255 ~
+ `icmpv6_\9dv6_nd_checksum
+(
+pkt
+);
+
+257
+pÜt
+->
+ `\8cªsm\99_bulk_pkts
+ÕÜt, &
+pkt
+, 1);
+
+259 } \vià(
+ARPICMP_DEBUG
+) {
+
+260
+´\9atf
+
+
+266 ià(
+ARPICMP_DEBUG
+) {
+
+267
+´\9atf
+
+
+272 } \vià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+)
+
+273 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+274 \19
+\91h\94_addr
+ *
+¤c_hw_addr
+ = &
+\91h_h
+->
+s_addr
+;
+
+275
+u\9at8_t
+
+\9dv6
+[16];
+
+276 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++) {
+
+277
+\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+280
+ `pÝuÏ\8b_nd_\92\8cy
+(
+¤c_hw_addr
+,
+\9dv6
+,
+pÜt
+->
+pmdid
+,
+DYNAMIC_ND
+);
+
+282 ià(
+ARPICMP_DEBUG
+) {
+
+283
+ `´\9atf
+("ICMPv6 Type %d Not Supported yet !!!\n",
+
+284
+icmpv6_h
+->
+icmpv6_ty³
+);
+
+288
+ `¹e_pktmbuf_ä\93
+(
+pkt
+);
+
+289
+ }
+}
+
+291 \19
+¹e_mbuf
+ *
+ $»que¡_icmpv6_echo
+(
+u\9at8_t
+
+\9dv6
+[],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+293 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+294 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+295 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+296 \19
+icmpv6_\9afo_hdr
+ *
+icmpv6_\9afo_h
+;
+
+297 \12
+i
+;
+
+298
+u\9at8_t
+ *
+icmp_d©a
+;
+
+300 \19
+¹e_mbuf
+ *
+icmpv6_pkt
+ =
+lib_icmpv6_pkt
+;
+
+301 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+302 ià(
+ARPICMP_DEBUG
+)
+
+303
+ `´\9atf
+("Error\87llocating icmpv6_pkt\84te_mbuf\n");
+
+304 \15
+NULL
+;
+
+307
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, \19
+\91h\94_hdr
+ *);
+
+309
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+310
+icmpv6_h
+ =
+
+311 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+312
+icmpv6_\9afo_h
+ =
+
+313 (\19
+icmpv6_\9afo_hdr
+ *)((\ 5*)
+icmpv6_h
+ +
+
+314 \17(\19
+icmpv6_hdr
+));
+
+316
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+317
+\91h_h
+->
+\91h\94_ty³
+ =
+ `¹e_bsw16
+(0x86dd);
+
+318 \ f
+i
+ = 0; i < 6; i++) {
+
+319
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[
+i
+] = 0;
+
+322
+\9dv6_h
+->
+vtc_æow
+ =
+ `¹e_bsw32
+(0x60000000);
+
+323
+\9dv6_h
+->
+·ylßd_Ën
+ =
+ `¹e_bsw16
+(64);
+
+324
+\9dv6_h
+->
+´Ùo
+ = 58;
+
+325
+\9dv6_h
+->
+hÝ_lim\99s
+ = 64;
+
+327 \ f
+i
+ = 0; i < 16; i++) {
+
+328
+\9dv6_h
+->
+¤c_addr
+[
+i
+] = 0x0;
+
+329
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+\9dv6
+[i];
+
+332
+icmpv6_h
+->
+icmpv6_ty³
+ =
+ICMPV6_ECHO_REQUEST
+;
+
+333
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+334
+icmpv6_\9afo_h
+->
+icmpv6_id\92t
+ =
+ `¹e_bsw16
+(0x5151);
+
+335
+icmpv6_\9afo_h
+->
+icmpv6_£q_nb
+ =
+ `¹e_bsw16
+(0x1);
+
+337
+icmp_d©a
+ = (
+u\9at8_t
+ *è
+icmpv6_h
+ + 8;
+
+338 \ f
+i
+ = 0; i < 56; i++) {
+
+339 *
+icmp_d©a
+ =
+i
+ + 1;
+
+340
+icmp_d©a
+++;
+
+342
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+343
+icmpv6_h
+->
+icmpv6_cksum
+ = ~
+ `icmpv6_\9dv6_echo_checksum
+(
+icmpv6_pkt
+);
+
+345
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+346 \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv6_hdr
+) + 64;
+
+347
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+349 \15
+icmpv6_pkt
+;
+
+350
+ }
+}
+
+352 \19
+¹e_mbuf
+ *
+ $»que¡_nd
+(
+u\9at8_t
+
+\9dv6
+[],
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+)
+
+354 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+355 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+356 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+357 \19
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+358 \12
+i
+;
+
+360 \19
+¹e_mbuf
+ *
+icmpv6_pkt
+ =
+lib_icmpv6_pkt
+;
+
+361 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+362 ià(
+ARPICMP_DEBUG
+)
+
+363
+ `´\9atf
+("Error\87llocating icmpv6_pkt\84te_mbuf\n");
+
+364 \15
+NULL
+;
+
+367
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, \19
+\91h\94_hdr
+ *);
+
+369
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+370
+icmpv6_h
+ =
+
+371 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+372
+icmpv6_nd_h
+ =
+
+373 (\19
+icmpv6_nd_hdr
+ *)((\ 5*)
+icmpv6_h
+ +
+
+374 \17(\19
+icmpv6_hdr
+));
+
+376
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+pÜt
+->
+maÿddr
+[0], &
+\91h_h
+->
+s_addr
+);
+
+377
+\91h_h
+->
+\91h\94_ty³
+ =
+ `¹e_bsw16
+(0x86dd);
+
+378 \ f
+i
+ = 0; i < 6; i++) {
+
+379
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[
+i
+] = 0;
+
+382
+\9dv6_h
+->
+vtc_æow
+ = 0x60000000;
+
+383
+\9dv6_h
+->
+·ylßd_Ën
+ =
+ `¹e_bsw16
+(32);
+
+384
+\9dv6_h
+->
+´Ùo
+ = 58;
+
+385
+\9dv6_h
+->
+hÝ_lim\99s
+ = 64;
+
+387 \ f
+i
+ = 0; i < 16; i++) {
+
+388
+\9dv6_h
+->
+¤c_addr
+[
+i
+] = 0x0;
+
+389
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+\9dv6
+[i];
+
+392
+icmpv6_h
+->
+icmpv6_ty³
+ =
+ICMPV6_NEIGHBOR_SOLICITATION
+;
+
+393
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+395
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ = 0x0;
+
+396 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+397
+icmpv6_nd_h
+->
+\8frg\91_\9dv6
+[
+i
+] =
+\9dv6
+[i];
+
+398
+icmpv6_nd_h
+->
+ty³
+ =
+e_Sourû_L\9ak_Lay\94_Add»ss
+;
+
+399
+icmpv6_nd_h
+->
+Ëngth
+ = 1;
+
+400
+ `memýy
+(&
+icmpv6_nd_h
+->
+l\9ak_Ïy\94_addr
+[0], &
+pÜt
+->
+maÿddr
+[0], 6);
+
+402
+icmpv6_h
+->
+icmpv6_cksum
+ = 0;
+
+403
+icmpv6_h
+->
+icmpv6_cksum
+ = ~
+ `icmpv6_\9dv6_nd_checksum
+(
+icmpv6_pkt
+);
+
+405
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+406 \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv6_hdr
+) + 32;
+
+407
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+409 \15
+icmpv6_pkt
+;
+
+410
+ }
+}
+
+ @VIL/l2l3_stack/lib_icmpv6.h
+
+17 \ 2
+ ~<¡dio.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡d\9at.h
+>
+
+20 \ 2
+ ~<¡r\9ag.h
+>
+
+21 \ 2
+ ~<uni¡d.h
+>
+
+22 \ 2
+ ~<¹e_commÚ.h
+>
+
+23 \ 2
+ ~<¹e_m®loc.h
+>
+
+24 \ 2
+ ~<¹e_\9d.h
+>
+
+25 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+26 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+27 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+28 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+29 \ 2
+ ~<¹e_¬p.h
+>
+
+30 \ 2
+ ~<¹e_icmp.h
+>
+
+31 \ 2
+ ~<¹e_hash.h
+>
+
+32 \ 2
+ ~<¹e_jhash.h
+>
+
+33 \ 2
+ ~<¹e_cyþes.h
+>
+
+34 \ 2
+ ~"lib_¬p.h
+"
+
+35 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+36 \ 2
+ ~"¹e_\91h\94.h
+"
+
+42 \19
+ sicmpv6_hdr
+ {
+
+43
+u\9at8_t
+
+ micmpv6_ty³
+;
+
+44
+u\9at8_t
+
+ micmpv6_code
+;
+
+45
+u\9at16_t
+
+ micmpv6_cksum
+;
+
+46 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+51 \19
+ sicmpv6_\9afo_hdr
+ {
+
+52
+u\9at16_t
+
+ micmpv6_id\92t
+;
+
+53
+u\9at16_t
+
+ micmpv6_£q_nb
+;
+
+54 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+59 \19
+ sicmpv6_nd_hdr
+ {
+
+61
+u\9at32_t
+
+ micmpv6_ȣrved
+;
+
+63
+u\9at8_t
+
+ m\8frg\91_\9dv6
+[16];
+
+64
+u\9at8_t
+
+ mty³
+;
+
+65
+u\9at8_t
+
+ mËngth
+;
+
+66
+u\9at8_t
+
+ ml\9ak_Ïy\94_addr
+[6];
+
+67 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+70 \ 1
+ #ICMPV6_PROTOCOL_ID
+ 58
+
+ )
+
+71 \ 1
+ #ICMPV6_ECHO_REQUEST
+ 0x0080
+
+ )
+
+72 \ 1
+ #ICMPV6_ECHO_REPLY
+ 0x0081
+
+ )
+
+73 \ 1
+ #ICMPV6_NEIGHBOR_SOLICITATION
+ 0x0087
+
+ )
+
+74 \ 1
+ #ICMPV6_NEIGHBOR_ADVERTISEMENT
+ 0x0088
+
+ )
+
+75 \ 1
+ #IPV6_MULTICAST
+ 0xFF02
+
+ )
+
+77 \ 1
+ #NEIGHBOR_SOLICITATION_SET
+ 0x40000000
+
+ )
+
+78 \ 1
+ #NEIGHBOR_ROUTER_OVERRIDE_SET
+ 0xa0000000
+
+ )
+
+79 \f
+ eicmpv6_l\9ak_Ïy\94_Add»ss_ty³
+ {
+
+80
+ me_Sourû_L\9ak_Lay\94_Add»ss
+ = 1,
+
+81
+ me_T¬g\91_L\9ak_Lay\94_Add»ss
+,
+
+82
+ me_L\9ak_Lay\94_Add»ss
+
+
+88
+u\9at8_t
+
+is_muÉiÿ¡_\9dv6_addr
+(u\9at8_\88
+\9dv6
+[]);
+
+93 \19
+ sicmpv6_pÜt_add»ss
+ {
+
+94
+u\9at32_t
+
+ m\9dv6
+[16];
+
+95
+u\9at64_t
+
+ mmac_addr
+;
+
+101 \19
+icmpv6_pÜt_add»ss
+
+ gicmpv6_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+103 \ 1
+ #MAX_NUM_ICMPv6_ENTRIES
+ 64
+
+ )
+
+104 \19
+¹e_mbuf
+ *
+ glib_icmpv6_pkt
+;
+
+113 \1e
+´oûss_icmpv6_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+);
+
+ @VIL/l2l3_stack/main_l2l3.c
+
+17 #iâdeà
+__INCLUDE_MAIN__
+
+
+18 \ 1
+ #__INCLUDE_MAIN_H__
+
+
+ )
+
+20 \ 2
+ ~<¡dio.h
+>
+
+21 \ 2
+ ~<¡dlib.h
+>
+
+22 \ 2
+ ~<¡d\9at.h
+>
+
+23 \ 2
+ ~<\9a\89y³s.h
+>
+
+24 \ 2
+ ~<sys/ty³s.h
+>
+
+25 \ 2
+ ~<¡r\9ag.h
+>
+
+26 \ 2
+ ~<sys/queue.h
+>
+
+27 \ 2
+ ~<¡d¬g.h
+>
+
+28 \ 2
+ ~<\94ºo.h
+>
+
+29 \ 2
+ ~<g\91Ýt.h
+>
+
+30 \ 2
+ ~<sigÇl.h
+>
+
+31 \ 2
+ ~<¡dboÞ.h
+>
+
+33 \ 2
+ ~<¹e_commÚ.h
+>
+
+34 \ 2
+ ~<¹e_veù.h
+>
+
+35 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+36 \ 2
+ ~<¹e_log.h
+>
+
+37 \ 2
+ ~<¹e_memÜy.h
+>
+
+38 \ 2
+ ~<¹e_memýy.h
+>
+
+39 \ 2
+ ~<¹e_memzÚe.h
+>
+
+40 \ 2
+ ~<¹e_\97l.h
+>
+
+41 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+42 \ 2
+ ~<¹e_Ïunch.h
+>
+
+43 \ 2
+ ~<¹e_©omic.h
+>
+
+44 \ 2
+ ~<¹e_cyþes.h
+>
+
+45 \ 2
+ ~<¹e_´eãtch.h
+>
+
+46 \ 2
+ ~<¹e_lcÜe.h
+>
+
+47 \ 2
+ ~<¹e_³r_lcÜe.h
+>
+
+48 \ 2
+ ~<¹e_b¿nch_´ediùiÚ.h
+>
+
+49 \ 2
+ ~<¹e_\9a\8b¼u±s.h
+>
+
+50 \ 2
+ ~<¹e_pci.h
+>
+
+51 \ 2
+ ~<¹e_¿ndom.h
+>
+
+52 \ 2
+ ~<¹e_debug.h
+>
+
+53 \ 2
+ ~<¹e_\91h\94.h
+>
+
+54 \ 2
+ ~<¹e_\91hdev.h
+>
+
+55 \ 2
+ ~<¹e_r\9ag.h
+>
+
+56 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+57 \ 2
+ ~<¹e_mbuf.h
+>
+
+58 \ 2
+ ~<¹e_\9d.h
+>
+
+59 \ 2
+ ~<¹e_tý.h
+>
+
+60 \ 2
+ ~<¹e_udp.h
+>
+
+61 \ 2
+ ~<¹e_¡r\9ag_âs.h
+>
+
+62 \ 2
+ ~<¹e_ýuæags.h
+>
+
+63 \ 2
+ ~<¹e_tim\94.h
+>
+
+64 \ 2
+ ~"lib_¬p.h
+"
+
+65 \ 2
+ ~"l2_´Ùo.h
+"
+
+66 \ 2
+ ~"\9a\8brçû.h
+"
+
+67 \ 2
+ ~"l3fwd_commÚ.h
+"
+
+68 \ 2
+ ~"l3fwd_Ím4.h
+"
+
+69 \ 2
+ ~"l3fwd_Ím6.h
+"
+
+70 \ 1
+ #TIMER_RESOLUTION_CYCLES
+ 20000000ULL
+
+ )
+
+71 \1d
+ glcÜe_id
+ = 1;
+
+72 \1e
+cÚv\94t_\9d¡r_to_num\94ic
+(\1e);
+
+73 \19
+sockaddr_\9a
+
+ g\9daddr1
+,
+ g\9daddr2
+,
+ g\9daddr3
+,
+ g\9daddr4
+;
+
+74
+u\9at8_t
+
+ g\9dv6_addr0
+[16] = {
+
+78
+u\9at8_t
+
+ g\9dv6_addr1
+[16] = {
+
+83
+pÜt_cÚfig_t
+
+ gpÜtcÚf
+[5] = {
+
+85 .
+pÜt_id
+ = 0,
+
+86 .
+ gÄx_queue
+ = 1,
+
+87 .
+ gÁx_queue
+ = 1,
+
+88 .
+ g¡©e
+ = 1,
+
+89 .
+ g´omisc
+ = 1,
+
+90 .
+ gmempoÞ
+ = {
+
+91 .
+bufãr_size
+ = 2048 + \17(\19
+¹e_mbuf
+) +
+
+92
+RTE_PKTMBUF_HEADROOM
+,
+
+93 .
+ gpoÞ_size
+ = 32 * 1024,
+
+94 .
+ gÿche_size
+ = 256,
+
+95 .
+ gýu_sock\91_id
+ = 0,
+
+97 .
+ gpÜt_cÚf
+ = {
+
+98 .
+l\9ak_¥\93ds
+ = 0,
+
+99 .
+ grxmode
+ = {
+
+100 .
+mq_mode
+ =
+ETH_MQ_RX_NONE
+,
+
+101 .
+ gh\97d\94_¥l\99
+ = 0,
+
+102 .
+ ghw_\9d_checksum
+ = 0,
+
+103 .
+ ghw_vÏn_f\9e\8br
+ = 0,
+
+104 .
+ ghw_vÏn_¡r\9d
+ = 0,
+
+105 .
+ ghw_vÏn_ex\8bnd
+ = 0,
+
+106 .
+ gjumbo_äame
+ = 0,
+
+107 .
+ ghw_¡r\9d_üc
+ = 0,
+
+108 .
+ g\92abË_sÿ\89\94
+ = 0,
+
+109 .
+ gmax_rx_pkt_Ën
+ = 9000,
+
+110 .
+ g¥l\99_hdr_size
+ = 0,
+
+112
+ g_adv_cÚf
+ = {
+
+113 .
+rss_cÚf
+ = {
+
+114 .
+rss_key
+ =
+NULL
+,
+
+115 .
+ grss_key_Ën
+ = 40,
+
+116 .
+ grss_hf
+ = 0,
+
+119 .
+ gtxmode
+ = {
+
+120 .
+mq_mode
+ =
+ETH_MQ_TX_NONE
+,},
+
+121 .
+ gÍbk_mode
+ = 0,
+
+122 .
+ g\9a\8c_cÚf
+ = {
+
+123 .
+lsc
+ = 1,
+
+127 .
+ grx_cÚf
+ = {
+
+128 .
+rx_th»sh
+ = {
+
+129 .
+±h»sh
+ = 8,
+
+130 .
+ ghth»sh
+ = 8,
+
+131 .
+ gwth»sh
+ = 4,
+
+133 .
+ grx_ä\93_th»sh
+ = 64,
+
+134 .
+ grx_drÝ_\92
+ = 0,
+
+135 .
+ grx_deã¼ed_¡¬t
+ = 0,
+
+137 .
+ gtx_cÚf
+ = {
+
+138 .
+tx_th»sh
+ = {
+
+139 .
+±h»sh
+ = 36,
+
+140 .
+ ghth»sh
+ = 0,
+
+141 .
+ gwth»sh
+ = 0, =
+
+143 .
+ gtx_rs_th»sh
+ = 0,
+
+144 .
+ gtx_ä\93_th»sh
+ = 0,
+
+145 .
+ gtxq_æags
+ =
+ETH_TXQ_FLAGS_NOMULTSEGS
+ |
+ETH_TXQ_FLAGS_NOOFFLOADS
+,
+
+146 .
+ gtx_deã¼ed_¡¬t
+ = 0,
+
+150 .
+ gpÜt_id
+ = 1,
+
+151 .
+ gÄx_queue
+ = 1,
+
+152 .
+ gÁx_queue
+ = 1,
+
+153 .
+ g¡©e
+ = 1,
+
+154 .
+ g´omisc
+ = 1,
+
+155 .
+ gmempoÞ
+ = {
+
+156 .
+bufãr_size
+ = 2048 + \17(\19
+¹e_mbuf
+) +
+
+157
+RTE_PKTMBUF_HEADROOM
+,
+
+158 .
+ gpoÞ_size
+ = 32 * 1024,
+
+159 .
+ gÿche_size
+ = 256,
+
+160 .
+ gýu_sock\91_id
+ = 0,
+
+162 .
+ gpÜt_cÚf
+ = {
+
+163 .
+l\9ak_¥\93ds
+ = 0,
+
+164 .
+ grxmode
+ = {
+
+165 .
+mq_mode
+ =
+ETH_MQ_RX_NONE
+,
+
+166 .
+ gh\97d\94_¥l\99
+ = 0,
+
+167 .
+ ghw_\9d_checksum
+ = 0,
+
+168 .
+ ghw_vÏn_f\9e\8br
+ = 0,
+
+169 .
+ ghw_vÏn_¡r\9d
+ = 0,
+
+170 .
+ ghw_vÏn_ex\8bnd
+ = 0,
+
+171 .
+ gjumbo_äame
+ = 0,
+
+172 .
+ ghw_¡r\9d_üc
+ = 0,
+
+173 .
+ g\92abË_sÿ\89\94
+ = 0,
+
+174 .
+ gmax_rx_pkt_Ën
+ = 9000,
+
+175 .
+ g¥l\99_hdr_size
+ = 0,
+
+177
+ g_adv_cÚf
+ = {
+
+178 .
+rss_cÚf
+ = {
+
+179 .
+rss_key
+ =
+NULL
+,
+
+180 .
+ grss_key_Ën
+ = 40,
+
+181 .
+ grss_hf
+ = 0,
+
+184 .
+ gtxmode
+ = {
+
+185 .
+mq_mode
+ =
+ETH_MQ_TX_NONE
+,},
+
+186 .
+ gÍbk_mode
+ = 0,
+
+187 .
+ g\9a\8c_cÚf
+ = {
+
+188 .
+lsc
+ = 1,
+
+192 .
+ grx_cÚf
+ = {
+
+193 .
+rx_th»sh
+ = {
+
+194 .
+±h»sh
+ = 8,
+
+195 .
+ ghth»sh
+ = 8,
+
+196 .
+ gwth»sh
+ = 4,
+
+198 .
+ grx_ä\93_th»sh
+ = 64,
+
+199 .
+ grx_drÝ_\92
+ = 0,
+
+200 .
+ grx_deã¼ed_¡¬t
+ = 0,
+
+202 .
+ gtx_cÚf
+ = {
+
+203 .
+tx_th»sh
+ = {
+
+204 .
+±h»sh
+ = 36,
+
+205 .
+ ghth»sh
+ = 0,
+
+206 .
+ gwth»sh
+ = 0, =
+
+208 .
+ gtx_rs_th»sh
+ = 0,
+
+209 .
+ gtx_ä\93_th»sh
+ = 0,
+
+210 .
+ gtxq_æags
+ =
+ETH_TXQ_FLAGS_NOMULTSEGS
+ |
+ETH_TXQ_FLAGS_NOOFFLOADS
+,
+
+211 .
+ gtx_deã¼ed_¡¬t
+ = 0,
+
+216 \18
+__©\8cibu\8b__
+ ((
+nÜ\91uº
+))
+
+217 \12
+lcÜe_ma\9aloÝ
+ (
+__©\8cibu\8b__
+ ((
+unu£d
+))
+
+218 \1e*
+¬g
+)
+
+220
+l2_phy_\9a\8brçû_t
+ *
+ gpÜt
+;
+
+221
+\9at8_t
+
+ gpÜtid
+;
+
+222 \19
+¹e_mbuf
+ *
+ gpkts_bur¡
+[
+IFM_BURST_SIZE
+];
+
+223
+u\9at32_t
+
+ gnb_tx
+,
+ gnb_rx
+;
+
+224 cڡ
+u\9at64_t
+
+ gd¿\9a_tsc
+ =
+
+225 (
+¹e_g\91_tsc_hz
+(è+
+US_PER_S
+ - 1è/ US_PER_S *
+BURST_TX_DRAIN_US
+;
+
+226
+u\9at64_t
+
+ g´ev_tsc
+ = 0,
+ gcur_tsc
+,
+ gdiff_tsc
+;
+
+228
+ gpÜt
+ =
+ifm_g\91_f\9c¡_pÜt
+();
+
+229 \1f
+ gpÜt
+ !ð
+NULL
+) {
+
+230
+¹e_tim\94_mªage
+();
+
+231
+ gpÜtid
+ =
+pÜt
+->
+pmdid
+;
+
+232
+ gcur_tsc
+ =
+¹e_rdtsc
+();
+
+233
+ gdiff_tsc
+ =
+cur_tsc
+ -
+´ev_tsc
+;
+
+236 ià(
+uÆik\96y
+(
+diff_tsc
+ >
+d¿\9a_tsc
+)) {
+
+237 ià(
+ gpÜt
+->
+ gtx_buf_Ën
+ > 0) {
+
+238
+RTE_SET_USED
+(
+nb_tx
+);
+
+241
+ gpÜt
+->
+ gtx_buf_Ën
+ = 0;
+
+243
+ g´ev_tsc
+ =
+cur_tsc
+;
+
+245
+ gnb_rx
+ =
+pÜt
+->
+»\8c\9bve_bulk_pkts
+(
+pÜtid
+, 0,
+pkts_bur¡
+);
+
+246
+ gpÜt
+->
+ gn_rxpkts
+ +ð
+nb_rx
+;
+
+247
+´ÙocÞ_hªdËr_»cv
+(
+pkts_bur¡
+,
+nb_rx
+,
+pÜt
+);
+
+248
+ gpÜt
+ =
+ifm_g\91_Ãxt_pÜt
+(
+pÜtid
+);
+
+249 ià(
+ gpÜt
+ !ð
+NULL
+)
+
+250
+´ev_tsc
+ =
+cur_tsc
+;
+
+255 \1e
+ $cÚv\94t_\9d¡r_to_num\94ic
+(\1e)
+
+257
+ `mem£t
+(&
+\9daddr1
+, '\0', \17(\19
+sockaddr_\9a
+));
+
+258
+\9daddr1
+.
+s\9a_addr
+.
+s_addr
+ =
+ `\9a\91_addr
+("30.0.0.10");
+
+259
+ `mem£t
+(&
+\9daddr2
+, '\0', \17(\19
+sockaddr_\9a
+));
+
+260
+\9daddr2
+.
+s\9a_addr
+.
+s_addr
+ =
+ `\9a\91_addr
+("120.0.0.10");
+
+261
+ }
+}
+
+263 \12
+ $ma\9a
+(\12
+¬gc
+, \ 5**
+¬gv
+)
+
+265 \12
+»t
+ = 0;
+
+267
+»t
+ =
+ `¹e_\97l_\9a\99
+(
+¬gc
+,
+¬gv
+);
+
+268 ià(
+»t
+ < 0)
+
+269
+ `¹e_ex\99
+(
+EXIT_FAILURE
+, "Invalid EAL\85arameters\n");
+
+272
+ `ifm_\9a\99
+();
+
+273
+ `ifm_cÚfigu»_pÜts
+(
+pÜtcÚf
+);
+
+278
+ `ifm_add_\9dv6_pÜt
+(0,
+\9dv6_addr0
+, 96);
+
+279
+ `ifm_add_\9dv6_pÜt
+(1,
+\9dv6_addr1
+, 96);
+
+280
+ `´\9at_\9a\8brçû_d\91a\9es
+();
+
+283
+ `l3fwd_\9a\99
+();
+
+284
+ `ü\97\8b_¬p_\8fbË
+();
+
+285
+ `ü\97\8b_nd_\8fbË
+();
+
+286
+ `pÝuÏ\8b_Ím_rou\8bs
+();
+
+289 \12
+ii
+;
+
+290 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+291
+ `´\9atf
+("%02X%02X ",
+\9dv6_addr0
+[
+ii
+], ipv6_addr0[ii + 1]);
+
+293
+ `´\9atf
+("\n");
+
+294 \ f
+ii
+ = 0; ii < 16; ii += 2) {
+
+295
+ `´\9atf
+("%02X%02X ",
+\9dv6_addr1
+[
+ii
+], ipv6_addr1[ii + 1]);
+
+297
+ `´\9atf
+("REMOTE LAUNCH STARTED........\n");
+
+298
+ `¹e_\97l_»mÙe_Ïunch
+(
+lcÜe_ma\9aloÝ
+,
+NULL
+,
+lcÜe_id
+);
+
+299
+ `´\9atf
+("REMOTE LAUNCH DONE.......\n");
+
+300 ià(
+ `¹e_\97l_wa\99_lcÜe
+(
+lcÜe_id
+) < 0) {
+
+303
+ }
+}
+
+ @VIL/l2l3_stack/tsx.c
+
+17 \ 2
+ ~<imm\9a\8c\9a.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡dio.h
+>
+
+20 \ 2
+ ~<time.h
+>
+
+21 \ 2
+ ~<¡d\9at.h
+>
+
+22 \ 2
+ ~"¹e_©omic.h
+"
+
+23 \ 2
+ ~"tsx.h
+"
+
+24 \12
+ gmax_»\8c\9bs
+ = 3;
+
+27
+ $run_ýuid
+ (
+u\9at32_t
+
+\97x
+, u\9at32_\88
+ecx
+, u\9at32_\88*
+abcd
+)
+
+29
+u\9at32_t
+
+ebx
+ = 0,
+edx
+ = 0;
+
+31 #ià
+ `def\9aed
+(
+__i386__
+è&& def\9aed (
+__PIC__
+)
+
+33
+ `__asm__
+ ("movÈ%%ebx, %%ed\98\n\\88ýuid \n\\88xchgÈ%%ebx, %%edi":"=D" (
+ebx
+),
+
+35
+ `__asm__
+ ("ýuid":"+b" (
+ebx
+),
+
+37 "+a" (
+\97x
+), "+c" (
+ecx
+), "=d" (
+edx
+));
+
+38
+abcd
+[0] =
+\97x
+;
+
+39
+abcd
+[1] =
+ebx
+;
+
+40
+abcd
+[2] =
+ecx
+;
+
+41
+abcd
+[3] =
+edx
+;
+
+42
+ }
+}
+
+45
+ $check_xü0_ymm
+ (\1e)
+
+47
+u\9at32_t
+
+xü0
+;
+
+48
+ `__asm__
+ ("xg\91bv" : "÷" (
+xü0
+) : "c" (0) : "%edx");
+
+49 \15 ((
+xü0
+ & 6) == 6);
+
+50
+ }
+}
+
+53
+ $check_4th_g\92_\9a\8bl_cÜe_ã©u»s
+ (\1e)
+
+55
+u\9at32_t
+
+abcd
+[4];
+
+56
+u\9at32_t
+
+fma_movbe_osx§ve_mask
+ = ((1 << 12) | (1 << 22) | (1 << 27));
+
+57
+u\9at32_t
+
+avx2_bmi12_mask
+ = (1 << 5) | (1 << 3) | (1 << 8);
+
+62
+ `run_ýuid
+ (1, 0,
+abcd
+);
+
+63 ià((
+abcd
+[2] &
+fma_movbe_osx§ve_mask
+) != fma_movbe_osxsave_mask) {
+
+64
+ `´\9atf
+ ("Failing in if cond-1\n");
+
+67 ià(!
+ `check_xü0_ymm
+ ()) {
+
+68
+ `´\9atf
+ ("Failing in if cond-2\n");
+
+75
+ `run_ýuid
+ (7, 0,
+abcd
+);
+
+76 ià((
+abcd
+[1] &
+avx2_bmi12_mask
+) !=\87vx2_bmi12_mask) {
+
+77
+ `´\9atf
+ ("Failing in if cond-3\n");
+
+81
+ `run_ýuid
+ (0x80000001, 0,
+abcd
+);
+
+82 ià((
+abcd
+[2] & (1 << 5)) == 0) {
+
+83
+ `´\9atf
+ ("Failing in if cond-4\n");
+
+87
+ `run_ýuid
+ (7, 0,
+abcd
+);
+
+88 ià((
+abcd
+[1] & (1 << 11)) == 0) {
+
+89
+ `´\9atf
+ ("Failing in if cond-5\n");
+
+93
+ `run_ýuid
+ (7, 0,
+abcd
+);
+
+94 ià((
+abcd
+[1] & (1 << 4)) == 0) {
+
+95
+ `´\9atf
+ ("Failing in if cond-6\n");
+
+99
+ }
+}
+
+102
+ $ÿn_u£_\9a\8bl_cÜe_4th_g\92_ã©u»s
+ (\1e)
+
+104 \18\12
+the_4th_g\92_ã©u»s_ava\9eabË
+ = -1;
+
+106 ià(
+the_4th_g\92_ã©u»s_ava\9eabË
+ < 0)
+
+107
+the_4th_g\92_ã©u»s_ava\9eabË
+ =
+ `check_4th_g\92_\9a\8bl_cÜe_ã©u»s
+ ();
+
+108 \15
+the_4th_g\92_ã©u»s_ava\9eabË
+;
+
+109
+ }
+}
+
+112
+ $¹m_\9a\99
+ (\1e)
+
+114
+ÇbÜ\8bd
+ = (
+¹e_©omic64_t
+è
+ `RTE_ATOMIC64_INIT
+ (0);
+
+117
+ }
+} \12
+
+119
+ $¹m_lock
+ (\1e)
+
+121 \12
+Ä\91r\9bs
+ = 0;
+
+123 ++
+Ä\91r\9bs
+;
+
+124 \1d\12
+¡©us
+ =
+ `_xbeg\9a
+ ();
+
+125 ià(
+¡©us
+ =ð
+_XBEGIN_STARTED
+) {
+
+126 ià(!
+ `is_hË_locked
+ ())
+
+130
+ `_xabÜt
+ (0xff);
+
+133
+ `¹e_©omic64_\9ac
+ (&
+ÇbÜ\8bd
+);
+
+134
+´\9atf
+
+
+136
+Ä\91r\9bs
+,
+¡©us
+);
+
+138 ià((
+¡©us
+ &
+_XABORT_EXPLICIT
+)
+
+139 &&
+ `_XABORT_CODE
+ (
+¡©us
+è=ð0xfà&& !(¡©u &
+_XABORT_NESTED
+)) {
+
+140 \1f
+ `is_hË_locked
+ ())
+
+141
+ `_mm_·u£
+ ();
+
+143 \vià(!(
+¡©us
+ &
+_XABORT_RETRY
+))
+
+145 ià(
+Ä\91r\9bs
+ >ð
+max_»\8c\9bs
+)
+
+148
+ `hË_lock
+ ();
+
+150
+ }
+}
+
+153
+ $¹m_uÆock
+ (\1e)
+
+155 ià(
+ `is_hË_locked
+ ())
+
+156
+ `hË_»Ëa£
+ ();
+
+159
+ `_x\92d
+ ();
+
+161
+ }
+}
+
+164
+ $is_¹m_locked
+ (\1e)
+
+166 \15 ((\12è
+ `_x\8b¡
+ ());
+
+167
+ }
+}
+
+ @VIL/l2l3_stack/tsx.h
+
+16 #iâdeà
+_TSX_H_
+
+
+17 \ 1
+ #_RSX_H_
+
+
+ )
+
+18 \ 2
+ ~<¹e_©omic.h
+>
+
+19 \ 1
+ #TRUE
+ 1
+
+ )
+
+20 \ 1
+ #FALSE
+ 0
+
+ )
+
+22 vÞ©\9e\90\12
+ gmu\8bx_v®
+;
+
+24
+¹e_©omic64_t
+
+ gÇbÜ\8bd
+;
+
+26 \1e
+hË_\9a\99
+(\1e);
+
+27 \12
+hË_lock
+(\1e);
+
+28 \12
+hË_»Ëa£
+(\1e);
+
+29 \12
+is_hË_locked
+(\1e);
+
+31 \1e
+¹m_\9a\99
+(\1e);
+
+32 \12
+¹m_lock
+(\1e);
+
+33 \12
+¹m_uÆock
+(\1e);
+
+34 \12
+is_¹m_locked
+(\1e);
+
+36 \12
+ÿn_u£_\9a\8bl_cÜe_4th_g\92_ã©u»s
+(\1e);
+
+ @VIL/pipeline_arpicmp/pipeline_arpicmp.c
+
+17 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+18 \ 2
+ ~<cmdl\9ae_·r£_num.h
+>
+
+19 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+20 \ 2
+ ~<cmdl\9ae_·r£_\9daddr.h
+>
+
+21 \ 2
+ ~<cmdl\9ae_·r£_\91h\94addr.h
+>
+
+23 \ 2
+ ~"p.h
+"
+
+24 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+25 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+26 \ 2
+ ~"p\9d\96\9ae_¬picmp.h
+"
+
+27 \ 2
+ ~"vnf_commÚ.h
+"
+
+29 \ 2
+ ~"p.h
+"
+
+30 \ 2
+ ~"vnf_commÚ.h
+"
+
+31 #iâdeà
+VNF_ACL
+
+
+32 \ 2
+ ~"lib_¬p.h
+"
+
+35 \ 2
+ ~<¹e_\9d.h
+>
+
+36 \ 2
+ ~<¹e_udp.h
+>
+
+37 \ 2
+ ~<¹e_¡r\9ag_âs.h
+>
+
+39
+u\9at16_t
+
+ gv\94bo£_Ëv\96
+ = 1;
+
+40
+u\9at16_t
+
+ gnb_pkt_³r_bur¡
+ =
+DEF_PKT_BURST
+;
+
+46 #ifdeà
+__GCC__
+
+
+47 \ 1
+ #RTE_BE_TO_CPU_16
+(
+be_16_v
+è
+ `¹e_be_to_ýu_16
+((be_16_v))
+
+ )
+
+48 \ 1
+ #RTE_CPU_TO_BE_16
+(
+ýu_16_v
+è
+ `¹e_ýu_to_be_16
+((ýu_16_v))
+
+ )
+
+50 #ià
+RTE_BYTE_ORDER
+ =ð
+RTE_BIG_ENDIAN
+
+
+51 \ 1
+ #RTE_BE_TO_CPU_16
+(
+be_16_v
+è(be_16_v)
+
+ )
+
+52 \ 1
+ #RTE_CPU_TO_BE_16
+(
+ýu_16_v
+è(ýu_16_v)
+
+ )
+
+54 \ 1
+ #RTE_BE_TO_CPU_16
+(
+be_16_v
+) \
+
+55 ((
+u\9at16_t
+è((((
+be_16_v
+è& 0xFFè<< 8è| ((be_16_vè>> 8)))
+
+ )
+
+56 \ 1
+ #RTE_CPU_TO_BE_16
+(
+ýu_16_v
+) \
+
+57 ((
+u\9at16_t
+è((((
+ýu_16_v
+è& 0xFFè<< 8è| ((ýu_16_vè>> 8)))
+
+ )
+
+65 \19
+ scmd_¬p_add_»suÉ
+ {
+
+66
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+67
+u\9at32_t
+
+ mp
+;
+
+68
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬·dd_¡r\9ag
+;
+
+69
+u\9at32_t
+
+ mpÜt_id
+;
+
+70
+cmdl\9ae_\9daddr_t
+
+ m\9d
+;
+
+71 \19
+\91h\94_addr
+
+ mmaÿddr
+;
+
+76
+ $cmd_¬p_add_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+77
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+79 \19
+cmd_¬p_add_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+80
+u\9at8_t
+
+\9dv6
+[16];
+
+83 \19
+p\9d\96\9ae_¬p_icmp_¬p_key
+
+key
+;
+
+84
+key
+.
+ty³
+ =
+PIPELINE_ARP_ICMP_ARP_IPV4
+;
+
+85
+key
+.key.
+\9dv4
+.
+pÜt_id
+ =
+·¿ms
+->port_id;
+
+86
+key
+.key.
+\9dv4
+.
+\9d
+ =
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->\9d.
+addr
+.\9dv4.
+s_addr
+);
+
+87
+ `pÝuÏ\8b_¬p_\92\8cy
+(&
+»q
+->
+maÿddr
+,
+ `¹e_bsw32
+Ôeq->
+key
+.key.
+\9dv4
+.
+\9d
+),
+
+88
+»q
+->
+key
+.key.
+\9dv4
+.
+pÜt_id
+);
+
+90 ià(
+·¿ms
+->
+\9d
+.
+çm\9ey
+ =ð
+AF_INET
+) {
+
+91
+ `pÝuÏ\8b_¬p_\92\8cy
+(&
+·¿ms
+->
+maÿddr
+,
+
+92
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->
+\9d
+.
+addr
+.
+
+93
+\9dv4
+.
+s_addr
+),
+
+94
+·¿ms
+->
+pÜt_id
+
+
+95 #iâdeà
+VNF_ACL
+
+
+96 ,
+STATIC_ARP
+
+
+100
+ `memýy
+(
+\9dv6
+,
+·¿ms
+->
+\9d
+.
+addr
+.\9dv6.
+s6_addr
+, 16);
+
+101
+ `pÝuÏ\8b_nd_\92\8cy
+(&
+·¿ms
+->
+maÿddr
+,
+\9dv6
+,\85¬ams->
+pÜt_id
+
+
+102 #iâdeà
+VNF_ACL
+
+
+103 ,
+STATIC_ND
+
+
+107
+ }
+}
+
+109 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_add_p_¡r\9ag
+ =
+
+110
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+p_¡r\9ag
+,
+
+113 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_add_p
+ =
+
+114
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+p
+,
+UINT32
+);
+
+116 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_add_¬p_¡r\9ag
+ =
+
+117
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+¬·dd_¡r\9ag
+, "arpadd");
+
+119 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_add_pÜt_id
+ =
+
+120
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+pÜt_id
+,
+UINT32
+);
+
+122 \18
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_¬p_add_\9d
+ =
+
+123
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+\9d
+);
+
+125 \18
+cmdl\9ae_·r£_tok\92_\91h\94addr_t
+
+ gcmd_¬p_add_maÿddr
+ =
+
+126
+TOKEN_ETHERADDR_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+maÿddr
+);
+
+128 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_add
+ = {
+
+129 .
+f
+ =
+cmd_¬p_add_·r£d
+,
+
+130 .
+ gd©a
+ =
+NULL
+,
+
+131 .
+ gh\96p_¡r
+ = "ARP\87dd",
+
+132 .
+ gtok\92s
+ = {
+
+133 (\1e*)&
+cmd_¬p_add_p_¡r\9ag
+,
+
+134 (\1e*)&
+cmd_¬p_add_p
+,
+
+135 (\1e*)&
+cmd_¬p_add_¬p_¡r\9ag
+,
+
+136 (\1e*)&
+cmd_¬p_add_pÜt_id
+,
+
+137 (\1e*)&
+cmd_¬p_add_\9d
+,
+
+138 (\1e*)&
+cmd_¬p_add_maÿddr
+,
+
+139
+NULL
+,
+
+147 \19
+ scmd_¬p_d\96_»suÉ
+ {
+
+148
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+149
+u\9at32_t
+
+ mp
+;
+
+150
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+151
+u\9at32_t
+
+ mpÜt_id
+;
+
+152
+cmdl\9ae_\9daddr_t
+
+ m\9d
+;
+
+156
+ $cmd_¬p_d\96_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+157
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+159 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+160
+u\9at8_t
+
+\9dv6
+[16];
+
+163 \19
+p\9d\96\9ae_¬p_icmp_¬p_key
+
+key
+;
+
+164
+key
+.
+ty³
+ =
+PIPELINE_ARP_ICMP_ARP_IPV4
+;
+
+165
+key
+.key.
+\9dv4
+.
+\9d
+ =
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->\9d.
+addr
+.\9dv4.
+s_addr
+);
+
+166
+key
+.key.
+\9dv4
+.
+pÜt_id
+ =
+·¿ms
+->port_id;
+
+167
+ `»move_¬p_\92\8cy
+(
+ `¹e_bsw32
+(
+»q
+->
+key
+.key.
+\9dv4
+.
+\9d
+),
+
+168
+»q
+->
+key
+.key.
+\9dv4
+.
+pÜt_id
+);
+
+170 ià(
+·¿ms
+->
+\9d
+.
+çm\9ey
+ =ð
+AF_INET
+) {
+
+171
+ `»move_¬p_\92\8cy
+(
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+),
+
+172
+·¿ms
+->
+pÜt_id
+
+
+173 #iâdeà
+VNF_ACL
+
+
+174 ,
+NULL
+
+
+178
+ `memýy
+(
+\9dv6
+,
+·¿ms
+->
+\9d
+.
+addr
+.\9dv6.
+s6_addr
+, 16);
+
+179
+ `»move_nd_\92\8cy_\9dv6
+(
+\9dv6
+,
+·¿ms
+->
+pÜt_id
+);
+
+181
+ }
+}
+
+183 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_d\96_p_¡r\9ag
+ =
+
+184
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+p_¡r\9ag
+,
+
+187 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_d\96_p
+ =
+
+188
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+p
+,
+UINT32
+);
+
+190 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_d\96_¬p_¡r\9ag
+ =
+
+191
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "arpdel");
+
+193 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_d\96_pÜt_id
+ =
+
+194
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+pÜt_id
+,
+UINT32
+);
+
+196 \18
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_¬p_d\96_\9d
+ =
+
+197
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+\9d
+);
+
+199 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_d\96
+ = {
+
+200 .
+f
+ =
+cmd_¬p_d\96_·r£d
+,
+
+201 .
+ gd©a
+ =
+NULL
+,
+
+202 .
+ gh\96p_¡r
+ = "ARP delete",
+
+203 .
+ gtok\92s
+ = {
+
+204 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+205 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+206 (\1e*)&
+cmd_¬p_d\96_¬p_¡r\9ag
+,
+
+207 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+208 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+209
+NULL
+,
+
+220
+ $cmd_¬p_»q_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+221
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+223 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+226 \19
+¬p_key_\9dv4
+
+key
+;
+
+232
+key
+.
+\9d
+ =
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->\9d.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+233
+key
+.
+pÜt_id
+ =
+·¿ms
+->port_id;
+
+234
+key
+.
+f\9eËr1
+ = 0;
+
+235
+key
+.
+f\9eËr2
+ = 0;
+
+236
+key
+.
+f\9eËr3
+ = 0;
+
+238 \19
+¬p_\92\8cy_d©a
+ *
+¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+key
+);
+
+240 ià(
+¬p_d©a
+) {
+
+241 ià(
+ARPICMP_DEBUG
+)
+
+242
+ `´\9atf
+("ARP\83ntry\83xists for ip 0x%x,\85ort %d\n",
+
+243
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+247 ià(
+ARPICMP_DEBUG
+)
+
+248
+ `´\9atf
+("ARP -\84equesting\87rp for ip 0x%x,\85ort %d\n",
+
+249
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+251 #ifdeà
+VNF_ACL
+
+
+252
+ `»que¡_¬p_w¿p
+(
+·¿ms
+->
+pÜt_id
+,\85¬ams->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+254
+ `»que¡_¬p
+(
+·¿ms
+->
+pÜt_id
+,\85¬ams->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+257
+ }
+}
+
+259 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_»q_¡r\9ag
+ =
+
+260
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "arpreq");
+
+262 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_»q
+ = {
+
+263 .
+f
+ =
+cmd_¬p_»q_·r£d
+,
+
+264 .
+ gd©a
+ =
+NULL
+,
+
+265 .
+ gh\96p_¡r
+ = "ARP\84equest",
+
+266 .
+ gtok\92s
+ = {
+
+267 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+268 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+269 (\1e*)&
+cmd_¬p_»q_¡r\9ag
+,
+
+270 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+271 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+272
+NULL
+,
+
+283
+ $cmd_icmp_echo_»q_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+284
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+285
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+287 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+289 ià(
+ARPICMP_DEBUG
+)
+
+290
+ `´\9atf
+("Echo Req Handler ip %x,\85ort %d\n",
+
+291
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+293
+ `»que¡_echo
+(
+·¿ms
+->
+pÜt_id
+,\85¬ams->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+294
+ }
+}
+
+296 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_icmp_echo_»q_¡r\9ag
+ =
+
+297
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "icmpecho");
+
+299 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_icmp_echo_»q
+ = {
+
+300 .
+f
+ =
+cmd_icmp_echo_»q_·r£d
+,
+
+301 .
+ gd©a
+ =
+NULL
+,
+
+302 .
+ gh\96p_¡r
+ = "ICMP\83cho\84equest",
+
+303 .
+ gtok\92s
+ = {
+
+304 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+305 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+306 (\1e*)&
+cmd_icmp_echo_»q_¡r\9ag
+,
+
+307 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+308 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+309
+NULL
+,
+
+317 \19
+ scmd_¬p_ls_»suÉ
+ {
+
+318
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+319
+u\9at32_t
+
+ mp
+;
+
+320
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+324
+ $cmd_¬p_ls_·r£d
+(
+__¹e_unu£d
+ \1e*
+·r£d_»suÉ
+,
+
+325
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+327
+ `´\9atf
+("\nARP\81able ...\n");
+
+328
+ `´\9atf
+("-------------\n");
+
+329
+ `´\9at_¬p_\8fbË
+();
+
+331
+´\9atf
+
+
+334
+ `´\9atf
+("\nND IPv6\81able:\n");
+
+335
+ `´\9atf
+("--------------\n");
+
+336
+ `´\9at_nd_\8fbË
+();
+
+337
+ }
+}
+
+339 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_ls_p_¡r\9ag
+ =
+
+340
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+p_¡r\9ag
+,
+
+343 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_ls_p
+ =
+
+344
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+p
+,
+UINT32
+);
+
+346 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_ls_¬p_¡r\9ag
+ =
+
+347
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+¬p_¡r\9ag
+,
+
+350 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_ls
+ = {
+
+351 .
+f
+ =
+cmd_¬p_ls_·r£d
+,
+
+352 .
+ gd©a
+ =
+NULL
+,
+
+353 .
+ gh\96p_¡r
+ = "ARP\86ist",
+
+354 .
+ gtok\92s
+ = {
+
+355 (\1e*)&
+cmd_¬p_ls_p_¡r\9ag
+,
+
+356 (\1e*)&
+cmd_¬p_ls_p
+,
+
+357 (\1e*)&
+cmd_¬p_ls_¬p_¡r\9ag
+,
+
+358
+NULL
+,
+
+366 \19
+ scmd_show_pÜts_\9afo_»suÉ
+ {
+
+367
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+368
+u\9at32_t
+
+ mp
+;
+
+369
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+373
+ $cmd_show_pÜts_\9afo_·r£d
+(
+__¹e_unu£d
+ \1e*
+·r£d_»suÉ
+,
+
+374
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+375
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+377
+ `show_pÜts_\9afo
+();
+
+378
+ }
+}
+
+380 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_show_pÜts_\9afo_¡r\9ag
+ =
+
+381
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+¬p_¡r\9ag
+,
+
+384 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_show_pÜts_\9afo
+ = {
+
+385 .
+f
+ =
+cmd_show_pÜts_\9afo_·r£d
+,
+
+386 .
+ gd©a
+ =
+NULL
+,
+
+387 .
+ gh\96p_¡r
+ = "show\85orts info",
+
+388 .
+ gtok\92s
+ = {
+
+389 (\1e*)&
+cmd_¬p_ls_p_¡r\9ag
+,
+
+390 (\1e*)&
+cmd_¬p_ls_p
+,
+
+391 (\1e*)&
+cmd_show_pÜts_\9afo_¡r\9ag
+,
+
+392
+NULL
+,
+
+396 #iâdeà
+VNF_ACL
+
+
+397 \19
+ scmd_¬p_dbg_»suÉ
+ {
+
+398
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬pdbg_¡r
+;
+
+399
+u\9at32_t
+
+ mæag
+;
+
+402
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_dbg_¡r\9ag
+ =
+
+403
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_dbg_»suÉ
+,
+¬pdbg_¡r
+,
+
+405
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_dbg_æag
+ =
+
+406
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_dbg_»suÉ
+,
+æag
+,
+UINT32
+);
+
+409
+cmd_¬p_dbg_·r£
+(
+
+410 \1e*
+·r£d_»suÉ
+,
+
+411
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+412
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+414 \19
+cmd_¬p_dbg_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+415 if(
+ g·¿ms
+)
+
+417
+£t_¬pdebug
+(
+·¿ms
+->
+æag
+);
+
+421
+´\9atf
+("%s: P¬am i NULL",
+__FUNCTION__
+);
+
+425
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_dbg
+ = {
+
+426 .
+f
+ =
+cmd_¬p_dbg_·r£
+,
+
+427 .
+ gd©a
+ =
+NULL
+,
+
+428 .
+ gh\96p_¡r
+ = "Turn on/off(1/0)\87rp debug",
+
+429 .
+ gtok\92s
+ = {
+
+430 (\1e*)&
+cmd_¬p_dbg_¡r\9ag
+,
+
+431 (\1e*)&
+cmd_¬p_dbg_æag
+,
+
+432
+NULL
+,
+
+436 \19
+ scmd_¬p_tim\94_»suÉ
+ {
+
+437
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬±im\94_¡r
+;
+
+438
+u\9at32_t
+
+ m¬±im\94_v®
+;
+
+441
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_tim\94_¡r\9ag
+ =
+
+442
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_tim\94_»suÉ
+,
+¬±im\94_¡r
+,
+
+444
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_tim\94_v®
+ =
+
+445
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_tim\94_»suÉ
+,
+¬±im\94_v®
+,
+UINT32
+);
+
+448
+cmd_¬p_tim\94_·r£
+(
+
+449 \1e*
+·r£d_»suÉ
+,
+
+450
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+451
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+453 \19
+cmd_¬p_tim\94_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+454 if(
+ g·¿ms
+)
+
+456
+£t_¬±imeout
+(
+·¿ms
+->
+¬±im\94_v®
+);
+
+460
+´\9atf
+("%s: P¬am i NULL",
+__FUNCTION__
+);
+
+464
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_tim\94
+ = {
+
+465 .
+f
+ =
+cmd_¬p_tim\94_·r£
+,
+
+466 .
+ gd©a
+ =
+NULL
+,
+
+467 .
+ gh\96p_¡r
+ = "Timer\83xpiry val by def 10 sec",
+
+468 .
+ gtok\92s
+ = {
+
+469 (\1e*)&
+cmd_¬p_tim\94_¡r\9ag
+,
+
+470 (\1e*)&
+cmd_¬p_tim\94_v®
+,
+
+471
+NULL
+,
+
+483
+ $pkt_bur¡_io_fÜw¬d
+(\19
+fwd_¡»am
+ *
+fs
+)
+
+485 \19
+¹e_mbuf
+ *
+pkts_bur¡
+[
+MAX_PKT_BURST
+];
+
+486
+u\9at16_t
+
+nb_rx
+;
+
+487
+u\9at16_t
+
+nb_tx
+;
+
+489 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+490
+u\9at64_t
+
+¡¬t_tsc
+;
+
+491
+u\9at64_t
+
+\92d_tsc
+;
+
+492
+u\9at64_t
+
+cÜe_cyþes
+;
+
+495 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+496
+¡¬t_tsc
+ =
+ `¹e_rdtsc
+();
+
+502
+nb_rx
+ =
+ `¹e_\91h_rx_bur¡
+(
+fs
+->
+rx_pÜt
+, fs->
+rx_queue
+,
+pkts_bur¡
+,
+
+503
+nb_pkt_³r_bur¡
+);
+
+504 ià(
+ `uÆik\96y
+(
+nb_rx
+ == 0))
+
+507 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+508
+fs
+->
+rx_bur¡_¡©s
+.
+pkt_bur¡_¥»ad
+[
+nb_rx
+]++;
+
+511
+fs
+->
+rx_·ck\91s
+ +ð
+nb_rx
+;
+
+512
+nb_tx
+ =
+ `¹e_\91h_tx_bur¡
+(
+fs
+->
+tx_pÜt
+, fs->
+tx_queue
+,
+pkts_bur¡
+,
+nb_rx
+);
+
+513
+fs
+->
+tx_·ck\91s
+ +ð
+nb_tx
+;
+
+515 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+516
+fs
+->
+tx_bur¡_¡©s
+.
+pkt_bur¡_¥»ad
+[
+nb_tx
+]++;
+
+519 ià(
+ `uÆik\96y
+(
+nb_tx
+ <
+nb_rx
+)) {
+
+520
+fs
+->
+fwd_drݳd
+ +ð(
+nb_rx
+ -
+nb_tx
+);
+
+522
+ `¹e_pktmbuf_ä\93
+(
+pkts_bur¡
+[
+nb_tx
+]);
+
+523 } \1f++
+nb_tx
+ <
+nb_rx
+);
+
+526 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+527
+\92d_tsc
+ =
+ `¹e_rdtsc
+();
+
+528
+cÜe_cyþes
+ = (
+\92d_tsc
+ -
+¡¬t_tsc
+);
+
+529
+fs
+->
+cÜe_cyþes
+ = (
+u\9at64_t
+) (fs->core_cycles + core_cycles);
+
+531
+ }
+}
+
+534 \19
+fwd_\92g\9ae
+
+ gio_fwd_\92g\9ae
+ = {
+
+535 .
+fwd_mode_Çme
+ = "io",
+
+536 .
+ gpÜt_fwd_beg\9a
+ =
+NULL
+,
+
+537 .
+ gpÜt_fwd_\92d
+ =
+NULL
+,
+
+538 .
+ g·ck\91_fwd
+ =
+pkt_bur¡_io_fÜw¬d
+,
+
+541 \18
+\9al\9ae
+ \1e
+ $´\9at_\91h\94_addr
+(
+
+542 cڡ \ 5*
+wh©
+,
+
+543 \19
+\91h\94_addr
+ *
+\91h_addr
+)
+
+545 \ 5
+buf
+[
+ETHER_ADDR_FMT_SIZE
+];
+
+546
+ `\91h\94_fÜm©_addr
+(
+buf
+,
+ETHER_ADDR_FMT_SIZE
+,
+\91h_addr
+);
+
+547
+ `´\9atf
+("%s%s",
+wh©
+,
+buf
+);
+
+548
+ }
+}
+
+554
+ $pkt_bur¡_»ûive
+(\19
+fwd_¡»am
+ *
+fs
+)
+
+556 \19
+¹e_mbuf
+ *
+pkts_bur¡
+[
+MAX_PKT_BURST
+];
+
+557 \19
+¹e_mbuf
+ *
+mb
+;
+
+558 \19
+\91h\94_hdr
+ *
+\91h_hdr
+;
+
+559
+u\9at16_t
+
+\91h_ty³
+;
+
+560
+u\9at64_t
+
+Þ_æags
+;
+
+561
+u\9at16_t
+
+nb_rx
+;
+
+562
+u\9at16_t
+
+i
+,
+·ck\91_ty³
+;
+
+563
+u\9at16_t
+
+is_\92ÿpsuÏtiÚ
+;
+
+565 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+566
+u\9at64_t
+
+¡¬t_tsc
+;
+
+567
+u\9at64_t
+
+\92d_tsc
+;
+
+568
+u\9at64_t
+
+cÜe_cyþes
+;
+
+571 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+572
+¡¬t_tsc
+ =
+ `¹e_rdtsc
+();
+
+578
+nb_rx
+ =
+ `¹e_\91h_rx_bur¡
+(
+fs
+->
+rx_pÜt
+, fs->
+rx_queue
+,
+pkts_bur¡
+,
+
+579
+nb_pkt_³r_bur¡
+);
+
+580 ià(
+ `uÆik\96y
+(
+nb_rx
+ == 0))
+
+583 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+584
+fs
+->
+rx_bur¡_¡©s
+.
+pkt_bur¡_¥»ad
+[
+nb_rx
+]++;
+
+587
+fs
+->
+rx_·ck\91s
+ +ð
+nb_rx
+;
+
+592 ià(
+v\94bo£_Ëv\96
+ > 0)
+
+593
+ `´\9atf
+("port %u/queue %u:\84eceived %u\85ackets\n",
+
+594 (\1d\12è
+fs
+->
+rx_pÜt
+,
+
+595 (\1d\12è
+fs
+->
+rx_queue
+,
+
+596 (\1d\12è
+nb_rx
+);
+
+597 \ f
+i
+ = 0; i <
+nb_rx
+; i++) {
+
+598
+mb
+ =
+pkts_bur¡
+[
+i
+];
+
+599 ià(
+v\94bo£_Ëv\96
+ == 0) {
+
+600
+ `¹e_pktmbuf_ä\93
+(
+mb
+);
+
+603
+\91h_hdr
+ =
+ `¹e_pktmbuf_mtod
+(
+mb
+, \19
+\91h\94_hdr
+ *);
+
+604
+\91h_ty³
+ =
+ `RTE_BE_TO_CPU_16
+(
+\91h_hdr
+->
+\91h\94_ty³
+);
+
+605
+Þ_æags
+ =
+mb
+->ol_flags;
+
+606
+·ck\91_ty³
+ =
+mb
+->packet_type;
+
+607
+is_\92ÿpsuÏtiÚ
+ =
+ `RTE_ETH_IS_TUNNEL_PKT
+(
+·ck\91_ty³
+);
+
+609
+ `´\9at_\91h\94_addr
+(" src=", &
+\91h_hdr
+->
+s_addr
+);
+
+610
+ `´\9at_\91h\94_addr
+(" - d¡=", &
+\91h_hdr
+->
+d_addr
+);
+
+611
+ `´\9atf
+(" -\81ype=0x%04x -\86ength=%u -\82b_segs=%d",
+
+612
+\91h_ty³
+, (\1d\12è
+mb
+->
+pkt_Ën
+,
+
+613 (\12)
+mb
+->
+nb_£gs
+);
+
+614 ià(
+Þ_æags
+ &
+PKT_RX_RSS_HASH
+) {
+
+615
+ `´\9atf
+(" - RSS hash=0x%x", (\1d\12)
+
+616
+mb
+->
+hash
+.
+rss
+);
+
+617
+ `´\9atf
+(" - RSS queue=0x%x", (\1d\12)
+
+618
+fs
+->
+rx_queue
+);
+
+619 } \vià(
+Þ_æags
+ &
+PKT_RX_FDIR
+) {
+
+620
+ `´\9atf
+(" - FDIR matched ");
+
+621 ià(
+Þ_æags
+ &
+PKT_RX_FDIR_ID
+)
+
+622
+ `´\9atf
+("ID=0x%x",
+
+623
+mb
+->
+hash
+.
+fd\9c
+.
+hi
+);
+
+624 \vià(
+Þ_æags
+ &
+PKT_RX_FDIR_FLX
+)
+
+625
+ `´\9atf
+("flex bytes=0x%08x %08x",
+
+626
+mb
+->
+hash
+.
+fd\9c
+.
+hi
+, mb->hash.fd\9c.
+lo
+);
+
+628
+ `´\9atf
+("hash=0x%x ID=0x%x ",
+
+629
+mb
+->
+hash
+.
+fd\9c
+.hash, mb->hash.fd\9c.
+id
+);
+
+631 ià(
+Þ_æags
+ &
+PKT_RX_VLAN_PKT
+)
+
+632
+ `´\9atf
+(" - VLAN\81ci=0x%x",
+mb
+->
+vÏn_tci
+);
+
+633 ià(
+Þ_æags
+ &
+PKT_RX_QINQ_PKT
+)
+
+634
+ `´\9atf
+(" - QinQ VLAN\81ci=0x%x, VLAN\81ci outer=0x%x",
+
+635
+mb
+->
+vÏn_tci
+, mb->
+vÏn_tci_ou\8br
+);
+
+636 ià(
+mb
+->
+·ck\91_ty³
+) {
+
+637
+u\9at32_t
+
+±y³
+;
+
+640
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_L2_MASK
+;
+
+641 \1a
+±y³
+) {
+
+642 \ 4
+RTE_PTYPE_L2_ETHER
+:
+
+643
+ `´\9atf
+(" - (outer) L2\81ype: ETHER");
+
+645 \ 4
+RTE_PTYPE_L2_ETHER_TIMESYNC
+:
+
+646
+ `´\9atf
+(" - (outer) L2\81ype: ETHER_Timesync");
+
+648 \ 4
+RTE_PTYPE_L2_ETHER_ARP
+:
+
+649
+ `´\9atf
+(" - (outer) L2\81ype: ETHER_ARP");
+
+651 \ 4
+RTE_PTYPE_L2_ETHER_LLDP
+:
+
+652
+ `´\9atf
+(" - (outer) L2\81ype: ETHER_LLDP");
+
+655
+ `´\9atf
+(" - (outer) L2\81ype: Unknown");
+
+660
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_L3_MASK
+;
+
+661 \1a
+±y³
+) {
+
+662 \ 4
+RTE_PTYPE_L3_IPV4
+:
+
+663
+ `´\9atf
+(" - (outer) L3\81ype: IPV4");
+
+665 \ 4
+RTE_PTYPE_L3_IPV4_EXT
+:
+
+666
+ `´\9atf
+(" - (outer) L3\81ype: IPV4_EXT");
+
+668 \ 4
+RTE_PTYPE_L3_IPV6
+:
+
+669
+ `´\9atf
+(" - (outer) L3\81ype: IPV6");
+
+671 \ 4
+RTE_PTYPE_L3_IPV4_EXT_UNKNOWN
+:
+
+672
+ `´\9atf
+(" - (outer) L3\81ype: IPV4_EXT_UNKNOWN");
+
+674 \ 4
+RTE_PTYPE_L3_IPV6_EXT
+:
+
+675
+ `´\9atf
+(" - (outer) L3\81ype: IPV6_EXT");
+
+677 \ 4
+RTE_PTYPE_L3_IPV6_EXT_UNKNOWN
+:
+
+678
+ `´\9atf
+(" - (outer) L3\81ype: IPV6_EXT_UNKNOWN");
+
+681
+ `´\9atf
+(" - (outer) L3\81ype: Unknown");
+
+686
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_L4_MASK
+;
+
+687 \1a
+±y³
+) {
+
+688 \ 4
+RTE_PTYPE_L4_TCP
+:
+
+689
+ `´\9atf
+(" - (outer) L4\81ype: TCP");
+
+691 \ 4
+RTE_PTYPE_L4_UDP
+:
+
+692
+ `´\9atf
+(" - (outer) L4\81ype: UDP");
+
+694 \ 4
+RTE_PTYPE_L4_FRAG
+:
+
+695
+ `´\9atf
+(" - (outer) L4\81ype: L4_FRAG");
+
+697 \ 4
+RTE_PTYPE_L4_SCTP
+:
+
+698
+ `´\9atf
+(" - (outer) L4\81ype: SCTP");
+
+700 \ 4
+RTE_PTYPE_L4_ICMP
+:
+
+701
+ `´\9atf
+(" - (outer) L4\81ype: ICMP");
+
+703 \ 4
+RTE_PTYPE_L4_NONFRAG
+:
+
+704
+ `´\9atf
+(" - (outer) L4\81ype: L4_NONFRAG");
+
+707
+ `´\9atf
+(" - (outer) L4\81ype: Unknown");
+
+712
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_TUNNEL_MASK
+;
+
+713 \1a
+±y³
+) {
+
+714 \ 4
+RTE_PTYPE_TUNNEL_IP
+:
+
+715
+ `´\9atf
+(" - Tunnel\81ype: IP");
+
+717 \ 4
+RTE_PTYPE_TUNNEL_GRE
+:
+
+718
+ `´\9atf
+(" - Tunnel\81ype: GRE");
+
+720 \ 4
+RTE_PTYPE_TUNNEL_VXLAN
+:
+
+721
+ `´\9atf
+(" - Tunnel\81ype: VXLAN");
+
+723 \ 4
+RTE_PTYPE_TUNNEL_NVGRE
+:
+
+724
+ `´\9atf
+(" - Tunnel\81ype: NVGRE");
+
+726 \ 4
+RTE_PTYPE_TUNNEL_GENEVE
+:
+
+727
+ `´\9atf
+(" - Tunnel\81ype: GENEVE");
+
+729 \ 4
+RTE_PTYPE_TUNNEL_GRENAT
+:
+
+730
+ `´\9atf
+(" - Tunnel\81ype: GRENAT");
+
+733
+ `´\9atf
+(" - Tunnel\81ype: Unknown");
+
+738
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_INNER_L2_MASK
+;
+
+739 \1a
+±y³
+) {
+
+740 \ 4
+RTE_PTYPE_INNER_L2_ETHER
+:
+
+741
+ `´\9atf
+(" - Inner L2\81ype: ETHER");
+
+743 \ 4
+RTE_PTYPE_INNER_L2_ETHER_VLAN
+:
+
+744
+ `´\9atf
+(" - Inner L2\81ype: ETHER_VLAN");
+
+747
+ `´\9atf
+(" - Inner L2\81ype: Unknown");
+
+751
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_INNER_L3_MASK
+;
+
+752 \1a
+±y³
+) {
+
+753 \ 4
+RTE_PTYPE_INNER_L3_IPV4
+:
+
+754
+ `´\9atf
+(" - Inner L3\81ype: IPV4");
+
+756 \ 4
+RTE_PTYPE_INNER_L3_IPV4_EXT
+:
+
+757
+ `´\9atf
+(" - Inner L3\81ype: IPV4_EXT");
+
+759 \ 4
+RTE_PTYPE_INNER_L3_IPV6
+:
+
+760
+ `´\9atf
+(" - Inner L3\81ype: IPV6");
+
+762 \ 4
+RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN
+:
+
+763
+ `´\9atf
+(" - Inner L3\81ype: "
+
+766 \ 4
+RTE_PTYPE_INNER_L3_IPV6_EXT
+:
+
+767
+ `´\9atf
+(" - Inner L3\81ype: IPV6_EXT");
+
+769 \ 4
+RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN
+:
+
+770
+ `´\9atf
+(" - Inner L3\81ype: "
+
+774
+ `´\9atf
+(" - Inner L3\81ype: Unknown");
+
+779
+±y³
+ =
+mb
+->
+·ck\91_ty³
+ &
+RTE_PTYPE_INNER_L4_MASK
+;
+
+780 \1a
+±y³
+) {
+
+781 \ 4
+RTE_PTYPE_INNER_L4_TCP
+:
+
+782
+ `´\9atf
+(" - Inner L4\81ype: TCP");
+
+784 \ 4
+RTE_PTYPE_INNER_L4_UDP
+:
+
+785
+ `´\9atf
+(" - Inner L4\81ype: UDP");
+
+787 \ 4
+RTE_PTYPE_INNER_L4_FRAG
+:
+
+788
+ `´\9atf
+(" - Inner L4\81ype: L4_FRAG");
+
+790 \ 4
+RTE_PTYPE_INNER_L4_SCTP
+:
+
+791
+ `´\9atf
+(" - Inner L4\81ype: SCTP");
+
+793 \ 4
+RTE_PTYPE_INNER_L4_ICMP
+:
+
+794
+ `´\9atf
+(" - Inner L4\81ype: ICMP");
+
+796 \ 4
+RTE_PTYPE_INNER_L4_NONFRAG
+:
+
+797
+ `´\9atf
+(" - Inner L4\81ype: L4_NONFRAG");
+
+800
+ `´\9atf
+(" - Inner L4\81ype: Unknown");
+
+803
+ `´\9atf
+("\n");
+
+805
+ `´\9atf
+("Unknown\85acket\81ype\n");
+
+806 ià(
+is_\92ÿpsuÏtiÚ
+) {
+
+807 \19
+\9dv4_hdr
+ *ipv4_hdr;
+
+808 \19
+\9dv6_hdr
+ *ipv6_hdr;
+
+809 \19
+udp_hdr
+ *udp_hdr;
+
+810
+u\9at8_t
+
+l2_Ën
+;
+
+811
+u\9at8_t
+
+l3_Ën
+;
+
+812
+u\9at8_t
+
+l4_Ën
+;
+
+813
+u\9at8_t
+
+l4_´Ùo
+;
+
+814 \19
+vxÏn_hdr
+ *vxlan_hdr;
+
+816
+l2_Ën
+ = \17(\19
+\91h\94_hdr
+);
+
+819 ià(
+ `RTE_ETH_IS_IPV4_HDR
+(
+·ck\91_ty³
+)) {
+
+820
+l3_Ën
+ = \17(\19
+\9dv4_hdr
+);
+
+821
+\9dv4_hdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+822 \19
+\9dv4_hdr
+ *,
+
+823
+l2_Ën
+);
+
+824
+l4_´Ùo
+ =
+\9dv4_hdr
+->
+Ãxt_´Ùo_id
+;
+
+826
+l3_Ën
+ = \17(\19
+\9dv6_hdr
+);
+
+827
+\9dv6_hdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+828 \19
+\9dv6_hdr
+ *,
+
+829
+l2_Ën
+);
+
+830
+l4_´Ùo
+ =
+\9dv6_hdr
+->
+´Ùo
+;
+
+832 ià(
+l4_´Ùo
+ =ð
+IPPROTO_UDP
+) {
+
+833
+udp_hdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+834 \19
+udp_hdr
+ *,
+
+835
+l2_Ën
+ +
+l3_Ën
+);
+
+836
+l4_Ën
+ = \17(\19
+udp_hdr
+);
+
+837
+vxÏn_hdr
+ =
+ `¹e_pktmbuf_mtod_off£t
+(
+mb
+,
+
+838 \19
+vxÏn_hdr
+ *,
+
+839
+l2_Ën
+ +
+l3_Ën
+ +
+l4_Ën
+);
+
+841
+ `´\9atf
+(" - VXLAN\85acket:\85acket\81ype =%d, "
+
+843
+·ck\91_ty³
+,
+
+844
+ `RTE_BE_TO_CPU_16
+(
+udp_hdr
+->
+d¡_pÜt
+),
+
+845
+ `¹e_be_to_ýu_32
+(
+
+846
+vxÏn_hdr
+->
+vx_vni
+) >> 8);
+
+849
+ `´\9atf
+(" - Reûiv\90queue=0x%x", (\1d\12è
+fs
+->
+rx_queue
+);
+
+850
+ `´\9atf
+("\n");
+
+851 ià(
+Þ_æags
+ != 0) {
+
+852 \1d\12
+rxf
+;
+
+853 cڡ \ 5*
+Çme
+;
+
+855 \ f
+rxf
+ = 0;\84xà< \17(
+mb
+->
+Þ_æags
+) * 8;\84xf++) {
+
+856 ià((
+Þ_æags
+ & (1ULL <<
+rxf
+)) == 0)
+
+858
+Çme
+ =
+ `¹e_g\91_rx_Þ_æag_Çme
+(1ULL <<
+rxf
+);
+
+859 ià(
+Çme
+ =ð
+NULL
+)
+
+861
+ `´\9atf
+(" %s\n",
+Çme
+);
+
+864
+ `¹e_pktmbuf_ä\93
+(
+mb
+);
+
+867 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+868
+\92d_tsc
+ =
+ `¹e_rdtsc
+();
+
+869
+cÜe_cyþes
+ = (
+\92d_tsc
+ -
+¡¬t_tsc
+);
+
+870
+fs
+->
+cÜe_cyþes
+ = (
+u\9at64_t
+) (fs->core_cycles + core_cycles);
+
+872
+ }
+}
+
+874 \19
+fwd_\92g\9ae
+
+ grx_Úly_\92g\9ae
+ = {
+
+875 .
+fwd_mode_Çme
+ = "rxonly",
+
+876 .
+ gpÜt_fwd_beg\9a
+ =
+NULL
+,
+
+877 .
+ gpÜt_fwd_\92d
+ =
+NULL
+,
+
+878 .
+ g·ck\91_fwd
+ =
+pkt_bur¡_»ûive
+,
+
+882 \19
+ scmd_£t_fwd_mode_»suÉ
+ {
+
+883
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m£t
+;
+
+884
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mfwd
+;
+
+885
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mmode
+;
+
+891 \19
+fwd_\92g\9ae
+ *
+ gfwd_\92g\9aes
+[] = {
+
+892 &
+io_fwd_\92g\9ae
+,
+
+894 &
+mac_fwd_\92g\9ae
+,
+
+895 &
+mac_»\8cy_fwd_\92g\9ae
+,
+
+896 &
+mac_sw_\92g\9ae
+,
+
+897 &
+æow_g\92_\92g\9ae
+,
+
+899 &
+rx_Úly_\92g\9ae
+,
+
+901 &
+tx_Úly_\92g\9ae
+,
+
+902 &
+csum_fwd_\92g\9ae
+,
+
+903 &
+icmp_echo_\92g\9ae
+,
+
+904 #ifdeà
+RTE_LIBRTE_IEEE1588
+
+
+905 &
+\9b\931588_fwd_\92g\9ae
+,
+
+908
+NULL
+,
+
+911 \19
+fwd_\92g\9ae
+ *
+ gcur_fwd_\92g
+ = &
+io_fwd_\92g\9ae
+;
+
+913 \1e
+ $£t_pkt_fÜw¬d\9ag_mode
+(cڡ \ 5*
+fwd_mode_Çme
+)
+
+915 \19
+fwd_\92g\9ae
+ *
+fwd_\92g
+;
+
+916 \1d\12
+i
+;
+
+918
+i
+ = 0;
+
+919 \1f(
+fwd_\92g
+ =
+fwd_\92g\9aes
+[
+i
+]è!ð
+NULL
+) {
+
+920 ià(!
+ `¡rcmp
+(
+fwd_\92g
+->
+fwd_mode_Çme
+, fwd_mode_name)) {
+
+921
+ `´\9atf
+("Set %s\85acket forwarding mode\n",
+
+922
+fwd_mode_Çme
+);
+
+923
+cur_fwd_\92g
+ =
+fwd_\92g
+;
+
+926
+i
+++;
+
+928
+ `´\9atf
+("Inv®id % ·ck\91 fÜw¬d\9ag mode\n",
+fwd_mode_Çme
+);
+
+929
+ }
+}
+
+931 \18\1e
+cmd_£t_fwd_mode_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+932
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+933
+__©\8cibu\8b__
+((
+unu£d
+)è\1e*
+d©a
+)
+
+935 \19
+cmd_£t_fwd_mode_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+937
+£t_pkt_fÜw¬d\9ag_mode
+(
+»s
+->
+mode
+);
+
+940
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£tfwd_£t
+ =
+
+941
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_fwd_mode_»suÉ
+,
+£t
+, "set");
+
+942
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£tfwd_fwd
+ =
+
+943
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_fwd_mode_»suÉ
+,
+fwd
+, "fwd");
+
+944
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£tfwd_mode
+ =
+
+945
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_fwd_mode_»suÉ
+,
+mode
+,
+
+948
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_fwd_mode
+ = {
+
+949 .
+f
+ =
+cmd_£t_fwd_mode_·r£d
+,
+
+950 .
+ gd©a
+ =
+NULL
+,
+
+951 .
+ gh\96p_¡r
+ =
+NULL
+,
+
+952 .
+ gtok\92s
+ = {
+
+953 (\1e*)&
+cmd_£tfwd_£t
+,
+
+954 (\1e*)&
+cmd_£tfwd_fwd
+,
+
+955 (\1e*)&
+cmd_£tfwd_mode
+,
+
+956
+NULL
+,
+
+962 \18
+u\9at16_t
+
+
+963
+ $¡r2æowty³
+(\ 5*
+¡r\9ag
+)
+
+965
+u\9at8_t
+
+i
+ = 0;
+
+967 \ 5
+¡r
+[32];
+
+968
+u\9at16_t
+
+ty³
+;
+
+969 }
+æowty³_¡r
+[] = {
+
+970 {"¿w",
+RTE_ETH_FLOW_RAW
+},
+
+971 {"\9dv4",
+RTE_ETH_FLOW_IPV4
+},
+
+972 {"\9dv4-äag",
+RTE_ETH_FLOW_FRAG_IPV4
+},
+
+973 {"\9dv4-tý",
+RTE_ETH_FLOW_NONFRAG_IPV4_TCP
+},
+
+974 {"\9dv4-udp",
+RTE_ETH_FLOW_NONFRAG_IPV4_UDP
+},
+
+975 {"\9dv4-sùp",
+RTE_ETH_FLOW_NONFRAG_IPV4_SCTP
+},
+
+976 {"\9dv4-Ùh\94",
+RTE_ETH_FLOW_NONFRAG_IPV4_OTHER
+},
+
+977 {"\9dv6",
+RTE_ETH_FLOW_IPV6
+},
+
+978 {"\9dv6-äag",
+RTE_ETH_FLOW_FRAG_IPV6
+},
+
+979 {"\9dv6-tý",
+RTE_ETH_FLOW_NONFRAG_IPV6_TCP
+},
+
+980 {"\9dv6-udp",
+RTE_ETH_FLOW_NONFRAG_IPV6_UDP
+},
+
+981 {"\9dv6-sùp",
+RTE_ETH_FLOW_NONFRAG_IPV6_SCTP
+},
+
+982 {"\9dv6-Ùh\94",
+RTE_ETH_FLOW_NONFRAG_IPV6_OTHER
+},
+
+983 {"l2_·ylßd",
+RTE_ETH_FLOW_L2_PAYLOAD
+},
+
+986 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+æowty³_¡r
+); i++) {
+
+987 ià(!
+ `¡rcmp
+(
+æowty³_¡r
+[
+i
+].
+¡r
+,
+¡r\9ag
+))
+
+988 \15
+æowty³_¡r
+[
+i
+].
+ty³
+;
+
+990 \15
+RTE_ETH_FLOW_UNKNOWN
+;
+
+991
+ }
+}
+
+993 \18
+\9al\9ae
+ \12
+
+994
+ $·r£_æexby\8bs
+(cڡ \ 5*
+q_¬g
+,
+u\9at8_t
+ *
+æexby\8bs
+,
+u\9at16_t
+
+max_num
+)
+
+996 \ 5
+s
+[256];
+
+997 cڡ \ 5*
+p
+, *
+p0
+ =
+q_¬g
+;
+
+998 \ 5*
+\92d
+;
+
+999 \1d\13
+\9at_æd
+;
+
+1000 \ 5*
+¡r_æd
+[
+max_num
+];
+
+1001 \12
+i
+;
+
+1002 \1d\12
+size
+;
+
+1003 \12
+»t
+ = -1;
+
+1005
+p
+ =
+ `¡rchr
+(
+p0
+, '(');
+
+1006 ià(
+p
+ =ð
+NULL
+)
+
+1008 ++
+p
+;
+
+1009
+p0
+ =
+ `¡rchr
+(
+p
+, ')');
+
+1010 ià(
+p0
+ =ð
+NULL
+)
+
+1013
+size
+ =
+p0
+ -
+p
+;
+
+1014 ià(
+size
+ >ð\17(
+s
+))
+
+1017
+ `¢´\9atf
+(
+s
+, \17(s), "%.*s",
+size
+,
+p
+);
+
+1018
+»t
+ =
+ `¹e_¡r¥l\99
+(
+s
+, \17(s),
+¡r_æd
+,
+max_num
+, ',');
+
+1019 ià(
+»t
+ < 0 ||\84\91 >
+max_num
+)
+
+1021 \ f
+i
+ = 0; i <
+»t
+; i++) {
+
+1022
+\94ºo
+ = 0;
+
+1023
+\9at_æd
+ =
+ `¡¹oul
+(
+¡r_æd
+[
+i
+], &
+\92d
+, 0);
+
+1024 ià(
+\94ºo
+ !ð0 || *
+\92d
+ !ð'\0' ||
+\9at_æd
+ >
+UINT8_MAX
+)
+
+1026
+æexby\8bs
+[
+i
+] = (
+u\9at8_t
+)
+\9at_æd
+;
+
+1028 \15
+»t
+;
+
+1029
+ }
+}
+
+1032 \19
+ scmd_æow_d\9ceùÜ_»suÉ
+ {
+
+1033
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mæow_d\9ceùÜ_f\9e\8br
+;
+
+1034
+u\9at8_t
+
+ mpÜt_id
+;
+
+1035
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mmode
+;
+
+1036
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mmode_v®ue
+;
+
+1037
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mÝs
+;
+
+1038
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mæow
+;
+
+1039
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mæow_ty³
+;
+
+1040
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\91h\94
+;
+
+1041
+u\9at16_t
+
+ m\91h\94_ty³
+;
+
+1042
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¤c
+;
+
+1043
+cmdl\9ae_\9daddr_t
+
+ m\9d_¤c
+;
+
+1044
+u\9at16_t
+
+ mpÜt_¤c
+;
+
+1045
+cmdl\9ae_fixed_¡r\9ag_t
+
+ md¡
+;
+
+1046
+cmdl\9ae_\9daddr_t
+
+ m\9d_d¡
+;
+
+1047
+u\9at16_t
+
+ mpÜt_d¡
+;
+
+1048
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mv\94ify_\8fg
+;
+
+1049
+u\9at32_t
+
+ mv\94ify_\8fg_v®ue
+;
+
+1050
+cmdl\9ae_\9daddr_t
+
+ mtos
+;
+
+1051
+u\9at8_t
+
+ mtos_v®ue
+;
+
+1052
+cmdl\9ae_\9daddr_t
+
+ m´Ùo
+;
+
+1053
+u\9at8_t
+
+ m´Ùo_v®ue
+;
+
+1054
+cmdl\9ae_\9daddr_t
+
+ m\89l
+;
+
+1055
+u\9at8_t
+
+ m\89l_v®ue
+;
+
+1056
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mvÏn
+;
+
+1057
+u\9at16_t
+
+ mvÏn_v®ue
+;
+
+1058
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mæexby\8bs
+;
+
+1059
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mæexby\8bs_v®ue
+;
+
+1060
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mpf_vf
+;
+
+1061
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdrÝ
+;
+
+1062
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mqueue
+;
+
+1063
+u\9at16_t
+
+ mqueue_id
+;
+
+1064
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mfd_id
+;
+
+1065
+u\9at32_t
+
+ mfd_id_v®ue
+;
+
+1066
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mmac
+;
+
+1067 \19
+\91h\94_addr
+
+ mmac_addr
+;
+
+1068
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mtu\96
+;
+
+1069
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mtuÂ\96_ty³
+;
+
+1070
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mtu\96_id
+;
+
+1071
+u\9at32_t
+
+ mtuÂ\96_id_v®ue
+;
+
+1075
+cmd_æow_d\9ceùÜ_f\9e\8br_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1076
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+1077
+__©\8cibu\8b__
+((
+unu£d
+)è\1e*
+d©a
+)
+
+1079 \19
+cmd_æow_d\9ceùÜ_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1080 \19
+¹e_\91h_fd\9c_f\9e\8br
+
+ g\92\8cy
+;
+
+1081
+u\9at8_t
+
+ gæexby\8bs
+[
+RTE_ETH_FDIR_MAX_FLEXLEN
+];
+
+1082 \ 5*
+ g\92d
+;
+
+1083 \1d\13
+ gvf_id
+;
+
+1084 \12
+ g»t
+ = 0;
+
+1086 ià(
+ g\92abË_hwlb
+) {
+
+1087
+´\9atf
+("Hash Filter is\87lready Defined !\n");
+
+1088
+´\9atf
+("Please undefine HWLD flag\87nd define "
+
+1093
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_suµÜ\8bd
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_FDIR
+);
+
+1094 ià(
+ g»t
+ < 0) {
+
+1095
+´\9atf
+("flow director is\82ot supported on\85ort %u.\n",
+
+1096
+»s
+->
+pÜt_id
+);
+
+1099
+mem£t
+(
+æexby\8bs
+, 0, \17(flexbytes));
+
+1100
+mem£t
+(&
+\92\8cy
+, 0, \17(\19
+¹e_\91h_fd\9c_f\9e\8br
+));
+
+1102 ià(
+ gfd\9c_cÚf
+.
+ gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_MAC_VLAN
+) {
+
+1103 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "MAC-VLAN")) {
+
+1104
+´\9atf
+("Please set mode\81o MAC-VLAN.\n");
+
+1107 } \vià(
+ gfd\9c_cÚf
+.
+ gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_TUNNEL
+) {
+
+1108 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "Tunnel")) {
+
+1109
+´\9atf
+("Please set mode\81o Tunnel.\n");
+
+1113 ià(
+¡rcmp
+(
+»s
+->
+mode_v®ue
+, "IP")) {
+
+1114
+´\9atf
+("Please set mode\81o IP.\n");
+
+1119
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1122
+ g»t
+ =
+·r£_æexby\8bs
+(
+»s
+->
+æexby\8bs_v®ue
+,
+
+1123
+æexby\8bs
+,
+
+1124
+RTE_ETH_FDIR_MAX_FLEXLEN
+);
+
+1125 ià(
+ g»t
+ < 0) {
+
+1126
+´\9atf
+("error: Cannot\85arse flexbytes input.\n");
+
+1130 \1a
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ty³
+) {
+
+1131 \ 4
+ gRTE_ETH_FLOW_FRAG_IPV4
+:
+
+1132 \ 4
+RTE_ETH_FLOW_NONFRAG_IPV4_OTHER
+:
+
+1133
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9d4_æow
+.
+´Ùo
+ =
+»s
+->
+´Ùo_v®ue
+;
+
+1134 \ 4
+ gRTE_ETH_FLOW_NONFRAG_IPV4_UDP
+:
+
+1135 \ 4
+RTE_ETH_FLOW_NONFRAG_IPV4_TCP
+:
+
+1136
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+\9d_d¡
+,
+
+1137
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9d4_æow
+.
+d¡_\9d
+);
+
+1138
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+\9d_¤c
+,
+
+1139
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9d4_æow
+.
+¤c_\9d
+);
+
+1140
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9d4_æow
+.
+ gtos
+ =
+»s
+->
+tos_v®ue
+;
+
+1141
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9d4_æow
+.
+ g\89l
+ =
+»s
+->
+\89l_v®ue
+;
+
+1143
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gudp4_æow
+.
+ gd¡_pÜt
+ =
+
+1144
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1145
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gudp4_æow
+.
+ g¤c_pÜt
+ =
+
+1146
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1149 \ 4
+ gRTE_ETH_FLOW_NONFRAG_IPV4_SCTP
+:
+
+1150
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+\9d_d¡
+,
+
+1151
+\92\8cy
+.
+\9aput
+.
+æow
+.
+sùp4_æow
+.
+\9d
+.
+d¡_\9d
+);
+
+1152
+IPV4_ADDR_TO_UINT
+(
+»s
+->
+\9d_¤c
+,
+
+1153
+\92\8cy
+.
+\9aput
+.
+æow
+.
+sùp4_æow
+.
+\9d
+.
+¤c_\9d
+);
+
+1154
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9d4_æow
+.
+ gtos
+ =
+»s
+->
+tos_v®ue
+;
+
+1155
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9d4_æow
+.
+ g\89l
+ =
+»s
+->
+\89l_v®ue
+;
+
+1157
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp4_æow
+.
+ gd¡_pÜt
+ =
+
+1158
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1159
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp4_æow
+.
+ g¤c_pÜt
+ =
+
+1160
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1161
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp4_æow
+.
+ gv\94ify_\8fg
+ =
+
+1162
+¹e_ýu_to_be_32
+(
+»s
+->
+v\94ify_\8fg_v®ue
+);
+
+1165 \ 4
+ gRTE_ETH_FLOW_FRAG_IPV6
+:
+
+1166 \ 4
+RTE_ETH_FLOW_NONFRAG_IPV6_OTHER
+:
+
+1167
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9dv6_æow
+.
+´Ùo
+ =
+»s
+->
+´Ùo_v®ue
+;
+
+1168 \ 4
+ gRTE_ETH_FLOW_NONFRAG_IPV6_UDP
+:
+
+1169 \ 4
+RTE_ETH_FLOW_NONFRAG_IPV6_TCP
+:
+
+1170
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+\9d_d¡
+,
+
+1171
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9dv6_æow
+.
+d¡_\9d
+);
+
+1172
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+\9d_¤c
+,
+
+1173
+\92\8cy
+.
+\9aput
+.
+æow
+.
+\9dv6_æow
+.
+¤c_\9d
+);
+
+1174
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9dv6_æow
+.
+ gtc
+ =
+»s
+->
+tos_v®ue
+;
+
+1175
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9dv6_æow
+.
+ ghÝ_lim\99s
+ =
+»s
+->
+\89l_v®ue
+;
+
+1177
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gudp6_æow
+.
+ gd¡_pÜt
+ =
+
+1178
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1179
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gudp6_æow
+.
+ g¤c_pÜt
+ =
+
+1180
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1183 \ 4
+ gRTE_ETH_FLOW_NONFRAG_IPV6_SCTP
+:
+
+1184
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+\9d_d¡
+,
+
+1185
+\92\8cy
+.
+\9aput
+.
+æow
+.
+sùp6_æow
+.
+\9d
+.
+d¡_\9d
+);
+
+1186
+IPV6_ADDR_TO_ARRAY
+(
+»s
+->
+\9d_¤c
+,
+
+1187
+\92\8cy
+.
+\9aput
+.
+æow
+.
+sùp6_æow
+.
+\9d
+.
+¤c_\9d
+);
+
+1188
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9dv6_æow
+.
+ gtc
+ =
+»s
+->
+tos_v®ue
+;
+
+1189
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ g\9dv6_æow
+.
+ ghÝ_lim\99s
+ =
+»s
+->
+\89l_v®ue
+;
+
+1191
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp6_æow
+.
+ gd¡_pÜt
+ =
+
+1192
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_d¡
+);
+
+1193
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp6_æow
+.
+ g¤c_pÜt
+ =
+
+1194
+¹e_ýu_to_be_16
+(
+»s
+->
+pÜt_¤c
+);
+
+1195
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gsùp6_æow
+.
+ gv\94ify_\8fg
+ =
+
+1196
+¹e_ýu_to_be_32
+(
+»s
+->
+v\94ify_\8fg_v®ue
+);
+
+1198 \ 4
+ gRTE_ETH_FLOW_L2_PAYLOAD
+:
+
+1199
+\92\8cy
+.
+\9aput
+.
+æow
+.
+l2_æow
+.
+\91h\94_ty³
+ =
+
+1200
+¹e_ýu_to_be_16
+(
+»s
+->
+\91h\94_ty³
+);
+
+1206 ià(
+ gfd\9c_cÚf
+.
+ gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_MAC_VLAN
+)
+
+1207 (\1e)
+¹e_memýy
+(&
+\92\8cy
+.
+\9aput
+.
+æow
+.
+mac_vÏn_æow
+.
+mac_addr
+,
+
+1208 &
+»s
+->
+mac_addr
+,
+
+1209 \17(\19
+\91h\94_addr
+));
+
+1211 ià(
+ gfd\9c_cÚf
+.
+ gmode
+ =ð
+RTE_FDIR_MODE_PERFECT_TUNNEL
+) {
+
+1212 (\1e)
+¹e_memýy
+(&
+\92\8cy
+.
+\9aput
+.
+æow
+.
+tuÂ\96_æow
+.
+mac_addr
+,
+
+1213 &
+»s
+->
+mac_addr
+,
+
+1214 \17(\19
+\91h\94_addr
+));
+
+1215
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gtuÂ\96_æow
+.
+ gtuÂ\96_ty³
+ =
+
+1216
+¡r2fd\9c_tuÂ\96ty³
+(
+»s
+->
+tuÂ\96_ty³
+);
+
+1217
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow
+.
+ gtuÂ\96_æow
+.
+ gtu\96_id
+ =
+
+1218
+¹e_ýu_to_be_32
+(
+»s
+->
+tuÂ\96_id_v®ue
+);
+
+1222 (\1e)
+¹e_memýy
+(
+\92\8cy
+.
+\9aput
+.
+æow_ext
+.
+æexby\8bs
+,
+
+1223
+æexby\8bs
+,
+
+1224
+RTE_ETH_FDIR_MAX_FLEXLEN
+);
+
+1226
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ext
+.
+ gvÏn_tci
+ =
+¹e_ýu_to_be_16
+(
+»s
+->
+vÏn_v®ue
+);
+
+1228
+ g\92\8cy
+.
+ gaùiÚ
+.
+ gæex_off
+ = 0;
+
+1229 ià(!
+¡rcmp
+(
+»s
+->
+drÝ
+, "drop"))
+
+1230
+ g\92\8cy
+.
+ gaùiÚ
+.
+ gbehaviÜ
+ =
+RTE_ETH_FDIR_REJECT
+;
+
+1232
+ g\92\8cy
+.
+ gaùiÚ
+.
+ gbehaviÜ
+ =
+RTE_ETH_FDIR_ACCEPT
+;
+
+1234 ià(!
+¡rcmp
+(
+»s
+->
+pf_vf
+, "pf"))
+
+1235
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ext
+.
+ gis_vf
+ = 0;
+
+1236 \vià(!
+¡ºcmp
+(
+»s
+->
+pf_vf
+, "vf", 2)) {
+
+1237 \19
+¹e_\91h_dev_\9afo
+
+ gdev_\9afo
+;
+
+1239
+mem£t
+(&
+dev_\9afo
+, 0, \17(dev_info));
+
+1240
+¹e_\91h_dev_\9afo_g\91
+(
+»s
+->
+pÜt_id
+, &
+dev_\9afo
+);
+
+1241
+ g\94ºo
+ = 0;
+
+1242
+ gvf_id
+ =
+¡¹oul
+(
+»s
+->
+pf_vf
+ + 2, &
+\92d
+, 10);
+
+1243 ià(
+ g\94ºo
+ !ð0 || *
+\92d
+ !ð'\0' ||
+vf_id
+ >ð
+dev_\9afo
+.
+max_vfs
+) {
+
+1244
+´\9atf
+("\9av®id\85¬am\91\94 %s.\n",
+»s
+->
+pf_vf
+);
+
+1247
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ext
+.
+ gis_vf
+ = 1;
+
+1248
+ g\92\8cy
+.
+ g\9aput
+.
+ gæow_ext
+.
+ gd¡_id
+ = (
+u\9at16_t
+)
+vf_id
+;
+
+1250
+´\9atf
+("\9av®id\85¬am\91\94 %s.\n",
+»s
+->
+pf_vf
+);
+
+1254
+ g\92\8cy
+.
+ gaùiÚ
+.
+ g»pÜt_¡©us
+ =
+RTE_ETH_FDIR_REPORT_ID
+;
+
+1255
+ g\92\8cy
+.
+ gaùiÚ
+.
+ grx_queue
+ =
+»s
+->
+queue_id
+;
+
+1256
+ g\92\8cy
+.
+ gsoá_id
+ =
+»s
+->
+fd_id_v®ue
+;
+
+1257 ià(!
+¡rcmp
+(
+»s
+->
+Ýs
+, "add"))
+
+1258
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_FDIR
+,
+
+1259
+RTE_ETH_FILTER_ADD
+, &
+\92\8cy
+);
+
+1260 \vià(!
+¡rcmp
+(
+»s
+->
+Ýs
+, "del"))
+
+1261
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_FDIR
+,
+
+1262
+RTE_ETH_FILTER_DELETE
+, &
+\92\8cy
+);
+
+1264
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_FDIR
+,
+
+1265
+RTE_ETH_FILTER_UPDATE
+, &
+\92\8cy
+);
+
+1266 ià(
+ g»t
+ < 0)
+
+1267
+´\9atf
+("flow director\85rogramming\83rror: (%s)\n",
+
+1268
+¡»¼Ü
+(-
+»t
+));
+
+1274
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_f\9e\8br
+ =
+
+1275
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1276
+æow_d\9ceùÜ_f\9e\8br
+, "flow_director_filter");
+
+1278
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_pÜt_id
+ =
+
+1279
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1280
+pÜt_id
+,
+UINT8
+);
+
+1283
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_mode
+ =
+
+1284
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1285
+mode
+, "mode");
+
+1287
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_mode_\9d
+ =
+
+1288
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1289
+mode_v®ue
+, "IP");
+
+1291
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_Ýs
+ =
+
+1292
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1293
+Ýs
+, "add#del#update");
+
+1295
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_æow
+ =
+
+1296
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1297
+æow
+, "flow");
+
+1299
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_æow_ty³
+ =
+
+1300
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1301
+æow_ty³
+, "ipv4-other#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
+
+1304
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_¤c
+ =
+
+1305
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1306
+¤c
+, "src");
+
+1307
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_æow_d\9ceùÜ_\9d_¤c
+ =
+
+1308
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1309
+\9d_¤c
+);
+
+1310
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_pÜt_¤c
+ =
+
+1311
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1312
+pÜt_¤c
+,
+UINT16
+);
+
+1313
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_d¡
+ =
+
+1314
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1315
+d¡
+, "dst");
+
+1316
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_æow_d\9ceùÜ_\9d_d¡
+ =
+
+1317
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1318
+\9d_d¡
+);
+
+1319
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_pÜt_d¡
+ =
+
+1320
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1321
+pÜt_d¡
+,
+UINT16
+);
+
+1323
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_tos
+ =
+
+1324
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1325
+tos
+, "tos");
+
+1326
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_tos_v®ue
+ =
+
+1327
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1328
+tos_v®ue
+,
+UINT8
+);
+
+1330
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_\89l
+ =
+
+1331
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1332
+\89l
+, "ttl");
+
+1333
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_\89l_v®ue
+ =
+
+1334
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1335
+\89l_v®ue
+,
+UINT8
+);
+
+1337
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_vÏn
+ =
+
+1338
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1339
+vÏn
+, "vlan");
+
+1340
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_vÏn_v®ue
+ =
+
+1341
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1342
+vÏn_v®ue
+,
+UINT16
+);
+
+1343
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_æexby\8bs
+ =
+
+1344
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1345
+æexby\8bs
+, "flexbytes");
+
+1346
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_æexby\8bs_v®ue
+ =
+
+1347
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1348
+æexby\8bs_v®ue
+,
+NULL
+);
+
+1349
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_drÝ
+ =
+
+1350
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1351
+drÝ
+, "drop#fwd");
+
+1352
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_pf_vf
+ =
+
+1353
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1354
+pf_vf
+,
+NULL
+);
+
+1355
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_queue
+ =
+
+1356
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1357
+queue
+, "queue");
+
+1358
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_queue_id
+ =
+
+1359
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1360
+queue_id
+,
+UINT16
+);
+
+1361
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_fd_id
+ =
+
+1362
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1363
+fd_id
+, "fd_id");
+
+1364
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_fd_id_v®ue
+ =
+
+1365
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1366
+fd_id_v®ue
+,
+UINT32
+);
+
+1369
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_add_d\96_udp_æow_d\9ceùÜ
+ = {
+
+1370 .
+f
+ =
+cmd_æow_d\9ceùÜ_f\9e\8br_·r£d
+,
+
+1371 .
+ gd©a
+ =
+NULL
+,
+
+1372 .
+ gh\96p_¡r
+ = "add or delete\87n udp/tcp flow director\83ntry on NIC",
+
+1373 .
+ gtok\92s
+ = {
+
+1374 (\1e*)&
+cmd_æow_d\9ceùÜ_f\9e\8br
+,
+
+1375 (\1e*)&
+cmd_æow_d\9ceùÜ_pÜt_id
+,
+
+1376 (\1e*)&
+cmd_æow_d\9ceùÜ_mode
+,
+
+1377 (\1e*)&
+cmd_æow_d\9ceùÜ_mode_\9d
+,
+
+1378 (\1e*)&
+cmd_æow_d\9ceùÜ_Ýs
+,
+
+1379 (\1e*)&
+cmd_æow_d\9ceùÜ_æow
+,
+
+1380 (\1e*)&
+cmd_æow_d\9ceùÜ_æow_ty³
+,
+
+1381 (\1e*)&
+cmd_æow_d\9ceùÜ_¤c
+,
+
+1382 (\1e*)&
+cmd_æow_d\9ceùÜ_\9d_¤c
+,
+
+1383 (\1e*)&
+cmd_æow_d\9ceùÜ_pÜt_¤c
+,
+
+1384 (\1e*)&
+cmd_æow_d\9ceùÜ_d¡
+,
+
+1385 (\1e*)&
+cmd_æow_d\9ceùÜ_\9d_d¡
+,
+
+1386 (\1e*)&
+cmd_æow_d\9ceùÜ_pÜt_d¡
+,
+
+1387 (\1e*)&
+cmd_æow_d\9ceùÜ_tos
+,
+
+1388 (\1e*)&
+cmd_æow_d\9ceùÜ_tos_v®ue
+,
+
+1389 (\1e*)&
+cmd_æow_d\9ceùÜ_\89l
+,
+
+1390 (\1e*)&
+cmd_æow_d\9ceùÜ_\89l_v®ue
+,
+
+1391 (\1e*)&
+cmd_æow_d\9ceùÜ_vÏn
+,
+
+1392 (\1e*)&
+cmd_æow_d\9ceùÜ_vÏn_v®ue
+,
+
+1393 (\1e*)&
+cmd_æow_d\9ceùÜ_æexby\8bs
+,
+
+1394 (\1e*)&
+cmd_æow_d\9ceùÜ_æexby\8bs_v®ue
+,
+
+1395 (\1e*)&
+cmd_æow_d\9ceùÜ_drÝ
+,
+
+1396 (\1e*)&
+cmd_æow_d\9ceùÜ_pf_vf
+,
+
+1397 (\1e*)&
+cmd_æow_d\9ceùÜ_queue
+,
+
+1398 (\1e*)&
+cmd_æow_d\9ceùÜ_queue_id
+,
+
+1399 (\1e*)&
+cmd_æow_d\9ceùÜ_fd_id
+,
+
+1400 (\1e*)&
+cmd_æow_d\9ceùÜ_fd_id_v®ue
+,
+
+1401
+NULL
+,
+
+1405
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_æow_d\9ceùÜ_\91h\94
+ =
+
+1406
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1407
+\91h\94
+, "ether");
+
+1408
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_æow_d\9ceùÜ_\91h\94_ty³
+ =
+
+1409
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_æow_d\9ceùÜ_»suÉ
+,
+
+1410
+\91h\94_ty³
+,
+UINT16
+);
+
+1412
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_add_d\96_l2_æow_d\9ceùÜ
+ = {
+
+1413 .
+f
+ =
+cmd_æow_d\9ceùÜ_f\9e\8br_·r£d
+,
+
+1414 .
+ gd©a
+ =
+NULL
+,
+
+1415 .
+ gh\96p_¡r
+ = "add or delete\87 L2 flow director\83ntry on NIC",
+
+1416 .
+ gtok\92s
+ = {
+
+1417 (\1e*)&
+cmd_æow_d\9ceùÜ_f\9e\8br
+,
+
+1418 (\1e*)&
+cmd_æow_d\9ceùÜ_pÜt_id
+,
+
+1419 (\1e*)&
+cmd_æow_d\9ceùÜ_mode
+,
+
+1420 (\1e*)&
+cmd_æow_d\9ceùÜ_mode_\9d
+,
+
+1421 (\1e*)&
+cmd_æow_d\9ceùÜ_Ýs
+,
+
+1422 (\1e*)&
+cmd_æow_d\9ceùÜ_æow
+,
+
+1423 (\1e*)&
+cmd_æow_d\9ceùÜ_æow_ty³
+,
+
+1424 (\1e*)&
+cmd_æow_d\9ceùÜ_\91h\94
+,
+
+1425 (\1e*)&
+cmd_æow_d\9ceùÜ_\91h\94_ty³
+,
+
+1426 (\1e*)&
+cmd_æow_d\9ceùÜ_æexby\8bs
+,
+
+1427 (\1e*)&
+cmd_æow_d\9ceùÜ_æexby\8bs_v®ue
+,
+
+1428 (\1e*)&
+cmd_æow_d\9ceùÜ_drÝ
+,
+
+1429 (\1e*)&
+cmd_æow_d\9ceùÜ_pf_vf
+,
+
+1430 (\1e*)&
+cmd_æow_d\9ceùÜ_queue
+,
+
+1431 (\1e*)&
+cmd_æow_d\9ceùÜ_queue_id
+,
+
+1432 (\1e*)&
+cmd_æow_d\9ceùÜ_fd_id
+,
+
+1433 (\1e*)&
+cmd_æow_d\9ceùÜ_fd_id_v®ue
+,
+
+1434
+NULL
+,
+
+1440 \19
+ scmd_£t_hash_\9aput_£t_»suÉ
+ {
+
+1441
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g£t_hash_\9aput_£t
+;
+
+1442
+u\9at8_t
+
+ gpÜt_id
+;
+
+1443
+cmdl\9ae_fixed_¡r\9ag_t
+
+ gæow_ty³
+;
+
+1444
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\9a£t_f\9bld0
+;
+
+1445
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\9a£t_f\9bld1
+;
+
+1446
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\9a£t_f\9bld2
+;
+
+1447
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\9a£t_f\9bld3
+;
+
+1448
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\9a£t_f\9bld4
+;
+
+1449
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g£Ëù
+;
+
+1452 \18\f
+¹e_\91h_\9aput_£t_f\9bld
+
+
+1453
+¡r2\9a£t
+(\ 5*
+¡r\9ag
+)
+
+1455
+u\9at16_t
+
+ gi
+;
+
+1458 \ 5
+ g¡r
+[32];
+
+1459 \f
+¹e_\91h_\9aput_£t_f\9bld
+
+ g\9a£t
+;
+
+1460 }
+ g\9a£t_\8fbË
+[] = {
+
+1461 {"\91h\94ty³",
+RTE_ETH_INPUT_SET_L2_ETHERTYPE
+},
+
+1462 {"ovÏn",
+RTE_ETH_INPUT_SET_L2_OUTER_VLAN
+},
+
+1463 {"ivÏn",
+RTE_ETH_INPUT_SET_L2_INNER_VLAN
+},
+
+1464 {"¤c-\9dv4",
+RTE_ETH_INPUT_SET_L3_SRC_IP4
+},
+
+1465 {"d¡-\9dv4",
+RTE_ETH_INPUT_SET_L3_DST_IP4
+},
+
+1466 {"\9dv4-tos",
+RTE_ETH_INPUT_SET_L3_IP4_TOS
+},
+
+1467 {"\9dv4-´Ùo",
+RTE_ETH_INPUT_SET_L3_IP4_PROTO
+},
+
+1468 {"\9dv4-\89l",
+RTE_ETH_INPUT_SET_L3_IP4_TTL
+},
+
+1469 {"¤c-\9dv6",
+RTE_ETH_INPUT_SET_L3_SRC_IP6
+},
+
+1470 {"d¡-\9dv6",
+RTE_ETH_INPUT_SET_L3_DST_IP6
+},
+
+1471 {"\9dv6-tc",
+RTE_ETH_INPUT_SET_L3_IP6_TC
+},
+
+1472 {"\9dv6-Ãxt-h\97d\94",
+RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER
+},
+
+1473 {"\9dv6-hÝ-lim\99s",
+RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS
+},
+
+1474 {"udp-¤c-pÜt",
+RTE_ETH_INPUT_SET_L4_UDP_SRC_PORT
+},
+
+1475 {"udp-d¡-pÜt",
+RTE_ETH_INPUT_SET_L4_UDP_DST_PORT
+},
+
+1476 {"tý-¤c-pÜt",
+RTE_ETH_INPUT_SET_L4_TCP_SRC_PORT
+},
+
+1477 {"tý-d¡-pÜt",
+RTE_ETH_INPUT_SET_L4_TCP_DST_PORT
+},
+
+1478 {"sùp-¤c-pÜt",
+RTE_ETH_INPUT_SET_L4_SCTP_SRC_PORT
+},
+
+1479 {"sùp-d¡-pÜt",
+RTE_ETH_INPUT_SET_L4_SCTP_DST_PORT
+},
+
+1480 {"sùp-v\94i-\8fg",
+RTE_ETH_INPUT_SET_L4_SCTP_VERIFICATION_TAG
+},
+
+1481 {"udp-key",
+RTE_ETH_INPUT_SET_TUNNEL_L4_UDP_KEY
+},
+
+1482 {"g»-key",
+RTE_ETH_INPUT_SET_TUNNEL_GRE_KEY
+},
+
+1483 {"æd-1¡",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_1ST_WORD
+},
+
+1484 {"æd-2nd",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_2ND_WORD
+},
+
+1485 {"æd-3rd",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_3RD_WORD
+},
+
+1486 {"æd-4th",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_4TH_WORD
+},
+
+1487 {"æd-5th",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_5TH_WORD
+},
+
+1488 {"æd-6th",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_6TH_WORD
+},
+
+1489 {"æd-7th",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_7TH_WORD
+},
+
+1490 {"æd-8th",
+RTE_ETH_INPUT_SET_FLEX_PAYLOAD_8TH_WORD
+},
+
+1491 {"nÚe",
+RTE_ETH_INPUT_SET_NONE
+},
+
+1493 \ f
+ gi
+ = 0; i <
+RTE_DIM
+(
+\9a£t_\8fbË
+); i++) {
+
+1494 ià(!
+¡rcmp
+(
+¡r\9ag
+,
+\9a£t_\8fbË
+[
+i
+].
+¡r
+))
+
+1495 \15
+ g\9a£t_\8fbË
+[
+i
+].
+ g\9a£t
+;
+
+1498 \15
+ gRTE_ETH_INPUT_SET_UNKNOWN
+;
+
+1502
+cmd_£t_hash_\9aput_£t_1_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1503
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1504
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1506 \19
+cmd_£t_hash_\9aput_£t_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1507 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1509 ià(
+ g\92abË_æow_d\9c
+) {
+
+1510
+´\9atf
+("FDIR Filter is Defined!\n");
+
+1511
+´\9atf
+("Please undefine FDIR_FILTER flag\87nd define "
+
+1516
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1517
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1518
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1520
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[0] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld0
+);
+
+1521
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ g\9a£t_size
+ = 1;
+
+1523 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1524
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1525 \vià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1526
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_ADD
+;
+
+1528
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1529
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1535
+cmd_£t_hash_\9aput_£t_2_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1536
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1537
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1539 \19
+cmd_£t_hash_\9aput_£t_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1540 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1542 ià(
+ g\92abË_æow_d\9c
+) {
+
+1543
+´\9atf
+("FDIR Filter is Defined!\n");
+
+1544
+´\9atf
+("Please undefine FDIR_FILTER flag\87nd define "
+
+1549
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1550
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1551
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1553
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[0] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld0
+);
+
+1554
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[1] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld1
+);
+
+1556
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ g\9a£t_size
+ = 2;
+
+1558 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1559
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1560 \vià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1561
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_ADD
+;
+
+1563
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1564
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1571
+cmd_£t_hash_\9aput_£t_3_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1572
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1573
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1575 \19
+cmd_£t_hash_\9aput_£t_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1576 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1578
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1579
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1580
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1582
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[0] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld0
+);
+
+1583
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[1] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld1
+);
+
+1584
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[2] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld2
+);
+
+1585
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ g\9a£t_size
+ = 3;
+
+1587 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1588
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1589 \vià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1590
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_ADD
+;
+
+1592
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1593
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1597
+cmd_£t_hash_\9aput_£t_4_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1598
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1599
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1601 \19
+cmd_£t_hash_\9aput_£t_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1602 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1604 ià(
+ g\92abË_æow_d\9c
+) {
+
+1605
+´\9atf
+("FDIR Filter is Defined!\n");
+
+1606
+´\9atf
+("Please undefine FDIR_FILTER flag\87nd define "
+
+1611
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1612
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1613
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1615
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[0] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld0
+);
+
+1616
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[1] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld1
+);
+
+1617
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[2] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld2
+);
+
+1618
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[3] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld3
+);
+
+1620
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ g\9a£t_size
+ = 4;
+
+1621 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1622
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1623 \vià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1624
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_ADD
+;
+
+1626
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1627
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1633
+cmd_£t_hash_\9aput_£t_5_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1634
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1635
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1637 \19
+cmd_£t_hash_\9aput_£t_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1638 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1640
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1641
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
+;
+
+1642
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gæow_ty³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1644
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[0] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld0
+);
+
+1645
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[1] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld1
+);
+
+1646
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[2] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld2
+);
+
+1647
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[3] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld3
+);
+
+1648
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gf\9bld
+[4] =
+¡r2\9a£t
+(
+»s
+->
+\9a£t_f\9bld4
+);
+
+1650
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ g\9a£t_size
+ = 5;
+
+1651 ià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "select"))
+
+1652
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_SELECT
+;
+
+1653 \vià(!
+¡rcmp
+(
+»s
+->
+£Ëù
+, "add"))
+
+1654
+ g\9afo
+.\9afo.
+ g\9aput_£t_cÚf
+.
+ gÝ
+ =
+RTE_ETH_INPUT_SET_ADD
+;
+
+1655
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1656
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1660
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_cmd
+ =
+
+1661
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1662
+£t_hash_\9aput_£t
+, "set_hash_input_set");
+
+1663
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_£t_hash_\9aput_£t_pÜt_id
+ =
+
+1664
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1665
+pÜt_id
+,
+UINT8
+);
+
+1666
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_æow_ty³
+ =
+
+1667
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1668
+æow_ty³
+,
+
+1672
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_f\9bld0
+ =
+
+1673
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1674
+\9a£t_f\9bld0
+,
+
+1678
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_f\9bld1
+ =
+
+1679
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1680
+\9a£t_f\9bld1
+,
+
+1684
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_f\9bld2
+ =
+
+1685
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1686
+\9a£t_f\9bld2
+,
+
+1689
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_f\9bld3
+ =
+
+1690
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1691
+\9a£t_f\9bld3
+,
+
+1694
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_f\9bld4
+ =
+
+1695
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1696
+\9a£t_f\9bld4
+, "ipv4-proto#ipv6-next-header#none");
+
+1699
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_\9aput_£t_£Ëù
+ =
+
+1700
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_\9aput_£t_»suÉ
+,
+
+1701
+£Ëù
+, "select#add");
+
+1703
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_\9aput_£t_1
+ = {
+
+1704 .
+f
+ =
+cmd_£t_hash_\9aput_£t_1_·r£d
+,
+
+1705 .
+ gd©a
+ =
+NULL
+,
+
+1706 .
+ gh\96p_¡r
+ = "set_hash_input_set_1 <port_id> "
+
+1712 .
+ gtok\92s
+ = {
+
+1713 (\1e*)&
+cmd_£t_hash_\9aput_£t_cmd
+,
+
+1714 (\1e*)&
+cmd_£t_hash_\9aput_£t_pÜt_id
+,
+
+1715 (\1e*)&
+cmd_£t_hash_\9aput_£t_æow_ty³
+,
+
+1716 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld0
+,
+
+1717 (\1e*)&
+cmd_£t_hash_\9aput_£t_£Ëù
+,
+
+1718
+NULL
+,
+
+1722
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_\9aput_£t_2
+ = {
+
+1723 .
+f
+ =
+cmd_£t_hash_\9aput_£t_2_·r£d
+,
+
+1724 .
+ gd©a
+ =
+NULL
+,
+
+1725 .
+ gh\96p_¡r
+ = "set_hash_input_set_2 <port_id> "
+
+1732 .
+ gtok\92s
+ = {
+
+1733 (\1e*)&
+cmd_£t_hash_\9aput_£t_cmd
+,
+
+1734 (\1e*)&
+cmd_£t_hash_\9aput_£t_pÜt_id
+,
+
+1735 (\1e*)&
+cmd_£t_hash_\9aput_£t_æow_ty³
+,
+
+1736 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld0
+,
+
+1737 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld1
+,
+
+1738 (\1e*)&
+cmd_£t_hash_\9aput_£t_£Ëù
+,
+
+1739
+NULL
+,
+
+1744
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_\9aput_£t_3
+ = {
+
+1745 .
+f
+ =
+cmd_£t_hash_\9aput_£t_3_·r£d
+,
+
+1746 .
+ gd©a
+ =
+NULL
+,
+
+1747 .
+ gh\96p_¡r
+ = "set_hash_input_set_3 <port_id> "
+
+1757 .
+ gtok\92s
+ = {
+
+1758 (\1e*)&
+cmd_£t_hash_\9aput_£t_cmd
+,
+
+1759 (\1e*)&
+cmd_£t_hash_\9aput_£t_pÜt_id
+,
+
+1760 (\1e*)&
+cmd_£t_hash_\9aput_£t_æow_ty³
+,
+
+1761 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld0
+,
+
+1762 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld1
+,
+
+1763 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld2
+,
+
+1764 (\1e*)&
+cmd_£t_hash_\9aput_£t_£Ëù
+,
+
+1765
+NULL
+,
+
+1770
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_\9aput_£t_4
+ = {
+
+1771 .
+f
+ =
+cmd_£t_hash_\9aput_£t_4_·r£d
+,
+
+1772 .
+ gd©a
+ =
+NULL
+,
+
+1773 .
+ gh\96p_¡r
+ = "set_hash_input_set_4 <port_id> "
+
+1782 .
+ gtok\92s
+ = {
+
+1783 (\1e*)&
+cmd_£t_hash_\9aput_£t_cmd
+,
+
+1784 (\1e*)&
+cmd_£t_hash_\9aput_£t_pÜt_id
+,
+
+1785 (\1e*)&
+cmd_£t_hash_\9aput_£t_æow_ty³
+,
+
+1786 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld0
+,
+
+1787 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld1
+,
+
+1788 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld2
+,
+
+1789 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld3
+,
+
+1790 (\1e*)&
+cmd_£t_hash_\9aput_£t_£Ëù
+,
+
+1791
+NULL
+,
+
+1795
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_\9aput_£t_5
+ = {
+
+1796 .
+f
+ =
+cmd_£t_hash_\9aput_£t_5_·r£d
+,
+
+1797 .
+ gd©a
+ =
+NULL
+,
+
+1798 .
+ gh\96p_¡r
+ = "set_hash_input_set_5 <port_id> "
+
+1808 .
+ gtok\92s
+ = {
+
+1809 (\1e*)&
+cmd_£t_hash_\9aput_£t_cmd
+,
+
+1810 (\1e*)&
+cmd_£t_hash_\9aput_£t_pÜt_id
+,
+
+1811 (\1e*)&
+cmd_£t_hash_\9aput_£t_æow_ty³
+,
+
+1812 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld0
+,
+
+1813 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld1
+,
+
+1814 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld2
+,
+
+1815 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld3
+,
+
+1816 (\1e*)&
+cmd_£t_hash_\9aput_£t_f\9bld4
+,
+
+1817 (\1e*)&
+cmd_£t_hash_\9aput_£t_£Ëù
+,
+
+1818
+NULL
+,
+
+1824 \19
+ scmd_£t_hash_glob®_cÚfig_»suÉ
+ {
+
+1825
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g£t_hash_glob®_cÚfig
+;
+
+1826
+u\9at8_t
+
+ gpÜt_id
+;
+
+1827
+cmdl\9ae_fixed_¡r\9ag_t
+
+ ghash_func
+;
+
+1828
+cmdl\9ae_fixed_¡r\9ag_t
+
+ gæow_ty³
+;
+
+1829
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\92abË
+;
+
+1833
+cmd_£t_hash_glob®_cÚfig_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1834
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1835
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1837 \19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1838 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1839
+u\9at32_t
+
+ gáy³
+,
+ gidx
+,
+ goff£t
+;
+
+1840 \12
+ g»t
+;
+
+1842 ià(
+¹e_\91h_dev_f\9e\8br_suµÜ\8bd
+(
+»s
+->
+pÜt_id
+,
+
+1843
+RTE_ETH_FILTER_HASH
+) < 0) {
+
+1844
+´\9atf
+("RTE_ETH_FILTER_HASH\82ot supported on\85ort %d\n",
+
+1845
+»s
+->
+pÜt_id
+);
+
+1848
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1849
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_GLOBAL_CONFIG
+;
+
+1850 ià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "toeplitz"))
+
+1851
+ g\9afo
+.\9afo.
+ gglob®_cÚf
+.
+ ghash_func
+ =
+
+1852
+RTE_ETH_HASH_FUNCTION_TOEPLITZ
+;
+
+1853 \vià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "simple_xor"))
+
+1854
+ g\9afo
+.\9afo.
+ gglob®_cÚf
+.
+ ghash_func
+ =
+
+1855
+RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
+;
+
+1856 \vià(!
+¡rcmp
+(
+»s
+->
+hash_func
+, "default"))
+
+1857
+ g\9afo
+.\9afo.
+ gglob®_cÚf
+.
+ ghash_func
+ =
+
+1858
+RTE_ETH_HASH_FUNCTION_DEFAULT
+;
+
+1860
+ gáy³
+ =
+¡r2æowty³
+(
+»s
+->
+æow_ty³
+);
+
+1861
+ gidx
+ =
+áy³
+ / (
+CHAR_BIT
+ * \17(
+u\9at32_t
+));
+
+1862
+ goff£t
+ =
+áy³
+ % (
+CHAR_BIT
+ * \17(
+u\9at32_t
+));
+
+1863
+ g\9afo
+.\9afo.
+ gglob®_cÚf
+.
+ gv®id_b\99_mask
+[
+idx
+] |ð(1UL <<
+off£t
+);
+
+1864 ià(!
+¡rcmp
+(
+»s
+->
+\92abË
+, "enable"))
+
+1865 if(
+ gidx
+ <
+ gRTE_SYM_HASH_MASK_ARRAY_SIZE
+)
+
+1866
+ g\9afo
+.\9afo.
+ gglob®_cÚf
+.
+ gsym_hash_\92abË_mask
+[
+idx
+] |=
+
+1867 (1UL <<
+off£t
+);
+
+1868
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1869
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1870 ià(
+ g»t
+ < 0)
+
+1871
+´\9atf
+("Cannot set global hash configurations by\85ort %d\n",
+
+1872
+»s
+->
+pÜt_id
+);
+
+1874
+´\9atf
+("Global hash configurations have been set "
+
+1875 "succûssfuÎy by\85Ü\88%d\n",
+»s
+->
+pÜt_id
+);
+
+1877
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_glob®_cÚfig_®l
+ =
+
+1878
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1879
+£t_hash_glob®_cÚfig
+, "set_hash_global_config");
+
+1880
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_£t_hash_glob®_cÚfig_pÜt_id
+ =
+
+1881
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1882
+pÜt_id
+,
+UINT8
+);
+
+1883
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_glob®_cÚfig_hash_func
+ =
+
+1884
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1885
+hash_func
+, "toeplitz#simple_xor#default");
+
+1886
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_glob®_cÚfig_æow_ty³
+ =
+
+1887
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1888
+æow_ty³
+,
+
+1891
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_hash_glob®_cÚfig_\92abË
+ =
+
+1892
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_hash_glob®_cÚfig_»suÉ
+,
+
+1893
+\92abË
+, "enable#disable");
+
+1895
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_hash_glob®_cÚfig
+ = {
+
+1896 .
+f
+ =
+cmd_£t_hash_glob®_cÚfig_·r£d
+,
+
+1897 .
+ gd©a
+ =
+NULL
+,
+
+1898 .
+ gh\96p_¡r
+ = "set_hash_global_config\85ort_id "
+
+1903 .
+ gtok\92s
+ = {
+
+1904 (\1e*)&
+cmd_£t_hash_glob®_cÚfig_®l
+,
+
+1905 (\1e*)&
+cmd_£t_hash_glob®_cÚfig_pÜt_id
+,
+
+1906 (\1e*)&
+cmd_£t_hash_glob®_cÚfig_hash_func
+,
+
+1907 (\1e*)&
+cmd_£t_hash_glob®_cÚfig_æow_ty³
+,
+
+1908 (\1e*)&
+cmd_£t_hash_glob®_cÚfig_\92abË
+,
+
+1909
+NULL
+,
+
+1914 \19
+ scmd_£t_sym_hash_\92a_³r_pÜt_»suÉ
+ {
+
+1915
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g£t_sym_hash_\92a_³r_pÜt
+;
+
+1916
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\92abË
+;
+
+1917
+u\9at8_t
+
+ gpÜt_id
+;
+
+1921
+cmd_£t_sym_hash_³r_pÜt_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+1922
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+1923
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1925 \19
+cmd_£t_sym_hash_\92a_³r_pÜt_»suÉ
+ *
+ g»s
+ =
+·r£d_»suÉ
+;
+
+1926 \19
+¹e_\91h_hash_f\9e\8br_\9afo
+
+ g\9afo
+;
+
+1927 \12
+ g»t
+;
+
+1929 ià(
+¹e_\91h_dev_f\9e\8br_suµÜ\8bd
+(
+»s
+->
+pÜt_id
+,
+
+1930
+RTE_ETH_FILTER_HASH
+) < 0) {
+
+1931
+´\9atf
+("RTE_ETH_FILTER_HASH\82ot supported on\85ort: %d\n",
+
+1932
+»s
+->
+pÜt_id
+);
+
+1936
+mem£t
+(&
+\9afo
+, 0, \17(info));
+
+1937
+ g\9afo
+.
+ g\9afo_ty³
+ =
+RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT
+;
+
+1939 ià(!
+¡rcmp
+(
+»s
+->
+\92abË
+, "enable"))
+
+1940
+ g\9afo
+.\9afo.
+ g\92abË
+ = 1;
+
+1942
+ g»t
+ =
+¹e_\91h_dev_f\9e\8br_ù¾
+(
+»s
+->
+pÜt_id
+,
+RTE_ETH_FILTER_HASH
+,
+
+1943
+RTE_ETH_FILTER_SET
+, &
+\9afo
+);
+
+1944 ià(
+ g»t
+ < 0) {
+
+1945
+´\9atf
+("Cannot set symmetric hash\83nable\85er\85ort on "
+
+1946 "p܈%u\n",
+»s
+->
+pÜt_id
+);
+
+1949
+´\9atf
+("Symmetric hash has been set\81o %s on\85ort %u\n",
+
+1950
+»s
+->
+\92abË
+,\84es->
+pÜt_id
+);
+
+1953
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_sym_hash_\92a_³r_pÜt_®l
+ =
+
+1954
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_sym_hash_\92a_³r_pÜt_»suÉ
+,
+
+1955
+£t_sym_hash_\92a_³r_pÜt
+, "set_sym_hash_ena_per_port");
+
+1956
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_£t_sym_hash_\92a_³r_pÜt_pÜt_id
+ =
+
+1957
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_£t_sym_hash_\92a_³r_pÜt_»suÉ
+,
+
+1958
+pÜt_id
+,
+UINT8
+);
+
+1959
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_£t_sym_hash_\92a_³r_pÜt_\92abË
+ =
+
+1960
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_£t_sym_hash_\92a_³r_pÜt_»suÉ
+,
+
+1961
+\92abË
+, "enable#disable");
+
+1963
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_£t_sym_hash_\92a_³r_pÜt
+ = {
+
+1964 .
+f
+ =
+cmd_£t_sym_hash_³r_pÜt_·r£d
+,
+
+1965 .
+ gd©a
+ =
+NULL
+,
+
+1966 .
+ gh\96p_¡r
+ = "set_sym_hash_ena_per_port\85ort_id\83nable|disable",
+
+1967 .
+ gtok\92s
+ = {
+
+1968 (\1e*)&
+cmd_£t_sym_hash_\92a_³r_pÜt_®l
+,
+
+1969 (\1e*)&
+cmd_£t_sym_hash_\92a_³r_pÜt_pÜt_id
+,
+
+1970 (\1e*)&
+cmd_£t_sym_hash_\92a_³r_pÜt_\92abË
+,
+
+1971
+NULL
+,
+
+1977
+p_p\9d\96\9ae_¬picmp_\92\8cy_dbg
+(\19
+p_·¿ms
+ *
+p
+,
+
+1978
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+u\9at8_t
+ *
+msg
+)
+
+1980 \19
+p\9d\96\9ae_¬picmp_\92\8cy_dbg_msg_»q
+ *
+ g»q
+;
+
+1981 \19
+p\9d\96\9ae_¬picmp_\92\8cy_dbg_msg_r¥
+ *
+ gr¥
+;
+
+1984 ià(
+ gp
+ =ð
+NULL
+)
+
+1988
+ g»q
+ =
+p_msg_®loc
+(
+p
+);
+
+1989 ià(
+ g»q
+ =ð
+NULL
+)
+
+1992
+ g»q
+->
+ gty³
+ =
+PIPELINE_MSG_REQ_CUSTOM
+;
+
+1993
+ g»q
+->
+ gsubty³
+ =
+PIPELINE_ARPICMP_MSG_REQ_ENTRY_DBG
+;
+
+1994
+ g»q
+->
+ gd©a
+[0] =
+msg
+[0];
+
+1995
+ g»q
+->
+ gd©a
+[1] =
+msg
+[1];
+
+1997
+ gr¥
+ =
+p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+1998 ià(
+ gr¥
+ =ð
+NULL
+)
+
+2002 ià(
+ gr¥
+->
+ g¡©us
+) {
+
+2003
+p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+2004
+´\9atf
+("E¼Ü\84¥->¡©u %d\n",
+r¥
+->
+¡©us
+);
+
+2009
+p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+2019 \19
+ scmd_\92\8cy_dbg_»suÉ
+ {
+
+2020
+cmdl\9ae_fixed_¡r\9ag_t
+
+ gp_¡r\9ag
+;
+
+2021
+u\9at32_t
+
+ gp
+;
+
+2022
+cmdl\9ae_fixed_¡r\9ag_t
+
+ g\92\8cy_¡r\9ag
+;
+
+2023
+cmdl\9ae_fixed_¡r\9ag_t
+
+ gdbg_¡r\9ag
+;
+
+2024
+u\9at8_t
+
+ gcmd
+;
+
+2025
+u\9at8_t
+
+ gd1
+;
+
+2029
+cmd_\92\8cy_dbg_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+2030
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, \1e*
+d©a
+)
+
+2032 \19
+cmd_\92\8cy_dbg_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+2033 \19
+p_·¿ms
+ *
+ gp
+ =
+d©a
+;
+
+2034
+u\9at8_t
+
+ gmsg
+[2];
+
+2035 \12
+ g¡©us
+;
+
+2037
+ gmsg
+[0] =
+·¿ms
+->
+cmd
+;
+
+2038
+ gmsg
+[1] =
+·¿ms
+->
+d1
+;
+
+2039
+ g¡©us
+ =
+p_p\9d\96\9ae_¬picmp_\92\8cy_dbg
+(
+p
+,
+·¿ms
+->
+p
+,
+msg
+);
+
+2041 ià(
+ g¡©us
+ != 0) {
+
+2042
+´\9atf
+("Dbg Command failed\n");
+
+2047 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_p_¡r\9ag
+ =
+
+2048
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p_¡r\9ag
+, "p");
+
+2050 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_p
+ =
+
+2051
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p
+,
+UINT32
+);
+
+2053 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+ =
+
+2054
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+
+2055
+\92\8cy_¡r\9ag
+, "txrx");
+
+2057 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+ =
+
+2058
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+dbg_¡r\9ag
+,
+
+2061 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_cmd
+ =
+
+2062
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+cmd
+,
+UINT8
+);
+
+2064 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_d1
+ =
+
+2065
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+d1
+,
+UINT8
+);
+
+2067 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ glb_cmd_\92\8cy_dbg
+ = {
+
+2068 .
+f
+ =
+cmd_\92\8cy_dbg_·r£d
+,
+
+2069 .
+ gd©a
+ =
+NULL
+,
+
+2070 .
+ gh\96p_¡r
+ = "ARPICMP dbg cmd",
+
+2071 .
+ gtok\92s
+ = {
+
+2072 (\1e*)&
+lb_cmd_\92\8cy_dbg_p_¡r\9ag
+,
+
+2073 (\1e*)&
+lb_cmd_\92\8cy_dbg_p
+,
+
+2074 (\1e*)&
+lb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+,
+
+2075 (\1e*)&
+lb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+,
+
+2076 (\1e*)&
+lb_cmd_\92\8cy_dbg_cmd
+,
+
+2077 (\1e*)&
+lb_cmd_\92\8cy_dbg_d1
+,
+
+2078
+NULL
+,
+
+2082 \18
+cmdl\9ae_·r£_ùx_t
+
+ gp\9d\96\9ae_cmds
+[] = {
+
+2083 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+lb_cmd_\92\8cy_dbg
+,
+
+2084 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_add
+,
+
+2085 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_d\96
+,
+
+2086 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_»q
+,
+
+2087 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_icmp_echo_»q
+,
+
+2088 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_ls
+,
+
+2089 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_show_pÜts_\9afo
+,
+
+2091 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_fwd_mode
+,
+
+2092 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_add_d\96_udp_æow_d\9ceùÜ
+,
+
+2093 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_add_d\96_l2_æow_d\9ceùÜ
+,
+
+2094 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_hash_\9aput_£t_1
+,
+
+2095 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_hash_\9aput_£t_2
+,
+
+2097 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_hash_\9aput_£t_4
+,
+
+2099 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_hash_glob®_cÚfig
+,
+
+2100 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_£t_sym_hash_\92a_³r_pÜt
+,
+
+2101 #iâdeà
+VNF_ACL
+
+
+2102 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_dbg
+,
+
+2103 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¬p_tim\94
+,
+
+2105
+NULL
+,
+
+2108 \18\19
+p\9d\96\9ae_ã_Ýs
+
+ gp\9d\96\9ae_¬picmp_ã_Ýs
+ = {
+
+2109 .
+f_\9a\99
+ =
+NULL
+,
+
+2110 .
+ gf_ä\93
+ =
+NULL
+,
+
+2111 .
+ gcmds
+ =
+p\9d\96\9ae_cmds
+,
+
+2114 \19
+p\9d\96\9ae_ty³
+
+ gp\9d\96\9ae_¬picmp
+ = {
+
+2115 .
+Çme
+ = "ARPICMP",
+
+2116 .
+ gbe_Ýs
+ = &
+p\9d\96\9ae_¬picmp_be_Ýs
+,
+
+2117 .
+ gã_Ýs
+ = &
+p\9d\96\9ae_¬picmp_ã_Ýs
+,
+
+ @VIL/pipeline_arpicmp/pipeline_arpicmp.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_ARPICMP_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_ARPICMP_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+21 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+26 \r\19
+p\9d\96\9ae_ty³
+
+p\9d\96\9ae_¬picmp
+;
+
+28 \ 1
+ #MAX_PKT_BURST
+ 512
+
+ )
+
+29 \ 1
+ #DEF_PKT_BURST
+ 32
+
+ )
+
+32 \e
+u\9at8_t
+
+ tpÜtid_t
+;
+
+33 \e
+u\9at16_t
+
+ tqueueid_t
+;
+
+34 \e
+u\9at16_t
+
+ t¡»amid_t
+;
+
+39 \19
+ sfwd_¡»am
+ {
+
+42
+pÜtid_t
+
+ mrx_pÜt
+;
+
+44
+queueid_t
+
+ mrx_queue
+;
+
+46
+pÜtid_t
+
+ mtx_pÜt
+;
+
+48
+queueid_t
+
+ mtx_queue
+;
+
+50
+¡»amid_t
+
+ m³\94_addr
+;
+
+54 \1d\12
+ mrx_·ck\91s
+;
+
+56 \1d\12
+ mtx_·ck\91s
+;
+
+58 \1d\12
+ mfwd_drݳd
+;
+
+60 \1d\12
+ mrx_bad_\9d_csum
+;
+
+62 \1d\12
+ mrx_bad_l4_csum
+;
+
+63 #ifdeà
+RTE_TEST_PMD_RECORD_CORE_CYCLES
+
+
+64
+u\9at64_t
+
+ mcÜe_cyþes
+;
+
+66 #ifdeà
+RTE_TEST_PMD_RECORD_BURST_STATS
+
+
+67 \19
+pkt_bur¡_¡©s
+
+ mrx_bur¡_¡©s
+;
+
+68 \19
+pkt_bur¡_¡©s
+
+ mtx_bur¡_¡©s
+;
+
+86 \e\1e(*
+ tpÜt_fwd_beg\9a_t
+)(
+ tpÜtid_t
+
+ tpi
+);
+
+87 \e\1e(*
+ tpÜt_fwd_\92d_t
+)(
+ tpÜtid_t
+
+ tpi
+);
+
+88 \e\1e(*
+ t·ck\91_fwd_t
+)(\19
+ tfwd_¡»am
+ *
+ tfs
+);
+
+89 \19
+ sfwd_\92g\9ae
+ {
+
+91 cڡ \ 5*
+fwd_mode_Çme
+;
+
+93
+pÜt_fwd_beg\9a_t
+
+pÜt_fwd_beg\9a
+;
+
+95
+pÜt_fwd_\92d_t
+
+pÜt_fwd_\92d
+;
+
+97
+·ck\91_fwd_t
+
+·ck\91_fwd
+;
+
+99 \ 1
+ #IPV4_ADDR_TO_UINT
+(
+\9d_addr
+,
+\9d
+) \
+
+101 ià((
+\9d_addr
+).
+çm\9ey
+ =ð
+AF_INET
+) \
+
+102 (
+\9d
+èð(
+\9d_addr
+).
+addr
+.
+\9dv4
+.
+s_addr
+; \
+
+104
+ `´\9atf
+("invalid\85arameter.\n"); \
+
+107
+ }
+} \1f0)
+
+ )
+
+109 \ 1
+ #IPV6_ADDR_TO_ARRAY
+(
+\9d_addr
+,
+\9d
+) \
+
+111 ià((
+\9d_addr
+).
+çm\9ey
+ =ð
+AF_INET6
+) \
+
+112 (\1e)
+ `¹e_memýy
+(&(
+\9d
+), \
+
+113 &((
+\9d_addr
+).
+addr
+.
+\9dv6
+), \
+
+114 \17(\19
+\9a6_addr
+)); \
+
+116
+ `´\9atf
+("invalid\85arameter.\n"); \
+
+119 } \1f0)
+
+ )
+
+121 \1e
+£t_pkt_fÜw¬d\9ag_mode
+(cڡ \ 5*
+fwd_mode_Çme
+);
+
+ @VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
+
+17 \ 2
+ ~<¡r\9ag.h
+>
+
+19 \ 2
+ ~<¡dio.h
+>
+
+20 \ 2
+ ~<¡dlib.h
+>
+
+21 \ 2
+ ~<¡d\9at.h
+>
+
+22 \ 2
+ ~<¡r\9ag.h
+>
+
+23 \ 2
+ ~<uni¡d.h
+>
+
+25 \ 2
+ ~<p.h
+>
+
+26 \ 2
+ ~<¹e_commÚ.h
+>
+
+27 \ 2
+ ~<¹e_m®loc.h
+>
+
+28 \ 2
+ ~<¹e_\9d.h
+>
+
+29 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+30 \ 2
+ ~<¹e_\8fbË_¡ub.h
+>
+
+31 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+32 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+33 \ 2
+ ~<¹e_¬p.h
+>
+
+34 \ 2
+ ~<¹e_icmp.h
+>
+
+35 \ 2
+ ~<¹e_hash.h
+>
+
+36 \ 2
+ ~<¹e_jhash.h
+>
+
+37 \ 2
+ ~<¹e_cyþes.h
+>
+
+38 \ 2
+ ~<¹e_hexdump.h
+>
+
+39 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+40 \ 2
+ ~"hash_func.h
+"
+
+41 \ 2
+ ~"vnf_commÚ.h
+"
+
+42 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+43 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+44 \ 2
+ ~"·r£r.h
+"
+
+45 \ 2
+ ~"hash_func.h
+"
+
+46 \ 2
+ ~"vnf_commÚ.h
+"
+
+47 \ 2
+ ~"p.h
+"
+
+49 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+50 #iâdeà
+VNF_ACL
+
+
+51 \ 2
+ ~"lib_¬p.h
+"
+
+52 \ 2
+ ~"lib_icmpv6.h
+"
+
+53 \ 2
+ ~"\9a\8brçû.h
+"
+
+56 #ifdeà
+VNF_ACL
+
+
+58 \ 1
+ #NB_ARPICMP_MBUF
+ 64
+
+ )
+
+59 \ 1
+ #NB_NDICMP_MBUF
+ 64
+
+ )
+
+60 \ 1
+ #IP_VERSION_4
+ 0x40
+
+ )
+
+62 \ 1
+ #IP_HDRLEN
+ 0x05
+
+ )
+
+63 \ 1
+ #IP_VHL_DEF
+ (
+IP_VERSION_4
+ |
+IP_HDRLEN
+)
+
+ )
+
+65 \ 1
+ #is_muÉiÿ¡_\9dv4_addr
+(
+\9dv4_addr
+) \
+
+66 (((
+ `¹e_be_to_ýu_32
+((
+\9dv4_addr
+)è>> 24è& 0x000000FFè=ð0xE0)
+
+ )
+
+70 \ 1
+ #INADDRSZ
+ 4
+
+ )
+
+71 \ 1
+ #IN6ADDRSZ
+ 16
+
+ )
+
+72 \18\12
+my_\9a\91_±Ú_\9dv6
+(\12
+af
+, cڡ \ 5*
+¤c
+, \1e*
+d¡
+);
+
+73 \18\12
+\9a\91_±Ú_\9dv6
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+);
+
+74 \18\12
+\9a\91_±Ú_\9dv4
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+);
+
+76
+u\9at8_t
+
+ gvnf_commÚ_¬p_lib_\9a\99
+;
+
+77
+u\9at8_t
+
+ gvnf_commÚ_nd_lib_\9a\99
+;
+
+78
+u\9at8_t
+
+ glßdb_p\9d\96\9ae_couÁ
+;
+
+80
+u\9at32_t
+
+ gARPICMP_DEBUG
+;
+
+81
+u\9at32_t
+
+ gNDIPV6_DEBUG
+;
+
+83
+u\9at32_t
+
+ g¬p_rou\8b_tbl_\9adex
+;
+
+84
+u\9at32_t
+
+ gnd_rou\8b_tbl_\9adex
+;
+
+85
+u\9at32_t
+
+ gl\9ak_hw_addr_¬¿y_idx
+;
+
+87
+u\9at32_t
+
+ glib_¬p_g\91_mac_»q
+;
+
+88
+u\9at32_t
+
+ glib_¬p_nh_found
+;
+
+89
+u\9at32_t
+
+ glib_¬p_no_nh_found
+;
+
+90
+u\9at32_t
+
+ glib_¬p_¬p_\92\8cy_found
+;
+
+91
+u\9at32_t
+
+ glib_¬p_no_¬p_\92\8cy_found
+;
+
+92
+u\9at32_t
+
+ glib_¬p_pÝuÏ\8b_ÿÎed
+;
+
+93
+u\9at32_t
+
+ glib_¬p_d\96\91e_ÿÎed
+;
+
+94
+u\9at32_t
+
+ glib_¬p_du¶iÿ\8b_found
+;
+
+96
+u\9at32_t
+
+ glib_nd_g\91_mac_»q
+;
+
+97
+u\9at32_t
+
+ glib_nd_nh_found
+;
+
+98
+u\9at32_t
+
+ glib_nd_no_nh_found
+;
+
+99
+u\9at32_t
+
+ glib_nd_nd_\92\8cy_found
+;
+
+100
+u\9at32_t
+
+ glib_nd_no_¬p_\92\8cy_found
+;
+
+101
+u\9at32_t
+
+ glib_nd_pÝuÏ\8b_ÿÎed
+;
+
+102
+u\9at32_t
+
+ glib_nd_d\96\91e_ÿÎed
+;
+
+103
+u\9at32_t
+
+ glib_nd_du¶iÿ\8b_found
+;
+
+105 \19
+¹e_mempoÞ
+ *
+ glib_¬p_pktmbuf_tx_poÞ
+;
+
+106 \19
+¹e_mempoÞ
+ *
+ glib_nd_pktmbuf_tx_poÞ
+;
+
+108 \19
+¹e_mbuf
+ *
+ glib_¬p_pkt
+;
+
+109 \19
+¹e_mbuf
+ *
+ glib_nd_pkt
+;
+
+111 \18\19
+¹e_hash_·¿m\91\94s
+
+ g¬p_hash_·¿ms
+ = {
+
+112 .
+Çme
+ = "ARP",
+
+113 .
+ g\92\8c\9bs
+ = 64,
+
+114 .
+ gȣrved
+ = 0,
+
+115 .
+ gkey_Ën
+ = \17(\19
+¬p_key_\9dv4
+),
+
+116 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+117 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+120 \18\19
+¹e_hash_·¿m\91\94s
+
+ gnd_hash_·¿ms
+ = {
+
+121 .
+Çme
+ = "ND",
+
+122 .
+ g\92\8c\9bs
+ = 64,
+
+123 .
+ gȣrved
+ = 0,
+
+124 .
+ gkey_Ën
+ = \17(\19
+nd_key_\9dv6
+),
+
+125 .
+ ghash_func
+ =
+¹e_jhash
+,
+
+126 .
+ ghash_func_\9a\99_v®
+ = 0,
+
+129 \19
+¹e_hash
+ *
+ g¬p_hash_hªdË
+;
+
+130 \19
+¹e_hash
+ *
+ gnd_hash_hªdË
+;
+
+134 \19
+p_·¿ms
+ *
+ gmyAµ
+;
+
+135 \19
+¹e_p\9d\96\9ae
+ *
+ gmyP
+;
+
+136 \19
+p\9d\96\9ae_¬picmp
+ *
+ ggp_¬p
+;
+
+137
+u\9at8_t
+
+ gnum_vnf_th»ads
+;
+
+139 #ifdeà
+VNF_ACL
+
+
+141 \19
+ s¬p_pÜt_add»ss
+ {
+
+142
+u\9at32_t
+
+ m\9d
+;
+
+143
+u\9at64_t
+
+ mmac_addr
+;
+
+146 \19
+¬p_pÜt_add»ss
+
+ g¬p_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+148
+u\9at16_t
+
+ g¬p_m\91a_off£t
+;
+
+151 \19
+ sp\9d\96\9ae_¬picmp
+ {
+
+152 \19
+p\9d\96\9ae
+
+ mp
+;
+
+153
+p\9d\96\9ae_msg_»q_hªdËr
+
+
+154
+ mcu¡om_hªdËrs
+[
+PIPELINE_ARPICMP_MSG_REQS
+];
+
+155
+u\9at64_t
+
+ m»ûivedPktCouÁ
+;
+
+156
+u\9at64_t
+
+ mdrݳdPktCouÁ
+;
+
+157
+u\9at64_t
+
+ m£ÁPktCouÁ
+;
+
+158
+u\9at8_t
+
+ ml\9aks_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+159
+u\9at8_t
+
+ mou\8dÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+160
+u\9at8_t
+
+ mp\9d\96\9ae_num
+;
+
+161 }
+ g__¹e_ÿche_®igÃd
+;
+
+163 #ifdeà
+VNF_ACL
+
+
+165 \ 1
+ #MAX_NUM_ARP_ENTRIES
+ 64
+
+ )
+
+166 \ 1
+ #MAX_NUM_ND_ENTRIES
+ 64
+
+ )
+
+169 \19
+lib_nd_rou\8b_\8fbË_\92\8cy
+
+ glib_nd_rou\8b_\8fbË
+[
+MAX_ND_RT_ENTRY
+] = {
+
+204 \19
+lib_¬p_rou\8b_\8fbË_\92\8cy
+
+ glib_¬p_rou\8b_\8fbË
+[
+MAX_ARP_RT_ENTRY
+] = {
+
+227 \1e
+ $p\9d\96\9aes_pÜt_\9afo
+(\1e)
+
+229 \19
+p_·¿ms
+ *
+p
+ =
+myAµ
+;
+
+230
+u\9at8_t
+
+i
+,
+p\9d\96\9ae
+;
+
+231 \ f
+p\9d\96\9ae
+ = 0;\85\9d\96\9a\90<
+p
+->
+n_p\9d\96\9aes
+;\85ipeline++) {
+
+232
+ `´\9atf
+("*** PIPELINE %d ***\n\n",
+p\9d\96\9ae
+);
+
+234
+ `´\9atf
+("*** OUTPORTs ***\n");
+
+235 \ f
+i
+ = 1; i <
+p
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae
+].
+n_pktq_out
+;
+
+236
+i
+++) {
+
+237 \1a
+p
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae
+].
+pktq_out
+[
+i
+].
+
+238
+ty³
+) {
+
+239 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+240
+ `´\9atf
+("pktq_out[%d]:%s\n",
+i
+,
+
+241
+p
+->
+swq_·¿ms
+[p->
+p\9d\96\9ae_·¿ms
+
+
+242 [
+p\9d\96\9ae
+].
+
+243
+pktq_out
+[
+i
+].
+id
+].
+Çme
+);
+
+245 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+246
+ `´\9atf
+("pktq_out[%d]:%s\n",
+i
+,
+
+247
+p
+->
+hwq_out_·¿ms
+[p->
+p\9d\96\9ae_·¿ms
+
+
+248 [
+p\9d\96\9ae
+].
+pktq_out
+
+
+249 [
+i
+].
+id
+].
+Çme
+);
+
+252
+ `´\9atf
+("Not OUT SWQ or HWQ\n");
+
+255
+ `´\9atf
+("*** INPORTs ***\n");
+
+256 \ f
+i
+ = 0; i <
+p
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae
+].
+n_pktq_\9a
+; i++) {
+
+257 \1a
+p
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae
+].
+pktq_\9a
+[
+i
+]
+
+258 .
+ty³
+) {
+
+259 \ 4
+APP_PKTQ_IN_SWQ
+:
+
+260
+ `´\9atf
+("pktq_\9a[%d]:%s\n",
+i
+,
+
+261
+p
+->
+swq_·¿ms
+[p->
+p\9d\96\9ae_·¿ms
+
+
+262 [
+p\9d\96\9ae
+].
+
+263
+pktq_\9a
+[
+i
+].
+id
+].
+Çme
+);
+
+265 \ 4
+APP_PKTQ_IN_HWQ
+:
+
+266
+ `´\9atf
+("pktq_\9a[%d]:%s\n",
+i
+,
+
+267
+p
+->
+hwq_\9a_·¿ms
+[p->
+p\9d\96\9ae_·¿ms
+
+
+268 [
+p\9d\96\9ae
+].
+
+269
+pktq_\9a
+[
+i
+].
+id
+].
+Çme
+);
+
+272
+ `´\9atf
+("Not IN SWQ or HWQ\n");
+
+276
+ }
+}
+
+278 \1e
+ $p\9d\96\9aes_m_\9afo
+(\1e)
+
+280 \12
+i
+ = 0;
+
+282
+ `´\9atf
+("PIPELINE_MAX_PORT_IN %d\n",
+PIPELINE_MAX_PORT_IN
+);
+
+283
+ `´\9atf
+("lb_ou\8dÜt_id[%d",
+lb_ou\8dÜt_id
+[0]);
+
+284 \ f
+i
+ = 1; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+285
+ `´\9atf
+(",%d",
+lb_ou\8dÜt_id
+[
+i
+]);
+
+286
+ `´\9atf
+("]\n");
+
+288
+ `´\9atf
+("vnf_to_lßdb_m[%d",
+vnf_to_lßdb_m
+[0]);
+
+289 \ f
+i
+ = 1; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+290
+ `´\9atf
+(",%d",
+vnf_to_lßdb_m
+[
+i
+]);
+
+291
+ `´\9atf
+("]\n");
+
+293
+ `´\9atf
+("pÜt_to_lßdb_m[%d",
+pÜt_to_lßdb_m
+[0]);
+
+294 \ f
+i
+ = 1; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+295
+ `´\9atf
+(",%d",
+pÜt_to_lßdb_m
+[
+i
+]);
+
+296
+ `´\9atf
+("]\n");
+
+298
+ `´\9atf
+("lßdb_p\9d\96\9ae_nums[%d",
+lßdb_p\9d\96\9ae_nums
+[0]);
+
+299 \ f
+i
+ = 1; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+300
+ `´\9atf
+(",%d",
+lßdb_p\9d\96\9ae_nums
+[
+i
+]);
+
+301
+ `´\9atf
+("]\n");
+
+303
+ `´\9atf
+("lßdb_p\9d\96\9ae[%p",
+lßdb_p\9d\96\9ae
+[0]);
+
+304 \ f
+i
+ = 1; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+305
+ `´\9atf
+(",%p",
+lßdb_p\9d\96\9ae
+[
+i
+]);
+
+306
+ `´\9atf
+("]\n");
+
+307
+ }
+}
+
+309 \1e
+ $»gi¡\94_p\9d\96\9ae_Qs
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+)
+
+311 \19
+¹e_pÜt_\91hdev_»ad\94
+ *
+hwq
+;
+
+312 \19
+¹e_pÜt_r\9ag_wr\99\94
+ *
+out_swq
+;
+
+313 \19
+¹e_pÜt_r\9ag_»ad\94
+ *
+\9a_swq
+;
+
+314 \19
+¹e_p\9d\96\9ae
+ *
+¹e
+ =
+p
+->p;
+
+315
+u\9at8_t
+
+pÜt_couÁ
+ = 0;
+
+316 \12
+queue_out
+ = 0xff,
+queue_\9a
+ = 0xff;
+
+318
+ `´\9atf
+("C®l\9ag\84egi¡\94_p\9d\96\9ae_Q \9a PIPELINE%d\n",
+p\9d\96\9ae_num
+);
+
+319 \ f
+pÜt_couÁ
+ = 0;\85Üt_couÁ <
+¹e
+->
+num_pÜts_out
+;\85ort_count++) {
+
+321 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+322
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+){
+
+324 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+326 ià(
+pÜt_couÁ
+ >ð
+¹e
+->
+num_pÜts_\9a
+) {
+
+329 ià(
+¹e
+->
+num_pÜts_out
+ %\84\8b->
+num_pÜts_\9a
+)
+
+330 ià(
+pÜt_couÁ
+ =ð
+¹e
+->
+num_pÜts_out
+ - 1)
+
+332 \12
+\8bmp
+;
+
+333
+\8bmp
+ = ((
+pÜt_couÁ
+è%
+¹e
+->
+num_pÜts_\9a
+);
+
+335
+\9a_swq
+ =
+¹e
+->
+pÜts_\9a
+[
+\8bmp
+].
+h_pÜt
+;
+
+336
+out_swq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+337
+ `´\9atf
+("in_swq : %s\n",
+
+338
+\9a_swq
+->
+r\9ag
+->
+Çme
+);
+
+339 \12
+¡©us
+ =
+
+340
+ `ssÿnf
+(
+\9a_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+341 &
+queue_\9a
+);
+
+342 ià(
+¡©us
+ < 0) {
+
+343
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+346
+ `´\9atf
+("out_swq: %s\n",
+
+347
+out_swq
+->
+r\9ag
+->
+Çme
+);
+
+348
+¡©us
+ =
+
+349
+ `ssÿnf
+(
+out_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+350 &
+queue_out
+);
+
+351 ià(
+¡©us
+ < 0) {
+
+352
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+355 ià(
+queue_\9a
+ < 128 &&
+queue_out
+ < 128) {
+
+356
+SWQ_to_PÜt_m
+[
+queue_out
+] =
+
+357
+SWQ_to_PÜt_m
+[
+queue_\9a
+];
+
+358
+ `´\9atf
+("SWQ_to_PÜt_m[%d]%d\n",
+queue_out
+,
+
+359
+SWQ_to_PÜt_m
+[
+queue_out
+]);
+
+364 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+365
+pktq_\9a
+[
+pÜt_couÁ
+].
+ty³
+){
+
+367 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+368
+hwq
+ =
+¹e
+->
+pÜts_\9a
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+369
+out_swq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+370
+ `´\9atf
+("out_swq: %s\n",
+
+371
+out_swq
+->
+r\9ag
+->
+Çme
+);
+
+372 \12
+¡©us
+ =
+
+373
+ `ssÿnf
+(
+out_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+374 &
+queue_out
+);
+
+376 ià(
+¡©us
+ < 0) {
+
+377
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+380 ià(
+queue_out
+ < 128) {
+
+381
+SWQ_to_PÜt_m
+[
+queue_out
+] =
+hwq
+->
+pÜt_id
+;
+
+382
+ `´\9atf
+("SWQ_to_PÜt_m[%d]%d\n",
+queue_out
+,
+
+383
+SWQ_to_PÜt_m
+[
+queue_out
+]);
+
+387 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+388
+\9a_swq
+ =
+¹e
+->
+pÜts_\9a
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+389
+out_swq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+390
+ `´\9atf
+("in_swq : %s\n",
+
+391
+\9a_swq
+->
+r\9ag
+->
+Çme
+);
+
+392
+¡©us
+ =
+
+393
+ `ssÿnf
+(
+\9a_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+394 &
+queue_\9a
+);
+
+395 ià(
+¡©us
+ < 0) {
+
+396
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+399
+ `´\9atf
+("out_swq: %s\n",
+
+400
+out_swq
+->
+r\9ag
+->
+Çme
+);
+
+401
+¡©us
+ =
+
+402
+ `ssÿnf
+(
+out_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+403 &
+queue_out
+);
+
+404 ià(
+¡©us
+ < 0) {
+
+405
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+408 ià(
+queue_\9a
+ < 128 &&
+queue_out
+ < 128){
+
+409
+SWQ_to_PÜt_m
+[
+queue_out
+] =
+
+410
+SWQ_to_PÜt_m
+[
+queue_\9a
+];
+
+411
+ `´\9atf
+("SWQ_to_PÜt_m[%d]%d\n",
+queue_out
+,
+
+412
+SWQ_to_PÜt_m
+[
+queue_out
+]);
+
+417
+ `´\9atf
+("This\82ever hits\n");
+
+422 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+423
+ `´\9atf
+("This is HWQ\n");
+
+427
+ `´\9atf
+("set_phy_outport_map: This\82ever hits\n");
+
+430
+ }
+}
+
+432 \1e
+ $£t_l\9ak_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+)
+
+434 \19
+¹e_pÜt_\91hdev_wr\99\94
+ *
+hwq
+;
+
+435 \19
+¹e_pÜt_r\9ag_wr\99\94
+ *
+out_swq
+;
+
+436 \19
+¹e_p\9d\96\9ae
+ *
+¹e
+ =
+p
+->p;
+
+438
+u\9at8_t
+
+pÜt_couÁ
+ = 0;
+
+439 \12
+\9adex
+ = 0,
+queue_out
+ = 0xff;
+
+441
+ `´\9atf
+("C®l\9ag s\91_l\9ak_m iÀPIPELINE%d\n",
+p\9d\96\9ae_num
+);
+
+442 \ f
+pÜt_couÁ
+ = 0;\85Üt_couÁ <
+¹e
+->
+num_pÜts_out
+;\85ort_count++) {
+
+444 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+445
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+){
+
+447 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+448
+hwq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+449
+m
+[
+\9adex
+++] =
+hwq
+->
+pÜt_id
+;
+
+450
+ `´\9atf
+("l\9aks_m[%d]:%d\n",
+\9adex
+ - 1,
+m
+[index - 1]);
+
+453 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+454
+out_swq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+455
+ `´\9atf
+("set_link_map out_swq: %s\n",
+
+456
+out_swq
+->
+r\9ag
+->
+Çme
+);
+
+457 \12
+¡©us
+ =
+ `ssÿnf
+(
+out_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+458 &
+queue_out
+);
+
+459 ià(
+¡©us
+ < 0) {
+
+460
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+464 ià(
+queue_out
+ < 128) {
+
+465
+m
+[
+\9adex
+++] =
+SWQ_to_PÜt_m
+[
+queue_out
+];
+
+466
+ `´\9atf
+("l\9aks_m[%s]:%d\n",
+out_swq
+->
+r\9ag
+->
+Çme
+,
+
+467
+m
+[
+\9adex
+ - 1]);
+
+472
+ `´\9atf
+("set_phy_outport_map: This\82ever hits\n");
+
+475
+ }
+}
+
+477 \1e
+ $£t_ou\8dÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+)
+
+479
+u\9at8_t
+
+pÜt_couÁ
+ = 0;
+
+480 \12
+queue_out
+ = 0xff,
+\9adex
+ = 0;
+
+482 \19
+¹e_pÜt_\91hdev_wr\99\94
+ *
+hwq
+;
+
+483 \19
+¹e_pÜt_r\9ag_wr\99\94
+ *
+out_swq
+;
+
+484 \19
+¹e_p\9d\96\9ae
+ *
+¹e
+ =
+p
+->p;
+
+486
+ `´\9atf
+("\n**** set_outport_id() with\85ipeline_num:%d ****\n\n",
+
+487
+p\9d\96\9ae_num
+);
+
+488 \ f
+pÜt_couÁ
+ = 0;
+
+489
+pÜt_couÁ
+ <
+¹e
+->
+num_pÜts_out
+;
+
+490
+pÜt_couÁ
+++) {
+
+492 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+493
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+495 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+496
+hwq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+499
+m
+[
+hwq
+->
+pÜt_id
+] =
+\9adex
+;
+
+500
+ `´\9atf
+("hwq\85ort_id:%d index:%d\n",
+
+501
+hwq
+->
+pÜt_id
+,
+\9adex
+);
+
+502
+m
+[
+hwq
+->
+pÜt_id
+] =
+\9adex
+++;
+
+503
+ `´\9atf
+("hwq\85ort_id:%d index:%d\n",
+
+504
+hwq
+->
+pÜt_id
+,
+\9adex
+-1);
+
+505
+ `´\9atf
+("ou\8dÜt_id[%d]:%d\n",
+\9adex
+ - 1,
+
+506
+m
+[
+\9adex
+ - 1]);
+
+510 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+513 ià(
+pÜt_couÁ
+ >ð
+¹e
+->
+num_pÜts_\9a
+)
+
+514 ià(
+¹e
+->
+num_pÜts_out
+ %\84\8b->
+num_pÜts_\9a
+)
+
+515 ià(
+pÜt_couÁ
+ =ð
+¹e
+->
+num_pÜts_out
+ - 1)
+
+517
+out_swq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+518
+ `´\9atf
+("set_outport_id out_swq: %s\n",
+
+519
+out_swq
+->
+r\9ag
+->
+Çme
+);
+
+520 \12
+\8bmp
+ =
+ `ssÿnf
+(
+out_swq
+->
+r\9ag
+->
+Çme
+, "SWQ%d",
+
+521 &
+queue_out
+);
+
+522 ià(
+\8bmp
+ < 0) {
+
+523
+ `´\9atf
+("Unable\81o\84ead SWQ\82umber\n");
+
+527 ià(
+queue_out
+ < 128 &&
+\9adex
+ >= 0) {
+
+528
+m
+[
+SWQ_to_PÜt_m
+[
+queue_out
+]] =
+\9adex
+++;
+
+529
+ `´\9atf
+("ou\8dÜt_id[%s]:%d\n",
+out_swq
+->
+r\9ag
+->
+Çme
+,
+
+530
+m
+[
+SWQ_to_PÜt_m
+[
+queue_out
+]]);
+
+535
+ `´\9atf
+(" ");
+
+539
+ }
+}
+
+541 \1e
+ $£t_phy_ou\8dÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+)
+
+543
+u\9at8_t
+
+pÜt_couÁ
+ = 0;
+
+544 \12
+\9adex
+ = 0;
+
+546 \19
+¹e_pÜt_\91hdev_wr\99\94
+ *
+hwq
+;
+
+547 \19
+¹e_p\9d\96\9ae
+ *
+¹e
+ =
+p
+->p;
+
+549
+ `´\9atf
+("\n**** set_phy_outport_id() with\85ipeline_num:%d ****\n\n",
+
+550
+p\9d\96\9ae_num
+);
+
+551 \ f
+pÜt_couÁ
+ = 0;
+
+552
+pÜt_couÁ
+ <
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+n_pktq_out
+;
+
+553
+pÜt_couÁ
+++) {
+
+555 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+556
+pktq_out
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+558 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+559
+hwq
+ =
+¹e
+->
+pÜts_out
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+560
+m
+[
+hwq
+->
+pÜt_id
+] =
+\9adex
+++;
+
+561
+ `´\9atf
+("ou\8dÜt_id[%d]:%d\n",
+\9adex
+ - 1,
+
+562
+m
+[
+\9adex
+ - 1]);
+
+566
+ `´\9atf
+(" ");
+
+570
+ }
+}
+
+572 \1e
+ $£t_phy_\9apÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+)
+
+574
+u\9at8_t
+
+pÜt_couÁ
+ = 0;
+
+575 \12
+\9adex
+ = 0;
+
+577 \19
+¹e_pÜt_\91hdev_»ad\94
+ *
+hwq
+;
+
+578 \19
+¹e_p\9d\96\9ae
+ *
+¹e
+ =
+p
+->p;
+
+580
+ `´\9atf
+("\n**** set_phy_inport_id() with\85ipeline_num:%d ****\n\n",
+
+581
+p\9d\96\9ae_num
+);
+
+582 \ f
+pÜt_couÁ
+ = 0;
+
+583
+pÜt_couÁ
+ <
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+n_pktq_\9a
+;
+
+584
+pÜt_couÁ
+++) {
+
+586 \1a
+myAµ
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_num
+].
+
+587
+pktq_\9a
+[
+pÜt_couÁ
+].
+ty³
+) {
+
+589 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+590
+hwq
+ =
+¹e
+->
+pÜts_\9a
+[
+pÜt_couÁ
+].
+h_pÜt
+;
+
+591
+m
+[
+hwq
+->
+pÜt_id
+] =
+\9adex
+++;
+
+592
+ `´\9atf
+("ou\8dÜt_id[%d]:%d\n",
+\9adex
+ - 1,
+
+593
+m
+[
+\9adex
+ - 1]);
+
+597
+ `´\9atf
+(" ");
+
+601
+ }
+}
+
+603 #ifdeà
+VNF_ACL
+
+
+605
+u\9at32_t
+
+ $g\91_nh
+(
+u\9at32_t
+
+\9d
+, u\9at32_\88*
+pÜt
+)
+
+607 \12
+i
+ = 0;
+
+608 \ f
+i
+ = 0; i <
+MAX_ARP_RT_ENTRY
+; i++) {
+
+609 ià(((
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+
+610
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+) ==
+
+611 (
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+))) {
+
+613 *
+pÜt
+ =
+lib_¬p_rou\8b_\8fbË
+[
+i
+].port;
+
+614
+lib_¬p_nh_found
+++;
+
+615 \15
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+nh
+;
+
+617 ià(
+ARPICMP_DEBUG
+ > 1)
+
+618
+ `´\9atf
+("No\82h match ip 0x%x,\85ort %u,\81_ip "
+
+620
+\9d
+, *
+pÜt
+,
+lib_¬p_rou\8b_\8fbË
+[
+i
+].ip,
+
+621
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+pÜt
+,
+
+622
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+,
+
+623 (
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+\9d
+ &
+
+624
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+),
+
+625 (
+\9d
+ &
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+));
+
+627 ià(
+ARPICMP_DEBUG
+ &&
+\9d
+)
+
+628
+ `´\9atf
+("NØNH - i°0x%x,\85Ü\88%u\n",
+\9d
+, *
+pÜt
+);
+
+629
+lib_¬p_no_nh_found
+++;
+
+631
+ }
+}
+
+634 \1e
+ $g\91_nh_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[],
+u\9at32_t
+ *
+pÜt
+, u\9at8_\88
+nh\9dv6
+[])
+
+636 \12
+i
+ = 0;
+
+637
+u\9at8_t
+
+Ãtmask_\9dv6
+[16],
+Ãt\9d_nd
+[16],
+Ãt\9d_\9a
+[16];
+
+638
+u\9at8_t
+
+k
+ = 0,
+l
+ = 0,
+d\95thæags
+ = 0,
+d\95thæags1
+ = 0;
+
+639
+ `mem£t
+(
+Ãtmask_\9dv6
+, 0, \17(netmask_ipv6));
+
+640
+ `mem£t
+(
+Ãt\9d_nd
+, 0, \17(netip_nd));
+
+641
+ `mem£t
+(
+Ãt\9d_\9a
+, 0, \17(netip_in));
+
+642 ià(!
+\9dv6
+)
+
+644 \ f
+i
+ = 0; i <
+MAX_ARP_RT_ENTRY
+; i++) {
+
+646
+ `cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+
+647
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+d\95th
+,
+
+648
+Ãtmask_\9dv6
+);
+
+650 \ f
+k
+ = 0; k < 16; k++) {
+
+651 ià(
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+k
+] &
+Ãtmask_\9dv6
+[k]) {
+
+652
+d\95thæags
+++;
+
+653
+Ãt\9d_nd
+[
+k
+] =
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[k];
+
+657 \ f
+l
+ = 0;\86 < 16;\86++) {
+
+658 ià(
+\9dv6
+[
+l
+] &
+Ãtmask_\9dv6
+[l]) {
+
+659
+d\95thæags1
+++;
+
+660
+Ãt\9d_\9a
+[
+l
+] =
+\9dv6
+[l];
+
+663 \12
+j
+ = 0;
+
+664 ià((
+d\95thæags
+ =ð
+d\95thæags1
+)
+
+665 && (
+ `memcmp
+(
+Ãt\9d_nd
+,
+Ãt\9d_\9a
+,
+
+666 \17(
+Ãt\9d_nd
+)) == 0)) {
+
+668 *
+pÜt
+ =
+lib_nd_rou\8b_\8fbË
+[
+i
+].port;
+
+669
+lib_nd_nh_found
+++;
+
+671 \ f
+j
+ = 0; j < 16; j++)
+
+672
+nh\9dv6
+[
+j
+] =
+lib_nd_rou\8b_\8fbË
+[
+i
+].nhipv6[j];
+
+677 ià(
+NDIPV6_DEBUG
+ > 1)
+
+678
+ `´\9atf
+("No\82h match\n");
+
+679
+d\95thæags
+ = 0;
+
+680
+d\95thæags1
+ = 0;
+
+682 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6
+)
+
+683
+ `´\9atf
+("NØNH - i°0x%x,\85Ü\88%u\n",
+\9dv6
+[0], *
+pÜt
+);
+
+684
+lib_nd_no_nh_found
+++;
+
+685
+ }
+}
+
+688 \12
+ $g\91_de¡_mac_addr_pÜt
+(cڡ
+u\9at32_t
+
+\9daddr
+,
+
+689
+u\9at32_t
+ *
+phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+)
+
+691
+lib_¬p_g\91_mac_»q
+++;
+
+692
+u\9at32_t
+
+nh\9d
+ = 0;
+
+694
+nh\9d
+ =
+ `g\91_nh
+(
+\9daddr
+,
+phy_pÜt
+);
+
+695 ià(
+nh\9d
+ == 0) {
+
+696 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+)
+
+697
+ `´\9atf
+("ARPICMP\82o\82h found for ip %x,\85ort %d\n",
+
+698
+\9daddr
+, *
+phy_pÜt
+);
+
+700 \15
+NH_NOT_FOUND
+;
+
+703 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+704 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+705
+tmp_¬p_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+706
+tmp_¬p_key
+.
+\9d
+ =
+nh\9d
+;
+
+708
+»t_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+tmp_¬p_key
+);
+
+709 ià(
+»t_¬p_d©a
+ =ð
+NULL
+) {
+
+710 ià(
+ARPICMP_DEBUG
+ &&
+\9daddr
+) {
+
+711
+´\9atf
+
+
+713
+\9daddr
+, *
+phy_pÜt
+);
+
+714
+ `´\9at_¬p_\8fbË
+();
+
+716
+lib_¬p_no_¬p_\92\8cy_found
+++;
+
+717 \15
+ARP_NOT_FOUND
+;
+
+719
+ `\91h\94_addr_cÝy
+(&
+»t_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+720
+lib_¬p_¬p_\92\8cy_found
+++;
+
+721 \15
+ARP_FOUND
+;
+
+722
+ }
+}
+
+725 \12
+ $g\91_de¡_mac_add»ss_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+
+phy_pÜt
+,
+
+726 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[])
+
+728 \12
+i
+ = 0,
+j
+ = 0,
+æag
+ = 0;
+
+729
+lib_nd_g\91_mac_»q
+++;
+
+731 ià(
+\9dv6addr
+)
+
+732
+ `g\91_nh_\9dv6
+(
+\9dv6addr
+, &
+phy_pÜt
+,
+nh\9dv6
+);
+
+733 \ f
+j
+ = 0; j < 16; j++) {
+
+734 ià(
+nh\9dv6
+[
+j
+])
+
+735
+æag
+++;
+
+737 ià(
+æag
+ == 0) {
+
+738 ià(
+\9dv6addr
+) {
+
+739 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+)
+
+740
+ `´\9atf
+("NDIPV6\82o\82h found for ipv6 "
+
+743
+\9dv6addr
+[0], ipv6addr[1], ipv6addr[2], ipv6addr[3],
+
+744
+\9dv6addr
+[4], ipv6addr[5], ipv6addr[6], ipv6addr[7],
+
+745
+\9dv6addr
+[8], ipv6addr[9], ipv6addr[10],
+
+746
+\9dv6addr
+[11], ipv6addr[12], ipv6addr[13],
+
+747
+\9dv6addr
+[14], ipv6addr[15],
+phy_pÜt
+);
+
+752 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+753 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+754
+tmp_nd_key
+.
+pÜt_id
+ =
+phy_pÜt
+;
+
+756 \ f
+i
+ = 0; i < 16; i++)
+
+757
+tmp_nd_key
+.
+\9dv6
+[
+i
+] =
+nh\9dv6
+[i];
+
+759
+»t_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+tmp_nd_key
+);
+
+760 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+761 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+) {
+
+762
+ `´\9atf
+("NDIPV6\82o\82d\83ntry found for ip %x,\85ort %d\n",
+
+763
+\9dv6addr
+[0],
+phy_pÜt
+);
+
+765
+lib_nd_no_¬p_\92\8cy_found
+++;
+
+768
+ `\91h\94_addr_cÝy
+(&
+»t_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+769
+lib_nd_nd_\92\8cy_found
+++;
+
+772
+ }
+}
+
+775 \12
+ $g\91_de¡_mac_add»ss_\9dv6_pÜt
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+776 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[])
+
+778 \12
+i
+ = 0,
+j
+ = 0,
+æag
+ = 0;
+
+779
+lib_nd_g\91_mac_»q
+++;
+
+781
+ `g\91_nh_\9dv6
+(
+\9dv6addr
+,
+phy_pÜt
+,
+nh\9dv6
+);
+
+782 \ f
+j
+ = 0; j < 16; j++) {
+
+783 ià(
+nh\9dv6
+[
+j
+])
+
+784
+æag
+++;
+
+786 ià(
+æag
+ == 0) {
+
+787 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+)
+
+788
+ `´\9atf
+("NDIPV6\82o\82h found for ipv6 "
+
+791
+\9dv6addr
+[0], ipv6addr[1], ipv6addr[2], ipv6addr[3],
+
+792
+\9dv6addr
+[4], ipv6addr[5], ipv6addr[6], ipv6addr[7],
+
+793
+\9dv6addr
+[8], ipv6addr[9], ipv6addr[10],
+
+794
+\9dv6addr
+[11], ipv6addr[12], ipv6addr[13],
+
+795
+\9dv6addr
+[14], ipv6addr[15], *
+phy_pÜt
+);
+
+799 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+800 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+801
+tmp_nd_key
+.
+pÜt_id
+ = *
+phy_pÜt
+;
+
+803 \ f
+i
+ = 0; i < 16; i++)
+
+804
+tmp_nd_key
+.
+\9dv6
+[
+i
+] =
+nh\9dv6
+[i];
+
+806
+»t_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+tmp_nd_key
+);
+
+807 ià(
+»t_nd_d©a
+ =ð
+NULL
+) {
+
+808 ià(
+NDIPV6_DEBUG
+ &&
+\9dv6addr
+) {
+
+809
+ `´\9atf
+("NDIPV6\82o\82d\83ntry found for ip %x,\85ort %d\n",
+
+810
+\9dv6addr
+[0], *
+phy_pÜt
+);
+
+812
+lib_nd_no_¬p_\92\8cy_found
+++;
+
+815
+ `\91h\94_addr_cÝy
+(&
+»t_nd_d©a
+->
+\91h_addr
+,
+hw_addr
+);
+
+816
+lib_nd_nd_\92\8cy_found
+++;
+
+819
+ }
+}
+
+824 \19
+ slib_¬p_¬p_\8fbË_\92\8cy
+ {
+
+825 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+ mh\97d
+;
+
+826
+u\9at64_t
+
+ mmaÿddr
+;
+
+829 \18cڡ \ 5*
+ $¬p_Ý_Çme
+(
+u\9at16_t
+
+¬p_Ý
+)
+
+831 \1a
+ `CHECK_ENDIAN_16
+(
+¬p_Ý
+)) {
+
+832 \ 4(
+ARP_OP_REQUEST
+):
+
+834 \ 4(
+ARP_OP_REPLY
+):
+
+836 \ 4(
+ARP_OP_REVREQUEST
+):
+
+838 \ 4(
+ARP_OP_REVREPLY
+):
+
+840 \ 4(
+ARP_OP_INVREQUEST
+):
+
+842 \ 4(
+ARP_OP_INVREPLY
+):
+
+848
+ }
+}
+
+850 \18\1e
+ $´\9at_icmp_·ck\91
+(\19
+icmp_hdr
+ *
+icmp_h
+)
+
+852
+ `´\9atf
+(" ICMP:\81ype=%d (%s) code=%d id=%d seqnum=%d\n",
+
+853
+icmp_h
+->
+icmp_ty³
+,
+
+854 (
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REPLY
+ ? "Reply" :
+
+855 (
+icmp_h
+->
+icmp_ty³
+ ==
+
+856
+IP_ICMP_ECHO_REQUEST
+ ? "Reqe¡" : "Undef")),
+icmp_h
+->
+icmp_code
+,
+
+857
+ `CHECK_ENDIAN_16
+(
+icmp_h
+->
+icmp_id\92t
+),
+
+858
+ `CHECK_ENDIAN_16
+(
+icmp_h
+->
+icmp_£q_nb
+));
+
+859
+ }
+}
+
+861 \18\1e
+ $´\9at_\9dv4_h
+(\19
+\9dv4_hdr
+ *
+\9d_h
+)
+
+863 \19
+icmp_hdr
+ *
+icmp_h
+ =
+
+864 (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+865
+ `´\9atf
+(" IPv4: Version=%d HLEN=%d Type=%d Length=%d\n",
+
+866 (
+\9d_h
+->
+v\94siÚ_ihl
+ & 0xf0) >> 4, (ip_h->version_ihl & 0x0f),
+
+867
+\9d_h
+->
+ty³_of_£rviû
+,
+ `¹e_ýu_to_be_16
+(\9d_h->
+tÙ®_Ëngth
+));
+
+868 ià(
+\9d_h
+->
+Ãxt_´Ùo_id
+ =ð
+IPPROTO_ICMP
+)
+
+869
+ `´\9at_icmp_·ck\91
+(
+icmp_h
+);
+
+870
+ }
+}
+
+872 \18\1e
+ $´\9at_¬p_·ck\91
+(\19
+¬p_hdr
+ *
+¬p_h
+)
+
+874
+ `´\9atf
+(" ARP: hrd=%d\85roto=0x%04x hln=%d "
+
+876
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+),
+
+877
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+),\87½_h->
+¬p_hÊ
+,
+
+878
+¬p_h
+->
+¬p_¶n
+,
+ `CHECK_ENDIAN_16
+_h->
+¬p_Ý
+),
+
+879
+ `¬p_Ý_Çme
+(
+¬p_h
+->
+¬p_Ý
+));
+
+881 ià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+) {
+
+882
+ `´\9atf
+("incorrect\87rp_hrd format for IPv4 ARP (%d)\n",
+
+883 (
+¬p_h
+->
+¬p_hrd
+));
+
+884 } \vià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+) {
+
+885
+ `´\9atf
+("incorrect\87rp_pro format for IPv4 ARP (%d)\n",
+
+886 (
+¬p_h
+->
+¬p_´o
+));
+
+887 } \vià(
+¬p_h
+->
+¬p_hÊ
+ != 6) {
+
+888
+ `´\9atf
+("incorrect\87rp_hln format for IPv4 ARP (%d)\n",
+
+889
+¬p_h
+->
+¬p_hÊ
+);
+
+890 } \vià(
+¬p_h
+->
+¬p_¶n
+ != 4) {
+
+891
+ `´\9atf
+("incorrect\87rp_pln format for IPv4 ARP (%d)\n",
+
+892
+¬p_h
+->
+¬p_¶n
+);
+
+895
+ `´\9atf
+(" sha=%02X:%02X:%02X:%02X:%02X:%02X",
+
+896
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[0],
+
+897
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[1],
+
+898
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[2],
+
+899
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[3],
+
+900
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[4],
+
+901
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+.
+addr_by\8bs
+[5]);
+
+902
+ `´\9atf
+(" sip=%d.%d.%d.%d\n",
+
+903 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 24) & 0xFF,
+
+904 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 16) & 0xFF,
+
+905 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) >> 8) & 0xFF,
+
+906
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+) & 0xFF);
+
+907
+ `´\9atf
+("\81ha=%02X:%02X:%02X:%02X:%02X:%02X",
+
+908
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[0],
+
+909
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[1],
+
+910
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[2],
+
+911
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[3],
+
+912
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[4],
+
+913
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+.
+addr_by\8bs
+[5]);
+
+914
+ `´\9atf
+("\81ip=%d.%d.%d.%d\n",
+
+915 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 24) & 0xFF,
+
+916 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 16) & 0xFF,
+
+917 (
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) >> 8) & 0xFF,
+
+918
+ `CHECK_ENDIAN_32
+(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+) & 0xFF);
+
+920
+ }
+}
+
+922 \18\1e
+ $´\9at_\91h
+(\19
+\91h\94_hdr
+ *
+\91h_h
+)
+
+924
+ `´\9atf
+(" ETH: src=%02X:%02X:%02X:%02X:%02X:%02X",
+
+925
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[0],
+
+926
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[1],
+
+927
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[2],
+
+928
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[3],
+
+929
+\91h_h
+->
+s_addr
+.
+addr_by\8bs
+[4],\83th_h->s_addr.addr_bytes[5]);
+
+930
+ `´\9atf
+(" dst=%02X:%02X:%02X:%02X:%02X:%02X\n",
+
+931
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[0],
+
+932
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[1],
+
+933
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[2],
+
+934
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[3],
+
+935
+\91h_h
+->
+d_addr
+.
+addr_by\8bs
+[4],\83th_h->d_addr.addr_bytes[5]);
+
+937
+ }
+}
+
+940
+ $´\9at_mbuf
+(cڡ \ 5*
+rx_tx
+, \1d\12
+pÜtid
+, \19
+¹e_mbuf
+ *
+mbuf
+,
+
+941 \1d\12
+l\9ae
+)
+
+943 \19
+\91h\94_hdr
+ *
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+mbuf
+, \19ether_hdr *);
+
+944 \19
+¬p_hdr
+ *
+¬p_h
+ =
+
+945 (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+946 \19
+\9dv4_hdr
+ *
+\9dv4_h
+ =
+
+947 (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+949
+ `´\9atf
+("%s(%d): on\85ort %d\85kt-len=%u\82b-segs=%u\n",
+
+950
+rx_tx
+,
+l\9ae
+,
+pÜtid
+,
+mbuf
+->
+pkt_Ën
+, mbuf->
+nb_£gs
+);
+
+951
+ `´\9at_\91h
+(
+\91h_h
+);
+
+952 \1a
+ `¹e_ýu_to_be_16
+(
+\91h_h
+->
+\91h\94_ty³
+)) {
+
+953 \ 4
+ETHER_TYPE_IPv4
+:
+
+954
+ `´\9at_\9dv4_h
+(
+\9dv4_h
+);
+
+956 \ 4
+ETHER_TYPE_ARP
+:
+
+957
+ `´\9at_¬p_·ck\91
+(
+¬p_h
+);
+
+960
+ `´\9atf
+(" unknown\85acket\81ype\n");
+
+963
+ `fæush
+(
+¡dout
+);
+
+964
+ }
+}
+
+966 \19
+¬p_\92\8cy_d©a
+ *
+ $»\8c\9bve_¬p_\92\8cy
+(\19
+¬p_key_\9dv4
+
+¬p_key
+)
+
+968 \19
+¬p_\92\8cy_d©a
+ *
+»t_¬p_d©a
+ =
+NULL
+;
+
+969
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+970
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+971
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+973 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+
+974 (\1e**)&
+»t_¬p_d©a
+);
+
+975 ià(
+»t
+ < 0) {
+
+976 ià(
+ARPICMP_DEBUG
+)
+
+977
+ `´\9atf
+("arp-hash\86ookup failed\84et %d, "
+
+979
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+981 \15
+»t_¬p_d©a
+;
+
+984 \15
+NULL
+;
+
+985
+ }
+}
+
+993 \19
+nd_\92\8cy_d©a
+ *
+ $»\8c\9bve_nd_\92\8cy
+(\19
+nd_key_\9dv6
+
+nd_key
+)
+
+995 \19
+nd_\92\8cy_d©a
+ *
+»t_nd_d©a
+ =
+NULL
+;
+
+996
+nd_key
+.
+f\9eËr1
+ = 0;
+
+997
+nd_key
+.
+f\9eËr2
+ = 0;
+
+998
+nd_key
+.
+f\9eËr3
+ = 0;
+
+1001 \12
+»t
+ =
+ `¹e_hash_lookup_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+
+1002 (\1e**)&
+»t_nd_d©a
+);
+
+1003 ià(
+»t
+ < 0) {
+
+1004 ià(
+NDIPV6_DEBUG
+)
+
+1005
+ `´\9atf
+("nd-hash:\82o\86ookup Entry Found - "
+
+1007
+»t
+,
+EINVAL
+,
+ENOENT
+);
+
+1009 \15
+»t_nd_d©a
+;
+
+1012 \15
+NULL
+;
+
+1013
+ }
+}
+
+1015 \1e
+ $´\9at_¬p_\8fbË
+(\1e)
+
+1017 cڡ \1e*
+Ãxt_key
+;
+
+1018 \1e*
+Ãxt_d©a
+;
+
+1019
+u\9at32_t
+
+\99\94
+ = 0;
+
+1021
+ `´\9atf
+("\tport hw\87ddr status ip\87ddr\n");
+
+1023 \1f
+ `¹e_hash_\99\94©e
+(
+¬p_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+)
+
+1026 \19
+¬p_\92\8cy_d©a
+ *
+tmp_¬p_d©a
+ =
+
+1027 (\19
+¬p_\92\8cy_d©a
+ *)
+Ãxt_d©a
+;
+
+1028 \19
+¬p_key_\9dv4
+
+tmp_¬p_key
+;
+
+1029
+ `memýy
+(&
+tmp_¬p_key
+,
+Ãxt_key
+, \17(\19
+¬p_key_\9dv4
+));
+
+1030
+´\9atf
+
+
+1032
+tmp_¬p_d©a
+->
+pÜt
+,\81mp_¬p_d©a->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1033
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1034
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1035
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1036
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1037
+tmp_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+1038
+tmp_¬p_d©a
+->
+¡©us
+ ==
+
+1039
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE",
+
+1040 (
+tmp_¬p_d©a
+->
+\9d
+ >> 24),
+
+1041 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x00ff0000) >> 16),
+
+1042 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x0000ff00) >> 8),
+
+1043 ((
+tmp_¬p_d©a
+->
+\9d
+ & 0x000000ff)));
+
+1046
+u\9at32_t
+
+i
+ = 0;
+
+1047
+ `´\9atf
+("\nARP\84out\9ag\81abË ha %d\83Ár\9bs\n",
+¬p_rou\8b_tbl_\9adex
+);
+
+1048
+ `´\9atf
+("\nIP_Address Mask Port NH_IP_Address\n");
+
+1049 \ f
+i
+ = 0; i <
+¬p_rou\8b_tbl_\9adex
+; i++) {
+
+1050
+ `´\9atf
+("0x%x 0x%x %d 0x%x\n",
+
+1051
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+\9d
+,
+
+1052
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+mask
+,
+
+1053
+lib_¬p_rou\8b_\8fbË
+[
+i
+].
+pÜt
+,\86ib_¬p_rou\8b_\8fbË[i].
+nh
+);
+
+1056
+ `´\9atf
+("\nARP Stats: Total Queries %u, ok_NH %u,\82o_NH %u, "
+
+1058
+lib_¬p_g\91_mac_»q
+,
+lib_¬p_nh_found
+,
+lib_¬p_no_nh_found
+,
+
+1059
+lib_¬p_¬p_\92\8cy_found
+,
+lib_¬p_no_¬p_\92\8cy_found
+,
+
+1060
+lib_¬p_pÝuÏ\8b_ÿÎed
+,
+lib_¬p_d\96\91e_ÿÎed
+,
+
+1061
+lib_¬p_du¶iÿ\8b_found
+);
+
+1063
+ `´\9atf
+("ARP\81abË key\86\92 i %lu\n", \17(\19
+¬p_key_\9dv4
+));
+
+1064
+ }
+}
+
+1067 \1e
+ $´\9at_nd_\8fbË
+(\1e)
+
+1069 cڡ \1e*
+Ãxt_key
+;
+
+1070 \1e*
+Ãxt_d©a
+;
+
+1071
+u\9at32_t
+
+\99\94
+ = 0;
+
+1072
+u\9at8_t
+
+ii
+ = 0,
+j
+ = 0,
+k
+ = 0;
+
+1074
+ `´\9atf
+("\tport hw\87ddr status ip\87ddr\n");
+
+1076 \1f
+ `¹e_hash_\99\94©e
+(
+nd_hash_hªdË
+, &
+Ãxt_key
+, &
+Ãxt_d©a
+, &
+\99\94
+) >=
+
+1079 \19
+nd_\92\8cy_d©a
+ *
+tmp_nd_d©a
+ =
+
+1080 (\19
+nd_\92\8cy_d©a
+ *)
+Ãxt_d©a
+;
+
+1081 \19
+nd_key_\9dv6
+
+tmp_nd_key
+;
+
+1082
+ `memýy
+(&
+tmp_nd_key
+,
+Ãxt_key
+, \17(\19
+nd_key_\9dv6
+));
+
+1083
+ `´\9atf
+("\t%4d %02X:%02X:%02X:%02X:%02X:%02X %10s\n",
+
+1084
+tmp_nd_d©a
+->
+pÜt
+,
+
+1085
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1086
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1087
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1088
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1089
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1090
+tmp_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+1091
+tmp_nd_d©a
+->
+¡©us
+ ==
+
+1092
+COMPLETE
+ ? "COMPLETE" : "INCOMPLETE");
+
+1093
+ `´\9atf
+("\t\t\t\t\t\t");
+
+1094 \ f
+ii
+ = 0; i\98<
+ND_IPV6_ADDR_SIZE
+; ii += 2) {
+
+1095
+ `´\9atf
+("%02X%02X ",
+tmp_nd_d©a
+->
+\9dv6
+[
+ii
+],
+
+1096
+tmp_nd_d©a
+->
+\9dv6
+[
+ii
+ + 1]);
+
+1098
+ `´\9atf
+("\n");
+
+1101
+u\9at32_t
+
+i
+ = 0;
+
+1102
+ `´\9atf
+("\n\nND IPV6\84outing\81able has %d\83ntries\n",
+
+1103
+nd_rou\8b_tbl_\9adex
+);
+
+1104
+ `´\9atf
+("\nIP_Address Depth Port NH_IP_Address\n");
+
+1105 \ f
+i
+ = 0; i <
+nd_rou\8b_tbl_\9adex
+; i++) {
+
+1106
+ `´\9atf
+("\n");
+
+1108 \ f
+j
+ = 0; j <
+ND_IPV6_ADDR_SIZE
+; j += 2) {
+
+1109
+ `´\9atf
+("%02X%02X ",
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+j
+],
+
+1110
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+j
+ + 1]);
+
+1113
+´\9atf
+
+
+1115
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+d\95th
+,\86ib_nd_rou\8b_\8fbË[i].
+pÜt
+);
+
+1116
+ `´\9atf
+("\t\t\t\t\t\t\t\t\t");
+
+1117 \ f
+k
+ = 0; k <
+ND_IPV6_ADDR_SIZE
+; k += 2) {
+
+1118
+ `´\9atf
+("%02X%02X ",
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+nh\9dv6
+[
+k
+],
+
+1119
+lib_nd_rou\8b_\8fbË
+[
+i
+].
+\9dv6
+[
+k
+ + 1]);
+
+1122
+ `´\9atf
+("\nND IPV6 Stats:\nTotal Queries %u, ok_NH %u,\82o_NH %u,"
+
+1124
+lib_nd_g\91_mac_»q
+,
+lib_nd_nh_found
+,
+lib_nd_no_nh_found
+,
+
+1125
+lib_nd_nd_\92\8cy_found
+,
+lib_nd_no_¬p_\92\8cy_found
+,
+
+1126
+lib_nd_pÝuÏ\8b_ÿÎed
+,
+lib_nd_d\96\91e_ÿÎed
+,
+
+1127
+lib_nd_du¶iÿ\8b_found
+);
+
+1128
+ `´\9atf
+("ND\81abË key\86\92 i %lu\n\n", \17(\19
+nd_key_\9dv6
+));
+
+1129
+ }
+}
+
+1131 \1e
+ $»move_¬p_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+)
+
+1136 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+1137
+¬p_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1138
+¬p_key
+.
+\9d
+ =
+\9daddr
+;
+
+1139
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+1140
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+1141
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+1143
+lib_¬p_d\96\91e_ÿÎed
+++;
+
+1145 ià(
+ARPICMP_DEBUG
+)
+
+1146
+ `´\9atf
+("»move_¬p_\92\8cy i°%x,\85Ü\88%d\n",
+¬p_key
+.
+\9d
+,
+
+1147
+¬p_key
+.
+pÜt_id
+);
+
+1148
+ `¹e_hash_d\96_key
+(
+¬p_hash_hªdË
+, &
+¬p_key
+);
+
+1149
+ }
+}
+
+1152 \1e
+ $»move_nd_\92\8cy_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[], u\9at8_\88
+pÜtid
+)
+
+1156 \12
+i
+ = 0;
+
+1157 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+1158
+nd_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1161 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+1162
+nd_key
+.
+\9dv6
+[
+i
+] =
+\9dv6addr
+[i];
+
+1164
+nd_key
+.
+f\9eËr1
+ = 0;
+
+1165
+nd_key
+.
+f\9eËr2
+ = 0;
+
+1166
+nd_key
+.
+f\9eËr3
+ = 0;
+
+1168
+lib_nd_d\96\91e_ÿÎed
+++;
+
+1170 ià(
+NDIPV6_DEBUG
+) {
+
+1171
+ `´\9atf
+("Deletes\84te hash\81able\82d\83ntry for\85ort %d ipv6=",
+
+1172
+nd_key
+.
+pÜt_id
+);
+
+1173 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2)
+
+1174
+ `´\9atf
+("%02X%02X ",
+nd_key
+.
+\9dv6
+[
+i
+],\82d_key.ipv6[i + 1]);
+
+1176
+ `¹e_hash_d\96_key
+(
+nd_hash_hªdË
+, &
+nd_key
+);
+
+1177
+ }
+}
+
+1180
+ $pÝuÏ\8b_¬p_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+
+\9daddr
+,
+
+1181
+u\9at8_t
+
+pÜtid
+)
+
+1185 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+1186
+¬p_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1187
+¬p_key
+.
+\9d
+ =
+\9daddr
+;
+
+1188
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+1189
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+1190
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+1192
+lib_¬p_pÝuÏ\8b_ÿÎed
+++;
+
+1194 ià(
+ARPICMP_DEBUG
+)
+
+1195
+ `´\9atf
+("pÝuÏ\8b_¬p_\92\8cy i°%x,\85Ü\88%d\n",
+¬p_key
+.
+\9d
+,
+
+1196
+¬p_key
+.
+pÜt_id
+);
+
+1197 \19
+¬p_\92\8cy_d©a
+ *
+Ãw_¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+¬p_key
+);
+
+1198 ià(
+Ãw_¬p_d©a
+
+
+1199 &&
+ `is_§me_\91h\94_addr
+(&
+Ãw_¬p_d©a
+->
+\91h_addr
+,
+hw_addr
+)) {
+
+1200 ià(
+ARPICMP_DEBUG
+)
+
+1201
+ `´\9atf
+("¬p_\92\8cy\83xi¡ \9d%x,\85Ü\88%d\n",
+¬p_key
+.
+\9d
+,
+
+1202
+¬p_key
+.
+pÜt_id
+);
+
+1203
+lib_¬p_du¶iÿ\8b_found
+++;
+
+1206
+Ãw_¬p_d©a
+ = (\19
+¬p_\92\8cy_d©a
+ *)
+
+1207
+ `m®loc
+(\17(\19
+¬p_\92\8cy_d©a
+));
+
+1208 ià(
+Ãw_¬p_d©a
+ =ð
+NULL
+) {
+
+1209
+ `´\9atf
+("populate_arp_entry:new_arp_data is NULL\n");
+
+1212
+Ãw_¬p_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1213
+Ãw_¬p_d©a
+->
+¡©us
+ =
+INCOMPLETE
+;
+
+1214
+Ãw_¬p_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1215
+Ãw_¬p_d©a
+->
+\9d
+ =
+\9daddr
+;
+
+1216
+ `¹e_hash_add_key_d©a
+(
+¬p_hash_hªdË
+, &
+¬p_key
+,
+Ãw_¬p_d©a
+);
+
+1218 ià(
+ARPICMP_DEBUG
+) {
+
+1220
+ `´\9atf
+("\tARP:\81able update - hwaddr= "
+
+1223
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1224
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1225
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1226
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1227
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1228
+Ãw_¬p_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+
+1229 (
+¬p_key
+.
+\9d
+ >> 24),
+
+1230 ((
+¬p_key
+.
+\9d
+ & 0x00ff0000) >> 16),
+
+1231 ((
+¬p_key
+.
+\9d
+ & 0x0000ff00) >> 8),
+
+1232 ((
+¬p_key
+.
+\9d
+ & 0x000000ff)),
+pÜtid
+);
+
+1234
+ `puts
+("");
+
+1236
+ }
+}
+
+1245
+ $pÝuÏ\8b_nd_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+\9dv6
+[],
+
+1246
+u\9at8_t
+
+pÜtid
+)
+
+1251
+u\9at8_t
+
+i
+;
+
+1252 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+1253
+nd_key
+.
+pÜt_id
+ =
+pÜtid
+;
+
+1255 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++ )
+
+1256
+nd_key
+.
+\9dv6
+[
+i
+] = ipv6[i];
+
+1258
+ `´\9atf
+("\n");
+
+1259
+nd_key
+.
+f\9eËr1
+ = 0;
+
+1260
+nd_key
+.
+f\9eËr2
+ = 0;
+
+1261
+nd_key
+.
+f\9eËr3
+ = 0;
+
+1263
+lib_nd_pÝuÏ\8b_ÿÎed
+++;
+
+1268 \19
+nd_\92\8cy_d©a
+ *
+Ãw_nd_d©a
+ =
+ `»\8c\9bve_nd_\92\8cy
+(
+nd_key
+);
+
+1270 ià(
+Ãw_nd_d©a
+ &&
+ `is_§me_\91h\94_addr
+(&Ãw_nd_d©a->
+\91h_addr
+,
+
+1271
+hw_addr
+)) {
+
+1273 ià(
+NDIPV6_DEBUG
+) {
+
+1274
+ `´\9atf
+("nd_entry\83xists\85ort %d ipv6 = ",
+
+1275
+nd_key
+.
+pÜt_id
+);
+
+1276 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1278
+ `´\9atf
+("%02X%02X ",
+nd_key
+.
+\9dv6
+[
+i
+],
+
+1279
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+1283
+lib_nd_du¶iÿ\8b_found
+++;
+
+1284 ià(
+NDIPV6_DEBUG
+)
+
+1285
+ `´\9atf
+("nd_entry\83xists\n");
+
+1289
+Ãw_nd_d©a
+ = (\19
+nd_\92\8cy_d©a
+ *)
+
+1290
+ `m®loc
+(\17(\19
+nd_\92\8cy_d©a
+));
+
+1291 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+1292
+ `´\9atf
+("populate_nd_entry:\82ew_nd_data is NULL\n");
+
+1295
+Ãw_nd_d©a
+->
+\91h_addr
+ = *
+hw_addr
+;
+
+1296
+Ãw_nd_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+1297
+Ãw_nd_d©a
+->
+pÜt
+ =
+pÜtid
+;
+
+1299 ià(
+NDIPV6_DEBUG
+)
+
+1300
+ `´\9atf
+("populate_nd_entry ipv6=");
+
+1302 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++ )
+
+1303
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1305 ià(
+NDIPV6_DEBUG
+) {
+
+1306 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1308
+ `´\9atf
+("%02X%02X ",
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+],
+
+1309
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+ + 1]);
+
+1314
+ `¹e_hash_add_key_d©a
+(
+nd_hash_hªdË
+, &
+nd_key
+,
+Ãw_nd_d©a
+);
+
+1316 ià(
+NDIPV6_DEBUG
+)
+
+1317
+ `´\9atf
+("\n....Added\87 key-data\85air\87t\84te hash\81able "
+
+1320 ià(
+NDIPV6_DEBUG
+) {
+
+1322
+ `´\9atf
+("\tND:\81able update - hwaddr= "
+
+1324
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[0],
+
+1325
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[1],
+
+1326
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[2],
+
+1327
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[3],
+
+1328
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[4],
+
+1329
+Ãw_nd_d©a
+->
+\91h_addr
+.
+addr_by\8bs
+[5],
+pÜtid
+);
+
+1330
+ `´\9atf
+("\tipv6=");
+
+1331 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+1332
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+] = ipv6[i];
+
+1333
+ `´\9atf
+("%02X%02X ",
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+],
+
+1334
+Ãw_nd_d©a
+->
+\9dv6
+[
+i
+ + 1]);
+
+1337
+ `´\9atf
+("\n");
+
+1339
+ `puts
+("");
+
+1342
+ }
+}
+
+1344 \1e
+ $´\9at_pkt1
+(\19
+¹e_mbuf
+ *
+pkt
+)
+
+1346
+u\9at8_t
+ *
+rd
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+, 0);
+
+1347 \12
+i
+ = 0,
+j
+ = 0;
+
+1348
+ `´\9atf
+("\nPacket Contents...\n");
+
+1349 \ f
+i
+ = 0; i < 20; i++) {
+
+1350 \ f
+j
+ = 0; j < 20; j++)
+
+1351
+ `´\9atf
+("%02x ",
+rd
+[(20 *
+i
+è+
+j
+]);
+
+1352
+ `´\9atf
+("\n");
+
+1354
+ }
+}
+
+1356 \19
+\91h\94_addr
+
+ gbrßdÿ¡_\91h\94_addr
+ = {
+
+1357 .
+addr_by\8bs
+[0] = 0xFF,
+
+1358 .
+ gaddr_by\8bs
+[1] = 0xFF,
+
+1359 .
+ gaddr_by\8bs
+[2] = 0xFF,
+
+1360 .
+ gaddr_by\8bs
+[3] = 0xFF,
+
+1361 .
+ gaddr_by\8bs
+[4] = 0xFF,
+
+1362 .
+ gaddr_by\8bs
+[5] = 0xFF,
+
+1365 \18cڡ \19
+\91h\94_addr
+
+ gnuÎ_\91h\94_addr
+ = {
+
+1366 .
+addr_by\8bs
+[0] = 0x00,
+
+1367 .
+ gaddr_by\8bs
+[1] = 0x00,
+
+1368 .
+ gaddr_by\8bs
+[2] = 0x00,
+
+1369 .
+ gaddr_by\8bs
+[3] = 0x00,
+
+1370 .
+ gaddr_by\8bs
+[4] = 0x00,
+
+1371 .
+ gaddr_by\8bs
+[5] = 0x00,
+
+1374 \ 1
+ #MAX_NUM_MAC_ADDRESS
+ 16
+
+ )
+
+1375 \19
+\91h\94_addr
+
+ gl\9ak_hw_addr
+[
+MAX_NUM_MAC_ADDRESS
+] = {
+
+1376 {.
+addr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc8} },
+
+1377 {.
+ gaddr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1378 {.
+ gaddr_by\8bs
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1379 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1380 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1381 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1382 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1383 {.
+ gaddr_by\8bs
+ = {0x90, 0xe2, 0xba, 0x54, 0x67, 0xc9} },
+
+1384 {.
+ gaddr_by\8bs
+ = {0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11} },
+
+1385 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1386 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1387 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1388 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1389 {.
+ gaddr_by\8bs
+ = {0x12, 0x13, 0x14, 0x15, 0x16, 0x17} },
+
+1390 {.
+ gaddr_by\8bs
+ = {0x22, 0x33, 0x44, 0x55, 0x66, 0x77} },
+
+1391 {.
+ gaddr_by\8bs
+ = {0x18, 0x19, 0x1a, 0x1b, 0xcd, 0xef} }
+
+1394 \19
+\91h\94_addr
+ *
+ $g\91_l\9ak_hw_addr
+(
+u\9at8_t
+
+out_pÜt
+)
+
+1396 \15 &
+l\9ak_hw_addr
+[
+out_pÜt
+];
+
+1397
+ }
+}
+
+1400
+ $»que¡_icmp_echo
+(\1d\12
+pÜt_id
+,
+u\9at32_t
+
+\9d
+, \19
+\91h\94_addr
+ *
+gw_addr
+)
+
+1402 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1403 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1404 \19
+icmp_hdr
+ *
+icmp_h
+;
+
+1406 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+1407
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pÜt_id
+];
+
+1408
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+\9d
+ =
+l\9ak
+->ip;
+
+1409
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ =
+l\9ak
+->mac_addr;
+
+1411 \19
+¹e_mbuf
+ *
+icmp_pkt
+ =
+lib_¬p_pkt
+;
+
+1412 ià(
+icmp_pkt
+ =ð
+NULL
+) {
+
+1413 ià(
+ARPICMP_DEBUG
+)
+
+1414
+ `´\9atf
+("Error\87llocating icmp_pkt\84te_mbuf\n");
+
+1418
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmp_pkt
+, \19
+\91h\94_hdr
+ *);
+
+1419
+ `\91h\94_addr_cÝy
+(
+gw_addr
+, &
+\91h_h
+->
+d_addr
+);
+
+1420
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1421 &
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+, &
+\91h_h
+->
+s_addr
+);
+
+1422
+\91h_h
+->
+\91h\94_ty³
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv4
+);
+
+1424
+\9d_h
+ = (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1425
+icmp_h
+ = (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1427
+\9d_h
+->
+v\94siÚ_ihl
+ =
+IP_VHL_DEF
+;
+
+1428
+\9d_h
+->
+ty³_of_£rviû
+ = 0;
+
+1429
+\9d_h
+->
+tÙ®_Ëngth
+ =
+
+1430
+ `¹e_ýu_to_be_16
+(\17(\19
+\9dv4_hdr
+è+ \17(\19
+icmp_hdr
+));
+
+1431
+\9d_h
+->
+·ck\91_id
+ = 0xaabb;
+
+1432
+\9d_h
+->
+äagm\92t_off£t
+ = 0x0000;
+
+1433
+\9d_h
+->
+time_to_live
+ = 64;
+
+1434
+\9d_h
+->
+Ãxt_´Ùo_id
+ =
+IPPROTO_ICMP
+;
+
+1435
+\9d_h
+->
+¤c_addr
+ =
+ `¹e_bsw32
+(
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+\9d
+);
+
+1436
+\9d_h
+->
+d¡_addr
+ =
+\9d
+;
+
+1438
+\9d_h
+->
+hdr_checksum
+ = 0;
+
+1439
+\9d_h
+->
+hdr_checksum
+ =
+ `¹e_\9dv4_cksum
+(ip_h);
+
+1441
+icmp_h
+->
+icmp_ty³
+ =
+IP_ICMP_ECHO_REQUEST
+;
+
+1442
+icmp_h
+->
+icmp_code
+ = 0;
+
+1443
+icmp_h
+->
+icmp_id\92t
+ = 0xdead;
+
+1444
+icmp_h
+->
+icmp_£q_nb
+ = 0xbeef;
+
+1446
+icmp_h
+->
+icmp_cksum
+ = ~
+ `¹e_¿w_cksum
+(icmp_h, \17(\19
+icmp_hdr
+));
+
+1448
+icmp_pkt
+->
+pkt_Ën
+ =
+
+1449 \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv4_hdr
+) +
+
+1450 \17(\19
+icmp_hdr
+);
+
+1451
+icmp_pkt
+->
+d©a_Ën
+ = icmp_pkt->
+pkt_Ën
+;
+
+1453 ià(
+ARPICMP_DEBUG
+) {
+
+1454
+ `´\9atf
+("Sending\83cho\84equest\n");
+
+1455
+ `´\9at_mbuf
+("TX",
+pÜt_id
+,
+icmp_pkt
+,
+__LINE__
+);
+
+1458
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1459
+gp_¬p
+->
+ou\8dÜt_id
+[
+pÜt_id
+],
+icmp_pkt
+);
+
+1460
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1461
+ }
+}
+
+1463 \1e
+ $»que¡_echo
+(\1d\12
+pÜt_id
+,
+u\9at32_t
+
+\9d
+)
+
+1465 (\1e)
+pÜt_id
+;
+
+1466 (\1e)
+\9d
+;
+
+1468 \19
+\91h\94_addr
+
+gw_addr
+;
+
+1469
+u\9at32_t
+
+de¡_\9d
+ =
+ `¹e_bsw32
+(
+\9d
+);
+
+1470
+u\9at32_t
+
+phy_pÜt
+;
+
+1472 ià(
+ `g\91_de¡_mac_addr_pÜt
+(
+de¡_\9d
+, &
+phy_pÜt
+, &
+gw_addr
+è=ð
+ARP_FOUND
+) {
+
+1473
+ `»que¡_icmp_echo
+(
+phy_pÜt
+,
+\9d
+, &
+gw_addr
+);
+
+1477 ià(
+ARPICMP_DEBUG
+)
+
+1478
+ `´\9atf
+("Sending\83cho\84equest ... get mac failed.\n");
+
+1479
+ }
+}
+
+1481 \1e
+ $»que¡_¬p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+, \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+)
+
+1483 (\1e)
+pÜt_id
+;
+
+1484 (\1e)
+\9d
+;
+
+1486 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1487 \19
+¬p_hdr
+ *
+¬p_h
+;
+
+1489 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+1490
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pÜt_id
+];
+
+1491
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+\9d
+ =
+l\9ak
+->ip;
+
+1492
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ =
+l\9ak
+->mac_addr;
+
+1494 \19
+¹e_mbuf
+ *
+¬p_pkt
+ =
+lib_¬p_pkt
+;
+
+1496 ià(
+¬p_pkt
+ =ð
+NULL
+) {
+
+1497 ià(
+ARPICMP_DEBUG
+)
+
+1498
+ `´\9atf
+("Error\87llocating\87rp_pkt\84te_mbuf\n");
+
+1502
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+¬p_pkt
+, \19
+\91h\94_hdr
+ *);
+
+1504
+ `\91h\94_addr_cÝy
+(&
+brßdÿ¡_\91h\94_addr
+, &
+\91h_h
+->
+d_addr
+);
+
+1505
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1506 &
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+, &
+\91h_h
+->
+s_addr
+);
+
+1507
+\91h_h
+->
+\91h\94_ty³
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_ARP
+);
+
+1509
+¬p_h
+ = (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+1510
+¬p_h
+->
+¬p_hrd
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_HRD_ETHER
+);
+
+1511
+¬p_h
+->
+¬p_´o
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv4
+);
+
+1512
+¬p_h
+->
+¬p_hÊ
+ =
+ETHER_ADDR_LEN
+;
+
+1513
+¬p_h
+->
+¬p_¶n
+ = \17(
+u\9at32_t
+);
+
+1514
+¬p_h
+->
+¬p_Ý
+ =
+ `CHECK_ENDIAN_16
+(
+ARP_OP_REQUEST
+);
+
+1516
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1517 &
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+,
+
+1518 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1519
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+ =
+
+1520
+ `¹e_ýu_to_be_32
+(
+¬p_pÜt_add»s£s
+[
+pÜt_id
+].
+\9d
+);
+
+1521
+ `\91h\94_addr_cÝy
+(&
+nuÎ_\91h\94_addr
+, &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1522
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ =
+ `¹e_ýu_to_be_32
+(
+\9d
+);
+
+1523
+ `´\9atf
+("¬°t\9d:%x\87½ s\9d :%x\n",
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+,
+
+1524
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+);
+
+1530
+¬p_pkt
+->
+pkt_Ën
+ = 42;
+
+1531
+¬p_pkt
+->
+d©a_Ën
+ = 42;
+
+1533 ià(
+ARPICMP_DEBUG
+) {
+
+1534
+ `´\9atf
+("Sending\87rp\84equest\n");
+
+1535
+ `´\9at_mbuf
+("TX",
+pÜt_id
+,
+¬p_pkt
+,
+__LINE__
+);
+
+1538
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+¹e_p
+,
+pÜt_id
+,
+¬p_pkt
+);
+
+1539
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1541
+ }
+}
+
+1543 \1e
+ $»que¡_¬p_w¿p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+)
+
+1545
+ `»que¡_¬p
+(
+pÜt_id
+,
+\9d
+,
+gp_¬p
+->
+p
+.p);
+
+1546
+ }
+}
+
+1548 \1e
+ $´oûss_¬picmp_pkt
+(
+
+1549 \19
+¹e_mbuf
+ *
+pkt
+,
+
+1550
+u\9at32_t
+
+out_pÜt
+,
+
+1551
+u\9at32_t
+
+pkt_mask
+)
+
+1553
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+->
+pÜt
+;
+
+1554 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+1555 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+1556 \19
+¬p_hdr
+ *
+¬p_h
+;
+
+1557 \19
+\9dv4_hdr
+ *
+\9d_h
+;
+
+1558 \19
+icmp_hdr
+ *
+icmp_h
+;
+
+1559
+u\9at32_t
+
+cksum
+;
+
+1560
+u\9at32_t
+
+\9d_addr
+;
+
+1561
+u\9at32_t
+
+»q_t\9d
+;
+
+1564
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+1566 ià(
+\91h_h
+->
+\91h\94_ty³
+ =ð
+ `¹e_ýu_to_be_16
+(
+ETHER_TYPE_ARP
+)) {
+
+1567
+¬p_h
+ =
+
+1568 (\19
+¬p_hdr
+ *)((\ 5*)
+\91h_h
+ +
+
+1569 \17(\19
+\91h\94_hdr
+));
+
+1570 ià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_hrd
+è!ð
+ARP_HRD_ETHER
+)
+
+1571
+´\9atf
+
+
+1574 \vià(
+ `CHECK_ENDIAN_16
+(
+¬p_h
+->
+¬p_´o
+è!ð
+ETHER_TYPE_IPv4
+)
+
+1575
+´\9atf
+
+
+1578 \vià(
+¬p_h
+->
+¬p_hÊ
+ != 6)
+
+1579
+´\9atf
+
+
+1582 \vià(
+¬p_h
+->
+¬p_¶n
+ != 4)
+
+1583
+´\9atf
+
+
+1587
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+1588
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9d
+ =
+l\9ak
+->ip;
+
+1589
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+mac_addr
+ =
+
+1590
+l\9ak
+->
+mac_addr
+;
+
+1592 ià(
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ !=
+
+1593
+ `¹e_bsw32
+(
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9d
+)) {
+
+1594
+´\9atf
+
+
+1597
+ `´\9atf
+("arp_tip = %x\n",
+
+1598
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+);
+
+1599
+ `´\9atf
+("arp_port_addresses = %x\n",
+
+1600
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9d
+);
+
+1601
+ `´\9atf
+("\9a_pÜt_id = %x\n",
+\9a_pÜt_id
+);
+
+1602
+ `´\9atf
+("arp_port_addresses[0] = %x\n",
+
+1603
+¬p_pÜt_add»s£s
+[0].
+\9d
+);
+
+1605
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1606
+pkt_mask
+);
+
+1607
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1614 \vià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1615
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REQUEST
+)) {
+
+1617 ià(
+ARPICMP_DEBUG
+) {
+
+1618
+ `´\9atf
+("arp_op %d, ARP_OP_REQUEST %d\n",
+
+1619
+¬p_h
+->
+¬p_Ý
+,
+
+1620
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REQUEST
+));
+
+1621
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+pkt
+,
+__LINE__
+);
+
+1624
+ `pÝuÏ\8b_¬p_\92\8cy
+((\19
+\91h\94_addr
+ *)
+
+1625 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1626
+¹e_ýu_to_be_32
+
+
+1627 (
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+),
+
+1628
+\9a_pÜt_id
+);
+
+1631
+»q_t\9d
+ =
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+;
+
+1632
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+, &\91h_h->
+d_addr
+);
+
+1635
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+
+1636
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+mac_addr
+,
+
+1637 &
+\91h_h
+->
+s_addr
+);
+
+1639
+¬p_h
+->
+¬p_Ý
+ =
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+);
+
+1640
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+1641 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+);
+
+1642
+¬p_h
+->
+¬p_d©a
+.
+¬p_t\9d
+ =
+
+1643
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+;
+
+1644
+¬p_h
+->
+¬p_d©a
+.
+¬p_s\9d
+ =
+»q_t\9d
+;
+
+1645
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+d_addr
+,
+
+1646 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_tha
+);
+
+1648
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1649
+out_pÜt
+,
+pkt
+);
+
+1650
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1652 } \vià(
+¬p_h
+->
+¬p_Ý
+ ==
+
+1653
+ `¹e_ýu_to_be_16
+(
+ARP_OP_REPLY
+)) {
+
+1656 ià(
+ARPICMP_DEBUG
+) {
+
+1657
+ `´\9atf
+("ARP_OP_REPLY\84eceived");
+
+1658
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+pkt
+,
+
+1659
+__LINE__
+);
+
+1661
+ `pÝuÏ\8b_¬p_\92\8cy
+((\19
+\91h\94_addr
+ *)
+
+1662 &
+¬p_h
+->
+¬p_d©a
+.
+¬p_sha
+,
+
+1663
+ `¹e_bsw32
+(
+¬p_h
+->
+
+1664
+¬p_d©a
+.
+¬p_s\9d
+),
+
+1665
+\9a_pÜt_id
+);
+
+1668
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1669
+pkt_mask
+);
+
+1670
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1673 ià(
+ARPICMP_DEBUG
+)
+
+1674
+ `´\9atf
+("Invalid ARP opcode -\82ot "
+
+1676
+¬p_h
+->
+¬p_Ý
+);
+
+1680
+\9d_h
+ =
+
+1681 (\19
+\9dv4_hdr
+ *)((\ 5*)
+\91h_h
+ +
+
+1682 \17(\19
+\91h\94_hdr
+));
+
+1683
+icmp_h
+ =
+
+1684 (\19
+icmp_hdr
+ *)((\ 5*)
+\9d_h
+ + \17(\19
+\9dv4_hdr
+));
+
+1686 ià(
+\91h_h
+->
+\91h\94_ty³
+ =ð
+ `¹e_ýu_to_be_16
+(
+ETHER_TYPE_IPv4
+)) {
+
+1688
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+1689
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9d
+ =
+l\9ak
+->ip;
+
+1690
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+mac_addr
+ =
+
+1691
+l\9ak
+->
+mac_addr
+;
+
+1693 ià(!
+ `is_§me_\91h\94_addr
+((\19
+\91h\94_addr
+ *)
+
+1694 &
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+
+1695
+mac_addr
+, &
+\91h_h
+->
+d_addr
+)) {
+
+1697 ià(
+ARPICMP_DEBUG
+)
+
+1698
+ `´\9atf
+("Ethernet frame\82ot destined "
+
+1702 } \vià(
+\9d_h
+->
+Ãxt_´Ùo_id
+ !ð
+IPPROTO_ICMP
+) {
+
+1703 ià(
+ARPICMP_DEBUG
+)
+
+1704
+ `´\9atf
+("IP\85rotocol ID is\82ot set\81o "
+
+1707 } \vià((
+\9d_h
+->
+v\94siÚ_ihl
+ & 0xf0è!ð
+IP_VERSION_4
+) {
+
+1708 ià(
+ARPICMP_DEBUG
+)
+
+1709
+ `´\9atf
+("IP version other\81han 4 - "
+
+1712 } \vià((
+\9d_h
+->
+v\94siÚ_ihl
+ & 0x0fè!ð
+IP_HDRLEN
+) {
+
+1713 ià(
+ARPICMP_DEBUG
+)
+
+1714
+ `´\9atf
+("Unknown IHL - discarding\n");
+
+1717 ià(
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REQUEST
+
+
+1718 &&
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1719 ià(
+ARPICMP_DEBUG
+)
+
+1720
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+
+1721
+pkt
+,
+__LINE__
+);
+
+1723
+\9d_addr
+ =
+\9d_h
+->
+¤c_addr
+;
+
+1724
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+1725 &
+\91h_h
+->
+d_addr
+);
+
+1726
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+1727 &
+¬p_pÜt_add»s£s
+
+
+1728 [
+\9a_pÜt_id
+].
+mac_addr
+,
+
+1729 &
+\91h_h
+->
+s_addr
+);
+
+1731 ià(
+\9d_h
+->
+d¡_addr
+ !=
+
+1732
+ `¹e_bsw32
+(
+¬p_pÜt_add»s£s
+
+
+1733 [
+\9a_pÜt_id
+].
+\9d
+)) {
+
+1734 ià(
+ARPICMP_DEBUG
+) {
+
+1735
+ `´\9atf
+("IPv4\85acket\82ot destined for "
+
+1738
+ `´\9atf
+("ip_h->dst_addr = %u, "
+
+1741
+\9d_h
+->
+d¡_addr
+,
+\9a_pÜt_id
+,
+
+1742
+¬p_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9d
+);
+
+1746 ià(
+is_muÉiÿ¡_\9dv4_addr
+
+
+1747 (
+\9d_h
+->
+d¡_addr
+)) {
+
+1748
+u\9at32_t
+
+\9d_¤c
+;
+
+1750
+\9d_¤c
+ =
+¹e_be_to_ýu_32
+
+
+1751 (
+\9d_addr
+);
+
+1752 ià((
+\9d_¤c
+ & 0x00000003) == 1)
+
+1753
+\9d_¤c
+ = (ip_src &
+
+1757
+\9d_¤c
+ = (ip_src &
+
+1761
+\9d_h
+->
+¤c_addr
+ =
+
+1762
+ `¹e_ýu_to_be_32
+(
+\9d_¤c
+);
+
+1763
+\9d_h
+->
+d¡_addr
+ =
+\9d_addr
+;
+
+1765
+\9d_h
+->
+hdr_checksum
+ = 0;
+
+1766
+\9d_h
+->
+hdr_checksum
+ = ~
+ `¹e_¿w_cksum
+(
+
+1767
+\9d_h
+, \17(\19
+
+1768
+\9dv4_hdr
+));
+
+1770
+\9d_h
+->
+¤c_addr
+ = ip_h->
+d¡_addr
+;
+
+1771
+\9d_h
+->
+d¡_addr
+ =
+\9d_addr
+;
+
+1774
+icmp_h
+->
+icmp_ty³
+ =
+
+1775
+IP_ICMP_ECHO_REPLY
+;
+
+1776
+cksum
+ = ~
+icmp_h
+->
+icmp_cksum
+ & 0xffff;
+
+1777
+cksum
+ +ð~
+ `htÚs
+(
+IP_ICMP_ECHO_REQUEST
+ << 8) & 0xffff;
+
+1778
+cksum
+ +ð
+ `htÚs
+(
+IP_ICMP_ECHO_REPLY
+ << 8);
+
+1779
+cksum
+ = (cksum & 0xffff) + (cksum >> 16);
+
+1780
+cksum
+ = (cksum & 0xffff) + (cksum >> 16);
+
+1781
+icmp_h
+->
+icmp_cksum
+ = ~
+cksum
+;
+
+1783 ià(
+ARPICMP_DEBUG
+)
+
+1784
+ `´\9at_mbuf
+("TX",
+\9a_pÜt_id
+,
+pkt
+,
+__LINE__
+);
+
+1786
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+gp_¬p
+->
+p
+.p,
+
+1787
+out_pÜt
+,
+pkt
+);
+
+1788
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+1792 \vià(
+icmp_h
+->
+icmp_ty³
+ =ð
+IP_ICMP_ECHO_REPLY
+
+
+1793 &&
+icmp_h
+->
+icmp_code
+ == 0) {
+
+1794 ià(
+ARPICMP_DEBUG
+)
+
+1795
+ `´\9at_mbuf
+("RX",
+\9a_pÜt_id
+,
+
+1796
+pkt
+,
+__LINE__
+);
+
+1798 \19
+¬p_key_\9dv4
+
+¬p_key
+;
+
+1799
+¬p_key
+.
+pÜt_id
+ =
+\9a_pÜt_id
+;
+
+1800
+¬p_key
+.
+\9d
+ =
+
+1801
+ `¹e_bsw32
+(
+\9d_h
+->
+¤c_addr
+);
+
+1802
+¬p_key
+.
+f\9eËr1
+ = 0;
+
+1803
+¬p_key
+.
+f\9eËr2
+ = 0;
+
+1804
+¬p_key
+.
+f\9eËr3
+ = 0;
+
+1806 \19
+¬p_\92\8cy_d©a
+ *
+¬p_\92\8cy
+ =
+
+1807
+ `»\8c\9bve_¬p_\92\8cy
+(
+¬p_key
+);
+
+1808 ià(
+¬p_\92\8cy
+ =ð
+NULL
+) {
+
+1809
+ `´\9atf
+("Received unsolicited "
+
+1812
+¬p_key
+.
+\9d
+,
+
+1813
+¬p_key
+.
+pÜt_id
+);
+
+1817
+¬p_\92\8cy
+->
+¡©us
+ =
+COMPLETE
+;
+
+1819
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+gp_¬p
+->
+p
+.p,
+
+1820
+pkt_mask
+);
+
+1821
+gp_¬p
+->
+drݳdPktCouÁ
+++;
+
+1826
+ }
+}
+
+1841 \18\12
+ $my_\9a\91_±Ú_\9dv6
+(\12
+af
+, cڡ \ 5*
+¤c
+, \1e*
+d¡
+)
+
+1843 \1a
+af
+) {
+
+1844 \ 4
+AF_INET
+:
+
+1845 \15
+ `\9a\91_±Ú_\9dv4
+(
+¤c
+,
+d¡
+);
+
+1846 \ 4
+AF_INET6
+:
+
+1847 \15
+ `\9a\91_±Ú_\9dv6
+(
+¤c
+,
+d¡
+);
+
+1849
+\94ºo
+ =
+EAFNOSUPPORT
+;
+
+1853
+ }
+}
+
+1865 \18\12
+ $\9a\91_±Ú_\9dv4
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+)
+
+1867 \18cڡ \ 5
+dig\99s
+[] = "0123456789";
+
+1868 \12
+§w_dig\99
+,
+où\91s
+,
+ch
+;
+
+1869 \1d\ 5
+tmp
+[
+INADDRSZ
+], *
+\8d
+;
+
+1871
+§w_dig\99
+ = 0;
+
+1872
+où\91s
+ = 0;
+
+1873 *(
+\8d
+ =
+tmp
+) = 0;
+
+1874 \1f(
+ch
+ = *
+¤c
+++) != '\0') {
+
+1875 cڡ \ 5*
+pch
+;
+
+1877
+pch
+ =
+ `¡rchr
+(
+dig\99s
+,
+ch
+);
+
+1878 ià(
+pch
+ !ð
+NULL
+) {
+
+1879 \1d\12
+Ãw
+ = *
+\8d
+ * 10 + (
+pch
+ -
+dig\99s
+);
+
+1881 ià(
+Ãw
+ > 255)
+
+1883 ià(!
+§w_dig\99
+) {
+
+1884 ià(++
+où\91s
+ > 4)
+
+1886
+§w_dig\99
+ = 1;
+
+1888 *
+\8d
+ = (\1d\ 5)
+Ãw
+;
+
+1889 } \vià(
+ch
+ =ð'.' &&
+§w_dig\99
+) {
+
+1890 ià(
+où\91s
+ == 4)
+
+1892 *++
+\8d
+ = 0;
+
+1893
+§w_dig\99
+ = 0;
+
+1897 ià(
+où\91s
+ < 4)
+
+1900
+ `memýy
+(
+d¡
+,
+tmp
+,
+INADDRSZ
+);
+
+1902
+ }
+}
+
+1917 \18\12
+ $\9a\91_±Ú_\9dv6
+(cڡ \ 5*
+¤c
+, \1d\ 5*
+d¡
+)
+
+1919 \18cڡ \ 5
+xdig\99s_l
+[] = "0123456789abcdef",
+
+1920
+xdig\99s_u
+[] = "0123456789ABCDEF";
+
+1921 \1d\ 5
+tmp
+[
+IN6ADDRSZ
+], *
+\8d
+ = 0, *
+\92dp
+ = 0, *
+cÞÚp
+ = 0;
+
+1922 cڡ \ 5*
+xdig\99s
+ = 0, *
+cu¹ok
+ = 0;
+
+1923 \12
+ch
+ = 0,
+§w_xdig\99
+ = 0,
+couÁ_xdig\99
+ = 0;
+
+1924 \1d\12
+v®
+ = 0;
+
+1925 \1d\12
+dbloù_couÁ
+ = 0;
+
+1927
+ `mem£t
+((
+\8d
+ =
+tmp
+), '\0',
+IN6ADDRSZ
+);
+
+1928
+\92dp
+ =
+\8d
+ +
+IN6ADDRSZ
+;
+
+1929
+cÞÚp
+ =
+NULL
+;
+
+1931 ià(*
+¤c
+ == ':')
+
+1932 ià(*++
+¤c
+ != ':')
+
+1934
+cu¹ok
+ =
+¤c
+;
+
+1935
+§w_xdig\99
+ =
+couÁ_xdig\99
+ = 0;
+
+1936
+v®
+ = 0;
+
+1938 \1f(
+ch
+ = *
+¤c
+++) != '\0') {
+
+1939 cڡ \ 5*
+pch
+;
+
+1941
+pch
+ =
+ `¡rchr
+((
+xdig\99s
+ =
+xdig\99s_l
+),
+ch
+);
+
+1942 ià(
+pch
+ =ð
+NULL
+)
+
+1943
+pch
+ =
+ `¡rchr
+((
+xdig\99s
+ =
+xdig\99s_u
+),
+ch
+);
+
+1944 ià(
+pch
+ !ð
+NULL
+) {
+
+1945 ià(
+couÁ_xdig\99
+ >= 4)
+
+1947
+v®
+ <<= 4;
+
+1948
+v®
+ |ð(
+pch
+ -
+xdig\99s
+);
+
+1949 ià(
+v®
+ > 0xffff)
+
+1951
+§w_xdig\99
+ = 1;
+
+1952
+couÁ_xdig\99
+++;
+
+1955 ià(
+ch
+ == ':') {
+
+1956
+cu¹ok
+ =
+¤c
+;
+
+1957 ià(!
+§w_xdig\99
+) {
+
+1958 ià(
+cÞÚp
+)
+
+1960
+cÞÚp
+ =
+\8d
+;
+
+1962 } \vià(*
+¤c
+ == '\0') {
+
+1965 ià(
+\8d
+ + \17(
+\9at16_t
+è>
+\92dp
+)
+
+1967 *
+\8d
+++ = (\1d\ 5)((
+v®
+ >> 8) & 0xff);
+
+1968 *
+\8d
+++ = (\1d\ 5)(
+v®
+ & 0xff);
+
+1969
+§w_xdig\99
+ = 0;
+
+1970
+couÁ_xdig\99
+ = 0;
+
+1971
+v®
+ = 0;
+
+1972
+dbloù_couÁ
+++;
+
+1975 ià(
+ch
+ =ð'.' && ((
+\8d
+ +
+INADDRSZ
+è<ð
+\92dp
+) &&
+
+1976
+ `\9a\91_±Ú_\9dv4
+(
+cu¹ok
+,
+\8d
+) > 0) {
+
+1977
+\8d
+ +ð
+INADDRSZ
+;
+
+1978
+§w_xdig\99
+ = 0;
+
+1979
+dbloù_couÁ
+ += 2;
+
+1984 ià(
+§w_xdig\99
+) {
+
+1985 ià(
+\8d
+ + \17(
+\9at16_t
+è>
+\92dp
+)
+
+1987 *
+\8d
+++ = (\1d\ 5)((
+v®
+ >> 8) & 0xff);
+
+1988 *
+\8d
+++ = (\1d\ 5)(
+v®
+ & 0xff);
+
+1989
+dbloù_couÁ
+++;
+
+1991 ià(
+cÞÚp
+ !ð
+NULL
+) {
+
+1995 ià(
+dbloù_couÁ
+ == 8)
+
+2002 cڡ \12
+n
+ =
+\8d
+ -
+cÞÚp
+;
+
+2003 \12
+i
+;
+
+2005 \ f
+i
+ = 1; i <ð
+n
+; i++) {
+
+2006
+\92dp
+[-
+i
+] =
+cÞÚp
+[
+n
+ - i];
+
+2007
+cÞÚp
+[
+n
+ -
+i
+] = 0;
+
+2009
+\8d
+ =
+\92dp
+;
+
+2011 ià(
+\8d
+ !ð
+\92dp
+)
+
+2013
+ `memýy
+(
+d¡
+,
+tmp
+,
+IN6ADDRSZ
+);
+
+2015
+ }
+}
+
+2034
+ $´oûss_icmpv6_pkt
+(
+
+2035 \19
+¹e_mbuf
+ *
+pkt
+,
+
+2036
+u\9at32_t
+
+out_pÜt
+,
+
+2037
+__¹e_unu£d
+
+u\9at32_t
+
+pkt_num
+)
+
+2040
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+->
+pÜt
+;
+
+2041 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+2042 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+2043 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+2044 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+2045 \19
+icmpv6_nd_hdr
+ *
+icmpv6_nd_h
+;
+
+2046
+u\9at8_t
+
+\9dv6_addr
+[16];
+
+2047
+u\9at8_t
+
+i
+ = 0,
+æag
+ = 1;
+
+2048
+u\9at8_t
+
+»q_t\9dv6
+[16];
+
+2050
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+pkt
+, \19
+\91h\94_hdr
+ *);
+
+2051
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+2052
+icmpv6_h
+ =
+
+2053 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+2054 \19
+¹e_mbuf
+ *
+icmpv6_pkt
+ =
+pkt
+;
+
+2056
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+2057
+icmpv6_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+mac_addr
+ =
+l\9ak
+->mac_addr;
+
+2059 ià(!
+is_§me_\91h\94_addr
+
+
+2060 ((\19
+\91h\94_addr
+ *)&
+icmpv6_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+mac_addr
+,
+
+2061 &
+\91h_h
+->
+d_addr
+)) {
+
+2062 ià(
+ARPICMP_DEBUG
+) {
+
+2063
+ `´\9atf
+("Ethernet frame\82ot destined for MAC\87ddress "
+
+2067 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REQUEST
+)
+
+2068 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2069 \ f
+i
+ = 0; i < 16; i++)
+
+2070
+\9dv6_addr
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+2072 \ f
+i
+ = 0; i < 16; i++) {
+
+2073 ià(
+\9dv6_h
+->
+d¡_addr
+[
+i
+] !=
+
+2074
+icmpv6_pÜt_add»s£s
+[
+\9a_pÜt_id
+].
+\9dv6
+[
+i
+]) {
+
+2075
+æag
+++;
+
+2078 ià(!
+æag
+) {
+
+2079
+ `´\9atf
+("IPv6\85acket\82ot destined for "
+
+2084
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+2085 &
+\91h_h
+->
+d_addr
+);
+
+2086
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+2087 &
+icmpv6_pÜt_add»s£s
+
+
+2088 [
+\9a_pÜt_id
+].
+mac_addr
+,
+
+2089 &
+\91h_h
+->
+s_addr
+);
+
+2091 \ f
+i
+ = 0; i < 16; i++)
+
+2092
+\9dv6_h
+->
+¤c_addr
+[
+i
+] =
+
+2093
+\9dv6_h
+->
+d¡_addr
+[
+i
+];
+
+2094 \ f
+i
+ = 0; i < 16; i++)
+
+2095
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+
+2096
+\9dv6_addr
+[
+i
+];
+
+2098
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+2099
+ICMPV6_ECHO_REPLY
+;
+
+2101
+¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+
+
+2102 (
+gp_¬p
+->
+p
+.p,
+out_pÜt
+,
+icmpv6_pkt
+);
+
+2103
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2107 } \vià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_ECHO_REPLY
+)
+
+2108 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2109 \19
+nd_key_\9dv6
+
+nd_key
+;
+
+2110
+nd_key
+.
+pÜt_id
+ =
+\9a_pÜt_id
+;
+
+2112 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2113
+nd_key
+.
+\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+2115
+nd_key
+.
+f\9eËr1
+ = 0;
+
+2116
+nd_key
+.
+f\9eËr2
+ = 0;
+
+2117
+nd_key
+.
+f\9eËr3
+ = 0;
+
+2122 \19
+nd_\92\8cy_d©a
+ *
+Ãw_nd_d©a
+ =
+
+2123
+ `»\8c\9bve_nd_\92\8cy
+(
+nd_key
+);
+
+2125 ià(
+Ãw_nd_d©a
+ =ð
+NULL
+) {
+
+2126
+ `´\9atf
+("Received unsolicited ICMPv6\83cho "
+
+2128
+nd_key
+.
+pÜt_id
+);
+
+2129 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i += 2) {
+
+2130
+ `´\9atf
+("%02X%02X ",
+nd_key
+.
+\9dv6
+[
+i
+],
+
+2131
+nd_key
+.
+\9dv6
+[
+i
+ + 1]);
+
+2136
+Ãw_nd_d©a
+->
+¡©us
+ =
+COMPLETE
+;
+
+2139 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_SOLICITATION
+)
+
+2140 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2142
+icmpv6_nd_h
+ =
+
+2143 (\19
+icmpv6_nd_hdr
+ *)((\ 5*)
+icmpv6_h
+ +
+
+2144 \17(\19
+icmpv6_hdr
+));
+
+2145 \19
+\91h\94_addr
+ *
+¤c_hw_addr
+ = &
+\91h_h
+->
+s_addr
+;
+
+2146
+u\9at8_t
+
+¤c_\9dv6
+[16],
+d¡_\9dv6
+[16];
+
+2148 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2149
+¤c_\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+2150 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2151
+d¡_\9dv6
+[
+i
+] =
+\9dv6_h
+->
+d¡_addr
+[i];
+
+2154 ià((
+IPV6_MULTICAST
+
+
+2155 && ((
+d¡_\9dv6
+[0] << 8) | dst_ipv6[1]))) {
+
+2156 ià(
+pÝuÏ\8b_nd_\92\8cy
+
+
+2157 (
+¤c_hw_addr
+,
+¤c_\9dv6
+,
+\9a_pÜt_id
+)) {
+
+2160 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2161
+»q_t\9dv6
+[
+i
+] =
+
+2162
+icmpv6_nd_h
+->
+\8frg\91_\9dv6
+[
+i
+];
+
+2164
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+2165 &
+\91h_h
+->
+d_addr
+);
+
+2166
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)
+
+2167 &
+icmpv6_pÜt_add»s£s
+
+
+2168 [
+\9a_pÜt_id
+].
+mac_addr
+,
+
+2169 &
+\91h_h
+->
+s_addr
+);
+
+2172
+ `\91h\94_addr_cÝy
+(&
+\91h_h
+->
+s_addr
+,
+
+2173 &
+icmpv6_nd_h
+->
+
+2174
+l\9ak_Ïy\94_add»ss
+);
+
+2175 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2176
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+
+2177
+\9dv6_h
+->
+¤c_addr
+[
+i
+];
+
+2178 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2179
+\9dv6_h
+->
+¤c_addr
+[
+i
+] =
+
+2180
+»q_t\9dv6
+[
+i
+];
+
+2181
+icmpv6_h
+->
+icmpv6_ty³
+ =
+
+2182
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+;
+
+2183
+icmpv6_nd_h
+->
+ty³
+ =
+
+2184
+e_T¬g\91_L\9ak_Lay\94_Add»ss
+;
+
+2185
+icmpv6_nd_h
+->
+icmpv6_ȣrved
+ |=
+
+2186
+¹e_ýu_to_be_32
+
+
+2187 (
+NEIGHBOR_SOLICITATION_SET
+);
+
+2189
+¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+
+
+2190 (
+gp_¬p
+->
+p
+.p,
+out_pÜt
+,
+icmpv6_pkt
+);
+
+2191
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2194 ià(
+ARPICMP_DEBUG
+) {
+
+2195
+ `´\9atf
+("Non-Multicasted Neighbor "
+
+2198
+ `´\9atf
+("............Some one\83lse "
+
+2204 ià((
+icmpv6_h
+->
+icmpv6_ty³
+ =ð
+ICMPV6_NEIGHBOR_ADVERTISEMENT
+)
+
+2205 && (
+icmpv6_h
+->
+icmpv6_code
+ == 0)) {
+
+2206 \19
+\91h\94_addr
+ *
+¤c_hw_addr
+ = &
+\91h_h
+->
+s_addr
+;
+
+2207
+u\9at8_t
+
+\9dv6
+[16];
+
+2208 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2209
+\9dv6
+[
+i
+] =
+\9dv6_h
+->
+¤c_addr
+[i];
+
+2211 ià(
+ `pÝuÏ\8b_nd_\92\8cy
+(
+¤c_hw_addr
+,
+\9dv6
+,
+\9a_pÜt_id
+))
+
+2212 ià(
+ARPICMP_DEBUG
+)
+
+2213
+ `´\9atf
+("Now on, unicast IPv6\81raffic "
+
+2217 ià(
+ARPICMP_DEBUG
+) {
+
+2218
+ `´\9atf
+("ICMPv6 Type %d Not Supported yet !!!\n",
+
+2219
+icmpv6_h
+->
+icmpv6_ty³
+);
+
+2225
+ }
+}
+
+2227 \1e
+ $»que¡_icmpv6_echo
+(
+u\9at32_t
+
+pÜt_id
+,
+u\9at8_t
+
+\9dv6
+[])
+
+2229 (\1e)
+pÜt_id
+;
+
+2230 (\1e)
+\9dv6
+;
+
+2231 \12
+i
+;
+
+2233 \19
+\91h\94_addr
+
+gw_addr
+;
+
+2234
+u\9at8_t
+
+nh\9dv6
+[16];
+
+2235
+u\9at8_t
+
+de¡_\9dv6
+[16];
+
+2236
+u\9at32_t
+
+phy_pÜt
+;
+
+2238 \ f
+i
+ = 0; i <
+ND_IPV6_ADDR_SIZE
+; i++)
+
+2239
+de¡_\9dv6
+[
+i
+] =
+\9dv6
+[i];
+
+2241 ià(
+ `g\91_de¡_mac_add»ss_\9dv6_pÜt
+(
+de¡_\9dv6
+, &
+phy_pÜt
+,
+
+2242 &
+gw_addr
+,
+nh\9dv6
+)) {
+
+2243
+ `»que¡_icmpv6_echo_mes§ge
+(
+phy_pÜt
+,
+\9dv6
+, &
+gw_addr
+);
+
+2247 ià(
+ARPICMP_DEBUG
+)
+
+2248
+ `´\9atf
+("Sending icmpv6\83cho\84equest ... get mac failed.\n");
+
+2249
+ }
+}
+
+2252
+ $»que¡_icmpv6_echo_mes§ge
+(
+u\9at16_t
+
+pÜt_id
+,
+u\9at8_t
+
+\9dv6
+[],
+
+2253 \19
+\91h\94_addr
+ *
+gw_addr
+)
+
+2255 \19
+\91h\94_hdr
+ *
+\91h_h
+;
+
+2256 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+2257 \19
+icmpv6_hdr
+ *
+icmpv6_h
+;
+
+2258 \19
+icmpv6_\9afo_hdr
+ *
+icmpv6_\9afo_h
+;
+
+2259 \12
+i
+;
+
+2260 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+2261
+l\9ak
+ = &
+myl\9ak
+[
+pÜt_id
+];
+
+2263 \ f
+i
+ = 0; i < 16; i++)
+
+2264
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+\9dv6
+[
+i
+] =
+l\9ak
+->ipv6[i];
+
+2266
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+mac_addr
+ =
+l\9ak
+->mac_addr;
+
+2268 \19
+¹e_mbuf
+ *
+icmpv6_pkt
+ =
+lib_icmpv6_pkt
+;
+
+2269 ià(
+icmpv6_pkt
+ =ð
+NULL
+) {
+
+2270 ià(
+ARPICMP_DEBUG
+)
+
+2271
+ `´\9atf
+("Error\87llocating icmpv6_pkt\84te_mbuf\n");
+
+2275
+\91h_h
+ =
+ `¹e_pktmbuf_mtod
+(
+icmpv6_pkt
+, \19
+\91h\94_hdr
+ *);
+
+2276
+ `\91h\94_addr_cÝy
+(
+gw_addr
+, &
+\91h_h
+->
+d_addr
+);
+
+2277
+ `\91h\94_addr_cÝy
+((\19
+\91h\94_addr
+ *)&
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+
+2278
+mac_addr
+, &
+\91h_h
+->
+s_addr
+);
+
+2279
+\91h_h
+->
+\91h\94_ty³
+ =
+ `CHECK_ENDIAN_16
+(
+ETHER_TYPE_IPv6
+);
+
+2281
+\9dv6_h
+ = (\19
+\9dv6_hdr
+ *)((\ 5*)
+\91h_h
+ + \17(\19
+\91h\94_hdr
+));
+
+2282
+icmpv6_h
+ =
+
+2283 (\19
+icmpv6_hdr
+ *)((\ 5*)
+\9dv6_h
+ + \17(\19
+\9dv6_hdr
+));
+
+2284
+icmpv6_\9afo_h
+ =
+
+2285 (\19
+icmpv6_\9afo_hdr
+ *)((\ 5*)
+icmpv6_h
+ +
+
+2286 \17(\19
+icmpv6_hdr
+));
+
+2288
+\9dv6_h
+->
+vtc_æow
+ = 0x60000000;
+
+2289
+\9dv6_h
+->
+·ylßd_Ën
+ = 64;
+
+2290
+\9dv6_h
+->
+´Ùo
+ = 58;
+
+2291
+\9dv6_h
+->
+hÝ_lim\99s
+ = 64;
+
+2293 \ f
+i
+ = 0; i < 16; i++) {
+
+2294
+\9dv6_h
+->
+¤c_addr
+[
+i
+] =
+icmpv6_pÜt_add»s£s
+[
+pÜt_id
+].
+\9dv6
+[i];
+
+2295
+\9dv6_h
+->
+d¡_addr
+[
+i
+] =
+\9dv6
+[i];
+
+2298
+icmpv6_h
+->
+icmpv6_ty³
+ =
+ICMPV6_ECHO_REQUEST
+;
+
+2299
+icmpv6_h
+->
+icmpv6_code
+ = 0;
+
+2300
+icmpv6_\9afo_h
+->
+icmpv6_id\92t
+ = 0x5151;
+
+2301
+icmpv6_\9afo_h
+->
+icmpv6_£q_nb
+ = 0x1;
+
+2303
+icmpv6_h
+->
+icmpv6_cksum
+ =
+
+2304 ~
+ `¹e_¿w_cksum
+(
+icmpv6_h
+, \17(\19
+icmpv6_hdr
+));
+
+2306
+icmpv6_pkt
+->
+pkt_Ën
+ =
+
+2307 \17(\19
+\91h\94_hdr
+è+ \17(\19
+\9dv6_hdr
+) +
+
+2308 \17(\19
+icmpv6_hdr
+);
+
+2309
+icmpv6_pkt
+->
+d©a_Ën
+ = icmpv6_pkt->
+pkt_Ën
+;
+
+2311 ià(
+ARPICMP_DEBUG
+)
+
+2312
+ `´\9atf
+("Sending icmpv6\83cho\84equest\n");
+
+2314
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+gp_¬p
+->
+p
+.p,
+
+2315
+gp_¬p
+->
+ou\8dÜt_id
+[
+pÜt_id
+],
+
+2316
+icmpv6_pkt
+);
+
+2318
+gp_¬p
+->
+£ÁPktCouÁ
+++;
+
+2319
+ }
+}
+
+2324 \18\1e*
+p\9d\96\9ae_¬picmp_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+2325 \1e*
+msg
+);
+
+2327 \18
+p\9d\96\9ae_msg_»q_hªdËr
+
+ ghªdËrs
+[] = {
+
+2328 [
+PIPELINE_MSG_REQ_PING
+] =
+
+2329
+p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+,
+
+2330 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+2331
+p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+,
+
+2332 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+2333
+p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+2334 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+2335
+p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+,
+
+2336 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+2337
+p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+,
+
+2338 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+2339
+p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+,
+
+2340 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+2341
+p\9d\96\9ae_¬picmp_msg_»q_cu¡om_hªdËr
+,
+
+2345 \18\1e*
+p\9d\96\9ae_¬picmp_msg_»q_\92\8cy_dbg_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+2346 \1e*
+msg
+);
+
+2347 \18\1e*
+ $p\9d\96\9ae_¬picmp_msg_»q_\92\8cy_dbg_hªdËr
+(
+
+2348
+__¹e_unu£d
+ \19
+p\9d\96\9ae
+ *
+p
+,
+
+2349
+__¹e_unu£d
+ \1e*
+msg
+)
+
+2352 \15
+NULL
+;
+
+2353
+ }
+}
+
+2355 \18
+__¹e_unu£d
+
+p\9d\96\9ae_msg_»q_hªdËr
+
+ gcu¡om_hªdËrs
+[] = {
+
+2356 [
+PIPELINE_ARPICMP_MSG_REQ_ENTRY_DBG
+] =
+
+2357
+p\9d\96\9ae_¬picmp_msg_»q_\92\8cy_dbg_hªdËr
+,
+
+2371 \1e*
+ $p\9d\96\9ae_¬picmp_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+)
+
+2373 \19
+p\9d\96\9ae_¬picmp
+ *
+p_¬p
+ = (\19p\9d\96\9ae_¬picm°*)
+p
+;
+
+2374 \19
+p\9d\96\9ae_cu¡om_msg_»q
+ *
+»q
+ =
+msg
+;
+
+2375
+p\9d\96\9ae_msg_»q_hªdËr
+
+f_hªdË
+;
+
+2377
+f_hªdË
+ = (
+»q
+->
+subty³
+ <
+PIPELINE_ARPICMP_MSG_REQS
+) ?
+
+2378
+p_¬p
+->
+cu¡om_hªdËrs
+[
+»q
+->
+subty³
+] :
+
+2379
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+2381 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+2382
+f_hªdË
+ =
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+2384 \15
+ `f_hªdË
+(
+p
+,
+»q
+);
+
+2385
+ }
+}
+
+2387 #ifdeà
+VNF_ACL
+
+
+2393
+p\9d\96\9ae_¬picmp_·r£_¬gs
+(\19
+p\9d\96\9ae_¬picmp
+ *
+p
+,
+
+2394 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+);
+
+2396
+ $p\9d\96\9ae_¬picmp_·r£_¬gs
+(
+
+2397
+__¹e_unu£d
+ \19
+p\9d\96\9ae_¬picmp
+ *
+p
+,
+
+2398 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+)
+
+2401
+u\9at32_t
+
+i
+;
+
+2402
+u\9at32_t
+
+¬p_m\91a_off£t_´e£Á
+ = 0;
+
+2404
+u\9at32_t
+
+¬p_rou\8b_tbl_´e£Á
+ = 0;
+
+2405
+u\9at32_t
+
+nd_rou\8b_tbl_´e£Á
+ = 0;
+
+2406
+u\9at32_t
+
+pÜts_mac_li¡_´e£Á
+ = 0;
+
+2407
+u\9at32_t
+
+pktq_\9a_´v_´e£Á
+ = 0;
+
+2408
+u\9at32_t
+
+´v_to_pub_m_´e£Á
+ = 0;
+
+2410
+u\9at8_t
+
+n_´v_\9a_pÜt
+ = 0;
+
+2411 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+2412
+\9a_pÜt_d\9c_a
+[
+i
+] = 0;
+
+2413
+´v_to_pub_m
+[
+i
+] = 0xff;
+
+2414
+pub_to_´v_m
+[
+i
+] = 0xff;
+
+2417 \ f
+i
+ = 0; i <
+·¿ms
+->
+n_¬gs
+; i++) {
+
+2418 \ 5*
+¬g_Çme
+ =
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+2419 \ 5*
+¬g_v®ue
+ =
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+2421 ià(
+ARPICMP_DEBUG
+ > 2) {
+
+2422
+ `´\9atf
+("ARP\87rgs[%d]: % %d, %s\n",
+i
+,
+¬g_Çme
+,
+
+2423
+ `©oi
+(
+¬g_v®ue
+),\87rg_value);
+
+2425 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "arp_meta_offset") == 0) {
+
+2426 ià(
+¬p_m\91a_off£t_´e£Á
+) {
+
+2427
+ `´\9atf
+("arp_meta_offset "
+
+2431
+¬p_m\91a_off£t_´e£Á
+ = 1;
+
+2432
+¬p_m\91a_off£t
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+2436 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "pktq_in_prv") == 0) {
+
+2437 ià(
+pktq_\9a_´v_´e£Á
+) {
+
+2438
+ `´\9atf
+("Duplicate\85ktq_in_prv ... "
+
+2442
+pktq_\9a_´v_´e£Á
+ = 1;
+
+2444 \12
+rxpÜt
+ = 0,
+j
+ = 0;
+
+2445 \ 5
+phy_pÜt_num
+[5];
+
+2446 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+2447 \1f
+tok\92
+) {
+
+2448
+j
+ = 0;
+
+2449 \1f(
+j
+ < 4è&& (
+tok\92
+[j] != '.')) {
+
+2450
+phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+2451
+j
+++;
+
+2453
+phy_pÜt_num
+[
+j
+] = '\0';
+
+2454
+rxpÜt
+ =
+ `©oi
+(
+phy_pÜt_num
+);
+
+2455
+ `´\9atf
+("token: %s,\85hy_port_str: %s, "
+
+2457
+tok\92
+,
+phy_pÜt_num
+,
+rxpÜt
+);
+
+2459
+´v_\9a_pÜt_a
+[
+n_´v_\9a_pÜt
+++] =
+rxpÜt
+;
+
+2461 if(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+2462
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] = 1;
+
+2463
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "RXQ");
+
+2466 ià(
+n_´v_\9a_pÜt
+ == 0) {
+
+2467
+´\9atf
+
+
+2476 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+2477 ià(
+´v_to_pub_m_´e£Á
+) {
+
+2478
+´\9atf
+
+
+2483
+´v_to_pub_m_´e£Á
+ = 1;
+
+2485 \12
+rxpÜt
+ = 0,
+txpÜt
+ = 0,
+j
+ = 0,
+k
+ = 0;
+
+2486 \ 5
+rx_phy_pÜt_num
+[5];
+
+2487 \ 5
+tx_phy_pÜt_num
+[5];
+
+2488 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2489 \1f
+tok\92
+) {
+
+2490
+j
+ = 0;
+
+2491 \1f(
+j
+ < 4è&& (
+tok\92
+[j] != ',')) {
+
+2492
+rx_phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+2493
+j
+++;
+
+2495
+rx_phy_pÜt_num
+[
+j
+] = '\0';
+
+2496
+rxpÜt
+ =
+ `©oi
+(
+rx_phy_pÜt_num
+);
+
+2498
+j
+++;
+
+2499
+k
+ = 0;
+
+2500 \1f(
+k
+ < 4è&& (
+tok\92
+[
+j
+ + k] != ')')) {
+
+2501
+tx_phy_pÜt_num
+[
+k
+] =
+tok\92
+[
+j
+ + k];
+
+2502
+k
+++;
+
+2504
+tx_phy_pÜt_num
+[
+k
+] = '\0';
+
+2505
+txpÜt
+ =
+ `©oi
+(
+tx_phy_pÜt_num
+);
+
+2506 ià(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+ &&
+txpÜt
+ < PIPELINE_MAX_PORT_IN){
+
+2507
+ `´\9atf
+("token: %s,"
+
+2510
+tok\92
+,
+rx_phy_pÜt_num
+,
+rxpÜt
+,
+
+2511
+tx_phy_pÜt_num
+,
+txpÜt
+);
+
+2515 ià((
+rxpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+2516 (
+txpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+2517 (
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] != 1)) {
+
+2518
+ `´\9atf
+("CG-NAPT\85arse\83rror - "
+
+2521
+rxpÜt
+,
+txpÜt
+,
+\9a_pÜt_d\9c_a
+[rxport]);
+
+2525
+´v_to_pub_m
+[
+rxpÜt
+] =
+txpÜt
+;
+
+2526
+pub_to_´v_m
+[
+txpÜt
+] =
+rxpÜt
+;
+
+2527
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2534 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "lib_arp_debug") == 0) {
+
+2535
+ARPICMP_DEBUG
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+2541 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "ports_mac_list") == 0) {
+
+2542
+pÜts_mac_li¡_´e£Á
+ = 1;
+
+2544
+u\9at32_t
+
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+MAC_NUM_BYTES
+ = 6;
+
+2546 \ 5
+by\8bS\8c
+[
+MAC_NUM_BYTES
+][3];
+
+2547
+u\9at32_t
+
+by\8b
+[
+MAC_NUM_BYTES
+];
+
+2549 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, " ");
+
+2550 \1f
+tok\92
+) {
+
+2551
+k
+ = 0;
+
+2552 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++) {
+
+2553 \ f
+j
+ = 0; j < 2; j++)
+
+2554
+by\8bS\8c
+[
+i
+][
+j
+] =
+tok\92
+[
+k
+++];
+
+2555
+by\8bS\8c
+[
+i
+][
+j
+] = '\0';
+
+2556
+k
+++;
+
+2559 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++)
+
+2560
+by\8b
+[
+i
+] =
+ `¡¹oul
+(
+by\8bS\8c
+[i],
+NULL
+, 16);
+
+2562 ià(
+ARPICMP_DEBUG
+) {
+
+2563
+ `´\9atf
+("tok\92: %s",
+tok\92
+);
+
+2564 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++)
+
+2565
+ `´\9atf
+(", by\8b[%u] %u",
+i
+,
+
+2566
+by\8b
+[
+i
+]);
+
+2567
+ `´\9atf
+("\n");
+
+2570 \ f
+i
+ = 0; i <
+MAC_NUM_BYTES
+; i++)
+
+2571
+l\9ak_hw_addr
+
+
+2572 [
+l\9ak_hw_addr_¬¿y_idx
+].
+addr_by\8bs
+
+
+2573 [
+i
+] =
+by\8b
+[i];
+
+2575
+l\9ak_hw_addr_¬¿y_idx
+++;
+
+2576
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, " ");
+
+2583 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "arp_route_tbl") == 0) {
+
+2584
+¬p_rou\8b_tbl_´e£Á
+ = 1;
+
+2586
+u\9at32_t
+
+de¡_\9d
+ = 0,
+mask
+ = 0,
+tx_pÜt
+ = 0,
+nh_\9d
+ =
+
+2587 0,
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+l
+ = 0;
+
+2588
+u\9at32_t
+
+¬p_rou\8b_tbl_¡r_max_Ën
+ = 10;
+
+2589 \ 5
+de¡_\9d_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2590 \ 5
+mask_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2591 \ 5
+tx_pÜt_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2592 \ 5
+nh_\9d_¡r
+[
+¬p_rou\8b_tbl_¡r_max_Ën
+];
+
+2593 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2594 \1f
+tok\92
+) {
+
+2595
+i
+ = 0;
+
+2596 \1f(
+i
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2597 && (
+tok\92
+[
+i
+] != ',')) {
+
+2598
+de¡_\9d_¡r
+[
+i
+] =
+tok\92
+[i];
+
+2599
+i
+++;
+
+2601
+de¡_\9d_¡r
+[
+i
+] = '\0';
+
+2602
+de¡_\9d
+ =
+ `¡¹oul
+(
+de¡_\9d_¡r
+,
+NULL
+, 16);
+
+2604
+i
+++;
+
+2605
+j
+ = 0;
+
+2606 \1f(
+j
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2607 && (
+tok\92
+[
+i
+ +
+j
+] != ',')) {
+
+2608
+mask_¡r
+[
+j
+] =
+tok\92
+[
+i
+ + j];
+
+2609
+j
+++;
+
+2611
+mask_¡r
+[
+j
+] = '\0';
+
+2612
+mask
+ =
+ `¡¹oul
+(
+mask_¡r
+,
+NULL
+, 16);
+
+2614
+j
+++;
+
+2615
+k
+ = 0;
+
+2616 \1f(
+k
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2617 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+] != ',')) {
+
+2618
+tx_pÜt_¡r
+[
+k
+] =
+tok\92
+[
+i
+ +
+j
+ + k];
+
+2619
+k
+++;
+
+2621
+tx_pÜt_¡r
+[
+k
+] = '\0';
+
+2623
+tx_pÜt
+ =
+ `¡¹oul
+(
+tx_pÜt_¡r
+,
+NULL
+, 16);
+
+2625
+k
+++;
+
+2626
+l
+ = 0;
+
+2627 \1f(
+l
+ < (
+¬p_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2628 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +
+l
+] != ')')) {
+
+2629
+nh_\9d_¡r
+[
+l
+] =
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +\86];
+
+2630
+l
+++;
+
+2632
+nh_\9d_¡r
+[
+l
+] = '\0';
+
+2634
+nh_\9d
+ =
+ `¡¹oul
+(
+nh_\9d_¡r
+,
+NULL
+, 16);
+
+2636 ià(
+ARPICMP_DEBUG
+) {
+
+2637
+ `´\9atf
+("token: %s, "
+
+2642
+tok\92
+,
+de¡_\9d_¡r
+,
+de¡_\9d
+,
+
+2643
+mask_¡r
+,
+mask
+,
+tx_pÜt_¡r
+,
+
+2644
+tx_pÜt
+,
+nh_\9d_¡r
+,
+nh_\9d
+);
+
+2647 ià(
+tx_pÜt
+ >ð
+·¿ms
+->
+n_pÜts_out
+) {
+
+2648
+ `´\9atf
+("ARP-ICMP\85arse\83rror - "
+
+2650
+tx_pÜt
+,
+·¿ms
+->
+n_pÜts_out
+);
+
+2656
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+\9d
+ =
+
+2657
+de¡_\9d
+;
+
+2658
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+mask
+ =
+
+2659
+mask
+;
+
+2660
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+pÜt
+ =
+
+2661
+tx_pÜt
+;
+
+2662
+lib_¬p_rou\8b_\8fbË
+[
+¬p_rou\8b_tbl_\9adex
+].
+nh
+ =
+
+2663
+nh_\9d
+;
+
+2664
+¬p_rou\8b_tbl_\9adex
+++;
+
+2665
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2672 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "nd_route_tbl") == 0) {
+
+2673
+nd_rou\8b_tbl_´e£Á
+ = 1;
+
+2675
+u\9at8_t
+
+de¡_\9dv6
+[16],
+d\95th
+ = 0,
+tx_pÜt
+ =
+
+2676 0,
+nh_\9dv6
+[16],
+i
+ = 0,
+j
+ = 0,
+k
+ = 0,
+l
+ = 0;
+
+2677
+u\9at8_t
+
+nd_rou\8b_tbl_¡r_max_Ën
+ = 128;
+
+2678 \ 5
+de¡_\9dv6_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2679 \ 5
+d\95th_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2680 \ 5
+tx_pÜt_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2681 \ 5
+nh_\9dv6_¡r
+[
+nd_rou\8b_tbl_¡r_max_Ën
+];
+
+2682 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+2683 \1f
+tok\92
+) {
+
+2684
+i
+ = 0;
+
+2685 \1f(
+i
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2686 && (
+tok\92
+[
+i
+] != ',')) {
+
+2687
+de¡_\9dv6_¡r
+[
+i
+] =
+tok\92
+[i];
+
+2688
+i
+++;
+
+2690
+de¡_\9dv6_¡r
+[
+i
+] = '\0';
+
+2691
+ `my_\9a\91_±Ú_\9dv6
+(
+AF_INET6
+,
+de¡_\9dv6_¡r
+,
+
+2692 &
+de¡_\9dv6
+);
+
+2694
+i
+++;
+
+2695
+j
+ = 0;
+
+2696 \1f(
+j
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2697 && (
+tok\92
+[
+i
+ +
+j
+] != ',')) {
+
+2698
+d\95th_¡r
+[
+j
+] =
+tok\92
+[
+i
+ + j];
+
+2699
+j
+++;
+
+2701
+d\95th_¡r
+[
+j
+] = '\0';
+
+2703 \12
+s
+;
+
+2704 \ f
+s
+ = 0;
+d\95th_¡r
+[s] != '\0'; ++s)
+
+2705
+d\95th
+ = d\95th * 10 +
+d\95th_¡r
+[
+s
+] - '0';
+
+2707
+j
+++;
+
+2708
+k
+ = 0;
+
+2709 \1f(
+k
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2710 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+] != ',')) {
+
+2711
+tx_pÜt_¡r
+[
+k
+] =
+tok\92
+[
+i
+ +
+j
+ + k];
+
+2712
+k
+++;
+
+2714
+tx_pÜt_¡r
+[
+k
+] = '\0';
+
+2716
+tx_pÜt
+ =
+ `¡¹oul
+(
+tx_pÜt_¡r
+,
+NULL
+, 16);
+
+2718
+k
+++;
+
+2719
+l
+ = 0;
+
+2720 \1f(
+l
+ < (
+nd_rou\8b_tbl_¡r_max_Ën
+ - 1))
+
+2721 && (
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +
+l
+] != ')')) {
+
+2722
+nh_\9dv6_¡r
+[
+l
+] =
+tok\92
+[
+i
+ +
+j
+ +
+k
+ +\86];
+
+2723
+l
+++;
+
+2725
+nh_\9dv6_¡r
+[
+l
+] = '\0';
+
+2726
+ `my_\9a\91_±Ú_\9dv6
+(
+AF_INET6
+,
+nh_\9dv6_¡r
+,
+
+2727 &
+nh_\9dv6
+);
+
+2730 \ f
+i
+ = 0; i < 16; i++) {
+
+2731
+lib_nd_rou\8b_\8fbË
+
+
+2732 [
+nd_rou\8b_tbl_\9adex
+].
+\9dv6
+[
+i
+] =
+
+2733
+de¡_\9dv6
+[
+i
+];
+
+2734
+lib_nd_rou\8b_\8fbË
+
+
+2735 [
+nd_rou\8b_tbl_\9adex
+].
+nh\9dv6
+[
+i
+] =
+
+2736
+nh_\9dv6
+[
+i
+];
+
+2738
+lib_nd_rou\8b_\8fbË
+[
+nd_rou\8b_tbl_\9adex
+].
+d\95th
+ =
+
+2739
+d\95th
+;
+
+2740
+lib_nd_rou\8b_\8fbË
+[
+nd_rou\8b_tbl_\9adex
+].
+pÜt
+ =
+
+2741
+tx_pÜt
+;
+
+2743
+nd_rou\8b_tbl_\9adex
+++;
+
+2744
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+2754 ià(!
+¬p_m\91a_off£t_´e£Á
+) {
+
+2755
+ `´\9atf
+("ARPICMP:\87rp_meta_offset\82ot initialized\n");
+
+2760 ià(!
+¬p_rou\8b_tbl_´e£Á
+ && !
+nd_rou\8b_tbl_´e£Á
+) {
+
+2761
+ `´\9atf
+("Neither\87rp_route_tbl_present\82or "
+
+2766 ià(!
+pktq_\9a_´v_´e£Á
+) {
+
+2767
+ `´\9atf
+("pktq_in_prv\82ot declared\n");
+
+2771 ià(!
+pÜts_mac_li¡_´e£Á
+) {
+
+2772
+ `´\9atf
+("ports_mac_list\82ot declared\n");
+
+2777
+ }
+}
+
+2781
+u\9at32_t
+
+ g¬picmp_pkt_´\9at_couÁ
+;
+
+2782 \18
+\9al\9ae
+ \1e
+
+2783
+ $pkt_key_¬picmp
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at32_t
+
+pkt_num
+, \1e*
+¬g
+)
+
+2786 \19
+p\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+2787 \19
+p\9d\96\9ae_¬picmp
+ *
+p_¬p
+ = (\19p\9d\96\9ae_¬picm°*)
+
+->
+p
+;
+
+2789
+p_¬p
+->
+»ûivedPktCouÁ
+++;
+
+2791
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+->
+pÜt
+;
+
+2792 #ifdeà
+VNF_ACL
+
+
+2793 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+2795
+u\9at8_t
+ *
+´ÙocÞ
+;
+
+2796
+u\9at32_t
+
+pkt_mask
+ = 1 <<
+pkt_num
+;
+
+2797
+u\9at32_t
+
+\91h_´Ùo_off£t
+ =
+MBUF_HDR_ROOM
+ + 12;
+
+2799
+u\9at32_t
+
+´Ù_off£t
+ =
+
+2800
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_PROTOCOL_OFST
+;
+
+2802 #ifdeà
+VNF_ACL
+
+
+2803
+u\9at32_t
+
+out_pÜt
+;
+
+2806
+u\9at16_t
+ *
+\91h_´Ùo
+ =
+
+2807
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+,
+\91h_´Ùo_off£t
+);
+
+2810 #ifdeà
+VNF_ACL
+
+
+2811
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+2812
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+2813
+u\9at32_t
+ *
+d¡_addr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+d¡_addr_off£t
+);
+
+2816 #ifdeà
+IPV6
+
+
+2817
+u\9at32_t
+
+´Ù_off£t_\9dv6
+ =
+
+2818
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IPV6_HDR_PROTOCOL_OFST
+;
+
+2820 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2821
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t_\9dv6
+);
+
+2823
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t
+);
+
+2825
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t
+);
+
+2829 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´\9at_couÁ
+ < 10)) {
+
+2830
+ `´\9at_pkt1
+(
+pkt
+);
+
+2831
+¬picmp_pkt_´\9at_couÁ
+++;
+
+2832
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+2834
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+), *
+´ÙocÞ
+,
+ETH_TYPE_ARP
+,
+
+2835
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+2838 #ifdeà
+VNF_ACL
+
+
+2839
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+2843 ià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETH_TYPE_ARP
+) ||
+
+2844 ((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETH_TYPE_IPV4
+)
+
+2845 && (*
+´ÙocÞ
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+2846 #ifdeà
+VNF_ACL
+
+
+2847 && (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr
+))
+
+2851 #ifdeà
+VNF_ACL
+
+
+2852
+out_pÜt
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+\9a_pÜt_id
+];
+
+2853
+ `´oûss_¬picmp_pkt
+(
+pkt
+,
+out_pÜt
+,
+pkt_mask
+);
+
+2855
+ `´oûss_¬picmp_pkt
+(
+pkt
+,
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+2859 #ifdeà
+IPV6
+
+
+2860 \vià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETH_TYPE_IPV6
+)
+
+2861 && (*
+´ÙocÞ
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+2862 #ifdeà
+VNF_ACL
+
+
+2863
+out_pÜt
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+\9a_pÜt_id
+];
+
+2864
+ `´oûss_icmpv6_pkt
+(
+pkt
+,
+out_pÜt
+,
+pkt_mask
+);
+
+2866
+ `´oûss_icmpv6_pkt
+(
+pkt
+,
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+2874
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_¬p
+->
+p
+.p,
+pkt_mask
+);
+
+2875
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+2877
+ }
+}
+
+2879 \18
+\9al\9ae
+ \1e
+
+2880
+ $pkt4_key_¬picmp
+(\19
+¹e_mbuf
+ **
+pkt
+,
+u\9at32_t
+
+pkt_num
+, \1e*
+¬g
+)
+
+2883 \19
+p\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+2884 \19
+p\9d\96\9ae_¬picmp
+ *
+p_¬p
+ = (\19p\9d\96\9ae_¬picm°*)
+
+->
+p
+;
+
+2886
+p_¬p
+->
+»ûivedPktCouÁ
+ += 4;
+
+2888
+u\9at32_t
+
+\91h_´Ùo_off£t
+ =
+MBUF_HDR_ROOM
+ + 12;
+
+2889
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+[0]->
+pÜt
+;
+
+2891
+u\9at32_t
+
+´Ù_off£t
+ =
+
+2892
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_PROTOCOL_OFST
+;
+
+2895 #ifdeà
+VNF_ACL
+
+
+2896
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+2897
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+2900
+u\9at32_t
+
+pkt_mask0
+ = 1 <<
+pkt_num
+;
+
+2901
+u\9at32_t
+
+pkt_mask1
+ = 1 << (
+pkt_num
+ + 1);
+
+2902
+u\9at32_t
+
+pkt_mask2
+ = 1 << (
+pkt_num
+ + 2);
+
+2903
+u\9at32_t
+
+pkt_mask3
+ = 1 << (
+pkt_num
+ + 3);
+
+2905 #ifdeà
+VNF_ACL
+
+
+2906
+u\9at32_t
+
+out_pÜt0
+;
+
+2907
+u\9at32_t
+
+out_pÜt1
+;
+
+2908
+u\9at32_t
+
+out_pÜt2
+;
+
+2909
+u\9at32_t
+
+out_pÜt3
+;
+
+2912
+u\9at16_t
+ *
+\91h_´Ùo0
+ =
+
+2913
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[0],
+\91h_´Ùo_off£t
+);
+
+2914
+u\9at16_t
+ *
+\91h_´Ùo1
+ =
+
+2915
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[1],
+\91h_´Ùo_off£t
+);
+
+2916
+u\9at16_t
+ *
+\91h_´Ùo2
+ =
+
+2917
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[2],
+\91h_´Ùo_off£t
+);
+
+2918
+u\9at16_t
+ *
+\91h_´Ùo3
+ =
+
+2919
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[3],
+\91h_´Ùo_off£t
+);
+
+2921
+u\9at8_t
+ *
+´ÙocÞ0
+;
+
+2922
+u\9at8_t
+ *
+´ÙocÞ1
+;
+
+2923
+u\9at8_t
+ *
+´ÙocÞ2
+;
+
+2924
+u\9at8_t
+ *
+´ÙocÞ3
+;
+
+2926 #ifdeà
+VNF_ACL
+
+
+2927
+u\9at32_t
+ *
+d¡_addr0
+ =
+
+2928
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+d¡_addr_off£t
+);
+
+2929
+u\9at32_t
+ *
+d¡_addr1
+ =
+
+2930
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+d¡_addr_off£t
+);
+
+2931
+u\9at32_t
+ *
+d¡_addr2
+ =
+
+2932
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+d¡_addr_off£t
+);
+
+2933
+u\9at32_t
+ *
+d¡_addr3
+ =
+
+2934
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3],
+d¡_addr_off£t
+);
+
+2936 \19
+p_l\9ak_·¿ms
+ *
+l\9ak0
+;
+
+2937 \19
+p_l\9ak_·¿ms
+ *
+l\9ak1
+;
+
+2938 \19
+p_l\9ak_·¿ms
+ *
+l\9ak2
+;
+
+2939 \19
+p_l\9ak_·¿ms
+ *
+l\9ak3
+;
+
+2941
+l\9ak0
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pkt
+[0]->
+pÜt
+];
+
+2942
+l\9ak1
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pkt
+[1]->
+pÜt
+];
+
+2943
+l\9ak2
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pkt
+[2]->
+pÜt
+];
+
+2944
+l\9ak3
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+pkt
+[3]->
+pÜt
+];
+
+2947 #ifdeà
+IPV6
+
+
+2948
+u\9at32_t
+
+´Ù_off£t_\9dv6
+ =
+
+2949
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IPV6_HDR_PROTOCOL_OFST
+;
+
+2953 #ifdeà
+IPV6
+
+
+2955 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2956
+´ÙocÞ0
+ =
+
+2957
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t_\9dv6
+);
+
+2959
+´ÙocÞ0
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t
+);
+
+2962 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2963
+´ÙocÞ1
+ =
+
+2964
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t_\9dv6
+);
+
+2966
+´ÙocÞ1
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t
+);
+
+2969 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2970
+´ÙocÞ2
+ =
+
+2971
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t_\9dv6
+);
+
+2973
+´ÙocÞ2
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t
+);
+
+2976 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETHER_TYPE_IPv6
+)
+
+2977
+´ÙocÞ3
+ =
+
+2978
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t_\9dv6
+);
+
+2980
+´ÙocÞ3
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t
+);
+
+2982
+´ÙocÞ0
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t
+);
+
+2983
+´ÙocÞ1
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t
+);
+
+2984
+´ÙocÞ2
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t
+);
+
+2985
+´ÙocÞ3
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t
+);
+
+2988 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´\9at_couÁ
+ < 10)) {
+
+2989
+ `´\9at_pkt1
+(
+pkt
+[0]);
+
+2990
+¬picmp_pkt_´\9at_couÁ
+++;
+
+2991
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+2993
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+), *
+´ÙocÞ0
+,
+ETH_TYPE_ARP
+,
+
+2994
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+2998 ià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETH_TYPE_ARP
+) ||
+
+2999 ((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETH_TYPE_IPV4
+)
+
+3000 && (*
+´ÙocÞ0
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3001 #ifdeà
+VNF_ACL
+
+
+3002 && (
+l\9ak0
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr0
+))
+
+3006 #ifdeà
+VNF_ACL
+
+
+3007
+out_pÜt0
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[0]->
+pÜt
+];
+
+3008
+ `´oûss_¬picmp_pkt
+(
+pkt
+[0],
+out_pÜt0
+,
+pkt_mask0
+);
+
+3010
+ `´oûss_¬picmp_pkt
+(
+pkt
+[0],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3013 \10
+PKT1
+;
+
+3015 #ifdeà
+IPV6
+
+
+3016 \vià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETH_TYPE_IPV6
+)
+
+3017 && (*
+´ÙocÞ0
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3019 #ifdeà
+VNF_ACL
+
+
+3020
+out_pÜt0
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[0]->
+pÜt
+];
+
+3021
+ `´oûss_icmpv6_pkt
+(
+pkt
+[0],
+out_pÜt0
+,
+pkt_mask0
+);
+
+3023
+ `´oûss_icmpv6_pkt
+(
+pkt
+[0],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3026 \10
+PKT1
+;
+
+3031
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_¬p
+->
+p
+.p,
+pkt_mask0
+);
+
+3032
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3034
+PKT1
+:
+
+3035 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´\9at_couÁ
+ < 10)) {
+
+3036
+ `´\9at_pkt1
+(
+pkt
+[1]);
+
+3037
+¬picmp_pkt_´\9at_couÁ
+++;
+
+3038
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3040
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+), *
+´ÙocÞ1
+,
+ETH_TYPE_ARP
+,
+
+3041
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+3044 ià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3045 ((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETH_TYPE_IPV4
+)
+
+3046 && (*
+´ÙocÞ1
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3047 #ifdeà
+VNF_ACL
+
+
+3048 && (
+l\9ak1
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr1
+))
+
+3052 #ifdeà
+VNF_ACL
+
+
+3053
+out_pÜt1
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[1]->
+pÜt
+];
+
+3054
+ `´oûss_¬picmp_pkt
+(
+pkt
+[1],
+out_pÜt1
+,
+pkt_mask1
+);
+
+3056
+ `´oûss_¬picmp_pkt
+(
+pkt
+[1],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3058 \10
+PKT2
+;
+
+3060 #ifdeà
+IPV6
+
+
+3061 \vià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETH_TYPE_IPV6
+)
+
+3062 && (*
+´ÙocÞ1
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3064 #ifdeà
+VNF_ACL
+
+
+3065
+out_pÜt1
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[1]->
+pÜt
+];
+
+3066
+ `´oûss_icmpv6_pkt
+(
+pkt
+[1],
+out_pÜt1
+,
+pkt_mask1
+);
+
+3068
+ `´oûss_icmpv6_pkt
+(
+pkt
+[1],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3071 \10
+PKT2
+;
+
+3076
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_¬p
+->
+p
+.p,
+pkt_mask1
+);
+
+3077
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3079
+PKT2
+:
+
+3080 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´\9at_couÁ
+ < 10)) {
+
+3081
+ `´\9at_pkt1
+(
+pkt
+[2]);
+
+3082
+¬picmp_pkt_´\9at_couÁ
+++;
+
+3083
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3085
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+), *
+´ÙocÞ2
+,
+ETH_TYPE_ARP
+,
+
+3086
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+3089 ià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3090 ((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETH_TYPE_IPV4
+)
+
+3091 && (*
+´ÙocÞ2
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3092 #ifdeà
+VNF_ACL
+
+
+3093 && (
+l\9ak2
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr2
+))
+
+3097 #ifdeà
+VNF_ACL
+
+
+3098
+out_pÜt2
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[2]->
+pÜt
+];
+
+3099
+ `´oûss_¬picmp_pkt
+(
+pkt
+[2],
+out_pÜt2
+,
+pkt_mask2
+);
+
+3101
+ `´oûss_¬picmp_pkt
+(
+pkt
+[2],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3104 \10
+PKT3
+;
+
+3106 #ifdeà
+IPV6
+
+
+3107 \vià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETH_TYPE_IPV6
+)
+
+3108 && (*
+´ÙocÞ2
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3110 #ifdeà
+VNF_ACL
+
+
+3111
+out_pÜt2
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[2]->
+pÜt
+];
+
+3112
+ `´oûss_icmpv6_pkt
+(
+pkt
+[2],
+out_pÜt2
+,
+pkt_mask2
+);
+
+3114
+ `´oûss_icmpv6_pkt
+(
+pkt
+[2],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3117 \10
+PKT3
+;
+
+3122
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_¬p
+->
+p
+.p,
+pkt_mask2
+);
+
+3123
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3125
+PKT3
+:
+
+3126 ià((
+ARPICMP_DEBUG
+ > 2è&& (
+¬picmp_pkt_´\9at_couÁ
+ < 10)) {
+
+3127
+ `´\9at_pkt1
+(
+pkt
+[3]);
+
+3128
+¬picmp_pkt_´\9at_couÁ
+++;
+
+3129
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+3131
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+), *
+´ÙocÞ3
+,
+ETH_TYPE_ARP
+,
+
+3132
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+3135 ià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETH_TYPE_ARP
+) ||
+
+3136 ((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETH_TYPE_IPV4
+)
+
+3137 && (*
+´ÙocÞ3
+ =ð
+IP_PROTOCOL_ICMP
+)
+
+3139 #ifdeà
+VNF_ACL
+
+
+3140 && (
+l\9ak3
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr3
+))
+
+3144 #ifdeà
+VNF_ACL
+
+
+3145
+out_pÜt3
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[3]->
+pÜt
+];
+
+3146
+ `´oûss_¬picmp_pkt
+(
+pkt
+[3],
+out_pÜt3
+,
+pkt_mask3
+);
+
+3148
+ `´oûss_¬picmp_pkt
+(
+pkt
+[3],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3153 #ifdeà
+IPV6
+
+
+3154 \vià((
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETH_TYPE_IPV6
+)
+
+3155 && (*
+´ÙocÞ3
+ =ð
+ICMPV6_PROTOCOL_ID
+)) {
+
+3157 #ifdeà
+VNF_ACL
+
+
+3158
+out_pÜt3
+ =
+p_¬p
+->
+ou\8dÜt_id
+[
+pkt
+[3]->
+pÜt
+];
+
+3159
+ `´oûss_icmpv6_pkt
+(
+pkt
+[3],
+out_pÜt3
+,
+pkt_mask3
+);
+
+3161
+ `´oûss_icmpv6_pkt
+(
+pkt
+[3],
+ `ifm_g\91_pÜt
+(
+\9a_pÜt_id
+));
+
+3168
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_¬p
+->
+p
+.p,
+pkt_mask3
+);
+
+3169
+p_¬p
+->
+drݳdPktCouÁ
+++;
+
+3172
+ }
+}
+
+3174
+PIPELINE_ARPICMP_KEY_PORT_IN_AH
+(
+
+3175
+pÜt_\9a_ah_¬picmp
+,
+
+3176
+pkt_key_¬picmp
+,
+
+3177
+pkt4_key_¬picmp
+);
+
+3179 \18\1e*
+ $p\9d\96\9ae_¬picmp_\9a\99
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+3180
+__¹e_unu£d
+ \1e*
+¬g
+)
+
+3182 \19
+p\9d\96\9ae
+ *
+p
+;
+
+3183 \19
+p\9d\96\9ae_¬picmp
+ *
+p_¬p
+;
+
+3184
+u\9at32_t
+
+size
+,
+i
+,
+\9a_pÜts_¬g_size
+;
+
+3186
+ `´\9atf
+("Start\85ipeline_arpicmp_init\n");
+
+3189 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+3190 (
+·¿ms
+->
+n_pÜts_\9a
+ == 0) ||
+
+3191 (
+·¿ms
+->
+n_pÜts_out
+ == 0))
+
+3192 \15
+NULL
+;
+
+3195
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+p\9d\96\9ae_¬picmp
+));
+
+3196
+p
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+3197
+p_¬p
+ = (\19
+p\9d\96\9ae_¬picmp
+ *)
+p
+;
+
+3198 ià(
+p
+ =ð
+NULL
+)
+
+3199 \15
+NULL
+;
+
+3202 \19
+p_·¿ms
+ *
+p
+ = (\19p_·¿m *)
+¬g
+;
+
+3203
+myAµ
+ =
+¬g
+;
+
+3205
+ `PLOG
+(
+p
+,
+HIGH
+, "ARPICMP");
+
+3206
+ `¡rýy
+(
+p
+->
+Çme
+,
+·¿ms
+->name);
+
+3207
+p
+->
+log_Ëv\96
+ =
+·¿ms
+->log_level;
+
+3209
+p_¬p
+->
+»ûivedPktCouÁ
+ = 0;
+
+3210
+p_¬p
+->
+drݳdPktCouÁ
+ = 0;
+
+3212 #ifdeà
+VNF_ACL
+
+
+3213 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+3214
+p_¬p
+->
+l\9aks_m
+[
+i
+] = 0xff;
+
+3216
+p_¬p
+->
+p\9d\96\9ae_num
+ = 0;
+
+3219 ià(
+ `p\9d\96\9ae_¬picmp_·r£_¬gs
+(
+p_¬p
+,
+·¿ms
+))
+
+3220 \15
+NULL
+;
+
+3222 #iâdeà
+VNF_ACL
+
+
+3223
+ `lib_¬p_\9a\99
+(
+·¿ms
+,
+p
+);
+
+3228 \19
+¹e_p\9d\96\9ae_·¿ms
+
+p\9d\96\9ae_·¿ms
+ = {
+
+3229 .
+Çme
+ = "ARPICMP",
+
+3230 .
+sock\91_id
+ =
+·¿ms
+->socket_id,
+
+3231 .
+off£t_pÜt_id
+ = 0,
+
+3235
+p
+->°ð
+ `¹e_p\9d\96\9ae_ü\97\8b
+(&
+p\9d\96\9ae_·¿ms
+);
+
+3236 ià(
+p
+->°=ð
+NULL
+) {
+
+3237
+ `¹e_ä\93
+(
+p
+);
+
+3238 \15
+NULL
+;
+
+3242
+p
+->
+n_pÜts_\9a
+ =
+·¿ms
+->n_ports_in;
+
+3243
+p
+->
+n_pÜts_out
+ =
+·¿ms
+->n_ports_out;
+
+3244
+p
+->
+n_\8fbËs
+ = 1;
+
+3247
+\9a_pÜts_¬g_size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(
+
+3248 (\17(\19
+p\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+)) *
+
+3249 (
+·¿ms
+->
+n_pÜts_\9a
+));
+
+3250 \19
+p\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+ *
+
+ =
+
+3251 (\19
+p\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+ *)
+ `¹e_zm®loc
+(
+NULL
+,
+
+3252
+\9a_pÜts_¬g_size
+,
+
+3253
+RTE_CACHE_LINE_SIZE
+);
+
+3254 ià(
+
+ =ð
+NULL
+)
+
+3255 \15
+NULL
+;
+
+3258 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+3260 (
+
+[
+i
+]).
+p
+ =
+p_¬p
+;
+
+3261 (
+
+[
+i
+]).
+\9a_pÜt_id
+ = i;
+
+3262 \19
+¹e_p\9d\96\9ae_pÜt_\9a_·¿ms
+
+pÜt_·¿ms
+ = {
+
+3263 .
+Ýs
+ =
+
+3264
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+
+3265
+pÜt_\9a
+[
+i
+]),
+
+3266 .
+¬g_ü\97\8b
+ =
+
+3267
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+
+3268
+pÜt_\9a
+[
+i
+]),
+
+3269 .
+f_aùiÚ
+ =
+NULL
+,
+
+3270 .
+¬g_ah
+ = &(
+
+[
+i
+]),
+
+3271 .
+bur¡_size
+ =
+·¿ms
+->
+pÜt_\9a
+[
+i
+].burst_size,
+
+3274
+pÜt_·¿ms
+.
+f_aùiÚ
+ =
+pÜt_\9a_ah_¬picmp
+;
+
+3276 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_ü\97\8b
+(
+p
+->p,
+
+3277 &
+pÜt_·¿ms
+,
+
+3278 &
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+3280 ià(
+¡©us
+) {
+
+3281
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3282
+ `¹e_ä\93
+(
+p
+);
+
+3283 \15
+NULL
+;
+
+3288 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_out
+; i++) {
+
+3289 \19
+¹e_p\9d\96\9ae_pÜt_out_·¿ms
+
+pÜt_·¿ms
+ = {
+
+3290 .
+Ýs
+ =
+
+3291
+ `p\9d\96\9ae_pÜt_out_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+
+3292
+pÜt_out
+[
+i
+]),
+
+3293 .
+¬g_ü\97\8b
+ =
+
+3294
+ `p\9d\96\9ae_pÜt_out_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+
+3295
+pÜt_out
+[
+i
+]),
+
+3296 .
+f_aùiÚ
+ =
+NULL
+,
+
+3297 .
+¬g_ah
+ =
+NULL
+,
+
+3300 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_out_ü\97\8b
+(
+p
+->p,
+
+3301 &
+pÜt_·¿ms
+,
+
+3302 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+3304 ià(
+¡©us
+) {
+
+3305
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3306
+ `¹e_ä\93
+(
+p
+);
+
+3307 \15
+NULL
+;
+
+3310 \12
+p\9d\96\9ae_num
+ = 0;
+
+3312 \12
+¡©us
+ =
+ `ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p\9d\96\9ae_num
+);
+
+3314 ià(
+¡©us
+ < 0) {
+
+3315 \15
+NULL
+;
+
+3316
+ `´\9atf
+("Unable\81o\84ead\85ipeline\82umber\n");
+
+3319
+p_¬p
+->
+p\9d\96\9ae_num
+ = (
+u\9at8_t
+)\85ipeline_num;
+
+3321
+ `»gi¡\94_p\9d\96\9ae_Qs
+(
+p_¬p
+->
+p\9d\96\9ae_num
+,
+p
+);
+
+3322
+ `£t_phy_ou\8dÜt_id
+(
+p_¬p
+->
+p\9d\96\9ae_num
+,
+p
+,\85_¬p->
+ou\8dÜt_id
+);
+
+3326 \19
+¹e_p\9d\96\9ae_\8fbË_·¿ms
+
+\8fbË_·¿ms
+ = {
+
+3327 .
+Ýs
+ = &
+¹e_\8fbË_¡ub_Ýs
+,
+
+3328 .
+¬g_ü\97\8b
+ =
+NULL
+,
+
+3329 .
+f_aùiÚ_h\99
+ =
+NULL
+,
+
+3330 .
+f_aùiÚ_miss
+ =
+NULL
+,
+
+3331 .
+¬g_ah
+ =
+NULL
+,
+
+3332 .
+aùiÚ_d©a_size
+ = 0,
+
+3335 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_ü\97\8b
+(
+p
+->p,
+
+3336 &
+\8fbË_·¿ms
+,
+
+3337 &
+p
+->
+\8fbË_id
+[0]);
+
+3339 ià(
+¡©us
+) {
+
+3340
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3341
+ `¹e_ä\93
+(
+p
+);
+
+3342 \15
+NULL
+;
+
+3347 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+3349 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_cÚÃù_to_\8fbË
+(
+p
+->p,
+
+3350
+p
+->
+
+3351
+pÜt_\9a_id
+
+
+3352 [
+i
+],
+
+3353
+p
+->
+
+3354
+\8fbË_id
+[0]);
+
+3356 ià(
+¡©us
+) {
+
+3357
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3358
+ `¹e_ä\93
+(
+p
+);
+
+3359 \15
+NULL
+;
+
+3365 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+3366 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+->p,
+
+3367
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+3369 ià(
+¡©us
+) {
+
+3370
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3371
+ `¹e_ä\93
+(
+p
+);
+
+3372 \15
+NULL
+;
+
+3377 ià(
+ `¹e_p\9d\96\9ae_check
+(
+p
+->p) < 0) {
+
+3378
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3379
+ `¹e_ä\93
+(
+p
+);
+
+3380 \15
+NULL
+;
+
+3384
+p
+->
+n_msgq
+ =
+·¿ms
+->n_msgq;
+
+3385 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+3386
+p
+->
+msgq_\9a
+[
+i
+] =
+·¿ms
+->msgq_in[i];
+
+3387 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+3388
+p
+->
+msgq_out
+[
+i
+] =
+·¿ms
+->msgq_out[i];
+
+3391
+ `memýy
+(
+p
+->
+hªdËrs
+, handlers, \17(p->handlers));
+
+3393 #ifdeà
+VNF_ACL
+
+
+3396
+lib_¬p_pktmbuf_tx_poÞ
+ =
+ `¹e_pktmbuf_poÞ_ü\97\8b
+(
+
+3398
+NB_ARPICMP_MBUF
+, 32,
+
+3399 0,
+RTE_MBUF_DEFAULT_BUF_SIZE
+,
+
+3400
+ `¹e_sock\91_id
+());
+
+3402 ià(
+lib_¬p_pktmbuf_tx_poÞ
+ =ð
+NULL
+) {
+
+3403
+ `´\9atf
+("ARP mbuf\85ool create failed.\n");
+
+3404 \15
+NULL
+;
+
+3407
+lib_¬p_pkt
+ =
+ `¹e_pktmbuf_®loc
+(
+lib_¬p_pktmbuf_tx_poÞ
+);
+
+3408 ià(
+lib_¬p_pkt
+ =ð
+NULL
+) {
+
+3409
+ `´\9atf
+("ARP\86ib_arp_pkt\87lloc failed.\n");
+
+3410 \15
+NULL
+;
+
+3414
+¬p_hash_·¿ms
+.
+sock\91_id
+ =
+ `¹e_sock\91_id
+();
+
+3415
+¬p_hash_·¿ms
+.
+\92\8c\9bs
+ =
+MAX_NUM_ARP_ENTRIES
+;
+
+3416
+¬p_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+¬p_hash_·¿ms
+);
+
+3418 ià(
+¬p_hash_hªdË
+ =ð
+NULL
+) {
+
+3419
+ `´\9atf
+("ARP\84te_hash_create failed. socket %d ...\n",
+
+3420
+¬p_hash_·¿ms
+.
+sock\91_id
+);
+
+3421 \15
+NULL
+;
+
+3423
+ `´\9atf
+("¬p_hash_hªdË %p\n\n", (\1e*)
+¬p_hash_hªdË
+);
+
+3426
+nd_hash_·¿ms
+.
+sock\91_id
+ =
+ `¹e_sock\91_id
+();
+
+3427
+nd_hash_·¿ms
+.
+\92\8c\9bs
+ =
+MAX_NUM_ND_ENTRIES
+;
+
+3428
+nd_hash_hªdË
+ =
+ `¹e_hash_ü\97\8b
+(&
+nd_hash_·¿ms
+);
+
+3430 ià(
+nd_hash_hªdË
+ =ð
+NULL
+) {
+
+3431
+ `´\9atf
+("ND\84te_hash_create failed. socket %d ...\n",
+
+3432
+nd_hash_·¿ms
+.
+sock\91_id
+);
+
+3433 \15
+NULL
+;
+
+3436
+ `´\9atf
+("nd_hash_hªdË %p\n\n", (\1e*)
+nd_hash_hªdË
+);
+
+3438 \15
+p
+;
+
+3439
+ }
+}
+
+3441 \18\12
+ $p\9d\96\9ae_¬picmp_ä\93
+(\1e*
+p\9d\96\9ae
+)
+
+3443 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+3446 ià(
+p
+ =ð
+NULL
+)
+
+3450
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+3451
+ `¹e_ä\93
+(
+p
+);
+
+3453
+ }
+}
+
+3455 \18\12
+ $p\9d\96\9ae_¬picmp_tim\94
+(\1e*
+p\9d\96\9ae
+)
+
+3457 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+3459
+ `p\9d\96\9ae_msg_»q_hªdË
+(
+p
+);
+
+3460
+ `¹e_p\9d\96\9ae_æush
+(
+p
+->p);
+
+3463
+ }
+}
+
+3466
+ $p\9d\96\9ae_¬picmp_\8cack
+(\1e*
+p\9d\96\9ae
+,
+u\9at32_t
+
+pÜt_\9a
+, u\9at32_\88*
+pÜt_out
+)
+
+3468 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+3471 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_\9a
+ >ðp->
+n_pÜts_\9a
+è|| (
+pÜt_out
+ == NULL))
+
+3474 *
+pÜt_out
+ =
+pÜt_\9a
+ /
+p
+->
+n_pÜts_\9a
+;
+
+3476
+ }
+}
+
+3478 \19
+p\9d\96\9ae_be_Ýs
+
+ gp\9d\96\9ae_¬picmp_be_Ýs
+ = {
+
+3479 .
+f_\9a\99
+ =
+p\9d\96\9ae_¬picmp_\9a\99
+,
+
+3480 .
+ gf_ä\93
+ =
+p\9d\96\9ae_¬picmp_ä\93
+,
+
+3481 .
+ gf_run
+ =
+NULL
+,
+
+3482 .
+ gf_tim\94
+ =
+p\9d\96\9ae_¬picmp_tim\94
+,
+
+3483 .
+ gf_\8cack
+ =
+p\9d\96\9ae_¬picmp_\8cack
+,
+
+ @VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_ARPICMP_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_ARPICMP_BE_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+21 \ 1
+ #PIPELINE_ARPICMP_KEY_PORT_IN_AH
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+23
+ `f_ah
+( \
+
+24
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+, \
+
+25 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+26
+u\9at32_t
+
+n_pkts
+, \
+
+27 \1e*
+¬g
+) \
+
+29
+u\9at32_t
+
+i
+,
+j
+; \
+
+31 \ f
+j
+ = 0; j <
+n_pkts
+; j++) \
+
+32
+ `¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+34 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+35
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i,
+¬g
+); \
+
+37 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+38
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+], i,
+¬g
+); \
+
+42 }
+
+ )
+
+44 \r\19
+p_·¿ms
+ *
+myAµ
+;
+
+45 \1e
+´\9at_pkt1
+(\19
+¹e_mbuf
+ *
+pkt
+);
+
+46 \19
+\91h\94_addr
+ *
+g\91_l\9ak_hw_addr
+(
+u\9at8_t
+
+out_pÜt
+);
+
+47 #ifdeà
+VNF_ACL
+
+
+49 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+50 \ 2
+ ~"¹e_\91h\94.h
+"
+
+51 \ 2
+ ~"p.h
+"
+
+53 #ià(
+RTE_BYTE_ORDER
+ =ð
+RTE_LITTLE_ENDIAN
+)
+
+56 \ 1
+ #CHECK_ENDIAN_16
+(
+x
+è
+ `¹e_be_to_ýu_16
+(x)
+
+ )
+
+57 \ 1
+ #CHECK_ENDIAN_32
+(
+x
+è
+ `¹e_be_to_ýu_32
+(x)
+
+ )
+
+59 \ 1
+ #CHECK_ENDIAN_16
+(
+x
+è(x)
+
+ )
+
+60 \ 1
+ #CHECK_ENDIAN_32
+(
+x
+è(x)
+
+ )
+
+64 \ 1
+ #MAX_ARP_RT_ENTRY
+ 16
+
+ )
+
+65 \ 1
+ #MAX_ND_RT_ENTRY
+ 16
+
+ )
+
+67 \ 1
+ #ND_IPV6_ADDR_SIZE
+ 16
+
+ )
+
+70
+ mARP_FOUND
+,
+
+71
+ mARP_NOT_FOUND
+,
+
+72
+ mNH_NOT_FOUND
+,
+
+75 \f
+ e¬p_key_ty³
+ {
+
+76
+ mARP_IPV4
+,
+
+78
+ mND_IPV6
+,
+
+81 \19
+ s¬p_key_\9dv4
+ {
+
+82
+u\9at32_t
+
+ m\9d
+;
+
+83
+u\9at8_t
+
+ mpÜt_id
+;
+
+84
+u\9at8_t
+
+ mf\9eËr1
+;
+
+85
+u\9at8_t
+
+ mf\9eËr2
+;
+
+86
+u\9at8_t
+
+ mf\9eËr3
+;
+
+90 \19
+ snd_key_\9dv6
+ {
+
+93
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+94
+u\9at8_t
+
+ mpÜt_id
+;
+
+95
+u\9at8_t
+
+ mf\9eËr1
+;
+
+96
+u\9at8_t
+
+ mf\9eËr2
+;
+
+97
+u\9at8_t
+
+ mf\9eËr3
+;
+
+100 \19
+ s¬p_key
+ {
+
+101 \f
+¬p_key_ty³
+
+ mty³
+;
+
+103 \19
+¬p_key_\9dv4
+
+ m\9dv4
+;
+
+104 }
+ mkey
+;
+
+107 \19
+ slib_¬p_rou\8b_\8fbË_\92\8cy
+ {
+
+108
+u\9at32_t
+
+ m\9d
+;
+
+109
+u\9at32_t
+
+ mmask
+;
+
+110
+u\9at32_t
+
+ mpÜt
+;
+
+111
+u\9at32_t
+
+ mnh
+;
+
+114 \19
+ slib_nd_rou\8b_\8fbË_\92\8cy
+ {
+
+115
+u\9at8_t
+
+ m\9dv6
+[16];
+
+116
+u\9at8_t
+
+ md\95th
+;
+
+117
+u\9at32_t
+
+ mpÜt
+;
+
+118
+u\9at8_t
+
+ mnh\9dv6
+[16];
+
+120 \r\19
+lib_¬p_rou\8b_\8fbË_\92\8cy
+
+lib_¬p_rou\8b_\8fbË
+[
+MAX_ARP_RT_ENTRY
+];
+
+121 \r\19
+lib_nd_rou\8b_\8fbË_\92\8cy
+
+lib_nd_rou\8b_\8fbË
+[
+MAX_ND_RT_ENTRY
+];
+
+123 \r
+u\9at8_t
+
+´v_\9a_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+124 \r\1e
+cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+u\9at32_t
+
+d\95th
+,
+
+125
+u\9at8_t
+
+Ãtmask_\9dv6
+[]);
+
+126
+u\9at32_t
+
+g\91_nh
+(uint32_t, uint32_t*);
+
+127 \1e
+g\91_nh_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[],
+u\9at32_t
+ *
+pÜt
+, u\9at8_\88
+nh\9dv6
+[]);
+
+129 \r
+u\9at32_t
+
+ARPICMP_DEBUG
+;
+
+133 \ 1
+ #COMPLETE
+ 1
+
+ )
+
+135 \ 1
+ #INCOMPLETE
+ 0
+
+ )
+
+138 \r
+u\9at32_t
+
+NDIPV6_DEBUG
+;
+
+141 \ 1
+ #ICMPv6_COMPLETE
+ 1
+
+ )
+
+143 \ 1
+ #ICMPv6_INCOMPLETE
+ 0
+
+ )
+
+145 \19
+ s¬p_\92\8cy_d©a
+ {
+
+146 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+147
+u\9at8_t
+
+ mpÜt
+;
+
+148
+u\9at8_t
+
+ m¡©us
+;
+
+149
+u\9at32_t
+
+ m\9d
+;
+
+150 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+153 \19
+ snd_\92\8cy_d©a
+ {
+
+154 \19
+\91h\94_addr
+
+ m\91h_addr
+;
+
+155
+u\9at8_t
+
+ mpÜt
+;
+
+156
+u\9at8_t
+
+ m¡©us
+;
+
+157
+u\9at8_t
+
+ m\9dv6
+[
+ND_IPV6_ADDR_SIZE
+];
+
+158 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+160 \12
+g\91_de¡_mac_add»ss
+(cڡ
+u\9at32_t
+
+\9daddr
+, cÚ¡ u\9at32_\88
+phy_pÜt
+,
+
+161 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+ *
+nh\9d
+);
+
+162 \12
+g\91_de¡_mac_addr
+(cڡ
+u\9at32_t
+
+\9daddr
+, cÚ¡ u\9at32_\88
+phy_pÜt
+,
+
+163 \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+165 \12
+g\91_de¡_mac_add»ss_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+
+phy_pÜt
+,
+
+166 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[]);
+
+168 \1e
+lib_¬p_»que¡_¬p
+(
+
+169 cڡ
+u\9at32_t
+
+\9daddr
+,
+
+170 cڡ
+u\9at32_t
+
+phy_pÜt
+,
+
+171 \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+);
+
+173 \1e
+´\9at_¬p_\8fbË
+(\1e);
+
+174 \1e
+´\9at_nd_\8fbË
+(\1e);
+
+175 \1e
+»move_¬p_\92\8cy
+(
+u\9at32_t
+
+\9daddr
+,
+u\9at8_t
+
+pÜtid
+);
+
+176 \1e
+»move_nd_\92\8cy_\9dv6
+(
+u\9at8_t
+
+\9dv6addr
+[], u\9at8_\88
+pÜtid
+);
+
+177 \1e
+pÝuÏ\8b_¬p_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at32_t
+
+\9daddr
+,
+
+178
+u\9at8_t
+
+pÜtid
+);
+
+180 \12
+pÝuÏ\8b_nd_\92\8cy
+(cڡ \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+\9d
+[],
+
+181
+u\9at8_t
+
+pÜtid
+);
+
+182 \1e
+»que¡_¬p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+, \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+);
+
+183 \1e
+»que¡_¬p_w¿p
+(
+u\9at8_t
+
+pÜt_id
+,
+u\9at32_t
+
+\9d
+);
+
+184 \1e
+»que¡_echo
+(\1d\12
+pÜt_id
+,
+u\9at32_t
+
+\9d
+);
+
+186 \1e
+´oûss_¬picmp_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at32_t
+
+out_pÜt
+,
+
+187
+u\9at32_t
+
+pkt_num
+);
+
+189 \19
+¬p_\92\8cy_d©a
+ *
+»\8c\9bve_¬p_\92\8cy
+(cڡ \19
+¬p_key_\9dv4
+
+¬p_key
+);
+
+190 \19
+nd_\92\8cy_d©a
+ *
+»\8c\9bve_nd_\92\8cy
+(\19
+nd_key_\9dv6
+
+nd_key
+);
+
+192 \19
+nd_\92\8cy_d©a
+ *
+»\8c\9bve_nd_\92\8cy
+(\19
+nd_key_\9dv6
+
+nd_key
+);
+
+194 \1e
+lib_nd_\9a\99
+Ð\19
+p_·¿ms
+ *
+p
+);
+
+195 \1e
+´\9at_pkt1
+(\19
+¹e_mbuf
+ *
+pkt
+);
+
+199
+u\9at8_t
+
+ glb_ou\8dÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+200 \19
+p\9d\96\9ae
+ *
+ glßdb_p\9d\96\9ae
+[
+PIPELINE_MAX_PORT_IN
+];
+
+201 \19
+p\9d\96\9ae
+ *
+ g®l_p\9d\96\9ae
+[
+PIPELINE_MAX_PORT_IN
+];
+
+202
+u\9at8_t
+
+ gvnf_to_lßdb_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+203
+u\9at8_t
+
+ gpÜt_to_lßdb_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+204
+u\9at8_t
+
+ glßdb_p\9d\96\9ae_nums
+[
+PIPELINE_MAX_PORT_IN
+];
+
+207
+u\9at8_t
+
+ glb_ou\8dÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+208 \19
+p\9d\96\9ae
+ *
+ g¬p_p\9d\96\9ae
+[
+PIPELINE_MAX_PORT_IN
+];
+
+209
+u\9at8_t
+
+ gvnf_to_¬p_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+210
+u\9at8_t
+
+ gpÜt_to_¬p_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+211
+u\9at8_t
+
+ g¬p_p\9d\96\9ae_nums
+[
+PIPELINE_MAX_PORT_IN
+];
+
+214 \1e
+£t_pÜt_to_lßdb_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+);
+
+215
+u\9at8_t
+
+g\91_pÜt_to_lßdb_m
+(u\9at8_\88
+phy_pÜt_id
+);
+
+218 \1e
+£t_phy_\9apÜt_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, u\9at8_\88*
+m
+);
+
+219 \1e
+£t_phy_ou\8dÜt_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, u\9at8_\88*
+m
+);
+
+221 \1e
+£t_ou\8dÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+);
+
+223
+u\9at8_t
+
+g\91_lßdb_ou\8dÜt_id
+(u\9at8_\88
+aùu®_phy_pÜt
+);
+
+225
+u\9at8_t
+
+g\91_vnf_£t_num
+(u\9at8_\88
+p\9d\96\9ae_num
+);
+
+227 \1e
+p\9d\96\9aes_pÜt_\9afo
+(\1e);
+
+228 \1e
+p\9d\96\9aes_m_\9afo
+(\1e);
+
+229 \1e
+»gi¡\94_lßdb_to_¬p
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+,
+
+230
+__¹e_unu£d
+ \19
+p_·¿ms
+ *
+p
+);
+
+232
+u\9at8_t
+
+ gSWQ_to_PÜt_m
+[128];
+
+234 \r\19
+p\9d\96\9ae_be_Ýs
+
+p\9d\96\9ae_¬picmp_be_Ýs
+;
+
+235 \1e
+»gi¡\94_p\9d\96\9ae_Qs
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+);
+
+236 \1e
+£t_l\9ak_m
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+);
+
+237 \1e
+£t_ou\8dÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+);
+
+238 \1e
+£t_phy_ou\8dÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+);
+
+239 \1e
+£t_phy_\9apÜt_id
+(
+u\9at8_t
+
+p\9d\96\9ae_num
+, \19
+p\9d\96\9ae
+ *
+p
+, u\9at8_\88*
+m
+);
+
+244 \f
+ ep\9d\96\9ae_¬picmp_msg_»q_ty³
+ {
+
+245
+ mPIPELINE_ARPICMP_MSG_REQ_ENTRY_DBG
+,
+
+246
+ mPIPELINE_ARPICMP_MSG_REQS
+
+
+252 \19
+ sp\9d\96\9ae_¬picmp_\92\8cy_dbg_msg_»q
+ {
+
+253 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+254 \f
+p\9d\96\9ae_¬picmp_msg_»q_ty³
+
+ msubty³
+;
+
+257
+u\9at8_t
+
+ md©a
+[2];
+
+264 \19
+ sp\9d\96\9ae_¬picmp_\9a_pÜt_h_¬g
+ {
+
+265 \19
+p\9d\96\9ae_¬picmp
+ *
+ mp
+;
+
+266
+u\9at8_t
+
+ m\9a_pÜt_id
+;
+
+269 \19
+ sp\9d\96\9ae_¬picmp_\92\8cy_dbg_msg_r¥
+ {
+
+270 \12
+ m¡©us
+;
+
+273 #ifdeà
+VNF_ACL
+
+
+276 \19
+ sicmpv6_hdr
+ {
+
+277
+u\9at8_t
+
+ micmpv6_ty³
+;
+
+278
+u\9at8_t
+
+ micmpv6_code
+;
+
+279
+u\9at16_t
+
+ micmpv6_cksum
+;
+
+280 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+285 \19
+ sicmpv6_\9afo_hdr
+ {
+
+286
+u\9at16_t
+
+ micmpv6_id\92t
+;
+
+287
+u\9at16_t
+
+ micmpv6_£q_nb
+;
+
+288 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+293 \19
+ sicmpv6_nd_hdr
+ {
+
+295
+u\9at32_t
+
+ micmpv6_ȣrved
+;
+
+298
+u\9at8_t
+
+ m\8frg\91_\9dv6
+[16];
+
+300
+u\9at8_t
+
+ mty³
+;
+
+301
+u\9at8_t
+
+ mËngth
+;
+
+302 \19
+\91h\94_addr
+
+ ml\9ak_Ïy\94_add»ss
+;
+
+303 }
+__©\8cibu\8b__
+ ((
+__·cked__
+));
+
+306 \ 1
+ #ICMPV6_PROTOCOL_ID
+ 58
+
+ )
+
+307 \ 1
+ #ICMPV6_ECHO_REQUEST
+ 0x0080
+
+ )
+
+308 \ 1
+ #ICMPV6_ECHO_REPLY
+ 0x0081
+
+ )
+
+309 \ 1
+ #ICMPV6_NEIGHBOR_SOLICITATION
+ 0x0087
+
+ )
+
+310 \ 1
+ #ICMPV6_NEIGHBOR_ADVERTISEMENT
+ 0x0088
+
+ )
+
+311 \ 1
+ #IPV6_MULTICAST
+ 0xFF02
+
+ )
+
+313 \ 1
+ #NEIGHBOR_SOLICITATION_SET
+ 0x40000000
+
+ )
+
+314 \f
+ eicmpv6_l\9ak_Ïy\94_Add»ss_ty³
+ {
+
+315
+ me_Sourû_L\9ak_Lay\94_Add»ss
+ = 1,
+
+316
+ me_T¬g\91_L\9ak_Lay\94_Add»ss
+,
+
+317
+ me_L\9ak_Lay\94_Add»ss
+
+
+320
+u\9at8_t
+
+is_muÉiÿ¡_\9dv6_addr
+(u\9at8_\88
+\9dv6
+[]);
+
+321 \19
+ sicmpv6_pÜt_add»ss
+ {
+
+322
+u\9at32_t
+
+ m\9dv6
+[16];
+
+323
+u\9at64_t
+
+ mmac_addr
+;
+
+326 \19
+icmpv6_pÜt_add»ss
+
+ gicmpv6_pÜt_add»s£s
+[
+RTE_MAX_ETHPORTS
+];
+
+328 \ 1
+ #MAX_NUM_ICMPv6_ENTRIES
+ 64
+
+ )
+
+330 \19
+¹e_mbuf
+ *
+ glib_icmpv6_pkt
+;
+
+331 \1e
+»que¡_icmpv6_echo
+(
+u\9at32_t
+
+pÜt_id
+,
+u\9at8_t
+
+\9dv6
+[]);
+
+332 \1e
+»que¡_icmpv6_echo_mes§ge
+(
+u\9at16_t
+
+pÜt_id
+,
+u\9at8_t
+
+\9dv6
+[],
+
+333 \19
+\91h\94_addr
+ *
+gw_addr
+);
+
+335
+´oûss_icmpv6_pkt
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at32_t
+
+out_pÜt
+, u\9at32_\88
+pkt_num
+);
+
+337 \12
+g\91_de¡_mac_addr_pÜt
+(cڡ
+u\9at32_t
+
+\9daddr
+,
+
+338
+u\9at32_t
+ *
+phy_pÜt
+, \19
+\91h\94_addr
+ *
+hw_addr
+);
+
+340 \12
+g\91_de¡_mac_add»ss_\9dv6_pÜt
+(
+u\9at8_t
+
+\9dv6addr
+[],
+u\9at32_t
+ *
+phy_pÜt
+,
+
+341 \19
+\91h\94_addr
+ *
+hw_addr
+,
+u\9at8_t
+
+nh\9dv6
+[]);
+
+ @VIL/pipeline_common/pipeline_common_be.c
+
+17 \ 2
+ ~<¹e_commÚ.h
+>
+
+18 \ 2
+ ~<¹e_r\9ag.h
+>
+
+19 \ 2
+ ~<¹e_m®loc.h
+>
+
+21 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+24
+ $p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+(
+__¹e_unu£d
+ \19
+p\9d\96\9ae
+ *
+p
+,
+
+25 \1e*
+msg
+)
+
+27 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+29
+r¥
+->
+¡©us
+ = 0;
+
+31 \15
+r¥
+;
+
+32
+ }
+}
+
+35
+ $p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+36 \1e*
+msg
+)
+
+38 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+ =
+msg
+;
+
+39 \19
+p\9d\96\9ae_¡©s_pÜt_\9a_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+40
+u\9at32_t
+
+pÜt_id
+;
+
+43 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_pÜts_\9a
+) {
+
+44
+r¥
+->
+¡©us
+ = -1;
+
+45 \15
+r¥
+;
+
+47
+pÜt_id
+ =
+p
+->
+pÜt_\9a_id
+[
+»q
+->
+id
+];
+
+50
+r¥
+->
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_¡©s_»ad
+(
+p
+->p,
+
+51
+pÜt_id
+,
+
+52 &
+r¥
+->
+¡©s
+,
+
+55 \15
+r¥
+;
+
+56
+ }
+}
+
+59
+ $p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+60 \1e*
+msg
+)
+
+62 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+ =
+msg
+;
+
+63 \19
+p\9d\96\9ae_¡©s_pÜt_out_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+64
+u\9at32_t
+
+pÜt_id
+;
+
+67 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_pÜts_out
+) {
+
+68
+r¥
+->
+¡©us
+ = -1;
+
+69 \15
+r¥
+;
+
+71
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[
+»q
+->
+id
+];
+
+74
+r¥
+->
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_out_¡©s_»ad
+(
+p
+->p,
+
+75
+pÜt_id
+,
+
+76 &
+r¥
+->
+¡©s
+,
+
+79 \15
+r¥
+;
+
+80
+ }
+}
+
+83
+ $p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+84 \1e*
+msg
+)
+
+86 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+ =
+msg
+;
+
+87 \19
+p\9d\96\9ae_¡©s_\8fbË_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+88
+u\9at32_t
+
+\8fbË_id
+;
+
+91 ià(
+»q
+->
+id
+ >ð
+p
+->
+n_\8fbËs
+) {
+
+92
+r¥
+->
+¡©us
+ = -1;
+
+93 \15
+r¥
+;
+
+95
+\8fbË_id
+ =
+p
+->\8fbË_id[
+»q
+->
+id
+];
+
+98
+r¥
+->
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_¡©s_»ad
+(
+p
+->p,
+
+99
+\8fbË_id
+,
+
+100 &
+r¥
+->
+¡©s
+,
+
+103 \15
+r¥
+;
+
+104
+ }
+}
+
+107
+ $p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+108 \1e*
+msg
+)
+
+110 \19
+p\9d\96\9ae_pÜt_\9a_msg_»q
+ *
+»q
+ =
+msg
+;
+
+111 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+112
+u\9at32_t
+
+pÜt_id
+;
+
+115 ià(
+»q
+->
+pÜt_id
+ >ð
+p
+->
+n_pÜts_\9a
+) {
+
+116
+r¥
+->
+¡©us
+ = -1;
+
+117 \15
+r¥
+;
+
+119
+pÜt_id
+ =
+p
+->
+pÜt_\9a_id
+[
+»q
+->port_id];
+
+122
+r¥
+->
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+->p,
+
+123
+pÜt_id
+);
+
+125 \15
+r¥
+;
+
+126
+ }
+}
+
+129
+ $p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+130 \1e*
+msg
+)
+
+132 \19
+p\9d\96\9ae_pÜt_\9a_msg_»q
+ *
+»q
+ =
+msg
+;
+
+133 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+134
+u\9at32_t
+
+pÜt_id
+;
+
+137 ià(
+»q
+->
+pÜt_id
+ >ð
+p
+->
+n_pÜts_\9a
+) {
+
+138
+r¥
+->
+¡©us
+ = -1;
+
+139 \15
+r¥
+;
+
+141
+pÜt_id
+ =
+p
+->
+pÜt_\9a_id
+[
+»q
+->port_id];
+
+144
+r¥
+->
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_di§bË
+(
+p
+->p,
+
+145
+pÜt_id
+);
+
+147 \15
+r¥
+;
+
+148
+ }
+}
+
+151
+ $p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+(
+__¹e_unu£d
+ \19
+p\9d\96\9ae
+ *
+p
+,
+
+152 \1e*
+msg
+)
+
+154 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+156
+r¥
+->
+¡©us
+ = -1;
+
+158 \15
+r¥
+;
+
+159
+ }
+}
+
+162
+ $p\9d\96\9ae_msg_»q_hªdË
+(\19
+p\9d\96\9ae
+ *
+p
+)
+
+164
+u\9at32_t
+
+msgq_id
+;
+
+166 \ f
+msgq_id
+ = 0; msgq_id <
+p
+->
+n_msgq
+; msgq_id++) {
+
+168 \19
+p\9d\96\9ae_msg_»q
+ *
+»q
+;
+
+169
+p\9d\96\9ae_msg_»q_hªdËr
+
+f_hªdË
+;
+
+171
+»q
+ =
+ `p\9d\96\9ae_msg_»cv
+(
+p
+,
+msgq_id
+);
+
+172 ià(
+»q
+ =ð
+NULL
+)
+
+175
+f_hªdË
+ = (
+»q
+->
+ty³
+ <
+PIPELINE_MSG_REQS
+) ?
+
+176
+p
+->
+hªdËrs
+[
+»q
+->
+ty³
+] :
+
+177
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+179 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+180
+f_hªdË
+ =
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+182
+ `p\9d\96\9ae_msg_£nd
+(
+p
+,
+
+183
+msgq_id
+,
+
+184
+ `f_hªdË
+(
+p
+, (\1e*è
+»q
+));
+
+189
+ }
+}
+
+ @VIL/pipeline_common/pipeline_common_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_COMMON_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_COMMON_BE_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_commÚ.h
+>
+
+21 \ 2
+ ~<¹e_r\9ag.h
+>
+
+22 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+24 \ 2
+ ~"p\9d\96\9ae_be.h
+"
+
+26 \19
+ gp\9d\96\9ae
+;
+
+28 \f
+ ep\9d\96\9ae_msg_»q_ty³
+ {
+
+29
+ mPIPELINE_MSG_REQ_PING
+ = 0,
+
+30
+ mPIPELINE_MSG_REQ_STATS_PORT_IN
+,
+
+31
+ mPIPELINE_MSG_REQ_STATS_PORT_OUT
+,
+
+32
+ mPIPELINE_MSG_REQ_STATS_TABLE
+,
+
+33
+ mPIPELINE_MSG_REQ_PORT_IN_ENABLE
+,
+
+34
+ mPIPELINE_MSG_REQ_PORT_IN_DISABLE
+,
+
+35
+ mPIPELINE_MSG_REQ_CUSTOM
+,
+
+36
+ mPIPELINE_MSG_REQS
+
+
+39 \e\1e*(*
+ tp\9d\96\9ae_msg_»q_hªdËr
+)(\19
+ tp\9d\96\9ae
+ *
+ tp
+, \1e*
+ tmsg
+);
+
+41 \19
+ sp\9d\96\9ae
+ {
+
+42 \19
+¹e_p\9d\96\9ae
+ *
+ mp
+;
+
+43
+u\9at32_t
+
+ mpÜt_\9a_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+44
+u\9at32_t
+
+ mpÜt_out_id
+[
+PIPELINE_MAX_PORT_OUT
+];
+
+45
+u\9at32_t
+
+ m\8fbË_id
+[
+PIPELINE_MAX_TABLES
+];
+
+46 \19
+¹e_r\9ag
+ *
+ mmsgq_\9a
+[
+PIPELINE_MAX_MSGQ_IN
+];
+
+47 \19
+¹e_r\9ag
+ *
+ mmsgq_out
+[
+PIPELINE_MAX_MSGQ_OUT
+];
+
+49
+u\9at32_t
+
+ mn_pÜts_\9a
+;
+
+50
+u\9at32_t
+
+ mn_pÜts_out
+;
+
+51
+u\9at32_t
+
+ mn_\8fbËs
+;
+
+52
+u\9at32_t
+
+ mn_msgq
+;
+
+54
+p\9d\96\9ae_msg_»q_hªdËr
+
+ mhªdËrs
+[
+PIPELINE_MSG_REQS
+];
+
+55 \ 5
+ mÇme
+[
+PIPELINE_NAME_SIZE
+];
+
+56
+u\9at32_t
+
+ mlog_Ëv\96
+;
+
+59 \f
+ ep\9d\96\9ae_log_Ëv\96
+ {
+
+60
+ mPIPELINE_LOG_LEVEL_HIGH
+ = 1,
+
+61
+ mPIPELINE_LOG_LEVEL_LOW
+,
+
+62
+ mPIPELINE_LOG_LEVELS
+
+
+65 \ 1
+ #PLOG
+(
+p
+,
+Ëv\96
+,
+fmt
+, ...) \
+
+67 ià(
+p
+->
+log_Ëv\96
+ >ð
+PIPELINE_LOG_LEVEL_
+ ##
+Ëv\96
+) \
+
+68
+ `år\9atf
+(
+¡dout
+, "[%s] "
+fmt
+ "\n",
+p
+->
+Çme
+, ##
+__VA_ARGS__
+);\
+
+69 } \1f0)
+
+ )
+
+71 \18
+\9al\9ae
+ \1e*
+
+72
+ $p\9d\96\9ae_msg_»cv
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+73
+u\9at32_t
+
+msgq_id
+)
+
+75 \19
+¹e_r\9ag
+ *
+r
+ =
+p
+->
+msgq_\9a
+[
+msgq_id
+];
+
+76 \1e*
+msg
+;
+
+77 \12
+¡©us
+ =
+ `¹e_r\9ag_sc_dequeue
+(
+r
+, &
+msg
+);
+
+79 ià(
+¡©us
+ != 0)
+
+80 \15
+NULL
+;
+
+82 \15
+msg
+;
+
+83
+ }
+}
+
+85 \18
+\9al\9ae
+ \1e
+
+86
+ $p\9d\96\9ae_msg_£nd
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+87
+u\9at32_t
+
+msgq_id
+,
+
+88 \1e*
+msg
+)
+
+90 \19
+¹e_r\9ag
+ *
+r
+ =
+p
+->
+msgq_out
+[
+msgq_id
+];
+
+91 \12
+¡©us
+;
+
+94
+¡©us
+ =
+ `¹e_r\9ag_¥_\92queue
+(
+r
+,
+msg
+);
+
+95 } \1f
+¡©us
+ =ð-
+ENOBUFS
+);
+
+96
+ }
+}
+
+98 \19
+ sp\9d\96\9ae_msg_»q
+ {
+
+99 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+102 \19
+ sp\9d\96\9ae_¡©s_msg_»q
+ {
+
+103 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+104
+u\9at32_t
+
+ mid
+;
+
+107 \19
+ sp\9d\96\9ae_pÜt_\9a_msg_»q
+ {
+
+108 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+109
+u\9at32_t
+
+ mpÜt_id
+;
+
+112 \19
+ sp\9d\96\9ae_cu¡om_msg_»q
+ {
+
+113 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+114
+u\9at32_t
+
+ msubty³
+;
+
+117 \19
+ sp\9d\96\9ae_msg_r¥
+ {
+
+118 \12
+ m¡©us
+;
+
+121 \19
+ sp\9d\96\9ae_¡©s_pÜt_\9a_msg_r¥
+ {
+
+122 \12
+ m¡©us
+;
+
+123 \19
+¹e_p\9d\96\9ae_pÜt_\9a_¡©s
+
+ m¡©s
+;
+
+126 \19
+ sp\9d\96\9ae_¡©s_pÜt_out_msg_r¥
+ {
+
+127 \12
+ m¡©us
+;
+
+128 \19
+¹e_p\9d\96\9ae_pÜt_out_¡©s
+
+ m¡©s
+;
+
+131 \19
+ sp\9d\96\9ae_¡©s_\8fbË_msg_r¥
+ {
+
+132 \12
+ m¡©us
+;
+
+133 \19
+¹e_p\9d\96\9ae_\8fbË_¡©s
+
+ m¡©s
+;
+
+136 \1e*
+p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+137 \1e*
+p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+138 \1e*
+p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+139 \1e*
+p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+140 \1e*
+p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+141 \1e*
+p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+142 \1e*
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+);
+
+144 \12
+p\9d\96\9ae_msg_»q_hªdË
+(\19
+p\9d\96\9ae
+ *
+p
+);
+
+ @VIL/pipeline_common/pipeline_common_fe.c
+
+17 \ 2
+ ~<¡dio.h
+>
+
+18 \ 2
+ ~<fú\8e.h
+>
+
+19 \ 2
+ ~<uni¡d.h
+>
+
+21 \ 2
+ ~<¹e_commÚ.h
+>
+
+22 \ 2
+ ~<¹e_r\9ag.h
+>
+
+23 \ 2
+ ~<¹e_m®loc.h
+>
+
+24 \ 2
+ ~<cmdl\9ae_rdl\9ae.h
+>
+
+25 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+26 \ 2
+ ~<cmdl\9ae_·r£_num.h
+>
+
+27 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+28 \ 2
+ ~<cmdl\9ae_·r£_\9daddr.h
+>
+
+29 \ 2
+ ~<cmdl\9ae_·r£_\91h\94addr.h
+>
+
+30 \ 2
+ ~<cmdl\9ae_sock\91.h
+>
+
+31 \ 2
+ ~<cmdl\9ae.h
+>
+
+33 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+34 #iâdeà
+VNF_ACL
+
+
+35 \ 2
+ ~"\9a\8brçû.h
+"
+
+39
+ $p_p\9d\96\9ae_p\9ag
+(\19
+p_·¿ms
+ *
+p
+,
+
+40
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+42 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+43 \19
+p\9d\96\9ae_msg_»q
+ *
+»q
+;
+
+44 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+;
+
+45 \12
+¡©us
+ = 0;
+
+48 ià(
+p
+ =ð
+NULL
+)
+
+51
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+52 ià(
+p
+ =ð
+NULL
+)
+
+56
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+57 ià(
+»q
+ =ð
+NULL
+)
+
+61
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_PING
+;
+
+64
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+65 ià(
+r¥
+ =ð
+NULL
+)
+
+69
+¡©us
+ =
+r¥
+->status;
+
+72
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+74 \15
+¡©us
+;
+
+75
+ }
+}
+
+78
+ $p_p\9d\96\9ae_¡©s_pÜt_\9a
+(\19
+p_·¿ms
+ *
+p
+,
+
+79
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+80
+u\9at32_t
+
+pÜt_id
+,
+
+81 \19
+¹e_p\9d\96\9ae_pÜt_\9a_¡©s
+ *
+¡©s
+)
+
+83 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+84 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+;
+
+85 \19
+p\9d\96\9ae_¡©s_pÜt_\9a_msg_r¥
+ *
+r¥
+;
+
+86 \12
+¡©us
+ = 0;
+
+89 ià((
+p
+ =ð
+NULL
+) ||
+
+90 (
+¡©s
+ =ð
+NULL
+))
+
+93
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+94 ià((
+p
+ =ð
+NULL
+) ||
+
+95 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_\9a
+))
+
+99
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+100 ià(
+»q
+ =ð
+NULL
+)
+
+104
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_STATS_PORT_IN
+;
+
+105
+»q
+->
+id
+ =
+pÜt_id
+;
+
+108
+r¥
+ = (\19
+p\9d\96\9ae_¡©s_pÜt_\9a_msg_r¥
+ *)
+
+109
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+110 ià(
+r¥
+ =ð
+NULL
+)
+
+114
+¡©us
+ =
+r¥
+->status;
+
+115 ià(
+¡©us
+ == 0)
+
+116
+ `memýy
+(
+¡©s
+, &
+r¥
+->stats, \17(rsp->stats));
+
+119
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+121 \15
+¡©us
+;
+
+122
+ }
+}
+
+125
+ $p_p\9d\96\9ae_¡©s_pÜt_out
+(\19
+p_·¿ms
+ *
+p
+,
+
+126
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+127
+u\9at32_t
+
+pÜt_id
+,
+
+128 \19
+¹e_p\9d\96\9ae_pÜt_out_¡©s
+ *
+¡©s
+)
+
+130 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+131 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+;
+
+132 \19
+p\9d\96\9ae_¡©s_pÜt_out_msg_r¥
+ *
+r¥
+;
+
+133 \12
+¡©us
+ = 0;
+
+136 ià((
+p
+ =ð
+NULL
+) ||
+
+137 (
+p\9d\96\9ae_id
+ >ð
+p
+->
+n_p\9d\96\9aes
+) ||
+
+138 (
+¡©s
+ =ð
+NULL
+))
+
+141
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+142 ià((
+p
+ =ð
+NULL
+) ||
+
+143 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_out
+))
+
+147
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+148 ià(
+»q
+ =ð
+NULL
+)
+
+152
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+;
+
+153
+»q
+->
+id
+ =
+pÜt_id
+;
+
+156
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+157 ià(
+r¥
+ =ð
+NULL
+)
+
+161
+¡©us
+ =
+r¥
+->status;
+
+162 ià(
+¡©us
+ == 0)
+
+163
+ `memýy
+(
+¡©s
+, &
+r¥
+->stats, \17(rsp->stats));
+
+166
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+168 \15
+¡©us
+;
+
+169
+ }
+}
+
+172
+ $p_p\9d\96\9ae_¡©s_\8fbË
+(\19
+p_·¿ms
+ *
+p
+,
+
+173
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+174
+u\9at32_t
+
+\8fbË_id
+,
+
+175 \19
+¹e_p\9d\96\9ae_\8fbË_¡©s
+ *
+¡©s
+)
+
+177 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+178 \19
+p\9d\96\9ae_¡©s_msg_»q
+ *
+»q
+;
+
+179 \19
+p\9d\96\9ae_¡©s_\8fbË_msg_r¥
+ *
+r¥
+;
+
+180 \12
+¡©us
+ = 0;
+
+183 ià((
+p
+ =ð
+NULL
+) ||
+
+184 (
+¡©s
+ =ð
+NULL
+))
+
+187
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+188 ià(
+p
+ =ð
+NULL
+)
+
+192
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+193 ià(
+»q
+ =ð
+NULL
+)
+
+197
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_STATS_TABLE
+;
+
+198
+»q
+->
+id
+ =
+\8fbË_id
+;
+
+201
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+202 ià(
+r¥
+ =ð
+NULL
+)
+
+206
+¡©us
+ =
+r¥
+->status;
+
+207 ià(
+¡©us
+ == 0)
+
+208
+ `memýy
+(
+¡©s
+, &
+r¥
+->stats, \17(rsp->stats));
+
+211
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+213 \15
+¡©us
+;
+
+214
+ }
+}
+
+217
+ $p_p\9d\96\9ae_pÜt_\9a_\92abË
+(\19
+p_·¿ms
+ *
+p
+,
+
+218
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+219
+u\9at32_t
+
+pÜt_id
+)
+
+221 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+222 \19
+p\9d\96\9ae_pÜt_\9a_msg_»q
+ *
+»q
+;
+
+223 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+;
+
+224 \12
+¡©us
+ = 0;
+
+227 ià(
+p
+ =ð
+NULL
+)
+
+230
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+231 ià((
+p
+ =ð
+NULL
+) ||
+
+232 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_\9a
+))
+
+236
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+237 ià(
+»q
+ =ð
+NULL
+)
+
+241
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+;
+
+242
+»q
+->
+pÜt_id
+ =\85ort_id;
+
+245
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+246 ià(
+r¥
+ =ð
+NULL
+)
+
+250
+¡©us
+ =
+r¥
+->status;
+
+253
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+255 \15
+¡©us
+;
+
+256
+ }
+}
+
+259
+ $p_p\9d\96\9ae_pÜt_\9a_di§bË
+(\19
+p_·¿ms
+ *
+p
+,
+
+260
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+261
+u\9at32_t
+
+pÜt_id
+)
+
+263 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+;
+
+264 \19
+p\9d\96\9ae_pÜt_\9a_msg_»q
+ *
+»q
+;
+
+265 \19
+p\9d\96\9ae_msg_r¥
+ *
+r¥
+;
+
+266 \12
+¡©us
+ = 0;
+
+269 ià(
+p
+ =ð
+NULL
+)
+
+272
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+p\9d\96\9ae_id
+,
+p
+);
+
+273 ià((
+p
+ =ð
+NULL
+) ||
+
+274 (
+pÜt_id
+ >ð
+p
+->
+n_pktq_\9a
+))
+
+278
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+279 ià(
+»q
+ =ð
+NULL
+)
+
+283
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+;
+
+284
+»q
+->
+pÜt_id
+ =\85ort_id;
+
+287
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+288 ià(
+r¥
+ =ð
+NULL
+)
+
+292
+¡©us
+ =
+r¥
+->status;
+
+295
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+297 \15
+¡©us
+;
+
+298
+ }
+}
+
+301
+ $p_l\9ak_cÚfig
+(\19
+p_·¿ms
+ *
+p
+,
+
+302
+u\9at32_t
+
+l\9ak_id
+,
+
+303
+u\9at32_t
+
+\9d
+,
+
+304
+u\9at32_t
+
+d\95th
+)
+
+306 \19
+p_l\9ak_·¿ms
+ *
+p
+;
+
+307
+u\9at32_t
+
+i
+,
+Ãtmask
+,
+ho¡
+,
+bÿ¡
+;
+
+310 ià(
+p
+ =ð
+NULL
+)
+
+313
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+314 ià(
+p
+ =ð
+NULL
+) {
+
+315
+ `APP_LOG
+(
+p
+,
+HIGH
+, "LINK%"
+PRIu32
+ " is\82ot\87 valid\86ink",
+
+316
+l\9ak_id
+);
+
+320 ià(
+p
+->
+¡©e
+) {
+
+321
+ `APP_LOG
+(
+p
+,
+HIGH
+, "%s is UP,\85lease bring it DOWN first",
+
+322
+p
+->
+Çme
+);
+
+326
+Ãtmask
+ = (~0Uè<< (32 -
+d\95th
+);
+
+327
+ho¡
+ =
+\9d
+ &
+Ãtmask
+;
+
+328
+bÿ¡
+ =
+ho¡
+ | (~
+Ãtmask
+);
+
+330 ià((
+\9d
+ == 0) ||
+
+331 (
+\9d
+ =ð
+UINT32_MAX
+) ||
+
+332 (
+\9d
+ =ð
+ho¡
+) ||
+
+333 (
+\9d
+ =ð
+bÿ¡
+)) {
+
+334
+ `APP_LOG
+(
+p
+,
+HIGH
+, "Illegal IP\87ddress");
+
+338 \ f
+i
+ = 0; i <
+p
+->
+n_l\9aks
+; i++) {
+
+339 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+ = &
+p
+->
+l\9ak_·¿ms
+[
+i
+];
+
+340
+myl\9ak
+[
+i
+] = *
+l\9ak
+;
+
+341 ià(
+ `¡rcmp
+(
+p
+->
+Çme
+,
+l\9ak
+->name) == 0)
+
+344 ià(
+l\9ak
+->
+\9d
+ == ip) {
+
+345
+ `APP_LOG
+(
+p
+,
+HIGH
+,
+
+347
+l\9ak
+->
+Çme
+);
+
+352 ià((
+d\95th
+ == 0) || (depth > 32)) {
+
+353
+ `APP_LOG
+(
+p
+,
+HIGH
+, "Illegal value for depth\85arameter "
+
+354 "(%"
+PRIu32
+ ")",
+
+355
+d\95th
+);
+
+360
+p
+->
+\9d
+ = ip;
+
+361
+p
+->
+d\95th
+ = depth;
+
+362 #iâdeà
+VNF_ACL
+
+
+363 ià(
+ `ifm_add_\9dv4_pÜt
+(
+l\9ak_id
+,
+ `¹e_bsw32
+(
+\9d
+),
+d\95th
+è=ð
+IFM_FAILURE
+)
+
+368
+ }
+}
+
+371 \1e
+ $cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+u\9at32_t
+
+d\95th
+,
+u\9at8_t
+
+Ãtmask_\9dv6
+[])
+
+373 \12
+mod
+,
+div
+,
+i
+;
+
+375
+ `mem£t
+(
+Ãtmask_\9dv6
+, 0, 16);
+
+377
+mod
+ =
+d\95th
+ % 8;
+
+378
+div
+ =
+d\95th
+ / 8;
+
+380 \ f
+i
+ = 0; i <
+div
+; i++)
+
+381
+Ãtmask_\9dv6
+[
+i
+] = 0xff;
+
+383
+Ãtmask_\9dv6
+[
+i
+] = (~0 << (8 -
+mod
+));
+
+386
+ }
+}
+
+389
+ $g\91_ho¡_pÜtiÚ_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[], u\9at8_\88
+Ãtmask
+[], u\9at8_\88
+ho¡_\9dv6
+[])
+
+391 \12
+i
+;
+
+393 \ f
+i
+ = 0; i < 16; i++) {
+
+394
+ho¡_\9dv6
+[
+i
+] =
+\9dv6
+[i] &
+Ãtmask
+[i];
+
+398
+ }
+}
+
+401
+ $g\91_bÿ¡_pÜtiÚ_\9dv6
+(
+u\9at8_t
+
+ho¡
+[], u\9at8_\88
+Ãtmask
+[], u\9at8_\88
+bÿ¡_\9dv6
+[])
+
+403 \12
+i
+;
+
+405 \ f
+i
+ = 0; i < 16; i++) {
+
+406
+bÿ¡_\9dv6
+[
+i
+] =
+ho¡
+[i] | ~
+Ãtmask
+[i];
+
+410
+ }
+}
+
+413
+ $p_l\9ak_cÚfig_\9dv6
+(\19
+p_·¿ms
+ *
+p
+,
+
+414
+u\9at32_t
+
+l\9ak_id
+,
+u\9at8_t
+
+\9dv6
+[], u\9at32_\88
+d\95th
+)
+
+416 \19
+p_l\9ak_·¿ms
+ *
+p
+;
+
+417
+u\9at32_t
+
+i
+;
+
+418
+u\9at8_t
+
+Ãtmask_\9dv6
+[16],
+ho¡
+[16],
+bÿ¡
+[16];
+
+421 ià(
+p
+ =ð
+NULL
+)
+
+424
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+425 ià(
+p
+ =ð
+NULL
+) {
+
+426
+ `APP_LOG
+(
+p
+,
+HIGH
+, "LINK%"
+PRIu32
+ " is\82ot\87 valid\86ink",
+
+427
+l\9ak_id
+);
+
+431 ià(
+p
+->
+¡©e
+) {
+
+432
+ `APP_LOG
+(
+p
+,
+HIGH
+, "%s is UP,\85lease bring it DOWN first",
+
+433
+p
+->
+Çme
+);
+
+437
+ `cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+d\95th
+,
+Ãtmask_\9dv6
+);
+
+438
+ `g\91_ho¡_pÜtiÚ_\9dv6
+(
+\9dv6
+,
+Ãtmask_\9dv6
+,
+ho¡
+);
+
+439
+ `g\91_bÿ¡_pÜtiÚ_\9dv6
+(
+ho¡
+,
+Ãtmask_\9dv6
+,
+bÿ¡
+);
+
+441 \ f
+i
+ = 0; i <
+p
+->
+n_l\9aks
+; i++) {
+
+442 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+ = &
+p
+->
+l\9ak_·¿ms
+[
+i
+];
+
+444 ià(
+ `¡rcmp
+(
+p
+->
+Çme
+,
+l\9ak
+->name) == 0)
+
+447 ià(!
+ `memcmp
+(
+l\9ak
+->
+\9dv6
+, ipv6, 16)) {
+
+448
+ `APP_LOG
+(
+p
+,
+HIGH
+,
+
+450
+l\9ak
+->
+Çme
+);
+
+455 ià((
+d\95th
+ == 0) || (depth > 128)) {
+
+456
+ `APP_LOG
+(
+p
+,
+HIGH
+, "Illegal value for depth\85arameter "
+
+457 "(%"
+PRIu32
+ ")",
+d\95th
+);
+
+462
+ `memýy
+(
+p
+->
+\9dv6
+, ipv6, 16);
+
+464
+p
+->
+d\95th_\9dv6
+ =
+d\95th
+;
+
+471 #iâdeà
+VNF_ACL
+
+
+472 ià(
+ `ifm_add_\9dv6_pÜt
+(
+l\9ak_id
+,
+\9dv6
+,
+d\95th
+è=ð
+IFM_FAILURE
+)
+
+476
+ }
+}
+
+479
+ $p_l\9ak_up
+(\19
+p_·¿ms
+ *
+p
+,
+
+480
+u\9at32_t
+
+l\9ak_id
+)
+
+482 \19
+p_l\9ak_·¿ms
+ *
+p
+;
+
+485 ià(
+p
+ =ð
+NULL
+)
+
+488
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+489 ià(
+p
+ =ð
+NULL
+) {
+
+490
+ `APP_LOG
+(
+p
+,
+HIGH
+, "LINK%"
+PRIu32
+ " is\82ot\87 valid\86ink",
+
+491
+l\9ak_id
+);
+
+496 ià(
+p
+->
+¡©e
+) {
+
+497
+ `APP_LOG
+(
+p
+,
+HIGH
+, "% i ®»ady UP",
+p
+->
+Çme
+);
+
+502
+u\9at8_t
+
+\8bmp
+[16];
+
+504
+ `mem£t
+(
+\8bmp
+, 0, 16);
+
+506 ià((
+p
+->
+\9d
+ ||
+ `memcmp
+Õ->
+\9dv6
+,
+\8bmp
+, 16)) == 0) {
+
+507
+ `APP_LOG
+(
+p
+,
+HIGH
+, "% IP\87dd»s i nÙ s\91",
+p
+->
+Çme
+);
+
+511
+ `p_l\9ak_up_\9a\8bº®
+(
+p
+,
+p
+);
+
+514
+ }
+}
+
+517
+ $p_l\9ak_down
+(\19
+p_·¿ms
+ *
+p
+,
+
+518
+u\9at32_t
+
+l\9ak_id
+)
+
+520 \19
+p_l\9ak_·¿ms
+ *
+p
+;
+
+523 ià(
+p
+ =ð
+NULL
+)
+
+526
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+527 ià(
+p
+ =ð
+NULL
+) {
+
+528
+ `APP_LOG
+(
+p
+,
+HIGH
+, "LINK%"
+PRIu32
+ " is\82ot\87 valid\86ink",
+
+529
+l\9ak_id
+);
+
+534 ià(
+p
+->
+¡©e
+ == 0) {
+
+535
+ `APP_LOG
+(
+p
+,
+HIGH
+, "% i ®»ady DOWN",
+p
+->
+Çme
+);
+
+539
+ `p_l\9ak_down_\9a\8bº®
+(
+p
+,
+p
+);
+
+542
+ }
+}
+
+548 \19
+ scmd_p\9ag_»suÉ
+ {
+
+549
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+550
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+551
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp\9ag_¡r\9ag
+;
+
+555
+ $cmd_p\9ag_·r£d
+(
+
+556 \1e*
+·r£d_»suÉ
+,
+
+557
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+558 \1e*
+d©a
+)
+
+560 \19
+cmd_p\9ag_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+561 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+562 \12
+¡©us
+;
+
+564
+¡©us
+ =
+ `p_p\9d\96\9ae_p\9ag
+(
+p
+,
+·¿ms
+->
+p\9d\96\9ae_id
+);
+
+565 ià(
+¡©us
+ != 0)
+
+566
+ `´\9atf
+("Command failed\n");
+
+567
+ }
+}
+
+569
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9ag_p_¡r\9ag
+ =
+
+570
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9ag_»suÉ
+,
+p_¡r\9ag
+, "p");
+
+572
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_p\9ag_p\9d\96\9ae_id
+ =
+
+573
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_p\9ag_»suÉ
+,
+p\9d\96\9ae_id
+,
+UINT32
+);
+
+575
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9ag_p\9ag_¡r\9ag
+ =
+
+576
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9ag_»suÉ
+,
+p\9ag_¡r\9ag
+, "ping");
+
+578
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_p\9ag
+ = {
+
+579 .
+f
+ =
+cmd_p\9ag_·r£d
+,
+
+580 .
+ gd©a
+ =
+NULL
+,
+
+581 .
+ gh\96p_¡r
+ = "Pipeline\85ing",
+
+582 .
+ gtok\92s
+ = {
+
+583 (\1e*è&
+cmd_p\9ag_p_¡r\9ag
+,
+
+584 (\1e*è&
+cmd_p\9ag_p\9d\96\9ae_id
+,
+
+585 (\1e*è&
+cmd_p\9ag_p\9ag_¡r\9ag
+,
+
+586
+NULL
+,
+
+594 \19
+ scmd_¡©s_pÜt_\9a_»suÉ
+ {
+
+595
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+596
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+597
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¡©s_¡r\9ag
+;
+
+598
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mpÜt_¡r\9ag
+;
+
+599
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\9a_¡r\9ag
+;
+
+600
+u\9at32_t
+
+ mpÜt_\9a_id
+;
+
+604
+ $cmd_¡©s_pÜt_\9a_·r£d
+(
+
+605 \1e*
+·r£d_»suÉ
+,
+
+606
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+607 \1e*
+d©a
+)
+
+609 \19
+cmd_¡©s_pÜt_\9a_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+610 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+611 \19
+¹e_p\9d\96\9ae_pÜt_\9a_¡©s
+
+¡©s
+;
+
+612 \12
+¡©us
+;
+
+614
+¡©us
+ =
+ `p_p\9d\96\9ae_¡©s_pÜt_\9a
+(
+p
+,
+
+615
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+616
+·¿ms
+->
+pÜt_\9a_id
+,
+
+617 &
+¡©s
+);
+
+619 ià(
+¡©us
+ != 0) {
+
+620
+ `´\9atf
+("Command failed\n");
+
+625
+ `´\9atf
+("P\9d\96\9a\90%"
+PRIu32
+ " - stats for input\85ort %" PRIu32 ":\n"
+
+626 "\tPkt \9a: %"
+PRIu64
+ "\n"
+
+627 "\tPkt drݳd by AH: %"
+PRIu64
+ "\n"
+
+628 "\tPkt drݳd by oth\94: %"
+PRIu64
+ "\n",
+
+629
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+630
+·¿ms
+->
+pÜt_\9a_id
+,
+
+631
+¡©s
+.¡©s.
+n_pkts_\9a
+,
+
+632
+¡©s
+.
+n_pkts_drݳd_by_ah
+,
+
+633
+¡©s
+.¡©s.
+n_pkts_drÝ
+);
+
+634
+ }
+}
+
+636
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_\9a_p_¡r\9ag
+ =
+
+637
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+p_¡r\9ag
+,
+
+640
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_pÜt_\9a_p\9d\96\9ae_id
+ =
+
+641
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+642
+UINT32
+);
+
+644
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_\9a_¡©s_¡r\9ag
+ =
+
+645
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+¡©s_¡r\9ag
+,
+
+648
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_\9a_pÜt_¡r\9ag
+ =
+
+649
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+pÜt_¡r\9ag
+,
+
+652
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_\9a_\9a_¡r\9ag
+ =
+
+653
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+\9a_¡r\9ag
+,
+
+656
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_pÜt_\9a_pÜt_\9a_id
+ =
+
+657
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_pÜt_\9a_»suÉ
+,
+pÜt_\9a_id
+,
+
+658
+UINT32
+);
+
+660
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¡©s_pÜt_\9a
+ = {
+
+661 .
+f
+ =
+cmd_¡©s_pÜt_\9a_·r£d
+,
+
+662 .
+ gd©a
+ =
+NULL
+,
+
+663 .
+ gh\96p_¡r
+ = "Pipeline input\85ort stats",
+
+664 .
+ gtok\92s
+ = {
+
+665 (\1e*è&
+cmd_¡©s_pÜt_\9a_p_¡r\9ag
+,
+
+666 (\1e*è&
+cmd_¡©s_pÜt_\9a_p\9d\96\9ae_id
+,
+
+667 (\1e*è&
+cmd_¡©s_pÜt_\9a_¡©s_¡r\9ag
+,
+
+668 (\1e*è&
+cmd_¡©s_pÜt_\9a_pÜt_¡r\9ag
+,
+
+669 (\1e*è&
+cmd_¡©s_pÜt_\9a_\9a_¡r\9ag
+,
+
+670 (\1e*è&
+cmd_¡©s_pÜt_\9a_pÜt_\9a_id
+,
+
+671
+NULL
+,
+
+679 \19
+ scmd_¡©s_pÜt_out_»suÉ
+ {
+
+680
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+681
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+682
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¡©s_¡r\9ag
+;
+
+683
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mpÜt_¡r\9ag
+;
+
+684
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mout_¡r\9ag
+;
+
+685
+u\9at32_t
+
+ mpÜt_out_id
+;
+
+689
+ $cmd_¡©s_pÜt_out_·r£d
+(
+
+690 \1e*
+·r£d_»suÉ
+,
+
+691
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+692 \1e*
+d©a
+)
+
+695 \19
+cmd_¡©s_pÜt_out_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+696 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+697 \19
+¹e_p\9d\96\9ae_pÜt_out_¡©s
+
+¡©s
+;
+
+698 \12
+¡©us
+;
+
+700
+¡©us
+ =
+ `p_p\9d\96\9ae_¡©s_pÜt_out
+(
+p
+,
+
+701
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+702
+·¿ms
+->
+pÜt_out_id
+,
+
+703 &
+¡©s
+);
+
+705 ià(
+¡©us
+ != 0) {
+
+706
+ `´\9atf
+("Command failed\n");
+
+711
+ `´\9atf
+("P\9d\96\9a\90%"
+PRIu32
+ " - stats for output\85ort %" PRIu32 ":\n"
+
+712 "\tPkt \9a: %"
+PRIu64
+ "\n"
+
+713 "\tPkt drݳd by AH: %"
+PRIu64
+ "\n"
+
+714 "\tPkt drݳd by oth\94: %"
+PRIu64
+ "\n",
+
+715
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+716
+·¿ms
+->
+pÜt_out_id
+,
+
+717
+¡©s
+.¡©s.
+n_pkts_\9a
+,
+
+718
+¡©s
+.
+n_pkts_drݳd_by_ah
+,
+
+719
+¡©s
+.¡©s.
+n_pkts_drÝ
+);
+
+720
+ }
+}
+
+722
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_out_p_¡r\9ag
+ =
+
+723
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+p_¡r\9ag
+,
+
+726
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_pÜt_out_p\9d\96\9ae_id
+ =
+
+727
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+728
+UINT32
+);
+
+730
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_out_¡©s_¡r\9ag
+ =
+
+731
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+¡©s_¡r\9ag
+,
+
+734
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_out_pÜt_¡r\9ag
+ =
+
+735
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+pÜt_¡r\9ag
+,
+
+738
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_pÜt_out_out_¡r\9ag
+ =
+
+739
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+out_¡r\9ag
+,
+
+742
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_pÜt_out_pÜt_out_id
+ =
+
+743
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_pÜt_out_»suÉ
+,
+pÜt_out_id
+,
+
+744
+UINT32
+);
+
+746
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¡©s_pÜt_out
+ = {
+
+747 .
+f
+ =
+cmd_¡©s_pÜt_out_·r£d
+,
+
+748 .
+ gd©a
+ =
+NULL
+,
+
+749 .
+ gh\96p_¡r
+ = "Pipeline output\85ort stats",
+
+750 .
+ gtok\92s
+ = {
+
+751 (\1e*è&
+cmd_¡©s_pÜt_out_p_¡r\9ag
+,
+
+752 (\1e*è&
+cmd_¡©s_pÜt_out_p\9d\96\9ae_id
+,
+
+753 (\1e*è&
+cmd_¡©s_pÜt_out_¡©s_¡r\9ag
+,
+
+754 (\1e*è&
+cmd_¡©s_pÜt_out_pÜt_¡r\9ag
+,
+
+755 (\1e*è&
+cmd_¡©s_pÜt_out_out_¡r\9ag
+,
+
+756 (\1e*è&
+cmd_¡©s_pÜt_out_pÜt_out_id
+,
+
+757
+NULL
+,
+
+765 \19
+ scmd_¡©s_\8fbË_»suÉ
+ {
+
+766
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+767
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+768
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¡©s_¡r\9ag
+;
+
+769
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\8fbË_¡r\9ag
+;
+
+770
+u\9at32_t
+
+ m\8fbË_id
+;
+
+774
+ $cmd_¡©s_\8fbË_·r£d
+(
+
+775 \1e*
+·r£d_»suÉ
+,
+
+776
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+777 \1e*
+d©a
+)
+
+779 \19
+cmd_¡©s_\8fbË_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+780 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+781 \19
+¹e_p\9d\96\9ae_\8fbË_¡©s
+
+¡©s
+;
+
+782 \12
+¡©us
+;
+
+784
+¡©us
+ =
+ `p_p\9d\96\9ae_¡©s_\8fbË
+(
+p
+,
+
+785
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+786
+·¿ms
+->
+\8fbË_id
+,
+
+787 &
+¡©s
+);
+
+789 ià(
+¡©us
+ != 0) {
+
+790
+ `´\9atf
+("Command failed\n");
+
+795
+ `´\9atf
+("P\9d\96\9a\90%"
+PRIu32
+ " - stats for\81able %" PRIu32 ":\n"
+
+796 "\tPkt \9a: %"
+PRIu64
+ "\n"
+
+797 "\tPkt \9a w\99h\86ooku°miss: %"
+PRIu64
+ "\n"
+
+798 "\tPkt \9a w\99h\86ooku°h\99 drݳd by AH: %"
+PRIu64
+ "\n"
+
+799 "\tPkt \9a w\99h\86ooku°h\99 drݳd by oth\94s: %"
+PRIu64
+ "\n"
+
+800 "\tPkt \9a w\99h\86ooku°mis drݳd by AH: %"
+PRIu64
+ "\n"
+
+801 "\tPkt \9a w\99h\86ooku°mis drݳd by oth\94s: %"
+PRIu64
+ "\n",
+
+802
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+803
+·¿ms
+->
+\8fbË_id
+,
+
+804
+¡©s
+.¡©s.
+n_pkts_\9a
+,
+
+805
+¡©s
+.¡©s.
+n_pkts_lookup_miss
+,
+
+806
+¡©s
+.
+n_pkts_drݳd_by_lkp_h\99_ah
+,
+
+807
+¡©s
+.
+n_pkts_drݳd_lkp_h\99
+,
+
+808
+¡©s
+.
+n_pkts_drݳd_by_lkp_miss_ah
+,
+
+809
+¡©s
+.
+n_pkts_drݳd_lkp_miss
+);
+
+810
+ }
+}
+
+812
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_\8fbË_p_¡r\9ag
+ =
+
+813
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_\8fbË_»suÉ
+,
+p_¡r\9ag
+,
+
+816
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_\8fbË_p\9d\96\9ae_id
+ =
+
+817
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_\8fbË_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+818
+UINT32
+);
+
+820
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_\8fbË_¡©s_¡r\9ag
+ =
+
+821
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_\8fbË_»suÉ
+,
+¡©s_¡r\9ag
+,
+
+824
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¡©s_\8fbË_\8fbË_¡r\9ag
+ =
+
+825
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¡©s_\8fbË_»suÉ
+,
+\8fbË_¡r\9ag
+,
+
+828
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¡©s_\8fbË_\8fbË_id
+ =
+
+829
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¡©s_\8fbË_»suÉ
+,
+\8fbË_id
+,
+UINT32
+);
+
+831
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¡©s_\8fbË
+ = {
+
+832 .
+f
+ =
+cmd_¡©s_\8fbË_·r£d
+,
+
+833 .
+ gd©a
+ =
+NULL
+,
+
+834 .
+ gh\96p_¡r
+ = "Pipeline\81able stats",
+
+835 .
+ gtok\92s
+ = {
+
+836 (\1e*è&
+cmd_¡©s_\8fbË_p_¡r\9ag
+,
+
+837 (\1e*è&
+cmd_¡©s_\8fbË_p\9d\96\9ae_id
+,
+
+838 (\1e*è&
+cmd_¡©s_\8fbË_¡©s_¡r\9ag
+,
+
+839 (\1e*è&
+cmd_¡©s_\8fbË_\8fbË_¡r\9ag
+,
+
+840 (\1e*è&
+cmd_¡©s_\8fbË_\8fbË_id
+,
+
+841
+NULL
+,
+
+849 \19
+ scmd_pÜt_\9a_\92abË_»suÉ
+ {
+
+850
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+851
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+852
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mpÜt_¡r\9ag
+;
+
+853
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\9a_¡r\9ag
+;
+
+854
+u\9at32_t
+
+ mpÜt_\9a_id
+;
+
+855
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\92abË_¡r\9ag
+;
+
+859
+ $cmd_pÜt_\9a_\92abË_·r£d
+(
+
+860 \1e*
+·r£d_»suÉ
+,
+
+861
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+862 \1e*
+d©a
+)
+
+864 \19
+cmd_pÜt_\9a_\92abË_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+865 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+866 \12
+¡©us
+;
+
+868
+¡©us
+ =
+ `p_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+,
+
+869
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+870
+·¿ms
+->
+pÜt_\9a_id
+);
+
+872 ià(
+¡©us
+ != 0)
+
+873
+ `´\9atf
+("Command failed\n");
+
+874
+ }
+}
+
+876
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_\92abË_p_¡r\9ag
+ =
+
+877
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+p_¡r\9ag
+,
+
+880
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_pÜt_\9a_\92abË_p\9d\96\9ae_id
+ =
+
+881
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+882
+UINT32
+);
+
+884
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_\92abË_pÜt_¡r\9ag
+ =
+
+885
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+pÜt_¡r\9ag
+,
+
+888
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_\92abË_\9a_¡r\9ag
+ =
+
+889
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+\9a_¡r\9ag
+,
+
+892
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_pÜt_\9a_\92abË_pÜt_\9a_id
+ =
+
+893
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+pÜt_\9a_id
+,
+
+894
+UINT32
+);
+
+896
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_\92abË_\92abË_¡r\9ag
+ =
+
+897
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_\92abË_»suÉ
+,
+
+898
+\92abË_¡r\9ag
+, "enable");
+
+900
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_pÜt_\9a_\92abË
+ = {
+
+901 .
+f
+ =
+cmd_pÜt_\9a_\92abË_·r£d
+,
+
+902 .
+ gd©a
+ =
+NULL
+,
+
+903 .
+ gh\96p_¡r
+ = "Pipeline input\85ort\83nable",
+
+904 .
+ gtok\92s
+ = {
+
+905 (\1e*è&
+cmd_pÜt_\9a_\92abË_p_¡r\9ag
+,
+
+906 (\1e*è&
+cmd_pÜt_\9a_\92abË_p\9d\96\9ae_id
+,
+
+907 (\1e*è&
+cmd_pÜt_\9a_\92abË_pÜt_¡r\9ag
+,
+
+908 (\1e*è&
+cmd_pÜt_\9a_\92abË_\9a_¡r\9ag
+,
+
+909 (\1e*è&
+cmd_pÜt_\9a_\92abË_pÜt_\9a_id
+,
+
+910 (\1e*è&
+cmd_pÜt_\9a_\92abË_\92abË_¡r\9ag
+,
+
+911
+NULL
+,
+
+919 \19
+ scmd_pÜt_\9a_di§bË_»suÉ
+ {
+
+920
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+921
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+922
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mpÜt_¡r\9ag
+;
+
+923
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\9a_¡r\9ag
+;
+
+924
+u\9at32_t
+
+ mpÜt_\9a_id
+;
+
+925
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdi§bË_¡r\9ag
+;
+
+929
+ $cmd_pÜt_\9a_di§bË_·r£d
+(
+
+930 \1e*
+·r£d_»suÉ
+,
+
+931
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+932 \1e*
+d©a
+)
+
+934 \19
+cmd_pÜt_\9a_di§bË_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+935 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+936 \12
+¡©us
+;
+
+938
+¡©us
+ =
+ `p_p\9d\96\9ae_pÜt_\9a_di§bË
+(
+p
+,
+
+939
+·¿ms
+->
+p\9d\96\9ae_id
+,
+
+940
+·¿ms
+->
+pÜt_\9a_id
+);
+
+942 ià(
+¡©us
+ != 0)
+
+943
+ `´\9atf
+("Command failed\n");
+
+944
+ }
+}
+
+946
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_di§bË_p_¡r\9ag
+ =
+
+947
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+p_¡r\9ag
+,
+
+950
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_pÜt_\9a_di§bË_p\9d\96\9ae_id
+ =
+
+951
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+952
+UINT32
+);
+
+954
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_di§bË_pÜt_¡r\9ag
+ =
+
+955
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+pÜt_¡r\9ag
+,
+
+958
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_di§bË_\9a_¡r\9ag
+ =
+
+959
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+\9a_¡r\9ag
+,
+
+962
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_pÜt_\9a_di§bË_pÜt_\9a_id
+ =
+
+963
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+pÜt_\9a_id
+,
+
+964
+UINT32
+);
+
+966
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_pÜt_\9a_di§bË_di§bË_¡r\9ag
+ =
+
+967
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_pÜt_\9a_di§bË_»suÉ
+,
+
+968
+di§bË_¡r\9ag
+, "disable");
+
+970
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_pÜt_\9a_di§bË
+ = {
+
+971 .
+f
+ =
+cmd_pÜt_\9a_di§bË_·r£d
+,
+
+972 .
+ gd©a
+ =
+NULL
+,
+
+973 .
+ gh\96p_¡r
+ = "Pipeline input\85ort disable",
+
+974 .
+ gtok\92s
+ = {
+
+975 (\1e*è&
+cmd_pÜt_\9a_di§bË_p_¡r\9ag
+,
+
+976 (\1e*è&
+cmd_pÜt_\9a_di§bË_p\9d\96\9ae_id
+,
+
+977 (\1e*è&
+cmd_pÜt_\9a_di§bË_pÜt_¡r\9ag
+,
+
+978 (\1e*è&
+cmd_pÜt_\9a_di§bË_\9a_¡r\9ag
+,
+
+979 (\1e*è&
+cmd_pÜt_\9a_di§bË_pÜt_\9a_id
+,
+
+980 (\1e*è&
+cmd_pÜt_\9a_di§bË_di§bË_¡r\9ag
+,
+
+981
+NULL
+,
+
+990
+ $´\9at_l\9ak_\9afo
+(\19
+p_l\9ak_·¿ms
+ *
+p
+)
+
+992 \19
+¹e_\91h_¡©s
+
+¡©s
+;
+
+993 \19
+\91h\94_addr
+ *
+mac_addr
+;
+
+994
+u\9at32_t
+
+Ãtmask
+ = (~0Uè<< (32 -
+p
+->
+d\95th
+);
+
+995
+u\9at32_t
+
+ho¡
+ =
+p
+->
+\9d
+ &
+Ãtmask
+;
+
+996
+u\9at32_t
+
+bÿ¡
+ =
+ho¡
+ | (~
+Ãtmask
+);
+
+998
+ `mem£t
+(&
+¡©s
+, 0, \17(stats));
+
+999
+ `¹e_\91h_¡©s_g\91
+(
+p
+->
+pmd_id
+, &
+¡©s
+);
+
+1001
+mac_addr
+ = (\19
+\91h\94_addr
+ *è&
+p
+->mac_addr;
+
+1003 ià(
+ `¡¾\92
+(
+p
+->
+pci_bdf
+))
+
+1004
+ `´\9atf
+("%s(%s): flags=<%s>\n",
+
+1005
+p
+->
+Çme
+,
+
+1006
+p
+->
+pci_bdf
+,
+
+1007 (
+p
+->
+¡©e
+) ? "UP" : "DOWN");
+
+1009
+ `´\9atf
+("%s: flags=<%s>\n",
+
+1010
+p
+->
+Çme
+,
+
+1011 (
+p
+->
+¡©e
+) ? "UP" : "DOWN");
+
+1013 ià(
+p
+->
+\9d
+)
+
+1014
+ `´\9atf
+("\t\9a\91 %"
+PRIu32
+ ".%" PRIu32
+
+1015 ".%"
+PRIu32
+ ".%" PRIu32
+
+1016 "\82\91mask %"
+PRIu32
+ ".%" PRIu32
+
+1017 ".%"
+PRIu32
+ ".%" PRIu32 " "
+
+1018 "brßdÿ¡ %"
+PRIu32
+ ".%" PRIu32
+
+1019 ".%"
+PRIu32
+ ".%" PRIu32 "\n",
+
+1020 (
+p
+->
+\9d
+ >> 24) & 0xFF,
+
+1021 (
+p
+->
+\9d
+ >> 16) & 0xFF,
+
+1022 (
+p
+->
+\9d
+ >> 8) & 0xFF,
+
+1023
+p
+->
+\9d
+ & 0xFF,
+
+1024 (
+Ãtmask
+ >> 24) & 0xFF,
+
+1025 (
+Ãtmask
+ >> 16) & 0xFF,
+
+1026 (
+Ãtmask
+ >> 8) & 0xFF,
+
+1027
+Ãtmask
+ & 0xFF,
+
+1028 (
+bÿ¡
+ >> 24) & 0xFF,
+
+1029 (
+bÿ¡
+ >> 16) & 0xFF,
+
+1030 (
+bÿ¡
+ >> 8) & 0xFF,
+
+1031
+bÿ¡
+ & 0xFF);
+
+1033
+ `´\9atf
+("\\8bth\94 %02"
+PRIx32
+ ":%02" PRIx32 ":%02" PRIx32
+
+1034 ":%02"
+PRIx32
+ ":%02" PRIx32 ":%02" PRIx32 "\n",
+
+1035
+mac_addr
+->
+addr_by\8bs
+[0],
+
+1036
+mac_addr
+->
+addr_by\8bs
+[1],
+
+1037
+mac_addr
+->
+addr_by\8bs
+[2],
+
+1038
+mac_addr
+->
+addr_by\8bs
+[3],
+
+1039
+mac_addr
+->
+addr_by\8bs
+[4],
+
+1040
+mac_addr
+->
+addr_by\8bs
+[5]);
+
+1042
+ `´\9atf
+("\tRX\85ack\91 %"
+PRIu64
+
+
+1043 " by\8b %"
+PRIu64
+
+
+1045
+¡©s
+.
+\9dack\91s
+,
+
+1046
+¡©s
+.
+iby\8bs
+);
+
+1048
+ `´\9atf
+("\tRX\83¼Ü %"
+PRIu64
+
+
+1049 " mis£d %"
+PRIu64
+
+
+1050 "\82o-mbuà%"
+PRIu64
+
+
+1052
+¡©s
+.
+\9b¼Üs
+,
+
+1053
+¡©s
+.
+imis£d
+,
+
+1054
+¡©s
+.
+rx_nombuf
+);
+
+1056
+ `´\9atf
+("\tTX\85ack\91 %"
+PRIu64
+
+
+1057 " by\8b %"
+PRIu64
+ "\n",
+
+1058
+¡©s
+.
+Ýack\91s
+,
+
+1059
+¡©s
+.
+oby\8bs
+);
+
+1061
+ `´\9atf
+("\tTX\83¼Ü %"
+PRIu64
+
+
+1063
+¡©s
+.
+Û¼Üs
+);
+
+1065
+ `´\9atf
+("\n");
+
+1066
+ }
+}
+
+1068 \19
+ scmd_l\9ak_cÚfig_»suÉ
+ {
+
+1069
+cmdl\9ae_fixed_¡r\9ag_t
+
+ ml\9ak_¡r\9ag
+;
+
+1070
+u\9at32_t
+
+ ml\9ak_id
+;
+
+1071
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mcÚfig_¡r\9ag
+;
+
+1072
+cmdl\9ae_\9daddr_t
+
+ m\9d
+;
+
+1073
+u\9at32_t
+
+ md\95th
+;
+
+1077
+cmd_l\9ak_cÚfig_·r£d
+(
+
+1078 \1e*
+·r£d_»suÉ
+,
+
+1079
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+1080 \1e*
+d©a
+)
+
+1082 \19
+cmd_l\9ak_cÚfig_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+1083 \19
+p_·¿ms
+ *
+ gp
+ =
+d©a
+;
+
+1084 \12
+ g¡©us
+;
+
+1086
+u\9at32_t
+
+ gl\9ak_id
+ =
+·¿ms
+->
+l\9ak_id
+;
+
+1087
+u\9at32_t
+
+ g\9d
+;
+
+1088
+u\9at8_t
+
+ g\9dv6
+[16];
+
+1089 ià(
+ g·¿ms
+->
+ g\9d
+.
+ gçm\9ey
+ =ð
+AF_INET
+)
+
+1090
+\9d
+ =
+¹e_bsw32
+((
+u\9at32_t
+è
+·¿ms
+->\9d.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+1092
+memýy
+(
+\9dv6
+,
+·¿ms
+->
+\9d
+.
+addr
+.\9dv6.
+s6_addr
+, 16);
+
+1094
+u\9at32_t
+
+ gd\95th
+ =
+·¿ms
+->
+d\95th
+;
+
+1096 ià(
+ g·¿ms
+->
+ g\9d
+.
+ gçm\9ey
+ =ð
+AF_INET
+)
+
+1097
+¡©us
+ =
+p_l\9ak_cÚfig
+(
+p
+,
+l\9ak_id
+,
+\9d
+,
+d\95th
+);
+
+1099
+ g¡©us
+ =
+p_l\9ak_cÚfig_\9dv6
+(
+p
+,
+l\9ak_id
+,
+\9dv6
+,
+d\95th
+);
+
+1101 ià(
+ g¡©us
+)
+
+1102
+´\9atf
+("Command failed\n");
+
+1104 \19
+p_l\9ak_·¿ms
+ *
+ gp
+;
+
+1106
+APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+1107 ià(
+ gp
+)
+
+1108
+´\9at_l\9ak_\9afo
+(
+p
+);
+
+1112
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_cÚfig_l\9ak_¡r\9ag
+ =
+
+1113
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_cÚfig_»suÉ
+,
+l\9ak_¡r\9ag
+,
+
+1116
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_l\9ak_cÚfig_l\9ak_id
+ =
+
+1117
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_l\9ak_cÚfig_»suÉ
+,
+l\9ak_id
+,
+UINT32
+);
+
+1119
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_cÚfig_cÚfig_¡r\9ag
+ =
+
+1120
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_cÚfig_»suÉ
+,
+cÚfig_¡r\9ag
+,
+
+1123
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_l\9ak_cÚfig_\9d
+ =
+
+1124
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_l\9ak_cÚfig_»suÉ
+,
+\9d
+);
+
+1126
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_l\9ak_cÚfig_d\95th
+ =
+
+1127
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_l\9ak_cÚfig_»suÉ
+,
+d\95th
+,
+UINT32
+);
+
+1129
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_l\9ak_cÚfig
+ = {
+
+1130 .
+f
+ =
+cmd_l\9ak_cÚfig_·r£d
+,
+
+1131 .
+ gd©a
+ =
+NULL
+,
+
+1132 .
+ gh\96p_¡r
+ = "Link configuration",
+
+1133 .
+ gtok\92s
+ = {
+
+1134 (\1e*)&
+cmd_l\9ak_cÚfig_l\9ak_¡r\9ag
+,
+
+1135 (\1e*)&
+cmd_l\9ak_cÚfig_l\9ak_id
+,
+
+1136 (\1e*)&
+cmd_l\9ak_cÚfig_cÚfig_¡r\9ag
+,
+
+1137 (\1e*)&
+cmd_l\9ak_cÚfig_\9d
+,
+
+1138 (\1e*)&
+cmd_l\9ak_cÚfig_d\95th
+,
+
+1139
+NULL
+,
+
+1147 \19
+ scmd_l\9ak_up_»suÉ
+ {
+
+1148
+cmdl\9ae_fixed_¡r\9ag_t
+
+ ml\9ak_¡r\9ag
+;
+
+1149
+u\9at32_t
+
+ ml\9ak_id
+;
+
+1150
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mup_¡r\9ag
+;
+
+1154
+cmd_l\9ak_up_·r£d
+(
+
+1155 \1e*
+·r£d_»suÉ
+,
+
+1156
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+1157 \1e*
+d©a
+)
+
+1159 \19
+cmd_l\9ak_up_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+1160 \19
+p_·¿ms
+ *
+ gp
+ =
+d©a
+;
+
+1161 \12
+ g¡©us
+;
+
+1163
+ g¡©us
+ =
+p_l\9ak_up
+(
+p
+,
+·¿ms
+->
+l\9ak_id
+);
+
+1164 ià(
+ g¡©us
+ != 0)
+
+1165
+´\9atf
+("Command failed\n");
+
+1167 \19
+p_l\9ak_·¿ms
+ *
+ gp
+;
+
+1169
+APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+·¿ms
+->
+l\9ak_id
+,
+
+1170
+p
+);
+
+1171 ià(
+ gp
+)
+
+1172
+´\9at_l\9ak_\9afo
+(
+p
+);
+
+1176
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_up_l\9ak_¡r\9ag
+ =
+
+1177
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_up_»suÉ
+,
+l\9ak_¡r\9ag
+,
+
+1180
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_l\9ak_up_l\9ak_id
+ =
+
+1181
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_l\9ak_up_»suÉ
+,
+l\9ak_id
+,
+UINT32
+);
+
+1183
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_up_up_¡r\9ag
+ =
+
+1184
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_up_»suÉ
+,
+up_¡r\9ag
+, "up");
+
+1186
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_l\9ak_up
+ = {
+
+1187 .
+f
+ =
+cmd_l\9ak_up_·r£d
+,
+
+1188 .
+ gd©a
+ =
+NULL
+,
+
+1189 .
+ gh\96p_¡r
+ = "Link UP",
+
+1190 .
+ gtok\92s
+ = {
+
+1191 (\1e*)&
+cmd_l\9ak_up_l\9ak_¡r\9ag
+,
+
+1192 (\1e*)&
+cmd_l\9ak_up_l\9ak_id
+,
+
+1193 (\1e*)&
+cmd_l\9ak_up_up_¡r\9ag
+,
+
+1194
+NULL
+,
+
+1202 \19
+ scmd_l\9ak_down_»suÉ
+ {
+
+1203
+cmdl\9ae_fixed_¡r\9ag_t
+
+ ml\9ak_¡r\9ag
+;
+
+1204
+u\9at32_t
+
+ ml\9ak_id
+;
+
+1205
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdown_¡r\9ag
+;
+
+1209
+cmd_l\9ak_down_·r£d
+(
+
+1210 \1e*
+·r£d_»suÉ
+,
+
+1211
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+1212 \1e*
+d©a
+)
+
+1214 \19
+cmd_l\9ak_down_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+1215 \19
+p_·¿ms
+ *
+ gp
+ =
+d©a
+;
+
+1216 \12
+ g¡©us
+;
+
+1218
+ g¡©us
+ =
+p_l\9ak_down
+(
+p
+,
+·¿ms
+->
+l\9ak_id
+);
+
+1219 ià(
+ g¡©us
+ != 0)
+
+1220
+´\9atf
+("Command failed\n");
+
+1222 \19
+p_l\9ak_·¿ms
+ *
+ gp
+;
+
+1224
+APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+·¿ms
+->
+l\9ak_id
+,
+
+1225
+p
+);
+
+1226 ià(
+ gp
+)
+
+1227
+´\9at_l\9ak_\9afo
+(
+p
+);
+
+1231
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_down_l\9ak_¡r\9ag
+ =
+
+1232
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_down_»suÉ
+,
+l\9ak_¡r\9ag
+,
+
+1235
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_l\9ak_down_l\9ak_id
+ =
+
+1236
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_l\9ak_down_»suÉ
+,
+l\9ak_id
+,
+UINT32
+);
+
+1238
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_down_down_¡r\9ag
+ =
+
+1239
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_down_»suÉ
+,
+down_¡r\9ag
+,
+
+1242
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_l\9ak_down
+ = {
+
+1243 .
+f
+ =
+cmd_l\9ak_down_·r£d
+,
+
+1244 .
+ gd©a
+ =
+NULL
+,
+
+1245 .
+ gh\96p_¡r
+ = "Link DOWN",
+
+1246 .
+ gtok\92s
+ = {
+
+1247 (\1e*è&
+cmd_l\9ak_down_l\9ak_¡r\9ag
+,
+
+1248 (\1e*è&
+cmd_l\9ak_down_l\9ak_id
+,
+
+1249 (\1e*è&
+cmd_l\9ak_down_down_¡r\9ag
+,
+
+1250
+NULL
+,
+
+1258 \19
+ scmd_l\9ak_ls_»suÉ
+ {
+
+1259
+cmdl\9ae_fixed_¡r\9ag_t
+
+ ml\9ak_¡r\9ag
+;
+
+1260
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mls_¡r\9ag
+;
+
+1264
+cmd_l\9ak_ls_·r£d
+(
+
+1265
+__©\8cibu\8b__
+((
+unu£d
+)è\1e*
+·r£d_»suÉ
+,
+
+1266
+__©\8cibu\8b__
+((
+unu£d
+)è\19
+cmdl\9ae
+ *
+þ
+,
+
+1267 \1e*
+d©a
+)
+
+1269 \19
+p_·¿ms
+ *
+ gp
+ =
+d©a
+;
+
+1270
+u\9at32_t
+
+ gl\9ak_id
+;
+
+1272 \ f
+ gl\9ak_id
+ = 0;\86\9ak_id <
+ gp
+->
+ gn_l\9aks
+;\86ink_id++) {
+
+1273 \19
+p_l\9ak_·¿ms
+ *
+ gp
+;
+
+1275
+APP_PARAM_FIND_BY_ID
+(
+p
+->
+l\9ak_·¿ms
+, "LINK",
+l\9ak_id
+,
+p
+);
+
+1276 ià(
+ gp
+)
+
+1277
+´\9at_l\9ak_\9afo
+(
+p
+);
+
+1279 #iâdeà
+VNF_ACL
+
+
+1280
+´\9at_\9a\8brçû_d\91a\9es
+();
+
+1284
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_ls_l\9ak_¡r\9ag
+ =
+
+1285
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_ls_»suÉ
+,
+l\9ak_¡r\9ag
+,
+
+1288
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_l\9ak_ls_ls_¡r\9ag
+ =
+
+1289
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_l\9ak_ls_»suÉ
+,
+ls_¡r\9ag
+, "ls");
+
+1291
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_l\9ak_ls
+ = {
+
+1292 .
+f
+ =
+cmd_l\9ak_ls_·r£d
+,
+
+1293 .
+ gd©a
+ =
+NULL
+,
+
+1294 .
+ gh\96p_¡r
+ = "Link\86ist",
+
+1295 .
+ gtok\92s
+ = {
+
+1296 (\1e*)&
+cmd_l\9ak_ls_l\9ak_¡r\9ag
+,
+
+1297 (\1e*)&
+cmd_l\9ak_ls_ls_¡r\9ag
+,
+
+1298
+NULL
+,
+
+1306 \19
+ scmd_qu\99_»suÉ
+ {
+
+1307
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mqu\99
+;
+
+1311
+ $cmd_qu\99_·r£d
+(
+
+1312
+__¹e_unu£d
+ \1e*
+·r£d_»suÉ
+,
+
+1313 \19
+cmdl\9ae
+ *
+þ
+,
+
+1314
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+1316
+ `cmdl\9ae_qu\99
+(
+þ
+);
+
+1317
+ }
+}
+
+1319 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_qu\99_qu\99
+ =
+
+1320
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_qu\99_»suÉ
+,
+qu\99
+, "quit");
+
+1322 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_qu\99
+ = {
+
+1323 .
+f
+ =
+cmd_qu\99_·r£d
+,
+
+1324 .
+ gd©a
+ =
+NULL
+,
+
+1325 .
+ gh\96p_¡r
+ = "Quit",
+
+1326 .
+ gtok\92s
+ = {
+
+1327 (\1e*è&
+cmd_qu\99_qu\99
+,
+
+1328
+NULL
+,
+
+1337
+ $p_run_f\9ee
+(
+
+1338
+cmdl\9ae_·r£_ùx_t
+ *
+ùx
+,
+
+1339 cڡ \ 5*
+f\9ee_Çme
+)
+
+1341 \19
+cmdl\9ae
+ *
+f\9ee_þ
+;
+
+1342 \12
+fd
+;
+
+1344
+fd
+ =
+ `ݒ
+(
+f\9ee_Çme
+,
+O_RDONLY
+);
+
+1345 ià(
+fd
+ < 0) {
+
+1346
+ `´\9atf
+("CªnÙ o³Àf\9e\90\"%s\"\n",
+f\9ee_Çme
+);
+
+1350
+f\9ee_þ
+ =
+ `cmdl\9ae_Ãw
+(
+ùx
+, "",
+fd
+, 1);
+
+1351
+ `cmdl\9ae_\9a\8b¿ù
+(
+f\9ee_þ
+);
+
+1352
+ `þo£
+(
+fd
+);
+
+1353
+ }
+}
+
+1355 \19
+ scmd_run_f\9ee_»suÉ
+ {
+
+1356
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mrun_¡r\9ag
+;
+
+1357 \ 5
+ mf\9ee_Çme
+[
+APP_FILE_NAME_SIZE
+];
+
+1361
+cmd_run_·r£d
+(
+
+1362 \1e*
+·r£d_»suÉ
+,
+
+1363 \19
+cmdl\9ae
+ *
+þ
+,
+
+1364
+__©\8cibu\8b__
+((
+unu£d
+)è\1e*
+d©a
+)
+
+1366 \19
+cmd_run_f\9ee_»suÉ
+ *
+ g·¿ms
+ =
+·r£d_»suÉ
+;
+
+1368
+p_run_f\9ee
+(
+þ
+->
+ùx
+,
+·¿ms
+->
+f\9ee_Çme
+);
+
+1371
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_run_run_¡r\9ag
+ =
+
+1372
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_run_f\9ee_»suÉ
+,
+run_¡r\9ag
+,
+
+1375
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_run_f\9ee_Çme
+ =
+
+1376
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_run_f\9ee_»suÉ
+,
+f\9ee_Çme
+,
+NULL
+);
+
+1378
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_run
+ = {
+
+1379 .
+f
+ =
+cmd_run_·r£d
+,
+
+1380 .
+ gd©a
+ =
+NULL
+,
+
+1381 .
+ gh\96p_¡r
+ = "Run CLI script file",
+
+1382 .
+ gtok\92s
+ = {
+
+1383 (\1e*è&
+cmd_run_run_¡r\9ag
+,
+
+1384 (\1e*è&
+cmd_run_f\9ee_Çme
+,
+
+1385
+NULL
+,
+
+1389 \18
+cmdl\9ae_·r£_ùx_t
+
+ gp\9d\96\9ae_commÚ_cmds
+[] = {
+
+1390 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_qu\99
+,
+
+1391 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_run
+,
+
+1393 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_l\9ak_cÚfig
+,
+
+1394 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_l\9ak_up
+,
+
+1395 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_l\9ak_down
+,
+
+1396 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_l\9ak_ls
+,
+
+1398 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_p\9ag
+,
+
+1399 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¡©s_pÜt_\9a
+,
+
+1400 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¡©s_pÜt_out
+,
+
+1401 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_¡©s_\8fbË
+,
+
+1402 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_pÜt_\9a_\92abË
+,
+
+1403 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_pÜt_\9a_di§bË
+,
+
+1404
+NULL
+,
+
+1408
+ $p_p\9d\96\9ae_commÚ_cmd_push
+(\19
+p_·¿ms
+ *
+p
+)
+
+1410
+u\9at32_t
+
+n_cmds
+,
+i
+;
+
+1413
+n_cmds
+ =
+ `RTE_DIM
+(
+p\9d\96\9ae_commÚ_cmds
+) - 1;
+
+1414 ià(
+n_cmds
+ >
+APP_MAX_CMDS
+ -
+p
+->n_cmds)
+
+1415 \15 -
+ENOMEM
+;
+
+1418
+ `memýy
+(&
+p
+->
+cmds
+[p->
+n_cmds
+],
+
+1419
+p\9d\96\9ae_commÚ_cmds
+,
+
+1420
+n_cmds
+ * \17(
+cmdl\9ae_·r£_ùx_t
+));
+
+1422 \ f
+i
+ = 0; i <
+n_cmds
+; i++)
+
+1423
+p
+->
+cmds
+[p->
+n_cmds
+ +
+i
+]->
+d©a
+ =\87pp;
+
+1425
+p
+->
+n_cmds
+ +=\82_cmds;
+
+1426
+p
+->
+cmds
+[p->
+n_cmds
+] =
+NULL
+;
+
+1429
+ }
+}
+
+ @VIL/pipeline_common/pipeline_common_fe.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_COMMON_FE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_COMMON_FE_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_commÚ.h
+>
+
+21 \ 2
+ ~<¹e_cyþes.h
+>
+
+22 \ 2
+ ~<¹e_m®loc.h
+>
+
+23 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+25 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+26 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+27 \ 2
+ ~"p.h
+"
+
+29 #iâdeà
+MSG_TIMEOUT_DEFAULT
+
+
+30 \ 1
+ #MSG_TIMEOUT_DEFAULT
+ 1000
+
+ )
+
+32 \19
+p_l\9ak_·¿ms
+
+ gmyl\9ak
+[
+APP_MAX_LINKS
+];
+
+33 \18
+\9al\9ae
+ \19
+p_p\9d\96\9ae_d©a
+ *
+
+34
+ $p_p\9d\96\9ae_d©a
+(\19
+p_·¿ms
+ *
+p
+,
+u\9at32_t
+
+id
+)
+
+36 \19
+p_p\9d\96\9ae_·¿ms
+ *
+·¿ms
+;
+
+38
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+, "PIPELINE",
+id
+,
+·¿ms
+);
+
+39 ià(
+·¿ms
+ =ð
+NULL
+)
+
+40 \15
+NULL
+;
+
+42 \15 &
+p
+->
+p\9d\96\9ae_d©a
+[
+·¿ms
+ -\87µ->
+p\9d\96\9ae_·¿ms
+];
+
+43
+ }
+}
+
+45 \18
+\9al\9ae
+ \1e*
+
+46
+ $p_p\9d\96\9ae_d©a_ã
+(\19
+p_·¿ms
+ *
+p
+,
+u\9at32_t
+
+id
+, \19
+p\9d\96\9ae_ty³
+ *
+±y³
+)
+
+48 \19
+p_p\9d\96\9ae_d©a
+ *
+p\9d\96\9ae_d©a
+;
+
+50
+p\9d\96\9ae_d©a
+ =
+ `p_p\9d\96\9ae_d©a
+(
+p
+,
+id
+);
+
+51 ià(
+p\9d\96\9ae_d©a
+ =ð
+NULL
+)
+
+52 \15
+NULL
+;
+
+54 ià(
+ `¡rcmp
+(
+p\9d\96\9ae_d©a
+->
+±y³
+->
+Çme
+,\85type->name) != 0)
+
+55 \15
+NULL
+;
+
+57 ià(
+p\9d\96\9ae_d©a
+->
+\92abËd
+ == 0)
+
+58 \15
+NULL
+;
+
+60 \15
+p\9d\96\9ae_d©a
+->
+ã
+;
+
+61
+ }
+}
+
+63 \18
+\9al\9ae
+ \19
+¹e_r\9ag
+ *
+
+64
+ $p_p\9d\96\9ae_msgq_\9a_g\91
+(\19
+p_·¿ms
+ *
+p
+,
+
+65
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+67 \19
+p_msgq_·¿ms
+ *
+p
+;
+
+69
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+msgq_·¿ms
+,
+
+71
+p\9d\96\9ae_id
+,
+
+72
+p
+);
+
+73 ià(
+p
+ =ð
+NULL
+)
+
+74 \15
+NULL
+;
+
+76 \15
+p
+->
+msgq
+[
+p
+ -\87µ->
+msgq_·¿ms
+];
+
+77
+ }
+}
+
+79 \18
+\9al\9ae
+ \19
+¹e_r\9ag
+ *
+
+80
+ $p_p\9d\96\9ae_msgq_out_g\91
+(\19
+p_·¿ms
+ *
+p
+,
+
+81
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+83 \19
+p_msgq_·¿ms
+ *
+p
+;
+
+85
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+msgq_·¿ms
+,
+
+87
+p\9d\96\9ae_id
+,
+
+88
+p
+);
+
+89 ià(
+p
+ =ð
+NULL
+)
+
+90 \15
+NULL
+;
+
+92 \15
+p
+->
+msgq
+[
+p
+ -\87µ->
+msgq_·¿ms
+];
+
+93
+ }
+}
+
+95 \18
+\9al\9ae
+ \1e*
+
+96
+ $p_msg_®loc
+(
+__¹e_unu£d
+ \19
+p_·¿ms
+ *
+p
+)
+
+98 \15
+ `¹e_m®loc
+(
+NULL
+, 2048,
+RTE_CACHE_LINE_SIZE
+);
+
+99
+ }
+}
+
+101 \18
+\9al\9ae
+ \1e
+
+102
+ $p_msg_ä\93
+(
+__¹e_unu£d
+ \19
+p_·¿ms
+ *
+p
+,
+
+103 \1e*
+msg
+)
+
+105
+ `¹e_ä\93
+(
+msg
+);
+
+106
+ }
+}
+
+108 \18
+\9al\9ae
+ \1e
+
+109
+ $p_msg_£nd
+(\19
+p_·¿ms
+ *
+p
+,
+
+110
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+111 \1e*
+msg
+)
+
+113 \19
+¹e_r\9ag
+ *
+r
+ =
+ `p_p\9d\96\9ae_msgq_\9a_g\91
+(
+p
+,
+p\9d\96\9ae_id
+);
+
+114 \12
+¡©us
+;
+
+117
+¡©us
+ =
+ `¹e_r\9ag_¥_\92queue
+(
+r
+,
+msg
+);
+
+118 } \1f
+¡©us
+ =ð-
+ENOBUFS
+);
+
+119
+ }
+}
+
+121 \18
+\9al\9ae
+ \1e*
+
+122
+ $p_msg_»cv
+(\19
+p_·¿ms
+ *
+p
+,
+
+123
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+125 \19
+¹e_r\9ag
+ *
+r
+ =
+ `p_p\9d\96\9ae_msgq_out_g\91
+(
+p
+,
+p\9d\96\9ae_id
+);
+
+126 \1e*
+msg
+;
+
+127 \12
+¡©us
+ =
+ `¹e_r\9ag_sc_dequeue
+(
+r
+, &
+msg
+);
+
+129 ià(
+¡©us
+ != 0)
+
+130 \15
+NULL
+;
+
+132 \15
+msg
+;
+
+133
+ }
+}
+
+135 \18
+\9al\9ae
+ \1e*
+
+136
+ $p_msg_£nd_»cv
+(\19
+p_·¿ms
+ *
+p
+,
+
+137
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+138 \1e*
+msg
+,
+
+139
+u\9at32_t
+
+timeout_ms
+)
+
+141 \19
+¹e_r\9ag
+ *
+r_»q
+ =
+ `p_p\9d\96\9ae_msgq_\9a_g\91
+(
+p
+,
+p\9d\96\9ae_id
+);
+
+142 \19
+¹e_r\9ag
+ *
+r_r¥
+ =
+ `p_p\9d\96\9ae_msgq_out_g\91
+(
+p
+,
+p\9d\96\9ae_id
+);
+
+143
+u\9at64_t
+
+hz
+ =
+ `¹e_g\91_tsc_hz
+();
+
+144 \1e*
+msg_»cv
+ =
+NULL
+;
+
+145
+u\9at64_t
+
+d\97dl\9ae
+;
+
+146 \12
+¡©us
+ = 0;
+
+150 if(
+r_»q
+)
+
+151
+¡©us
+ =
+ `¹e_r\9ag_¥_\92queue
+(
+r_»q
+, (\1e*è
+msg
+);
+
+152 } \1f
+¡©us
+ =ð-
+ENOBUFS
+);
+
+155
+d\97dl\9ae
+ = (
+timeout_ms
+) ?
+
+156 (
+ `¹e_rdtsc
+(è+ ((
+hz
+ *
+timeout_ms
+) / 1000)) :
+
+157
+UINT64_MAX
+;
+
+160 ià(
+ `¹e_rdtsc
+(è>
+d\97dl\9ae
+)
+
+161 \15
+NULL
+;
+
+162 ià(
+r_r¥
+)
+
+163
+¡©us
+ =
+ `¹e_r\9ag_sc_dequeue
+(
+r_r¥
+, &
+msg_»cv
+);
+
+164 } \1f
+¡©us
+ != 0);
+
+166 \15
+msg_»cv
+;
+
+167
+ }
+}
+
+170
+p_p\9d\96\9ae_p\9ag
+(\19
+p_·¿ms
+ *
+p
+,
+
+171
+u\9at32_t
+
+p\9d\96\9ae_id
+);
+
+174
+p_p\9d\96\9ae_¡©s_pÜt_\9a
+(\19
+p_·¿ms
+ *
+p
+,
+
+175
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+176
+u\9at32_t
+
+pÜt_id
+,
+
+177 \19
+¹e_p\9d\96\9ae_pÜt_\9a_¡©s
+ *
+¡©s
+);
+
+180
+p_p\9d\96\9ae_¡©s_pÜt_out
+(\19
+p_·¿ms
+ *
+p
+,
+
+181
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+182
+u\9at32_t
+
+pÜt_id
+,
+
+183 \19
+¹e_p\9d\96\9ae_pÜt_out_¡©s
+ *
+¡©s
+);
+
+186
+p_p\9d\96\9ae_¡©s_\8fbË
+(\19
+p_·¿ms
+ *
+p
+,
+
+187
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+188
+u\9at32_t
+
+\8fbË_id
+,
+
+189 \19
+¹e_p\9d\96\9ae_\8fbË_¡©s
+ *
+¡©s
+);
+
+192
+p_p\9d\96\9ae_pÜt_\9a_\92abË
+(\19
+p_·¿ms
+ *
+p
+,
+
+193
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+194
+u\9at32_t
+
+pÜt_id
+);
+
+197
+p_p\9d\96\9ae_pÜt_\9a_di§bË
+(\19
+p_·¿ms
+ *
+p
+,
+
+198
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+
+199
+u\9at32_t
+
+pÜt_id
+);
+
+202
+p_l\9ak_cÚfig
+(\19
+p_·¿ms
+ *
+p
+,
+
+203
+u\9at32_t
+
+l\9ak_id
+,
+
+204
+u\9at32_t
+
+\9d
+,
+
+205
+u\9at32_t
+
+d\95th
+);
+
+208
+p_l\9ak_up
+(\19
+p_·¿ms
+ *
+p
+,
+
+209
+u\9at32_t
+
+l\9ak_id
+);
+
+212
+p_l\9ak_down
+(\19
+p_·¿ms
+ *
+p
+,
+
+213
+u\9at32_t
+
+l\9ak_id
+);
+
+216
+p_p\9d\96\9ae_commÚ_cmd_push
+(\19
+p_·¿ms
+ *
+p
+);
+
+219 \1e
+cÚv\94t_´efixËn_to_Ãtmask_\9dv6
+(
+u\9at32_t
+
+d\95th
+,
+u\9at8_t
+
+Ãtmask_\9dv6
+[]);
+
+222
+g\91_ho¡_pÜtiÚ_\9dv6
+(
+u\9at8_t
+
+\9dv6
+[], u\9at8_\88
+Ãtmask
+[], u\9at8_\88
+ho¡_\9dv6
+[]);
+
+225
+g\91_bÿ¡_pÜtiÚ_\9dv6
+(
+u\9at8_t
+
+ho¡
+[], u\9at8_\88
+Ãtmask
+[], u\9at8_\88
+bÿ¡_\9dv6
+[]);
+
+228
+p_l\9ak_cÚfig_\9dv6
+(\19
+p_·¿ms
+ *
+p
+,
+
+229
+u\9at32_t
+
+l\9ak_id
+,
+u\9at8_t
+
+\9dv6
+[], u\9at32_\88
+d\95th
+);
+
+ @VIL/pipeline_loadb/pipeline_loadb.c
+
+17 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+18 \ 2
+ ~<cmdl\9ae_·r£_num.h
+>
+
+19 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+20 \ 2
+ ~<cmdl\9ae_·r£_\9daddr.h
+>
+
+21 \ 2
+ ~<cmdl\9ae_·r£_\91h\94addr.h
+>
+
+23 \ 2
+ ~"p.h
+"
+
+24 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+25 \ 2
+ ~"p\9d\96\9ae_lßdb.h
+"
+
+26 \ 2
+ ~"vnf_commÚ.h
+"
+
+28 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+32
+ $p_p\9d\96\9ae_lßdb_\92\8cy_dbg
+(\19
+p_·¿ms
+ *
+p
+,
+
+33
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+u\9at8_t
+ *
+msg
+)
+
+35 \19
+p\9d\96\9ae_lßdb_\92\8cy_dbg_msg_»q
+ *
+»q
+;
+
+36 \19
+p\9d\96\9ae_lßdb_\92\8cy_dbg_msg_r¥
+ *
+r¥
+;
+
+39 ià(
+p
+ =ð
+NULL
+)
+
+43
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+44 ià(
+»q
+ =ð
+NULL
+)
+
+47
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_CUSTOM
+;
+
+48
+»q
+->
+subty³
+ =
+PIPELINE_LOADB_MSG_REQ_ENTRY_DBG
+;
+
+49
+»q
+->
+d©a
+[0] =
+msg
+[0];
+
+50
+»q
+->
+d©a
+[1] =
+msg
+[1];
+
+52
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+53 ià(
+r¥
+ =ð
+NULL
+)
+
+57 ià(
+r¥
+->
+¡©us
+) {
+
+58
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+59
+ `´\9atf
+("E¼Ü\84¥->¡©u %d\n",
+r¥
+->
+¡©us
+);
+
+64
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+67
+ }
+}
+
+73 \19
+ scmd_\92\8cy_dbg_»suÉ
+ {
+
+74
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+75
+u\9at32_t
+
+ mp
+;
+
+76
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\92\8cy_¡r\9ag
+;
+
+77
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdbg_¡r\9ag
+;
+
+78
+u\9at8_t
+
+ mcmd
+;
+
+79
+u\9at8_t
+
+ md1
+;
+
+83
+ $cmd_\92\8cy_dbg_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+84
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, \1e*
+d©a
+)
+
+86 \19
+cmd_\92\8cy_dbg_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+87 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+88
+u\9at8_t
+
+msg
+[2];
+
+89 \12
+¡©us
+;
+
+91
+msg
+[0] =
+·¿ms
+->
+cmd
+;
+
+92
+msg
+[1] =
+·¿ms
+->
+d1
+;
+
+93
+¡©us
+ =
+ `p_p\9d\96\9ae_lßdb_\92\8cy_dbg
+(
+p
+,
+·¿ms
+->
+p
+,
+msg
+);
+
+95 ià(
+¡©us
+ != 0) {
+
+96
+ `´\9atf
+("Dbg Command failed\n");
+
+99
+ }
+}
+
+101 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_p_¡r\9ag
+ =
+
+102
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p_¡r\9ag
+, "p");
+
+104 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_p
+ =
+
+105
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p
+,
+UINT32
+);
+
+107 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+ =
+
+108
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+
+109
+\92\8cy_¡r\9ag
+, "lbentry");
+
+111 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+ =
+
+112
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+dbg_¡r\9ag
+,
+
+115 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_cmd
+ =
+
+116
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+cmd
+,
+UINT8
+);
+
+118 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_d1
+ =
+
+119
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+d1
+,
+UINT8
+);
+
+121 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ glb_cmd_\92\8cy_dbg
+ = {
+
+122 .
+f
+ =
+cmd_\92\8cy_dbg_·r£d
+,
+
+123 .
+ gd©a
+ =
+NULL
+,
+
+124 .
+ gh\96p_¡r
+ = "LOADB dbg cmd",
+
+125 .
+ gtok\92s
+ = {
+
+126 (\1e*)&
+lb_cmd_\92\8cy_dbg_p_¡r\9ag
+,
+
+127 (\1e*)&
+lb_cmd_\92\8cy_dbg_p
+,
+
+128 (\1e*)&
+lb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+,
+
+129 (\1e*)&
+lb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+,
+
+130 (\1e*)&
+lb_cmd_\92\8cy_dbg_cmd
+,
+
+131 (\1e*)&
+lb_cmd_\92\8cy_dbg_d1
+,
+
+132
+NULL
+,
+
+162 \19
+ scmd_¬p_add_»suÉ
+ {
+
+163
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+164
+u\9at32_t
+
+ mp
+;
+
+165
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬·dd_¡r\9ag
+;
+
+166
+u\9at32_t
+
+ mpÜt_id
+;
+
+167
+cmdl\9ae_\9daddr_t
+
+ m\9d
+;
+
+168 \19
+\91h\94_addr
+
+ mmaÿddr
+;
+
+173
+ $cmd_¬p_add_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+174
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+176 \19
+cmd_¬p_add_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+177
+u\9at8_t
+
+\9dv6
+[16];
+
+186 ià(
+·¿ms
+->
+\9d
+.
+çm\9ey
+ =ð
+AF_INET
+) {
+
+187
+ `pÝuÏ\8b_¬p_\92\8cy
+(&
+·¿ms
+->
+maÿddr
+,
+
+188
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->
+\9d
+.
+addr
+.
+
+189
+\9dv4
+.
+s_addr
+),
+
+190
+·¿ms
+->
+pÜt_id
+,
+STATIC_ARP
+);
+
+192
+ `memýy
+(
+\9dv6
+,
+·¿ms
+->
+\9d
+.
+addr
+.\9dv6.
+s6_addr
+, 16);
+
+193
+ `pÝuÏ\8b_nd_\92\8cy
+(&
+·¿ms
+->
+maÿddr
+,
+\9dv6
+,\85¬ams->
+pÜt_id
+,
+STATIC_ND
+);
+
+195
+ }
+}
+
+197 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_add_p_¡r\9ag
+ =
+
+198
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+p_¡r\9ag
+,
+
+201 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_add_p
+ =
+
+202
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+p
+,
+UINT32
+);
+
+204 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_add_¬p_¡r\9ag
+ =
+
+205
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+¬·dd_¡r\9ag
+, "arpadd");
+
+207 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_add_pÜt_id
+ =
+
+208
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+pÜt_id
+,
+UINT32
+);
+
+210 \18
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_¬p_add_\9d
+ =
+
+211
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+\9d
+);
+
+213 \18
+cmdl\9ae_·r£_tok\92_\91h\94addr_t
+
+ gcmd_¬p_add_maÿddr
+ =
+
+214
+TOKEN_ETHERADDR_INITIALIZER
+(\19
+cmd_¬p_add_»suÉ
+,
+maÿddr
+);
+
+216 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_add
+ = {
+
+217 .
+f
+ =
+cmd_¬p_add_·r£d
+,
+
+218 .
+ gd©a
+ =
+NULL
+,
+
+219 .
+ gh\96p_¡r
+ = "ARP\87dd",
+
+220 .
+ gtok\92s
+ = {
+
+221 (\1e*)&
+cmd_¬p_add_p_¡r\9ag
+,
+
+222 (\1e*)&
+cmd_¬p_add_p
+,
+
+223 (\1e*)&
+cmd_¬p_add_¬p_¡r\9ag
+,
+
+224 (\1e*)&
+cmd_¬p_add_pÜt_id
+,
+
+225 (\1e*)&
+cmd_¬p_add_\9d
+,
+
+226 (\1e*)&
+cmd_¬p_add_maÿddr
+,
+
+227
+NULL
+,
+
+235 \19
+ scmd_¬p_d\96_»suÉ
+ {
+
+236
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+237
+u\9at32_t
+
+ mp
+;
+
+238
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+239
+u\9at32_t
+
+ mpÜt_id
+;
+
+240
+cmdl\9ae_\9daddr_t
+
+ m\9d
+;
+
+244
+ $cmd_¬p_d\96_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+245
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+247 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+248
+u\9at8_t
+
+\9dv6
+[16];
+
+257 ià(
+·¿ms
+->
+\9d
+.
+çm\9ey
+ =ð
+AF_INET
+) {
+
+258
+ `»move_¬p_\92\8cy
+(
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+),
+
+259
+·¿ms
+->
+pÜt_id
+,
+NULL
+);
+
+261
+ `memýy
+(
+\9dv6
+,
+·¿ms
+->
+\9d
+.
+addr
+.\9dv6.
+s6_addr
+, 16);
+
+262
+ `»move_nd_\92\8cy_\9dv6
+(
+\9dv6
+,
+·¿ms
+->
+pÜt_id
+);
+
+264
+ }
+}
+
+266 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_d\96_p_¡r\9ag
+ =
+
+267
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+p_¡r\9ag
+,
+
+270 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_d\96_p
+ =
+
+271
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+p
+,
+UINT32
+);
+
+273 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_d\96_¬p_¡r\9ag
+ =
+
+274
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "arpdel");
+
+276 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_d\96_pÜt_id
+ =
+
+277
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+pÜt_id
+,
+UINT32
+);
+
+279 \18
+cmdl\9ae_·r£_tok\92_\9daddr_t
+
+ gcmd_¬p_d\96_\9d
+ =
+
+280
+TOKEN_IPADDR_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+\9d
+);
+
+282 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_d\96
+ = {
+
+283 .
+f
+ =
+cmd_¬p_d\96_·r£d
+,
+
+284 .
+ gd©a
+ =
+NULL
+,
+
+285 .
+ gh\96p_¡r
+ = "ARP delete",
+
+286 .
+ gtok\92s
+ = {
+
+287 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+288 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+289 (\1e*)&
+cmd_¬p_d\96_¬p_¡r\9ag
+,
+
+290 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+291 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+292
+NULL
+,
+
+303
+ $cmd_¬p_»q_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+304
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+306 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+309 \19
+¬p_key_\9dv4
+
+key
+;
+
+315
+key
+.
+\9d
+ =
+ `¹e_ýu_to_be_32
+(
+·¿ms
+->\9d.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+316
+key
+.
+pÜt_id
+ =
+·¿ms
+->port_id;
+
+317
+key
+.
+f\9eËr1
+ = 0;
+
+318
+key
+.
+f\9eËr2
+ = 0;
+
+319
+key
+.
+f\9eËr3
+ = 0;
+
+321 \19
+¬p_\92\8cy_d©a
+ *
+¬p_d©a
+ =
+ `»\8c\9bve_¬p_\92\8cy
+(
+key
+);
+
+323 ià(
+¬p_d©a
+) {
+
+324 ià(
+ARPICMP_DEBUG
+)
+
+325
+ `´\9atf
+("ARP\83ntry\83xists for ip 0x%x,\85ort %d\n",
+
+326
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+330 ià(
+ARPICMP_DEBUG
+)
+
+331
+ `´\9atf
+("ARP -\84equesting\87rp for ip 0x%x,\85ort %d\n",
+
+332
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+333
+ `»que¡_¬p
+(
+·¿ms
+->
+pÜt_id
+,\85¬ams->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+335
+ }
+}
+
+337 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_»q_¡r\9ag
+ =
+
+338
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "arpreq");
+
+340 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_»q
+ = {
+
+341 .
+f
+ =
+cmd_¬p_»q_·r£d
+,
+
+342 .
+ gd©a
+ =
+NULL
+,
+
+343 .
+ gh\96p_¡r
+ = "ARP\84equest",
+
+344 .
+ gtok\92s
+ = {
+
+345 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+346 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+347 (\1e*)&
+cmd_¬p_»q_¡r\9ag
+,
+
+348 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+349 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+350
+NULL
+,
+
+361
+ $cmd_icmp_echo_»q_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+362
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+363
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+365 \19
+cmd_¬p_d\96_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+366 \19
+¹e_mbuf
+ *
+pkt
+;
+
+367
+l2_phy_\9a\8brçû_t
+ *
+pÜt
+ = (l2_phy_\9a\8brçû_\88*è
+ `ifm_g\91_pÜt
+((
+u\9at8_t
+)
+·¿ms
+->
+pÜt_id
+);
+
+369 ià(
+ARPICMP_DEBUG
+)
+
+370
+ `´\9atf
+("Echo Req Handler ip %x,\85ort %d\n",
+
+371
+·¿ms
+->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+,\85¬ams->
+pÜt_id
+);
+
+373
+pkt
+ =
+ `»que¡_echo
+(
+·¿ms
+->
+pÜt_id
+,\85¬ams->
+\9d
+.
+addr
+.
+\9dv4
+.
+s_addr
+);
+
+374
+pÜt
+->
+ `\8cªsm\99_s\9agË_pkt
+ÕÜt,
+pkt
+);
+
+375
+ }
+}
+
+377 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_icmp_echo_»q_¡r\9ag
+ =
+
+378
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_d\96_»suÉ
+,
+¬p_¡r\9ag
+, "icmpecho");
+
+380 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_icmp_echo_»q
+ = {
+
+381 .
+f
+ =
+cmd_icmp_echo_»q_·r£d
+,
+
+382 .
+ gd©a
+ =
+NULL
+,
+
+383 .
+ gh\96p_¡r
+ = "ICMP\83cho\84equest",
+
+384 .
+ gtok\92s
+ = {
+
+385 (\1e*)&
+cmd_¬p_d\96_p_¡r\9ag
+,
+
+386 (\1e*)&
+cmd_¬p_d\96_p
+,
+
+387 (\1e*)&
+cmd_icmp_echo_»q_¡r\9ag
+,
+
+388 (\1e*)&
+cmd_¬p_d\96_pÜt_id
+,
+
+389 (\1e*)&
+cmd_¬p_d\96_\9d
+,
+
+390
+NULL
+,
+
+398 \19
+ scmd_¬p_ls_»suÉ
+ {
+
+399
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+400
+u\9at32_t
+
+ mp
+;
+
+401
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+405
+ $cmd_¬p_ls_·r£d
+(
+__¹e_unu£d
+ \1e*
+·r£d_»suÉ
+,
+
+406
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, __¹e_unu£d \1e*
+d©a
+)
+
+408
+ `´\9atf
+("\nARP\81able ...\n");
+
+409
+ `´\9atf
+("-------------\n");
+
+410
+ `´\9at_¬p_\8fbË
+();
+
+412
+´\9atf
+
+
+415
+ `´\9atf
+("\nND IPv6\81able:\n");
+
+416
+ `´\9atf
+("--------------\n");
+
+417
+ `´\9at_nd_\8fbË
+();
+
+418
+ }
+}
+
+420 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_ls_p_¡r\9ag
+ =
+
+421
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+p_¡r\9ag
+,
+
+424 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_¬p_ls_p
+ =
+
+425
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+p
+,
+UINT32
+);
+
+427 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_¬p_ls_¬p_¡r\9ag
+ =
+
+428
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+¬p_¡r\9ag
+,
+
+431 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_¬p_ls
+ = {
+
+432 .
+f
+ =
+cmd_¬p_ls_·r£d
+,
+
+433 .
+ gd©a
+ =
+NULL
+,
+
+434 .
+ gh\96p_¡r
+ = "ARP\86ist",
+
+435 .
+ gtok\92s
+ = {
+
+436 (\1e*)&
+cmd_¬p_ls_p_¡r\9ag
+,
+
+437 (\1e*)&
+cmd_¬p_ls_p
+,
+
+438 (\1e*)&
+cmd_¬p_ls_¬p_¡r\9ag
+,
+
+439
+NULL
+,
+
+447 \19
+ scmd_show_pÜts_\9afo_»suÉ
+ {
+
+448
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+449
+u\9at32_t
+
+ mp
+;
+
+450
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m¬p_¡r\9ag
+;
+
+454
+ $cmd_show_pÜts_\9afo_·r£d
+(
+__¹e_unu£d
+ \1e*
+·r£d_»suÉ
+,
+
+455
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+456
+__¹e_unu£d
+ \1e*
+d©a
+)
+
+458
+ `show_pÜts_\9afo
+();
+
+459
+ }
+}
+
+461 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_show_pÜts_\9afo_¡r\9ag
+ =
+
+462
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_¬p_ls_»suÉ
+,
+¬p_¡r\9ag
+,
+
+465 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_show_pÜts_\9afo
+ = {
+
+466 .
+f
+ =
+cmd_show_pÜts_\9afo_·r£d
+,
+
+467 .
+ gd©a
+ =
+NULL
+,
+
+468 .
+ gh\96p_¡r
+ = "show\85orts info",
+
+469 .
+ gtok\92s
+ = {
+
+470 (\1e*)&
+cmd_¬p_ls_p_¡r\9ag
+,
+
+471 (\1e*)&
+cmd_¬p_ls_p
+,
+
+472 (\1e*)&
+cmd_show_pÜts_\9afo_¡r\9ag
+,
+
+473
+NULL
+,
+
+478 \18
+cmdl\9ae_·r£_ùx_t
+
+ gp\9d\96\9ae_cmds
+[] = {
+
+479 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+lb_cmd_\92\8cy_dbg
+,
+
+480
+NULL
+,
+
+483 \18\19
+p\9d\96\9ae_ã_Ýs
+
+ gp\9d\96\9ae_lßdb_ã_Ýs
+ = {
+
+484 .
+f_\9a\99
+ =
+NULL
+,
+
+485 .
+ gf_ä\93
+ =
+NULL
+,
+
+486 .
+ gcmds
+ =
+p\9d\96\9ae_cmds
+,
+
+489 \19
+p\9d\96\9ae_ty³
+
+ gp\9d\96\9ae_lßdb
+ = {
+
+490 .
+Çme
+ = "LOADB",
+
+491 .
+ gbe_Ýs
+ = &
+p\9d\96\9ae_lßdb_be_Ýs
+,
+
+492 .
+ gã_Ýs
+ = &
+p\9d\96\9ae_lßdb_ã_Ýs
+,
+
+ @VIL/pipeline_loadb/pipeline_loadb.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_LOADB_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_LOADB_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+21 \ 2
+ ~"p\9d\96\9ae_lßdb_be.h
+"
+
+27 \r\19
+p\9d\96\9ae_ty³
+
+p\9d\96\9ae_lßdb
+;
+
+ @VIL/pipeline_loadb/pipeline_loadb_be.c
+
+17 \ 2
+ ~<¡dio.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡d\9at.h
+>
+
+20 \ 2
+ ~<¡r\9ag.h
+>
+
+21 \ 2
+ ~<uni¡d.h
+>
+
+23 \ 2
+ ~<¹e_commÚ.h
+>
+
+24 \ 2
+ ~<¹e_m®loc.h
+>
+
+25 \ 2
+ ~<¹e_\9d.h
+>
+
+26 \ 2
+ ~<¹e_hash.h
+>
+
+27 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+28 \ 2
+ ~<¹e_\8fbË_Ím.h
+>
+
+29 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+30 \ 2
+ ~<¹e_jhash.h
+>
+
+31 \ 2
+ ~<¹e_thash.h
+>
+
+32 \ 2
+ ~<¹e_cyþes.h
+>
+
+33 \ 2
+ ~<¹e_\91hdev.h
+>
+
+34 \ 2
+ ~<¹e_´eãtch.h
+>
+
+35 \ 2
+ ~<¹e_\8fbË_¬¿y.h
+>
+
+36 \ 2
+ ~"p\9d\96\9ae_lßdb_be.h
+"
+
+37 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+38 \ 2
+ ~"hash_func.h
+"
+
+39 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+40 \ 2
+ ~"vnf_commÚ.h
+"
+
+41 \ 2
+ ~"p.h
+"
+
+43 \ 1
+ #BYTES_TO_BITS
+ 8
+
+ )
+
+44 \ 1
+ #ROTATE_15_BITS
+ 15
+
+ )
+
+46 \ 1
+ #MAX_VNF_THREADS
+ 16
+
+ )
+
+48 \12
+ gpkt_bur¡_út
+;
+
+50
+u\9at8_t
+
+ gLOADB_DEBUG
+;
+
+51
+u\9at8_t
+
+ gtÙ®_vnf_th»ads
+;
+
+52
+u\9at32_t
+
+ gphypÜt_off£t
+;
+
+54 \19
+ sp\9d\96\9ae_lßdb
+ {
+
+55 \19
+p\9d\96\9ae
+
+ mp
+;
+
+56
+p\9d\96\9ae_msg_»q_hªdËr
+
+ mcu¡om_hªdËrs
+[
+PIPELINE_LOADB_MSG_REQS
+];
+
+58
+u\9at8_t
+
+ mn_vnf_th»ads
+;
+
+59
+u\9at8_t
+
+ mn_lb_tu¶es
+;
+
+60
+u\9at32_t
+
+ mou\8dÜt_off£t
+;
+
+61
+u\9at64_t
+
+ m»ûivedLBPktCouÁ
+;
+
+62
+u\9at64_t
+
+ mdrݳdLBPktCouÁ
+;
+
+63
+u\9at8_t
+
+ ml\9aks_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+64
+u\9at8_t
+
+ mou\8dÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+65
+u\9at8_t
+
+ mn_´v_Q
+;
+
+66
+u\9at8_t
+
+ mn_pub_Q
+;
+
+67
+u\9at8_t
+
+ mp\9d\96\9ae_num
+;
+
+68 }
+ g__¹e_ÿche_®igÃd
+;
+
+70
+u\9at8_t
+
+ gdeçuÉ_rss_key
+[] = {
+
+78 \18\1e*
+p\9d\96\9ae_lßdb_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+79 \1e*
+msg
+);
+
+81 \18
+p\9d\96\9ae_msg_»q_hªdËr
+
+ ghªdËrs
+[] = {
+
+82 [
+PIPELINE_MSG_REQ_PING
+] =
+
+83
+p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+,
+
+84 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+85
+p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+,
+
+86 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+87
+p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+88 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+89
+p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+,
+
+90 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+91
+p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+,
+
+92 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+93
+p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+,
+
+94 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+95
+p\9d\96\9ae_lßdb_msg_»q_cu¡om_hªdËr
+,
+
+99 \18\1e*
+p\9d\96\9ae_lßdb_msg_»q_\92\8cy_dbg_hªdËr
+(\19
+p\9d\96\9ae
+ *,
+
+100 \1e*
+msg
+);
+
+102 \18
+p\9d\96\9ae_msg_»q_hªdËr
+
+ gcu¡om_hªdËrs
+[] = {
+
+103 [
+PIPELINE_LOADB_MSG_REQ_ENTRY_DBG
+] =
+
+104
+p\9d\96\9ae_lßdb_msg_»q_\92\8cy_dbg_hªdËr
+,
+
+110 \19
+ slßdb_\8fbË_\92\8cy
+ {
+
+111 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+ mh\97d
+;
+
+112 }
+ g__¹e_ÿche_®igÃd
+;
+
+114 \1e*
+ $p\9d\96\9ae_lßdb_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+)
+
+116 \19
+p\9d\96\9ae_lßdb
+ *
+p_lb
+ = (\19p\9d\96\9ae_lßdb *)
+p
+;
+
+117 \19
+p\9d\96\9ae_cu¡om_msg_»q
+ *
+»q
+ =
+msg
+;
+
+118
+p\9d\96\9ae_msg_»q_hªdËr
+
+f_hªdË
+;
+
+120
+f_hªdË
+ = (
+»q
+->
+subty³
+ <
+PIPELINE_LOADB_MSG_REQS
+) ?
+
+121
+p_lb
+->
+cu¡om_hªdËrs
+[
+»q
+->
+subty³
+] :
+
+122
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+124 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+125
+f_hªdË
+ =
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+127 \15
+ `f_hªdË
+(
+p
+,
+»q
+);
+
+128
+ }
+}
+
+130
+u\9at32_t
+
+ glb_pkt_´\9at_couÁ
+;
+
+132
+u\9at8_t
+
+ $ÿlcuÏ\8b_lb_th»ad_´v
+(\19
+¹e_mbuf
+ *
+pkt
+, \1e*
+¬g
+)
+
+134
+u\9at32_t
+
+hash_key
+[2],
+hash_\9dv4
+;
+
+135
+u\9at32_t
+
+\8bmp1
+,
+\8bmp2
+,
+\8bmp3
+;
+
+136
+u\9at8_t
+
+th»ad
+;
+
+137 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+138 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *è
+
+->
+p
+;
+
+139
+u\9at8_t
+
+Áh»ads
+ =
+p_lßdb
+->
+n_vnf_th»ads
+;
+
+140 \1c
+¹e_thash_tu¶e
+
+tu¶e
+;
+
+142
+u\9at32_t
+ *
+¤c_addr
+;
+
+143
+u\9at32_t
+ *
+d¡_addr
+;
+
+144
+u\9at16_t
+ *
+¤c_pÜt
+;
+
+145
+u\9at16_t
+ *
+d¡_pÜt
+;
+
+146
+u\9at8_t
+ *
+´ÙocÞ
+;
+
+147 \19
+lb_pkt
+ *lb_pkt = (\19lb_pkt *)
+
+148
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+MBUF_HDR_ROOM
+);
+
+150 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+è=ð
+ETHER_TYPE_IPv6
+) {
+
+151
+¤c_addr
+ = (
+u\9at32_t
+ *)&
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.src_addr;
+
+152
+d¡_addr
+ = (
+u\9at32_t
+ *)&
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.dst_addr;
+
+153
+¤c_pÜt
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.src_port;
+
+154
+d¡_pÜt
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.dst_port;
+
+155
+´ÙocÞ
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.
+´Ùo
+;
+
+157
+¤c_addr
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.src_addr;
+
+158
+d¡_addr
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.dst_addr;
+
+159
+¤c_pÜt
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.src_port;
+
+160
+d¡_pÜt
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.dst_port;
+
+161
+´ÙocÞ
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+;
+
+164 \1a
+p_lßdb
+->
+n_lb_tu¶es
+) {
+
+169 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+è=ð
+ETHER_TYPE_IPv6
+)
+
+170
+\8bmp1
+ =
+ `¹e_bsw32
+(
+d¡_addr
+[3]è^ *
+d¡_pÜt
+;
+
+172
+\8bmp1
+ = *
+d¡_addr
+ ^ *
+d¡_pÜt
+;
+
+174
+\8bmp2
+ = (
+\8bmp1
+ >> 24) ^ (temp1 >> 16) ^
+
+175 (
+\8bmp1
+ >> 8) ^\81emp1;
+
+177
+\8bmp3
+ = (
+\8bmp2
+ >> 4) ^ (temp2 & 0xf);
+
+180
+th»ad
+ =
+\8bmp3
+ %
+Áh»ads
+;
+
+182
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+183 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+184 \15
+th»ad
+;
+
+189 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+è=ð
+ETHER_TYPE_IPv6
+)
+
+190
+hash_key
+[0] =
+ `¹e_bsw32
+(
+d¡_addr
+[3]);
+
+192
+hash_key
+[0] =
+ `¹e_bsw32
+(*
+d¡_addr
+);
+
+195
+hash_\9dv4
+ =
+ `¹e_jhash
+(&
+hash_key
+[0], 4, 0);
+
+198
+th»ad
+ = (
+hash_\9dv4
+ %
+Áh»ads
+);
+
+201
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+202 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+204 ià(
+LOADB_DEBUG
+ > 3)
+
+205
+ `´\9atf
+("thread: %u hash: %x hash_key: %x\n",
+
+206
+th»ad
+,
+hash_\9dv4
+,
+hash_key
+[0]);
+
+207 \15
+th»ad
+;
+
+212 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+) ==
+
+213
+ETHER_TYPE_IPv6
+) {
+
+214
+hash_key
+[0] =
+ `¹e_bsw32
+(
+d¡_addr
+[3]);
+
+215
+hash_key
+[1] = *
+d¡_pÜt
+ << 16;
+
+217
+hash_key
+[0] =
+ `¹e_bsw32
+(*
+d¡_addr
+);
+
+218
+hash_key
+[1] = *
+d¡_pÜt
+ << 16;
+
+221
+hash_\9dv4
+ =
+ `¹e_jhash
+(&
+hash_key
+[0], 6, 0);
+
+224
+th»ad
+ = (
+hash_\9dv4
+ %
+Áh»ads
+);
+
+227
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+228 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+230 ià(
+LOADB_DEBUG
+ > 3) {
+
+231
+ `´\9atf
+("public_addr: %x\85ublic_port: %x\n",
+
+232
+hash_key
+[0], *
+d¡_pÜt
+);
+
+233
+ `´\9atf
+("thread: %u hash: %x hash_key0: %x "
+
+234 "hash_key1: %x\n",
+th»ad
+,
+hash_\9dv4
+,
+
+235
+hash_key
+[0], hash_key[1]);
+
+237 \15
+th»ad
+;
+
+240
+ `´\9atf
+("Inv®id\82_lb_tu¶es: %d\n",
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+245 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+) ==
+
+246
+ETHER_TYPE_IPv6
+) {
+
+247
+tu¶e
+.
+v4
+.
+¤c_addr
+ =
+ `¹e_bsw32
+(src_addr[3]);
+
+248
+tu¶e
+.
+v4
+.
+d¡_addr
+ =
+ `¹e_bsw32
+(dst_addr[3]);
+
+249
+tu¶e
+.
+v4
+.
+¥Üt
+ = *
+¤c_pÜt
+;
+
+250
+tu¶e
+.
+v4
+.
+dpÜt
+ = *
+d¡_pÜt
+;
+
+252
+tu¶e
+.
+v4
+.
+¤c_addr
+ =
+ `¹e_bsw32
+(*src_addr);
+
+253
+tu¶e
+.
+v4
+.
+d¡_addr
+ =
+ `¹e_bsw32
+(*dst_addr);
+
+254
+tu¶e
+.
+v4
+.
+¥Üt
+ = *
+¤c_pÜt
+;
+
+255
+tu¶e
+.
+v4
+.
+dpÜt
+ = *
+d¡_pÜt
+;
+
+258
+hash_\9dv4
+ =
+ `¹e_soárss
+((
+u\9at32_t
+ *)&
+tu¶e
+,
+
+259
+RTE_THASH_V4_L4_LEN
+,
+
+260
+deçuÉ_rss_key
+);
+
+264
+th»ad
+ = (
+hash_\9dv4
+ %
+Áh»ads
+);
+
+267
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+268 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+270 ià(
+LOADB_DEBUG
+ > 3) {
+
+271
+ `´\9atf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+272 "d¡_pÜt: %x\n",
+tu¶e
+.
+v4
+.
+¤c_addr
+,\81u¶e.v4.
+d¡_addr
+,
+
+273
+tu¶e
+.
+v4
+.
+¥Üt
+,\81u¶e.v4.
+dpÜt
+);
+
+274
+ `´\9atf
+("th»ad: %u hash: %x\n",
+th»ad
+,
+hash_\9dv4
+);
+
+277 \15
+th»ad
+;
+
+281 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+) ==
+
+282
+ETHER_TYPE_IPv6
+) {
+
+284
+¤c_addr
+ += 3;
+
+285
+d¡_addr
+ += 3;
+
+289
+\8bmp1
+ = *
+¤c_addr
+ ^ *
+d¡_addr
+ ^ *
+¤c_pÜt
+ ^
+
+290 *
+d¡_pÜt
+ ^ *
+´ÙocÞ
+;
+
+292
+\8bmp2
+ = (
+\8bmp1
+ >> 24) ^ (temp1 >> 16) ^ (temp1 >> 8) ^\81emp1;
+
+293
+\8bmp3
+ = (
+\8bmp2
+ >> 4) ^ (temp2 & 0xf);
+
+298
+th»ad
+ = (
+\8bmp3
+ %
+Áh»ads
+);
+
+301
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+302 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+304 ià(
+LOADB_DEBUG
+ > 3) {
+
+305
+ `´\9atf
+("thread: %u\81emp1: %x\81emp2: %x\81emp3: %x\n",
+
+306
+th»ad
+,
+\8bmp1
+,
+\8bmp2
+,
+\8bmp3
+);
+
+307
+ `´\9atf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+308 "d¡_pÜt: %x\85rÙocÞ: %x\n", *
+¤c_addr
+, *
+d¡_addr
+,
+
+309 *
+¤c_pÜt
+, *
+d¡_pÜt
+, *
+´ÙocÞ
+);
+
+311 \15
+th»ad
+;
+
+314
+ `´\9atf
+("Inv®id\82_lb_tu¶es: %d\n",
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+318
+ }
+}
+
+320
+u\9at8_t
+
+ $ÿlcuÏ\8b_lb_th»ad_pub
+(\19
+¹e_mbuf
+ *
+pkt
+, \1e*
+¬g
+)
+
+322
+u\9at32_t
+
+hash_key
+[2],
+hash_\9dv4
+;
+
+323
+u\9at32_t
+
+\8bmp1
+,
+\8bmp2
+,
+\8bmp3
+;
+
+324
+u\9at8_t
+
+th»ad
+;
+
+325 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+326 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *è
+
+->
+p
+;
+
+327
+u\9at8_t
+
+Áh»ads
+ =
+p_lßdb
+->
+n_vnf_th»ads
+;
+
+328 \1c
+¹e_thash_tu¶e
+
+tu¶e
+;
+
+330
+u\9at32_t
+ *
+¤c_addr
+;
+
+331
+u\9at32_t
+ *
+d¡_addr
+;
+
+332
+u\9at16_t
+ *
+¤c_pÜt
+;
+
+333
+u\9at16_t
+ *
+d¡_pÜt
+;
+
+334
+u\9at8_t
+ *
+´ÙocÞ
+;
+
+335 \19
+lb_pkt
+ *lb_pkt = (\19lb_pkt *)
+
+336
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+337
+MBUF_HDR_ROOM
+);
+
+339 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+è=ð
+ETHER_TYPE_IPv6
+) {
+
+340
+¤c_addr
+ = (
+u\9at32_t
+ *)&
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.src_addr;
+
+341
+d¡_addr
+ = (
+u\9at32_t
+ *)&
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.dst_addr;
+
+342
+¤c_pÜt
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.src_port;
+
+343
+d¡_pÜt
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.dst_port;
+
+344
+´ÙocÞ
+ = &
+lb_pkt
+->
+\9dv6_pÜt
+.
+\9dv6
+.
+´Ùo
+;
+
+346
+¤c_addr
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.src_addr;
+
+347
+d¡_addr
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.dst_addr;
+
+348
+¤c_pÜt
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.src_port;
+
+349
+d¡_pÜt
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.dst_port;
+
+350
+´ÙocÞ
+ = &
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+;
+
+353 \1a
+p_lßdb
+->
+n_lb_tu¶es
+) {
+
+358
+\8bmp1
+ = *
+¤c_addr
+ ^ *
+¤c_pÜt
+;
+
+359
+\8bmp2
+ = (
+\8bmp1
+ >> 24) ^ (temp1 >> 16) ^
+
+360 (
+\8bmp1
+ >> 8) ^\81emp1;
+
+361
+\8bmp3
+ = (
+\8bmp2
+ >> 4) ^ (temp2 & 0xf);
+
+364
+th»ad
+ =
+\8bmp3
+ %
+Áh»ads
+;
+
+366
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+367 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+369 \15
+th»ad
+;
+
+374
+hash_key
+[0] =
+ `¹e_bsw32
+(*
+¤c_addr
+);
+
+377
+hash_\9dv4
+ =
+ `¹e_jhash
+(&
+hash_key
+[0], 4, 0);
+
+380
+th»ad
+ =
+hash_\9dv4
+ %
+Áh»ads
+;
+
+382
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+383 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+385 ià(
+LOADB_DEBUG
+ > 3)
+
+386
+ `´\9atf
+("thread: %u hash: %x hash_key: %x\n",
+
+387
+th»ad
+,
+hash_\9dv4
+,
+hash_key
+[0]);
+
+388 \15
+th»ad
+;
+
+393
+hash_key
+[0] =
+ `¹e_bsw32
+(*
+¤c_addr
+);
+
+394
+hash_key
+[1] = *
+¤c_pÜt
+ << 16;
+
+397
+hash_\9dv4
+ =
+ `¹e_jhash
+(&
+hash_key
+[0], 6, 0);
+
+400
+th»ad
+ =
+hash_\9dv4
+ %
+Áh»ads
+;
+
+402
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+403 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+405 ià(
+LOADB_DEBUG
+ > 3) {
+
+406
+ `´\9atf
+("thread: %u hash: %x hash_key0: %x "
+
+407 "hash_key1: %x\n",
+th»ad
+,
+hash_\9dv4
+,
+
+408
+hash_key
+[0], hash_key[1]);
+
+409
+ `´\9atf
+("public_addr: %x\85ublic_port: %x\n",
+
+410
+hash_key
+[0], *
+¤c_pÜt
+);
+
+412 \15
+th»ad
+;
+
+415
+ `´\9atf
+("Inv®id\82_lb_tu¶es: %d\n",
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+420
+tu¶e
+.
+v4
+.
+¤c_addr
+ =
+ `¹e_bsw32
+(*src_addr);
+
+421
+tu¶e
+.
+v4
+.
+d¡_addr
+ =
+ `¹e_bsw32
+(*dst_addr);
+
+422
+tu¶e
+.
+v4
+.
+¥Üt
+ = *
+¤c_pÜt
+;
+
+423
+tu¶e
+.
+v4
+.
+dpÜt
+ = *
+d¡_pÜt
+;
+
+426
+hash_\9dv4
+ =
+ `¹e_soárss
+((
+u\9at32_t
+ *)&
+tu¶e
+,
+
+427
+RTE_THASH_V4_L4_LEN
+,
+deçuÉ_rss_key
+);
+
+431
+th»ad
+ =
+hash_\9dv4
+ %
+Áh»ads
+;
+
+433
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+434 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+436 ià(
+LOADB_DEBUG
+ > 3) {
+
+437
+ `´\9atf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+438 "d¡_pÜt: %x\n",
+tu¶e
+.
+v4
+.
+¤c_addr
+,
+
+439
+tu¶e
+.
+v4
+.
+d¡_addr
+,\81u¶e.v4.
+¥Üt
+,\81u¶e.v4.
+dpÜt
+);
+
+441
+ `´\9atf
+("th»ad: %u hash: %x\n",
+th»ad
+,
+hash_\9dv4
+);
+
+443 \15
+th»ad
+;
+
+447 ià(
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+) ==
+
+448
+ETHER_TYPE_IPv6
+) {
+
+450
+¤c_addr
+ += 3;
+
+451
+d¡_addr
+ += 3;
+
+455
+\8bmp1
+ = *
+¤c_addr
+ ^ *
+d¡_addr
+ ^ *
+¤c_pÜt
+ ^
+
+456 *
+d¡_pÜt
+ ^ *
+´ÙocÞ
+;
+
+457
+\8bmp2
+ = (
+\8bmp1
+ >> 24) ^ (temp1 >> 16) ^
+
+458 (
+\8bmp1
+ >> 8) ^\81emp1;
+
+459
+\8bmp3
+ = (
+\8bmp2
+ >> 4) ^ (temp2 & 0xf);
+
+462
+th»ad
+ =
+\8bmp3
+ %
+Áh»ads
+;
+
+464
+th»ad
+ =
+
+->
+\9a_pÜt_id
+ + (
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+ *
+
+465 (
+th»ad
+ + 1è-
+p_lßdb
+->
+p
+.
+n_pÜts_\9a
+);
+
+467 ià(
+LOADB_DEBUG
+ > 3) {
+
+468
+ `´\9atf
+("src_addr: %x dst_addr: %x src_port: %x "
+
+469 "d¡_pÜt: %x\85rÙocÞ: %x\n", *
+¤c_addr
+, *
+d¡_addr
+,
+
+470 *
+¤c_pÜt
+, *
+d¡_pÜt
+, *
+´ÙocÞ
+);
+
+472
+ `´\9atf
+("thread: %u\81emp1: %x\81emp2: %x\81emp3: %x\n",
+
+473
+th»ad
+,
+\8bmp1
+,
+\8bmp2
+,
+\8bmp3
+);
+
+476 \15
+th»ad
+;
+
+479
+ `´\9atf
+("Inv®id\82_lb_tu¶es: %d\n",
+p_lßdb
+->
+n_lb_tu¶es
+);
+
+483
+ }
+}
+
+485 \18
+\9al\9ae
+ \1e
+
+486
+ $pkt_wÜk_lßdb_key_´v
+(
+
+487 \19
+¹e_mbuf
+ *
+pkt
+,
+
+488
+__¹e_unu£d
+
+u\9at32_t
+
+pkt_num
+,
+
+489 \1e*
+¬g
+)
+
+491 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+492 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *)
+
+->
+p
+;
+
+493
+u\9at32_t
+
+ou\8dÜt_off£t
+ =
+p_lßdb
+->outport_offset;
+
+495 \19
+lb_pkt
+ *lb_pkt = (\19lb_pkt *)
+
+496
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+497
+MBUF_HDR_ROOM
+);
+
+498
+u\9at32_t
+ *
+out_pÜt
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+499
+ou\8dÜt_off£t
+);
+
+501 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+502 ià(
+LOADB_DEBUG
+ == 3)
+
+503
+ `´\9atf
+("Start\85kt_work_loadb_key\n");
+
+506 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´\9at_couÁ
+ < 10)) {
+
+507
+ `´\9at_pkt1
+(
+pkt
+);
+
+508
+lb_pkt_´\9at_couÁ
+++;
+
+509
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+511
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+),
+
+512
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+,
+ETH_TYPE_ARP
+,
+
+513
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+517 *
+out_pÜt
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+,
+¬g
+);
+
+519
+p_lßdb
+->
+»ûivedLBPktCouÁ
+++;
+
+521 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+522 ià(
+LOADB_DEBUG
+ == 3)
+
+523
+ `´\9atf
+("End\85kt_work_loadb_key\n");
+
+525
+ }
+}
+
+527 \18
+\9al\9ae
+ \1e
+
+528
+ $pkt_wÜk_lßdb_key_pub
+(
+
+529 \19
+¹e_mbuf
+ *
+pkt
+,
+
+530
+__¹e_unu£d
+
+u\9at32_t
+
+pkt_num
+,
+
+531 \1e*
+¬g
+)
+
+533 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+534 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *)
+
+->
+p
+;
+
+535
+u\9at32_t
+
+ou\8dÜt_off£t
+ =
+p_lßdb
+->outport_offset;
+
+537 \19
+lb_pkt
+ *lb_pkt = (\19lb_pkt *)
+
+538
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+
+539
+MBUF_HDR_ROOM
+);
+
+540
+u\9at32_t
+ *
+out_pÜt
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+541
+ou\8dÜt_off£t
+);
+
+543 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+544 ià(
+LOADB_DEBUG
+ == 3)
+
+545
+ `´\9atf
+("Start\85kt_work_loadb_key\n");
+
+548 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´\9at_couÁ
+ < 10)) {
+
+549
+ `´\9at_pkt1
+(
+pkt
+);
+
+550
+lb_pkt_´\9at_couÁ
+++;
+
+551
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+553
+ `¹e_be_to_ýu_16
+(
+lb_pkt
+->
+\91h
+.
+\91h\94_ty³
+),
+
+554
+lb_pkt
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+,
+ETH_TYPE_ARP
+,
+
+555
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+559 *
+out_pÜt
+ =
+ `ÿlcuÏ\8b_lb_th»ad_pub
+(
+pkt
+,
+¬g
+);
+
+561
+p_lßdb
+->
+»ûivedLBPktCouÁ
+++;
+
+562 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+563 ià(
+LOADB_DEBUG
+ == 3)
+
+564
+ `´\9atf
+("End\85kt_work_loadb_key\n");
+
+566
+ }
+}
+
+568 \18
+\9al\9ae
+ \1e
+
+569
+ $pkt4_wÜk_lßdb_key_´v
+(
+
+570 \19
+¹e_mbuf
+ **
+pkt
+,
+
+571
+__¹e_unu£d
+
+u\9at32_t
+
+pkt_num
+,
+
+572 \1e*
+¬g
+)
+
+574 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+575 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *)
+
+->
+p
+;
+
+576
+u\9at32_t
+
+ou\8dÜt_off£t
+ =
+p_lßdb
+->outport_offset;
+
+578
+u\9at32_t
+ *
+out_pÜt0
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+
+579
+ou\8dÜt_off£t
+);
+
+580
+u\9at32_t
+ *
+out_pÜt1
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+
+581
+ou\8dÜt_off£t
+);
+
+582
+u\9at32_t
+ *
+out_pÜt2
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+
+583
+ou\8dÜt_off£t
+);
+
+584
+u\9at32_t
+ *
+out_pÜt3
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3],
+
+585
+ou\8dÜt_off£t
+);
+
+587 \19
+lb_pkt
+ *
+lb_pkt0
+ = (\19lb_pkt *)
+
+588
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+
+589
+MBUF_HDR_ROOM
+);
+
+590 \19
+lb_pkt
+ *
+lb_pkt1
+ = (\19lb_pkt *)
+
+591
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+
+592
+MBUF_HDR_ROOM
+);
+
+593 \19
+lb_pkt
+ *
+lb_pkt2
+ = (\19lb_pkt *)
+
+594
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+
+595
+MBUF_HDR_ROOM
+);
+
+596 \19
+lb_pkt
+ *
+lb_pkt3
+ = (\19lb_pkt *)
+
+597
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+
+598
+MBUF_HDR_ROOM
+);
+
+600 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+601 ià(
+LOADB_DEBUG
+ == 3)
+
+602
+ `´\9atf
+("Start\85kt4_work_loadb_key\n");
+
+605 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´\9at_couÁ
+ < 10)) {
+
+606
+ `´\9at_pkt1
+(
+pkt
+[0]);
+
+607
+lb_pkt_´\9at_couÁ
+++;
+
+609
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+610
+ `¹e_be_to_ýu_16
+(
+lb_pkt0
+->
+\91h
+.
+\91h\94_ty³
+),
+
+611
+lb_pkt0
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+613
+ `´\9at_pkt1
+(
+pkt
+[1]);
+
+614
+lb_pkt_´\9at_couÁ
+++;
+
+616
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+617
+ `¹e_be_to_ýu_16
+(
+lb_pkt1
+->
+\91h
+.
+\91h\94_ty³
+),
+
+618
+lb_pkt1
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+620
+ `´\9at_pkt1
+(
+pkt
+[2]);
+
+621
+lb_pkt_´\9at_couÁ
+++;
+
+623
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+624
+ `¹e_be_to_ýu_16
+(
+lb_pkt2
+->
+\91h
+.
+\91h\94_ty³
+),
+
+625
+lb_pkt2
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+627
+ `´\9at_pkt1
+(
+pkt
+[3]);
+
+628
+lb_pkt_´\9at_couÁ
+++;
+
+630
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+631
+ `¹e_be_to_ýu_16
+(
+lb_pkt3
+->
+\91h
+.
+\91h\94_ty³
+),
+
+632
+lb_pkt3
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+634 *
+out_pÜt0
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+[0],
+¬g
+);
+
+635 *
+out_pÜt1
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+[1],
+¬g
+);
+
+636 *
+out_pÜt2
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+[2],
+¬g
+);
+
+637 *
+out_pÜt3
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+[3],
+¬g
+);
+
+639
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ += 4;
+
+641 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+642 ià(
+LOADB_DEBUG
+ == 3)
+
+643
+ `´\9atf
+("End\85kt4_work_loadb_key\n");
+
+646
+ }
+}
+
+648 \18
+\9al\9ae
+ \1e
+
+649
+ $pkt4_wÜk_lßdb_key_pub
+(
+
+650 \19
+¹e_mbuf
+ **
+pkt
+,
+
+651
+__¹e_unu£d
+
+u\9at32_t
+
+pkt_num
+,
+
+652 \1e*
+¬g
+)
+
+654 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+655 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *)
+
+->
+p
+;
+
+656
+u\9at32_t
+
+ou\8dÜt_off£t
+ =
+p_lßdb
+->outport_offset;
+
+658
+u\9at32_t
+ *
+out_pÜt0
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+
+659
+ou\8dÜt_off£t
+);
+
+660
+u\9at32_t
+ *
+out_pÜt1
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+
+661
+ou\8dÜt_off£t
+);
+
+662
+u\9at32_t
+ *
+out_pÜt2
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+
+663
+ou\8dÜt_off£t
+);
+
+664
+u\9at32_t
+ *
+out_pÜt3
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[3],
+
+665
+ou\8dÜt_off£t
+);
+
+667 \19
+lb_pkt
+ *
+lb_pkt0
+ = (\19lb_pkt *)
+
+668
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+
+669
+MBUF_HDR_ROOM
+);
+
+670 \19
+lb_pkt
+ *
+lb_pkt1
+ = (\19lb_pkt *)
+
+671
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+
+672
+MBUF_HDR_ROOM
+);
+
+673 \19
+lb_pkt
+ *
+lb_pkt2
+ = (\19lb_pkt *)
+
+674
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+
+675
+MBUF_HDR_ROOM
+);
+
+676 \19
+lb_pkt
+ *
+lb_pkt3
+ = (\19lb_pkt *)
+
+677
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+
+678
+MBUF_HDR_ROOM
+);
+
+680 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+681 ià(
+LOADB_DEBUG
+ == 3)
+
+682
+ `´\9atf
+("Start\85kt4_work_loadb_key\n");
+
+685 ià((
+LOADB_DEBUG
+ > 2è&& (
+lb_pkt_´\9at_couÁ
+ < 10)) {
+
+686
+ `´\9at_pkt1
+(
+pkt
+[0]);
+
+687
+lb_pkt_´\9at_couÁ
+++;
+
+689
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+690
+ `¹e_be_to_ýu_16
+(
+lb_pkt0
+->
+\91h
+.
+\91h\94_ty³
+),
+
+691
+lb_pkt0
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+693
+ `´\9at_pkt1
+(
+pkt
+[1]);
+
+694
+lb_pkt_´\9at_couÁ
+++;
+
+696
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+697
+ `¹e_be_to_ýu_16
+(
+lb_pkt1
+->
+\91h
+.
+\91h\94_ty³
+),
+
+698
+lb_pkt1
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+700
+ `´\9at_pkt1
+(
+pkt
+[2]);
+
+701
+lb_pkt_´\9at_couÁ
+++;
+
+703
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+704
+ `¹e_be_to_ýu_16
+(
+lb_pkt2
+->
+\91h
+.
+\91h\94_ty³
+),
+
+705
+lb_pkt2
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+707
+ `´\9at_pkt1
+(
+pkt
+[3]);
+
+708
+lb_pkt_´\9at_couÁ
+++;
+
+710
+ `´\9atf
+("\nEth Typ %x, Prot %x\n",
+
+711
+ `¹e_be_to_ýu_16
+(
+lb_pkt3
+->
+\91h
+.
+\91h\94_ty³
+),
+
+712
+lb_pkt3
+->
+\9dv4_pÜt
+.
+\9dv4
+.
+Ãxt_´Ùo_id
+);
+
+714 *
+out_pÜt0
+ =
+ `ÿlcuÏ\8b_lb_th»ad_´v
+(
+pkt
+[0],
+¬g
+);
+
+715 *
+out_pÜt1
+ =
+ `ÿlcuÏ\8b_lb_th»ad_pub
+(
+pkt
+[1],
+¬g
+);
+
+716 *
+out_pÜt2
+ =
+ `ÿlcuÏ\8b_lb_th»ad_pub
+(
+pkt
+[2],
+¬g
+);
+
+717 *
+out_pÜt3
+ =
+ `ÿlcuÏ\8b_lb_th»ad_pub
+(
+pkt
+[3],
+¬g
+);
+
+719
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ += 4;
+
+720 #ifdeà
+MY_LOADB_DBG_PRINT
+
+
+721 ià(
+LOADB_DEBUG
+ == 3)
+
+722
+ `´\9atf
+("End\85kt4_work_loadb_key\n");
+
+725
+ }
+}
+
+727
+PIPELINE_LOADB_KEY_PORT_IN_AH
+(
+pÜt_\9a_ah_lßdb_key_´v
+,
+
+728
+pkt_wÜk_lßdb_key_´v
+,
+
+729
+pkt4_wÜk_lßdb_key_´v
+);
+
+731
+PIPELINE_LOADB_KEY_PORT_IN_AH
+(
+pÜt_\9a_ah_lßdb_key_pub
+,
+
+732
+pkt_wÜk_lßdb_key_pub
+,
+
+733
+pkt4_wÜk_lßdb_key_pub
+);
+
+736
+ $p\9d\96\9ae_lßdb_·r£_¬gs
+(\19
+p\9d\96\9ae_lßdb
+ *
+p
+,
+
+737 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+)
+
+739
+u\9at32_t
+
+ou\8dÜt_off£t_´e£Á
+ = 0;
+
+740
+u\9at32_t
+
+n_vnf_th»ads_´e£Á
+ = 0;
+
+741
+u\9at32_t
+
+pktq_\9a_´v_´e£Á
+ = 0;
+
+742
+u\9at32_t
+
+´v_que_hªdËr_´e£Á
+ = 0;
+
+743
+u\9at32_t
+
+´v_to_pub_m_´e£Á
+ = 0;
+
+744
+u\9at8_t
+
+n_´v_\9a_pÜt
+ = 0;
+
+745
+u\9at32_t
+
+i
+;
+
+748
+p
+->
+n_lb_tu¶es
+ = 0;
+
+750 ià(
+LOADB_DEBUG
+ > 2)
+
+751
+ `´\9atf
+("LOADB\85ipeline_loadb_parse_args\85arams->n_args: %d\n",
+
+752
+·¿ms
+->
+n_¬gs
+);
+
+754 \ f
+i
+ = 0; i <
+·¿ms
+->
+n_¬gs
+; i++) {
+
+755 \ 5*
+¬g_Çme
+ =
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+756 \ 5*
+¬g_v®ue
+ =
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+758 ià(
+LOADB_DEBUG
+ > 2)
+
+759
+ `´\9atf
+("LOADB\87rgs[%d]: % %d, %s\n",
+i
+,
+¬g_Çme
+,
+
+760
+ `©oi
+(
+¬g_v®ue
+),\87rg_value);
+
+763 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "outport_offset") == 0) {
+
+764 ià(
+ou\8dÜt_off£t_´e£Á
+)
+
+766
+ou\8dÜt_off£t_´e£Á
+ = 1;
+
+768
+p
+->
+ou\8dÜt_off£t
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+769 ià(
+p
+->
+ou\8dÜt_off£t
+ <= 0) {
+
+770
+ `´\9atf
+("Outport_offset is invalid\n");
+
+773
+ `´\9atf
+("ou\8dÜt_off£t: 0x%x\n",
+p
+->
+ou\8dÜt_off£t
+);
+
+777 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "n_vnf_threads") == 0) {
+
+778 ià(
+n_vnf_th»ads_´e£Á
+)
+
+780
+n_vnf_th»ads_´e£Á
+ = 1;
+
+782
+p
+->
+n_vnf_th»ads
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+784
+tÙ®_vnf_th»ads
+ +ð
+p
+->
+n_vnf_th»ads
+;
+
+786 ià((
+p
+->
+n_vnf_th»ads
+ <= 0)
+
+787 || (
+tÙ®_vnf_th»ads
+ >
+MAX_VNF_THREADS
+)) {
+
+788
+ `´\9atf
+("n_vnf_threads : MIN->0 MAX->16\n");
+
+791
+ `´\9atf
+("n_vnf_th»ad : 0x%x\n",
+p
+->
+n_vnf_th»ads
+);
+
+792
+ `´\9atf
+("tÙ®_vnf_th»ads: 0x%x\n",
+tÙ®_vnf_th»ads
+);
+
+797 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "pktq_in_prv") == 0) {
+
+798 ià(
+pktq_\9a_´v_´e£Á
+) {
+
+799
+ `´\9atf
+("Duplicate\85ktq_in_prv ... "
+
+803
+pktq_\9a_´v_´e£Á
+ = 1;
+
+805 \12
+rxpÜt
+ = 0,
+j
+ = 0;
+
+806 \ 5
+phy_pÜt_num
+[8];
+
+807 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "RXQ");
+
+808 \1f
+tok\92
+) {
+
+809
+j
+ = 0;
+
+810 \1f(
+j
+ < 7è&& (
+tok\92
+[j] != '.')) {
+
+811
+phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+812
+j
+++;
+
+814
+phy_pÜt_num
+[
+j
+] = '\0';
+
+815
+rxpÜt
+ =
+ `©oi
+(
+phy_pÜt_num
+);
+
+816
+ `´\9atf
+("token: %s,\85hy_port_str: %s, "
+
+818
+tok\92
+,
+phy_pÜt_num
+,
+rxpÜt
+);
+
+819
+´v_\9a_pÜt_a
+[
+n_´v_\9a_pÜt
+++] =
+rxpÜt
+;
+
+821 ià(
+rxpÜt
+ < 0xff){
+
+822 if(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+823
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] = 1;
+
+825
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "RXQ");
+
+828 ià(
+n_´v_\9a_pÜt
+ == 0) {
+
+829
+ `´\9atf
+("VNF common\85arse\83rror - "
+
+838 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "prv_que_handler") == 0) {
+
+840 ià(
+´v_que_hªdËr_´e£Á
+) {
+
+841
+ `´\9atf
+("Duplicate\85ktq_in_prv ..\n\n");
+
+844
+´v_que_hªdËr_´e£Á
+ = 1;
+
+845
+n_´v_\9a_pÜt
+ = 0;
+
+847 \ 5*
+tok\92
+;
+
+848 \12
+rxpÜt
+ = 0;
+
+850
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+851
+tok\92
+ =
+ `¡¹ok
+(token, ")");
+
+852
+tok\92
+ =
+ `¡¹ok
+(token, ",");
+
+853
+ `´\9atf
+("*****\85rv_que_handler *****\n");
+
+854 ià(
+tok\92
+)
+
+855
+ `´\9atf
+("¡r\9ag i :%s\n",
+tok\92
+);
+
+857 ià(
+tok\92
+)
+
+859
+ `´\9atf
+("¡r\9ag i :%s\n",
+tok\92
+);
+
+862 \1f
+tok\92
+ !ð
+NULL
+) {
+
+863
+ `´\9atf
+(" %s\n",
+tok\92
+);
+
+864
+rxpÜt
+ =
+ `©oi
+(
+tok\92
+);
+
+865
+´v_que_pÜt_\9adex
+[
+n_´v_\9a_pÜt
+++] =
+rxpÜt
+;
+
+866 ià(
+rxpÜt
+ < 0xff){
+
+867 if(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+868
+\9a_pÜt_eg»ss_´v
+[
+rxpÜt
+] = 1;
+
+870
+p
+->
+n_´v_Q
+++;
+
+871
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, ",");
+
+874 ià(
+n_´v_\9a_pÜt
+ == 0) {
+
+875
+ `´\9atf
+("VNF common\85arse\83rr -\82o\85rv RX\85hy\85ort\n");
+
+882 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "prv_to_pub_map") == 0) {
+
+883 ià(
+´v_to_pub_m_´e£Á
+) {
+
+884
+ `´\9atf
+("Duplicated\85rv_to_pub_map ... "
+
+888
+´v_to_pub_m_´e£Á
+ = 1;
+
+890 \12
+rxpÜt
+ = 0,
+txpÜt
+ = 0,
+j
+ = 0,
+k
+ = 0;
+
+891 \ 5
+rx_phy_pÜt_num
+[5];
+
+892 \ 5
+tx_phy_pÜt_num
+[5];
+
+893 \ 5*
+tok\92
+ =
+ `¡¹ok
+(
+¬g_v®ue
+, "(");
+
+894 \1f
+tok\92
+) {
+
+895
+j
+ = 0;
+
+896 \1f(
+j
+ < 4è&& (
+tok\92
+[j] != ',')) {
+
+897
+rx_phy_pÜt_num
+[
+j
+] =
+tok\92
+[j];
+
+898
+j
+++;
+
+900
+rx_phy_pÜt_num
+[
+j
+] = '\0';
+
+901
+rxpÜt
+ =
+ `©oi
+(
+rx_phy_pÜt_num
+);
+
+903
+j
+++;
+
+904
+k
+ = 0;
+
+905 \1f(
+k
+ < 4è&& (
+tok\92
+[
+j
++k] != ')')) {
+
+906
+tx_phy_pÜt_num
+[
+k
+] =
+tok\92
+[
+j
++k];
+
+907
+k
+++;
+
+909
+tx_phy_pÜt_num
+[
+k
+] = '\0';
+
+910
+txpÜt
+ =
+ `©oi
+(
+tx_phy_pÜt_num
+);
+
+912
+ `´\9atf
+("token: %s,rx_phy_port_str: %s,\85hy_port_num "
+
+914
+tok\92
+,
+rx_phy_pÜt_num
+,
+rxpÜt
+,
+
+915
+tx_phy_pÜt_num
+,
+txpÜt
+);
+
+916 if(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+917 ià((
+rxpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+918 (
+txpÜt
+ >ð
+PIPELINE_MAX_PORT_IN
+) ||
+
+919 (
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+] != 1)) {
+
+920
+ `´\9atf
+("CG-NAPT\85arse\83rror - "
+
+922 "Tx %d, Rx D\9c %d\n",
+rxpÜt
+,
+txpÜt
+,
+
+923
+\9a_pÜt_d\9c_a
+[
+rxpÜt
+]);
+
+927 ià(
+rxpÜt
+ < 0xff){
+
+928 ià(
+rxpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+929
+´v_to_pub_m
+[
+rxpÜt
+] =
+txpÜt
+;
+
+931 ià(
+txpÜt
+ < 0xff)
+
+932 if(
+txpÜt
+ <
+PIPELINE_MAX_PORT_IN
+)
+
+933
+pub_to_´v_m
+[
+txpÜt
+] =
+rxpÜt
+;
+
+934
+tok\92
+ =
+ `¡¹ok
+(
+NULL
+, "(");
+
+940 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "n_lb_tuples") == 0) {
+
+941
+p
+->
+n_lb_tu¶es
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+942
+ `´\9atf
+("n_lb_tu¶es: 0x%x\n",
+p
+->
+n_lb_tu¶es
+);
+
+946 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "loadb_debug") == 0) {
+
+947
+LOADB_DEBUG
+ =
+ `©oi
+(
+¬g_v®ue
+);
+
+955 ià((
+n_vnf_th»ads_´e£Á
+ =ð0è|| (
+ou\8dÜt_off£t_´e£Á
+ == 0))
+
+960
+ }
+}
+
+962 \12
+ $check_lßdb_th»ad
+(
+
+963 \19
+p_·¿ms
+ *
+p
+,
+
+964 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+965
+\9at32_t
+
+n_vnf_th»ads
+)
+
+967
+u\9at32_t
+
+i
+;
+
+968 \12
+p\9d\96\9ae_num
+ = 0;
+
+969 \12
+couÁ
+ = 0;
+
+970 \12
+dÚt_ÿ»
+ =
+ `ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p\9d\96\9ae_num
+);
+
+971 ià(
+dÚt_ÿ»
+ != 1)
+
+974 \ f
+i
+ =
+p\9d\96\9ae_num
+ + 2; i <
+p
+->
+n_p\9d\96\9aes
+; i++) {
+
+975 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+976 ià(!
+ `¡ºcmp
+(
+p
+->
+ty³
+, "LOADB",
+ `¡¾\92
+(p->type)))
+
+978
+couÁ
+++;
+
+980 ià(
+n_vnf_th»ads
+ !ð
+couÁ
+)
+
+984
+ }
+}
+
+986 \18\1e*
+ $p\9d\96\9ae_lßdb_\9a\99
+(
+
+987 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+988
+__¹e_unu£d
+ \1e*
+¬g
+)
+
+992 \19
+p\9d\96\9ae
+ *
+p
+;
+
+993 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+;
+
+994
+u\9at32_t
+
+size
+,
+i
+,
+\9a_pÜts_¬g_size
+;
+
+997 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+998 (
+·¿ms
+->
+n_pÜts_\9a
+ =ð0è|| (·¿ms->
+n_pÜts_out
+ == 0))
+
+999 \15
+NULL
+;
+
+1002
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+p\9d\96\9ae_lßdb
+));
+
+1003
+p
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+1004
+p_lßdb
+ = (\19
+p\9d\96\9ae_lßdb
+ *)
+p
+;
+
+1005 ià(
+p
+ =ð
+NULL
+)
+
+1006 \15
+NULL
+;
+
+1008
+ `¡rýy
+(
+p
+->
+Çme
+,
+·¿ms
+->name);
+
+1009
+p
+->
+log_Ëv\96
+ =
+·¿ms
+->log_level;
+
+1011
+ `PLOG
+(
+p
+,
+HIGH
+, "LOADB");
+
+1013
+p_lßdb
+->
+n_vnf_th»ads
+ = 0;
+
+1014
+p_lßdb
+->
+ou\8dÜt_off£t
+ = 0;
+
+1015
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ = 0;
+
+1016
+p_lßdb
+->
+drݳdLBPktCouÁ
+ = 0;
+
+1017 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+1018
+p_lßdb
+->
+l\9aks_m
+[
+i
+] = 0xff;
+
+1020
+p_lßdb
+->
+p\9d\96\9ae_num
+ = 0xff;
+
+1021
+p_lßdb
+->
+n_´v_Q
+ = 0;
+
+1022
+p_lßdb
+->
+n_pub_Q
+ = 0;
+
+1026 ià(
+ `p\9d\96\9ae_lßdb_·r£_¬gs
+(
+p_lßdb
+,
+·¿ms
+))
+
+1027 \15
+NULL
+;
+
+1031 \19
+¹e_p\9d\96\9ae_·¿ms
+
+p\9d\96\9ae_·¿ms
+ = {
+
+1032 .
+Çme
+ = "LOADB",
+
+1033 .
+sock\91_id
+ =
+·¿ms
+->socket_id,
+
+1034 .
+off£t_pÜt_id
+ = 0,
+
+1037
+p
+->°ð
+ `¹e_p\9d\96\9ae_ü\97\8b
+(&
+p\9d\96\9ae_·¿ms
+);
+
+1038 ià(
+p
+->°=ð
+NULL
+) {
+
+1039
+ `¹e_ä\93
+(
+p
+);
+
+1040 \15
+NULL
+;
+
+1043
+ `´\9atf
+("Lßdb\85->°%p, sock\91 %d\n",
+p
+->p,
+
+1044
+p\9d\96\9ae_·¿ms
+.
+sock\91_id
+);
+
+1048
+\9a_pÜts_¬g_size
+ =
+
+1049
+ `RTE_CACHE_LINE_ROUNDUP
+((\17(\19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+))
+
+1050 * (
+·¿ms
+->
+n_pÜts_\9a
+));
+
+1051 \19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *
+
+ =
+
+1052 (\19
+p\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ *)
+
+1053
+ `¹e_zm®loc
+(
+NULL
+,
+
+1054
+\9a_pÜts_¬g_size
+,
+
+1055
+RTE_CACHE_LINE_SIZE
+);
+
+1056 ià(
+
+ =ð
+NULL
+)
+
+1057 \15
+NULL
+;
+
+1059
+ `´\9atf
+("\85o\9a\8b¸%p\n",
+
+);
+
+1062
+p
+->
+n_pÜts_\9a
+ =
+·¿ms
+->n_ports_in;
+
+1063 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+1065 (
+
+[
+i
+]).
+p
+ =
+p_lßdb
+;
+
+1066 (
+
+[
+i
+]).
+\9a_pÜt_id
+ = i;
+
+1068 \19
+¹e_p\9d\96\9ae_pÜt_\9a_·¿ms
+
+pÜt_·¿ms
+ = {
+
+1069 .
+Ýs
+ =
+
+1070
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+pÜt_\9a
+
+
+1071 [
+i
+]),
+
+1072 .
+¬g_ü\97\8b
+ =
+
+1073
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+pÜt_\9a
+
+
+1074 [
+i
+]),
+
+1076 .
+f_aùiÚ
+ =
+NULL
+,
+
+1077 .
+¬g_ah
+ = &(
+
+[
+i
+]),
+
+1078 .
+bur¡_size
+ =
+·¿ms
+->
+pÜt_\9a
+[
+i
+].burst_size,
+
+1082 ià(
+ `is_pÜt_\9adex_´iv\8b
+(
+i
+)) {
+
+1083
+ `´\9atf
+("LOADB %d\85Ü\88i Prv\n",
+i
+);
+
+1084
+pÜt_·¿ms
+.
+f_aùiÚ
+ =
+pÜt_\9a_ah_lßdb_key_´v
+;
+
+1086
+ `´\9atf
+("LOADB %d\85Ü\88i Pub\n",
+i
+);
+
+1087
+pÜt_·¿ms
+.
+f_aùiÚ
+ =
+pÜt_\9a_ah_lßdb_key_pub
+;
+
+1090 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_ü\97\8b
+(
+p
+->p,
+
+1091 &
+pÜt_·¿ms
+,
+
+1092 &
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+1094 ià(
+¡©us
+) {
+
+1095
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1096
+ `¹e_ä\93
+(
+p
+);
+
+1097 \15
+NULL
+;
+
+1102
+p_lßdb
+->
+n_pub_Q
+ =\85_lßdb->
+p
+.
+n_pÜts_\9a
+ -\85_lßdb->
+n_´v_Q
+;
+
+1103
+ `´\9atf
+("LOADB :\82_prv_Q - %d\82_pub_Q - %d\n",
+
+1104
+p_lßdb
+->
+n_´v_Q
+,\85_lßdb->
+n_pub_Q
+);
+
+1106 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+1107
+ `´\9atf
+("is_pÜt_\9adex_´iv\8b(%d): %d\n",
+i
+,
+
+1108
+ `is_pÜt_\9adex_´iv\8b
+(
+i
+));
+
+1109
+ `´\9atf
+("is_phy_pÜt_´iv\8b(%d): %d\n",
+i
+,
+
+1110
+ `is_phy_pÜt_´iv\8b
+(
+i
+));
+
+1111
+ `´\9atf
+("aùiÚ hªd˸oà%d:%p\n",
+i
+,
+
+1112
+p_lßdb
+->
+p
+.p->
+pÜts_\9a
+[
+i
+].
+f_aùiÚ
+);
+
+1116
+p
+->
+n_pÜts_out
+ =
+·¿ms
+->n_ports_out;
+
+1117 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_out
+; i++) {
+
+1118 \19
+¹e_p\9d\96\9ae_pÜt_out_·¿ms
+
+pÜt_·¿ms
+ = {
+
+1119 .
+Ýs
+ =
+
+1120
+ `p\9d\96\9ae_pÜt_out_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+pÜt_out
+
+
+1121 [
+i
+]),
+
+1122 .
+¬g_ü\97\8b
+ =
+
+1123
+ `p\9d\96\9ae_pÜt_out_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+pÜt_out
+
+
+1124 [
+i
+]),
+
+1125 .
+f_aùiÚ
+ =
+NULL
+,
+
+1126 .
+¬g_ah
+ =
+NULL
+,
+
+1129 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_out_ü\97\8b
+(
+p
+->p,
+
+1130 &
+pÜt_·¿ms
+,
+
+1131 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1133 ià(
+¡©us
+) {
+
+1134
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1135
+ `¹e_ä\93
+(
+p
+);
+
+1136 \15
+NULL
+;
+
+1139
+ `´\9atf
+("Ou\8dÜ\88p->pÜt_out_id[%d] %p\n",
+i
+,
+
+1140 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1143 \12
+p\9d\96\9ae_num
+ = 0;
+
+1144 \12
+dÚt_ÿ»
+ =
+ `ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p\9d\96\9ae_num
+);
+
+1145 ià(
+dÚt_ÿ»
+ != 1) {
+
+1146
+ `´\9atf
+("Unable\81o\84ead\85ipeline\82umber\n");
+
+1147 \15
+NULL
+;
+
+1149
+p_lßdb
+->
+p\9d\96\9ae_num
+ =\85ipeline_num;
+
+1151
+ `£t_ou\8dÜt_id
+(
+p\9d\96\9ae_num
+,
+p
+,
+lb_ou\8dÜt_id
+);
+
+1152
+ `£t_phy_ou\8dÜt_m
+(
+p\9d\96\9ae_num
+,
+p_lßdb
+->
+l\9aks_m
+);
+
+1154
+ `£t_pÜt_to_lßdb_m
+(
+p\9d\96\9ae_num
+);
+
+1156
+ `»gi¡\94_lßdb_to_¬p
+(
+p\9d\96\9ae_num
+,
+p
+,
+p
+);
+
+1158
+ `»gi¡\94_p\9d\96\9ae_Qs
+(
+p_lßdb
+->
+p\9d\96\9ae_num
+,
+p
+);
+
+1159
+ `£t_l\9ak_m
+(
+p_lßdb
+->
+p\9d\96\9ae_num
+,
+p
+,\85_lßdb->
+l\9aks_m
+);
+
+1163
+p
+->
+n_\8fbËs
+ = 1;
+
+1166 \19
+¹e_\8fbË_¬¿y_·¿ms
+
+\8fbË_¬¿y_·¿ms
+ = {
+
+1167 .
+n_\92\8c\9bs
+ =
+MAX_VNF_THREADS
+,
+
+1168 .
+off£t
+ =
+p_lßdb
+->
+ou\8dÜt_off£t
+,
+
+1170 \19
+¹e_p\9d\96\9ae_\8fbË_·¿ms
+
+\8fbË_·¿ms
+ = {
+
+1171 .
+Ýs
+ = &
+¹e_\8fbË_¬¿y_Ýs
+,
+
+1172 .
+¬g_ü\97\8b
+ = &
+\8fbË_¬¿y_·¿ms
+,
+
+1173 .
+f_aùiÚ_h\99
+ =
+NULL
+,
+
+1174 .
+f_aùiÚ_miss
+ =
+NULL
+,
+
+1175 .
+¬g_ah
+ =
+p_lßdb
+,
+
+1176 .
+aùiÚ_d©a_size
+ = 0,
+
+1179 \12
+¡©us
+;
+
+1181
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_ü\97\8b
+(
+p
+->p,
+
+1182 &
+\8fbË_·¿ms
+,
+
+1183 &
+p
+->
+\8fbË_id
+[0]);
+
+1185 ià(
+¡©us
+) {
+
+1186
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1187
+ `¹e_ä\93
+(
+p
+);
+
+1188 \15
+NULL
+;
+
+1193 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+1194 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_cÚÃù_to_\8fbË
+(
+
+1195
+p
+->p,
+
+1196
+p
+->
+pÜt_\9a_id
+[
+i
+],
+
+1197
+p
+->
+\8fbË_id
+[0]);
+
+1199 ià(
+¡©us
+) {
+
+1200
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1201
+ `¹e_ä\93
+(
+p
+);
+
+1202 \15
+NULL
+;
+
+1207 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+1208 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+->p,
+
+1209
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+1211 ià(
+¡©us
+) {
+
+1212
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1213
+ `¹e_ä\93
+(
+p
+);
+
+1214 \15
+NULL
+;
+
+1220 \ f
+i
+ = 0; i <
+MAX_VNF_THREADS
+; i++) {
+
+1221 \19
+¹e_\8fbË_¬¿y_key
+
+key
+ = {
+
+1222 .
+pos
+ =
+i
+,
+
+1224 \19
+lßdb_\8fbË_\92\8cy
+
+\92\8cy
+;
+
+1225
+\92\8cy
+.
+h\97d
+.
+aùiÚ
+ =
+RTE_PIPELINE_ACTION_PORT
+;
+
+1227 ià(
+i
+ <
+p
+->
+n_pÜts_out
+) {
+
+1228
+\92\8cy
+.
+h\97d
+.
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[
+i
+];
+
+1229
+ `´\9atf
+("\n\98%d,\85->pÜt_out_id[%d] %d",
+i
+, i,
+
+1230
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+1233
+\92\8cy
+.
+h\97d
+.
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[0];
+
+1234
+\92\8cy
+.
+h\97d
+.
+aùiÚ
+ =
+RTE_PIPELINE_ACTION_DROP
+;
+
+1237 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+\92\8cy_±r
+;
+
+1238 \12
+key_found
+,
+¡©us
+;
+
+1239
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_\92\8cy_add
+(
+
+1240
+p
+->p,
+
+1241
+p
+->
+\8fbË_id
+[0],
+
+1242 &
+key
+,
+
+1243 (\19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *)
+
+1244 &
+\92\8cy
+,
+
+1245 &
+key_found
+,
+
+1246 &
+\92\8cy_±r
+);
+
+1247 ià(
+¡©us
+) {
+
+1248
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1249
+ `¹e_ä\93
+(
+p
+);
+
+1250 \15
+NULL
+;
+
+1256 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+deçuÉ_\92\8cy
+ = {
+
+1257 .
+aùiÚ
+ =
+RTE_PIPELINE_ACTION_PORT
+,
+
+1259 .
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[0],
+
+1262 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+deçuÉ_\92\8cy_±r
+;
+
+1264 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_deçuÉ_\92\8cy_add
+(
+
+1265
+p
+->p,
+
+1266
+p
+->
+\8fbË_id
+[0],
+
+1267 &
+deçuÉ_\92\8cy
+,
+
+1268 &
+deçuÉ_\92\8cy_±r
+);
+
+1270 ià(
+¡©us
+) {
+
+1271
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1272
+ `¹e_ä\93
+(
+p
+);
+
+1273 \15
+NULL
+;
+
+1279 ià(
+ `¹e_p\9d\96\9ae_check
+(
+p
+->p) < 0) {
+
+1280
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1281
+ `¹e_ä\93
+(
+p
+);
+
+1282 \15
+NULL
+;
+
+1286
+p
+->
+n_msgq
+ =
+·¿ms
+->n_msgq;
+
+1287 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+1288
+p
+->
+msgq_\9a
+[
+i
+] =
+·¿ms
+->msgq_in[i];
+
+1289 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+1290
+p
+->
+msgq_out
+[
+i
+] =
+·¿ms
+->msgq_out[i];
+
+1293
+ `memýy
+(
+p
+->
+hªdËrs
+, handlers, \17(p->handlers));
+
+1294
+ `memýy
+(
+p_lßdb
+->
+cu¡om_hªdËrs
+,
+
+1295
+cu¡om_hªdËrs
+, \17(
+p_lßdb
+->custom_handlers));
+
+1297 \15
+p
+;
+
+1298
+ }
+}
+
+1300 \18\12
+ $p\9d\96\9ae_lßdb_ä\93
+(\1e*
+p\9d\96\9ae
+)
+
+1302 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+1305 ià(
+p
+ =ð
+NULL
+)
+
+1309
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+1310
+ `¹e_ä\93
+(
+p
+);
+
+1312
+ }
+}
+
+1315
+ $p\9d\96\9ae_lßdb_\8cack
+(\1e*
+p\9d\96\9ae
+,
+
+1316
+__¹e_unu£d
+
+u\9at32_t
+
+pÜt_\9a
+, u\9at32_\88*
+pÜt_out
+)
+
+1318 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+1321 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_\9a
+ >ðp->
+n_pÜts_\9a
+è|| (
+pÜt_out
+ == NULL))
+
+1324 ià(
+p
+->
+n_pÜts_\9a
+ == 1) {
+
+1325 *
+pÜt_out
+ = 0;
+
+1330
+ }
+}
+
+1332 \18\12
+ $p\9d\96\9ae_lßdb_tim\94
+(\1e*
+p\9d\96\9ae
+)
+
+1334 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+1336
+ `p\9d\96\9ae_msg_»q_hªdË
+(
+p
+);
+
+1337
+ `¹e_p\9d\96\9ae_æush
+(
+p
+->p);
+
+1340
+ }
+}
+
+1342 \1e*
+ $p\9d\96\9ae_lßdb_msg_»q_\92\8cy_dbg_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+)
+
+1344 \19
+p\9d\96\9ae_lßdb_\92\8cy_dbg_msg_r¥
+ *
+r¥
+ =
+msg
+;
+
+1345
+u\9at8_t
+ *
+Msg
+ =
+msg
+;
+
+1346 \19
+p\9d\96\9ae_lßdb
+ *
+p_lßdb
+ = (\19p\9d\96\9ae_lßdb *)
+p
+;
+
+1348
+r¥
+->
+¡©us
+ = 0;
+
+1350
+ `´\9atf
+("LoadB debug handler called with\87rgs %x %x, offset %d\n",
+
+1351
+Msg
+[
+LOADB_DBG_CMD_OFST
+], Msg[LOADB_DBG_CMD_OFST + 1],
+
+1352
+LOADB_DBG_CMD_OFST
+);
+
+1354 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_STATS_SHOW
+) {
+
+1355
+ `´\9atf
+("\nLßdB Pack\91 S\8fts: Reûived %"
+PRIu64
+ "\n",
+
+1356
+p_lßdb
+->
+»ûivedLBPktCouÁ
+);
+
+1357 \15
+r¥
+;
+
+1359 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_STATS_CLEAR
+) {
+
+1360
+ `´\9atf
+("\nLßdB Pack\91 S\8fts: Reûived %"
+PRIu64
+ "\n",
+
+1361
+p_lßdb
+->
+»ûivedLBPktCouÁ
+);
+
+1362
+p_lßdb
+->
+»ûivedLBPktCouÁ
+ = 0;
+
+1363 \15
+r¥
+;
+
+1366 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_DBG_LEVEL
+) {
+
+1367
+LOADB_DEBUG
+ =
+Msg
+[
+LOADB_DBG_CMD_OFST
+ + 1];
+
+1368
+ `´\9atf
+("LOADB Debug\86ev\96 s\91\81Ø%d\n",
+LOADB_DEBUG
+);
+
+1369
+lb_pkt_´\9at_couÁ
+ = 0;
+
+1370 \15
+r¥
+;
+
+1372 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_DBG_SHOW
+) {
+
+1373
+ `´\9atf
+("\nLßdB DBG Lev\96: %u\n",
+LOADB_DEBUG
+);
+
+1374 \15
+r¥
+;
+
+1376 ià(
+Msg
+[
+LOADB_DBG_CMD_OFST
+] =ð
+LOADB_DBG_CMD_IF_STATS
+) {
+
+1377
+ `´\9atf
+("\n");
+
+1378
+u\9at8_t
+
+i
+,
+j
+;
+
+1380 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+1381 \19
+¹e_\91h_¡©s
+
+¡©s
+;
+
+1382
+ `¹e_\91h_¡©s_g\91
+(
+p_lßdb
+->
+l\9aks_m
+[
+i
+], &
+¡©s
+);
+
+1383 ià(
+ `is_phy_pÜt_´iv\8b
+(
+i
+))
+
+1384
+ `´\9atf
+("Priv©\90PÜ\88S\8ft %d\n",
+i
+);
+
+1386
+ `´\9atf
+("PubliøPÜ\88S\8ft %d\n",
+i
+);
+
+1387
+ `´\9atf
+("\n\t\9dack\91 : %"
+PRIu64
+ "\n\topackets : %"
+
+1388
+PRIu64
+ "\n\tierrors : %" PRIu64
+
+1389 "\n\tۼܠ : %"
+PRIu64
+ "\n\trx_nombuf: %"
+
+1390
+PRIu64
+ "\n",
+¡©s
+.
+\9dack\91s
+, s\8fts.
+Ýack\91s
+,
+
+1391
+¡©s
+.
+\9b¼Üs
+, s\8fts.
+Û¼Üs
+, s\8fts.
+rx_nombuf
+);
+
+1392 ià(
+ `is_phy_pÜt_´iv\8b
+(
+i
+))
+
+1393
+ `´\9atf
+("Private Q: ");
+
+1395
+ `´\9atf
+("Public Q: ");
+
+1396 \ f
+j
+ = 0; j <
+RTE_ETHDEV_QUEUE_STAT_CNTRS
+; j++)
+
+1397
+ `´\9atf
+(" %"
+PRIu64
+ ", %" PRIu64 "|",
+
+1398
+¡©s
+.
+q_\9dack\91s
+[
+j
+],
+
+1399
+¡©s
+.
+q_Ýack\91s
+[
+j
+]);
+
+1401
+ `´\9atf
+("\n\n");
+
+1404 \15
+r¥
+;
+
+1407 \15
+r¥
+;
+
+1409
+ }
+}
+
+1411 \19
+p\9d\96\9ae_be_Ýs
+
+ gp\9d\96\9ae_lßdb_be_Ýs
+ = {
+
+1412 .
+f_\9a\99
+ =
+p\9d\96\9ae_lßdb_\9a\99
+,
+
+1413 .
+ gf_ä\93
+ =
+p\9d\96\9ae_lßdb_ä\93
+,
+
+1414 .
+ gf_run
+ =
+NULL
+,
+
+1415 .
+ gf_tim\94
+ =
+p\9d\96\9ae_lßdb_tim\94
+,
+
+1416 .
+ gf_\8cack
+ =
+p\9d\96\9ae_lßdb_\8cack
+,
+
+ @VIL/pipeline_loadb/pipeline_loadb_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_LOADB_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_LOADB_BE_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_\9d.h
+>
+
+21 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+22 \ 2
+ ~<p.h
+>
+
+24 \ 1
+ #MBUF_HDR_ROOM
+ 256
+
+ )
+
+25 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+26 \ 1
+ #IP_HDR_SRC_ADR_OFST
+ 12
+
+ )
+
+27 \ 1
+ #IP_HDR_DST_ADR_OFST
+ 16
+
+ )
+
+28 \ 1
+ #IP_HDR_PROTOCOL_OFST
+ 9
+
+ )
+
+29 \ 1
+ #IP_HDR_SIZE
+ 20
+
+ )
+
+30 \ 1
+ #IPV6_HDR_SRC_ADR_OFST
+ 8
+
+ )
+
+31 \ 1
+ #IPV6_HDR_DST_ADR_OFST
+ 24
+
+ )
+
+32 \ 1
+ #IPV6_HDR_PROTOCOL_OFST
+ 6
+
+ )
+
+33 \ 1
+ #IPV6_HDR_SIZE
+ 40
+
+ )
+
+34 \ 1
+ #IP_PROTOCOL_TCP
+ 6
+
+ )
+
+35 \ 1
+ #IP_PROTOCOL_UDP
+ 17
+
+ )
+
+36 \ 1
+ #PIPELINE_LOADB_KEY_MAX_SIZE
+ 64
+
+ )
+
+38 \ 1
+ #LOADB_ING_DIR
+ 0
+
+ )
+
+39 \ 1
+ #LOADB_EGR_DIR
+ 1
+
+ )
+
+41 \ 1
+ #LOADB_DBG_CMD_OFST
+ 8
+
+ )
+
+42 \ 1
+ #LOADB_DBG_CMD_STATS_SHOW
+ 0
+
+ )
+
+43 \ 1
+ #LOADB_DBG_CMD_STATS_CLEAR
+ 1
+
+ )
+
+44 \ 1
+ #LOADB_DBG_CMD_DBG_LEVEL
+ 2
+
+ )
+
+45 \ 1
+ #LOADB_DBG_CMD_DBG_SHOW
+ 3
+
+ )
+
+46 \ 1
+ #LOADB_DBG_CMD_IF_STATS
+ 4
+
+ )
+
+47 \ 1
+ #LOADB_DBG_CMD_OFST1
+ 10
+
+ )
+
+49 \ 1
+ #PIPELINE_LOADB_KEY_PORT_IN_AH
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+51
+ `f_ah
+( \
+
+52
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+, \
+
+53 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+54
+u\9at32_t
+
+n_pkts
+, \
+
+55 \1e*
+¬g
+) \
+
+57
+u\9at32_t
+
+i
+,
+j
+; \
+
+59 \ f
+j
+ = 0; j <
+n_pkts
+; j++) \
+
+60
+ `¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+61
+pkt_bur¡_út
+ = 0; \
+
+62 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+63
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i,
+¬g
+); \
+
+65 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+66
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+], i,
+¬g
+); \
+
+70 }
+
+ )
+
+72 \r
+u\9at8_t
+
+LOADB_DEBUG
+;
+
+73 \r
+u\9at8_t
+
+\9a_pÜt_eg»ss_´v
+[
+PIPELINE_MAX_PORT_IN
+];
+
+74 \r
+u\9at8_t
+
+´v_que_pÜt_\9adex
+[
+PIPELINE_MAX_PORT_IN
+];
+
+75 \r
+u\9at8_t
+
+\9a_pÜt_d\9c_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+77 \r
+u\9at8_t
+
+g\91_\9a_pÜt_d\9c
+(uint8_t);
+
+78 \r
+u\9at8_t
+
+is_pÜt_\9adex_´iv\8b
+(
+u\9at16_t
+);
+
+79 \r
+u\9at8_t
+
+is_phy_pÜt_´iv\8b
+(
+u\9at16_t
+);
+
+80 \r
+u\9at32_t
+
+g\91_´v_to_pub_pÜt
+(u\9at32_\88*
+\9d_addr
+,
+u\9at8_t
+
+ty³
+);
+
+81 \r
+u\9at32_t
+
+g\91_pub_to_´v_pÜt
+(u\9at32_\88*
+\9d_addr
+,
+u\9at8_t
+
+ty³
+);
+
+82 \r
+u\9at8_t
+
+´v_to_pub_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+90 \19
+ sp\9d\96\9ae_lßdb_\9a_pÜt_h_¬g
+ {
+
+91 \19
+p\9d\96\9ae_lßdb
+ *
+ mp
+;
+
+92
+u\9at8_t
+
+ m\9a_pÜt_id
+;
+
+98 \f
+ ep\9d\96\9ae_lßdb_msg_»q_ty³
+ {
+
+100
+ mPIPELINE_LOADB_MSG_REQ_ENTRY_DBG
+,
+
+101
+ mPIPELINE_LOADB_MSG_REQS
+
+
+107 \19
+ sp\9d\96\9ae_lßdb_\92\8cy_dbg_msg_»q
+ {
+
+108 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+109 \f
+p\9d\96\9ae_lßdb_msg_»q_ty³
+
+ msubty³
+;
+
+112
+u\9at8_t
+
+ md©a
+[5];
+
+115 \19
+ sp\9d\96\9ae_lßdb_\92\8cy_dbg_msg_r¥
+ {
+
+116 \12
+ m¡©us
+;
+
+117 \1e*
+ m\92\8cy_±r
+;
+
+120 \r\19
+p\9d\96\9ae_be_Ýs
+
+p\9d\96\9ae_lßdb_be_Ýs
+;
+
+121 \19
+ s\9dv4_hdr_pÜt
+ {
+
+122 \19
+\9dv4_hdr
+
+ m\9dv4
+;
+
+123
+u\9at16_t
+
+ m¤c_pÜt
+;
+
+124
+u\9at16_t
+
+ md¡_pÜt
+;
+
+126 }
+__©\8cibu\8b__
+((
+__·cked__
+));
+
+127 \19
+ s\9dv6_hdr_pÜt
+ {
+
+128 \19
+\9dv6_hdr
+
+ m\9dv6
+;
+
+129
+u\9at16_t
+
+ m¤c_pÜt
+;
+
+130
+u\9at16_t
+
+ md¡_pÜt
+;
+
+132 }
+__©\8cibu\8b__
+((
+__·cked__
+));
+
+134 \19
+ slb_pkt
+ {
+
+135 \19
+\91h\94_hdr
+
+ m\91h
+;
+
+137 \19
+\9dv4_hdr_pÜt
+
+ m\9dv4_pÜt
+;
+
+138 \19
+\9dv6_hdr_pÜt
+
+ m\9dv6_pÜt
+;
+
+140 }
+__©\8cibu\8b__
+((
+__·cked__
+));
+
+142
+u\9at8_t
+
+ÿlcuÏ\8b_lb_th»ad_´v
+(\19
+¹e_mbuf
+ *
+pkt
+, \1e*
+¬g
+);
+
+143
+u\9at8_t
+
+ÿlcuÏ\8b_lb_th»ad_pub
+(\19
+¹e_mbuf
+ *
+pkt
+, \1e*
+¬g
+);
+
+144 \12
+check_lßdb_th»ad
+(
+
+145 \19
+p_·¿ms
+ *
+p
+,
+
+146 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+147
+\9at32_t
+
+n_vnf_th»ads
+);
+
+ @VIL/pipeline_master/pipeline_master.c
+
+17 \ 2
+ ~"p\9d\96\9ae_ma¡\94.h
+"
+
+18 \ 2
+ ~"p\9d\96\9ae_ma¡\94_be.h
+"
+
+20 \18\19
+p\9d\96\9ae_ã_Ýs
+
+ gp\9d\96\9ae_ma¡\94_ã_Ýs
+ = {
+
+21 .
+f_\9a\99
+ =
+NULL
+,
+
+22 .
+ gf_ä\93
+ =
+NULL
+,
+
+23 .
+ gcmds
+ =
+NULL
+,
+
+26 \19
+p\9d\96\9ae_ty³
+
+ gp\9d\96\9ae_ma¡\94
+ = {
+
+27 .
+Çme
+ = "MASTER",
+
+28 .
+ gbe_Ýs
+ = &
+p\9d\96\9ae_ma¡\94_be_Ýs
+,
+
+29 .
+ gã_Ýs
+ = &
+p\9d\96\9ae_ma¡\94_ã_Ýs
+,
+
+ @VIL/pipeline_master/pipeline_master.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_MASTER_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_MASTER_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+22 \r\19
+p\9d\96\9ae_ty³
+
+p\9d\96\9ae_ma¡\94
+;
+
+ @VIL/pipeline_master/pipeline_master_be.c
+
+17 \ 2
+ ~<fú\8e.h
+>
+
+18 \ 2
+ ~<uni¡d.h
+>
+
+20 \ 2
+ ~<¹e_commÚ.h
+>
+
+21 \ 2
+ ~<¹e_m®loc.h
+>
+
+23 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+24 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+25 \ 2
+ ~<cmdl\9ae_sock\91.h
+>
+
+26 \ 2
+ ~<cmdl\9ae.h
+>
+
+28 \ 2
+ ~"p.h
+"
+
+29 \ 2
+ ~"p\9d\96\9ae_ma¡\94_be.h
+"
+
+31 \19
+ sp\9d\96\9ae_ma¡\94
+ {
+
+32 \19
+p_·¿ms
+ *
+ mp
+;
+
+33 \19
+cmdl\9ae
+ *
+ mþ
+;
+
+34 \12
+ msü\9dt_f\9ee_dÚe
+;
+
+35 }
+ g__¹e_ÿche_®igÃd
+;
+
+38
+ $p\9d\96\9ae_\9a\99
+(
+__¹e_unu£d
+ \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+, \1e*
+¬g
+)
+
+40 \19
+p_·¿ms
+ *
+p
+ = (\19p_·¿m *è
+¬g
+;
+
+41 \19
+p\9d\96\9ae_ma¡\94
+ *
+p
+;
+
+42
+u\9at32_t
+
+size
+;
+
+45 ià(
+p
+ =ð
+NULL
+)
+
+46 \15
+NULL
+;
+
+49
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+p\9d\96\9ae_ma¡\94
+));
+
+50
+p
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+51 ià(
+p
+ =ð
+NULL
+)
+
+52 \15
+NULL
+;
+
+55
+p
+->
+p
+ =\87pp;
+
+57
+p
+->
+þ
+ =
+ `cmdl\9ae_¡d\9a_Ãw
+(
+p
+->
+cmds
+, "pipeline> ");
+
+58 ià(
+p
+->
+þ
+ =ð
+NULL
+) {
+
+59
+ `¹e_ä\93
+(
+p
+);
+
+60 \15
+NULL
+;
+
+63
+p
+->
+sü\9dt_f\9ee_dÚe
+ = 0;
+
+64 ià(
+p
+->
+sü\9dt_f\9ee
+ =ð
+NULL
+)
+
+65
+p
+->
+sü\9dt_f\9ee_dÚe
+ = 1;
+
+67 \15 (\1e*è
+p
+;
+
+68
+ }
+}
+
+71
+ $p\9d\96\9ae_ä\93
+(\1e*
+p\9d\96\9ae
+)
+
+73 \19
+p\9d\96\9ae_ma¡\94
+ *
+p
+ = (\19p\9d\96\9ae_ma¡\94 *è
+p\9d\96\9ae
+;
+
+75 ià(
+p
+ =ð
+NULL
+)
+
+76 \15 -
+EINVAL
+;
+
+78
+ `cmdl\9ae_¡d\9a_ex\99
+(
+p
+->
+þ
+);
+
+79
+ `¹e_ä\93
+(
+p
+);
+
+82
+ }
+}
+
+85
+ $p\9d\96\9ae_run
+(\1e*
+p\9d\96\9ae
+)
+
+87 \19
+p\9d\96\9ae_ma¡\94
+ *
+p
+ = (\19p\9d\96\9ae_ma¡\94 *è
+p\9d\96\9ae
+;
+
+88 \12
+¡©us
+;
+
+90 ià(
+p
+->
+sü\9dt_f\9ee_dÚe
+ == 0) {
+
+91 \19
+p_·¿ms
+ *
+p
+ =
+p
+->app;
+
+92 \12
+fd
+ =
+ `ݒ
+(
+p
+->
+sü\9dt_f\9ee
+,
+O_RDONLY
+);
+
+94 ià(
+fd
+ < 0)
+
+95
+ `´\9atf
+("Cannot open CLI script file \"%s\"\n",
+
+96
+p
+->
+sü\9dt_f\9ee
+);
+
+98 \19
+cmdl\9ae
+ *
+f\9ee_þ
+;
+
+100
+ `´\9atf
+("Running CLI script file \"%s\" ...\n",
+
+101
+p
+->
+sü\9dt_f\9ee
+);
+
+102
+f\9ee_þ
+ =
+ `cmdl\9ae_Ãw
+(
+p
+->
+þ
+->
+ùx
+, "",
+fd
+, 1);
+
+103
+ `cmdl\9ae_\9a\8b¿ù
+(
+f\9ee_þ
+);
+
+104
+ `þo£
+(
+fd
+);
+
+107
+p
+->
+sü\9dt_f\9ee_dÚe
+ = 1;
+
+110
+¡©us
+ =
+ `cmdl\9ae_pÞl
+(
+p
+->
+þ
+);
+
+111 ià(
+¡©us
+ < 0)
+
+112
+ `¹e_·nic
+("CLI\85ÞÈ\94rÜ (%"
+PRId32
+ ")\n",
+¡©us
+);
+
+113 \vià(
+¡©us
+ =ð
+RDLINE_EXITED
+) {
+
+114
+ `cmdl\9ae_¡d\9a_ex\99
+(
+p
+->
+þ
+);
+
+115
+ `¹e_ex\99
+(0, "Bye!\n");
+
+119
+ }
+}
+
+122
+ $p\9d\96\9ae_tim\94
+(
+__¹e_unu£d
+ \1e*
+p\9d\96\9ae
+)
+
+124
+ `¹e_tim\94_mªage
+();
+
+126
+ }
+}
+
+128 \19
+p\9d\96\9ae_be_Ýs
+
+ gp\9d\96\9ae_ma¡\94_be_Ýs
+ = {
+
+129 .
+f_\9a\99
+ =
+p\9d\96\9ae_\9a\99
+,
+
+130 .
+ gf_ä\93
+ =
+p\9d\96\9ae_ä\93
+,
+
+131 .
+ gf_run
+ =
+p\9d\96\9ae_run
+,
+
+132 .
+ gf_tim\94
+ =
+p\9d\96\9ae_tim\94
+,
+
+133 .
+ gf_\8cack
+ =
+NULL
+,
+
+ @VIL/pipeline_master/pipeline_master_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_MASTER_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_MASTER_BE_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+22 \r\19
+p\9d\96\9ae_be_Ýs
+
+p\9d\96\9ae_ma¡\94_be_Ýs
+;
+
+ @VIL/pipeline_passthrough/pipeline_passthrough.c
+
+17 \ 2
+ ~"p\9d\96\9ae_·s¡hrough.h
+"
+
+18 \ 2
+ ~"p\9d\96\9ae_·s¡hrough_be.h
+"
+
+20 \18\19
+p\9d\96\9ae_ã_Ýs
+
+ gp\9d\96\9ae_·s¡hrough_ã_Ýs
+ = {
+
+21 .
+f_\9a\99
+ =
+NULL
+,
+
+22 .
+ gf_ä\93
+ =
+NULL
+,
+
+23 .
+ gcmds
+ =
+NULL
+,
+
+26 \19
+p\9d\96\9ae_ty³
+
+ gp\9d\96\9ae_·s¡hrough
+ = {
+
+27 .
+Çme
+ = "PASS-THROUGH",
+
+28 .
+ gbe_Ýs
+ = &
+p\9d\96\9ae_·s¡hrough_be_Ýs
+,
+
+29 .
+ gã_Ýs
+ = &
+p\9d\96\9ae_·s¡hrough_ã_Ýs
+,
+
+ @VIL/pipeline_passthrough/pipeline_passthrough.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_PASSTHROUGH_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_PASSTHROUGH_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+22 \r\19
+p\9d\96\9ae_ty³
+
+p\9d\96\9ae_·s¡hrough
+;
+
+ @VIL/pipeline_passthrough/pipeline_passthrough_be.c
+
+17 \ 2
+ ~<¡r\9ag.h
+>
+
+19 \ 2
+ ~<¹e_commÚ.h
+>
+
+20 \ 2
+ ~<¹e_m®loc.h
+>
+
+21 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+22 \ 2
+ ~<¹e_\8fbË_¡ub.h
+>
+
+23 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+24 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+26 \ 2
+ ~"p\9d\96\9ae_·s¡hrough_be.h
+"
+
+27 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+28 \ 2
+ ~"·r£r.h
+"
+
+29 \ 2
+ ~"hash_func.h
+"
+
+31 \19
+ sp\9d\96\9ae_·s¡hrough
+ {
+
+32 \19
+p\9d\96\9ae
+
+ mp
+;
+
+33 \19
+p\9d\96\9ae_·s¡hrough_·¿ms
+
+ m·¿ms
+;
+
+34
+¹e_\8fbË_hash_Ý_hash
+
+ mf_hash
+;
+
+35 }
+ g__¹e_ÿche_®igÃd
+;
+
+37 \18
+p\9d\96\9ae_msg_»q_hªdËr
+
+ ghªdËrs
+[] = {
+
+38 [
+PIPELINE_MSG_REQ_PING
+] =
+
+39
+p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+,
+
+40 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+41
+p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+,
+
+42 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+43
+p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+44 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+45
+p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+,
+
+46 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+47
+p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+,
+
+48 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+49
+p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+,
+
+50 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+51
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+,
+
+54 \18
+\9al\9ae
+
+__©\8cibu\8b__
+((
+®ways_\9al\9ae
+)) \1e
+
+55
+ $pkt_wÜk
+(
+
+56 \19
+¹e_mbuf
+ *
+pkt
+,
+
+57 \1e*
+¬g
+,
+
+58
+u\9at32_t
+
+dma_size
+,
+
+59
+u\9at32_t
+
+hash_\92abËd
+,
+
+60
+u\9at32_t
+
+lb_hash
+,
+
+61
+u\9at32_t
+
+pÜt_out_pow2
+)
+
+63 \19
+p\9d\96\9ae_·s¡hrough
+ *
+p
+ =
+¬g
+;
+
+65
+u\9at64_t
+ *
+dma_d¡
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+66
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+67
+u\9at64_t
+ *
+dma_¤c
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkt
+,
+
+68
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+69
+u\9at64_t
+ *
+dma_mask
+ = (u\9at64_\88*è
+p
+->
+·¿ms
+.
+dma_¤c_mask
+;
+
+70
+u\9at32_t
+ *
+dma_hash
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+
+71
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+72
+u\9at32_t
+
+i
+;
+
+75 \ f
+i
+ = 0; i < (
+dma_size
+ / 8); i++)
+
+76
+dma_d¡
+[
+i
+] =
+dma_¤c
+[i] &
+dma_mask
+[i];
+
+79 ià(
+hash_\92abËd
+) {
+
+80
+u\9at32_t
+
+hash
+ =
+p
+->
+ `f_hash
+(
+dma_d¡
+,
+dma_size
+, 0);
+
+81 *
+dma_hash
+ =
+hash
+;
+
+83 ià(
+lb_hash
+) {
+
+84
+u\9at32_t
+
+pÜt_out
+;
+
+86 ià(
+pÜt_out_pow2
+)
+
+87
+pÜt_out
+
+
+88 ð
+hash
+ & (
+p
+->p.
+n_pÜts_out
+ - 1);
+
+90
+pÜt_out
+
+
+91 ð
+hash
+ %
+p
+->p.
+n_pÜts_out
+;
+
+93
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p
+->p.p,
+
+94
+pÜt_out
+,
+pkt
+);
+
+97
+ }
+}
+
+99 \18
+\9al\9ae
+
+__©\8cibu\8b__
+((
+®ways_\9al\9ae
+)) \1e
+
+100
+ $pkt4_wÜk
+(
+
+101 \19
+¹e_mbuf
+ **
+pkts
+,
+
+102 \1e*
+¬g
+,
+
+103
+u\9at32_t
+
+dma_size
+,
+
+104
+u\9at32_t
+
+hash_\92abËd
+,
+
+105
+u\9at32_t
+
+lb_hash
+,
+
+106
+u\9at32_t
+
+pÜt_out_pow2
+)
+
+108 \19
+p\9d\96\9ae_·s¡hrough
+ *
+p
+ =
+¬g
+;
+
+110
+u\9at64_t
+ *
+dma_d¡0
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[0],
+
+111
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+112
+u\9at64_t
+ *
+dma_d¡1
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[1],
+
+113
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+114
+u\9at64_t
+ *
+dma_d¡2
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[2],
+
+115
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+116
+u\9at64_t
+ *
+dma_d¡3
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[3],
+
+117
+p
+->
+·¿ms
+.
+dma_d¡_off£t
+);
+
+119
+u\9at64_t
+ *
+dma_¤c0
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[0],
+
+120
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+121
+u\9at64_t
+ *
+dma_¤c1
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[1],
+
+122
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+123
+u\9at64_t
+ *
+dma_¤c2
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[2],
+
+124
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+125
+u\9at64_t
+ *
+dma_¤c3
+ =
+ `RTE_MBUF_METADATA_UINT64_PTR
+(
+pkts
+[3],
+
+126
+p
+->
+·¿ms
+.
+dma_¤c_off£t
+);
+
+128
+u\9at64_t
+ *
+dma_mask
+ = (u\9at64_\88*è
+p
+->
+·¿ms
+.
+dma_¤c_mask
+;
+
+130
+u\9at32_t
+ *
+dma_hash0
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[0],
+
+131
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+132
+u\9at32_t
+ *
+dma_hash1
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[1],
+
+133
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+134
+u\9at32_t
+ *
+dma_hash2
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[2],
+
+135
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+136
+u\9at32_t
+ *
+dma_hash3
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkts
+[3],
+
+137
+p
+->
+·¿ms
+.
+dma_hash_off£t
+);
+
+139
+u\9at32_t
+
+i
+;
+
+142 \ f
+i
+ = 0; i < (
+dma_size
+ / 8); i++) {
+
+143
+dma_d¡0
+[
+i
+] =
+dma_¤c0
+[i] &
+dma_mask
+[i];
+
+144
+dma_d¡1
+[
+i
+] =
+dma_¤c1
+[i] &
+dma_mask
+[i];
+
+145
+dma_d¡2
+[
+i
+] =
+dma_¤c2
+[i] &
+dma_mask
+[i];
+
+146
+dma_d¡3
+[
+i
+] =
+dma_¤c3
+[i] &
+dma_mask
+[i];
+
+150 ià(
+hash_\92abËd
+) {
+
+151
+u\9at32_t
+
+hash0
+ =
+p
+->
+ `f_hash
+(
+dma_d¡0
+,
+dma_size
+, 0);
+
+152
+u\9at32_t
+
+hash1
+ =
+p
+->
+ `f_hash
+(
+dma_d¡1
+,
+dma_size
+, 0);
+
+153
+u\9at32_t
+
+hash2
+ =
+p
+->
+ `f_hash
+(
+dma_d¡2
+,
+dma_size
+, 0);
+
+154
+u\9at32_t
+
+hash3
+ =
+p
+->
+ `f_hash
+(
+dma_d¡3
+,
+dma_size
+, 0);
+
+156 *
+dma_hash0
+ =
+hash0
+;
+
+157 *
+dma_hash1
+ =
+hash1
+;
+
+158 *
+dma_hash2
+ =
+hash2
+;
+
+159 *
+dma_hash3
+ =
+hash3
+;
+
+161 ià(
+lb_hash
+) {
+
+162
+u\9at32_t
+
+pÜt_out0
+,
+pÜt_out1
+,
+pÜt_out2
+,
+pÜt_out3
+;
+
+164 ià(
+pÜt_out_pow2
+) {
+
+165
+pÜt_out0
+
+
+166 ð
+hash0
+ & (
+p
+->p.
+n_pÜts_out
+ - 1);
+
+167
+pÜt_out1
+
+
+168 ð
+hash1
+ & (
+p
+->p.
+n_pÜts_out
+ - 1);
+
+169
+pÜt_out2
+
+
+170 ð
+hash2
+ & (
+p
+->p.
+n_pÜts_out
+ - 1);
+
+171
+pÜt_out3
+
+
+172 ð
+hash3
+ & (
+p
+->p.
+n_pÜts_out
+ - 1);
+
+174
+pÜt_out0
+
+
+175 ð
+hash0
+ %
+p
+->p.
+n_pÜts_out
+;
+
+176
+pÜt_out1
+
+
+177 ð
+hash1
+ %
+p
+->p.
+n_pÜts_out
+;
+
+178
+pÜt_out2
+
+
+179 ð
+hash2
+ %
+p
+->p.
+n_pÜts_out
+;
+
+180
+pÜt_out3
+
+
+181 ð
+hash3
+ %
+p
+->p.
+n_pÜts_out
+;
+
+183
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p
+->p.p,
+
+184
+pÜt_out0
+,
+pkts
+[0]);
+
+185
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p
+->p.p,
+
+186
+pÜt_out1
+,
+pkts
+[1]);
+
+187
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p
+->p.p,
+
+188
+pÜt_out2
+,
+pkts
+[2]);
+
+189
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p
+->p.p,
+
+190
+pÜt_out3
+,
+pkts
+[3]);
+
+193
+ }
+}
+
+195 \ 1
+ #PKT_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+196 \18
+\9al\9ae
+ \1e\
+
+197
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+198 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+ `pÜt_pow2
+( \
+
+199 \19
+¹e_mbuf
+ *
+pkt
+, \
+
+200 \1e*
+¬g
+) \
+
+202
+ `pkt_wÜk
+(
+pkt
+,
+¬g
+,
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+); \
+
+203 }
+
+ )
+
+205 \ 1
+ #PKT4_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+206 \18
+\9al\9ae
+ \1e\
+
+207
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+208 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+ `pÜt_pow2
+( \
+
+209 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+210 \1e*
+¬g
+) \
+
+212
+ `pkt4_wÜk
+(
+pkts
+,
+¬g
+,
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+); \
+
+213 }
+
+ )
+
+215 \ 1
+ #pÜt_\9a_ah
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+216
+ `PKT_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+217
+ `PKT4_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+218
+ `PIPELINE_PORT_IN_AH
+(
+pÜt_\9a_ah_size
+##
+dma_size
+##
+_hash
+ \
+
+219 ##
+hash_\92abËd
+##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+220
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+221 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+222
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+223 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+)
+
+ )
+
+226 \ 1
+ #pÜt_\9a_ah_lb
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+227
+ `PKT_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+228
+ `PKT4_WORK
+(
+dma_size
+,
+hash_\92abËd
+,
+lb_hash
+,
+pÜt_pow2
+) \
+
+229
+ `PIPELINE_PORT_IN_AH_HIJACK_ALL
+( \
+
+230
+pÜt_\9a_ah_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+231 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+232
+pkt_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+233 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+, \
+
+234
+pkt4_wÜk_size
+##
+dma_size
+##
+_hash
+##
+hash_\92abËd
+ \
+
+235 ##
+_lb
+##
+lb_hash
+##
+_pw
+##
+pÜt_pow2
+)
+
+ )
+
+239
+ $pÜt_\9a_ah
+(8, 0, 0, 0)
+
+240
+ $pÜt_\9a_ah
+(8, 1, 0, 0)
+
+241
+ $pÜt_\9a_ah_lb
+(8, 1, 1, 0)
+
+242
+ $pÜt_\9a_ah_lb
+(8, 1, 1, 1)
+
+244
+ $pÜt_\9a_ah
+(16, 0, 0, 0)
+
+245
+ $pÜt_\9a_ah
+(16, 1, 0, 0)
+
+246
+ $pÜt_\9a_ah_lb
+(16, 1, 1, 0)
+
+247
+ $pÜt_\9a_ah_lb
+(16, 1, 1, 1)
+
+249
+ $pÜt_\9a_ah
+(24, 0, 0, 0)
+
+250
+ $pÜt_\9a_ah
+(24, 1, 0, 0)
+
+251
+ $pÜt_\9a_ah_lb
+(24, 1, 1, 0)
+
+252
+ $pÜt_\9a_ah_lb
+(24, 1, 1, 1)
+
+254
+ $pÜt_\9a_ah
+(32, 0, 0, 0)
+
+255
+ $pÜt_\9a_ah
+(32, 1, 0, 0)
+
+256
+ $pÜt_\9a_ah_lb
+(32, 1, 1, 0)
+
+257
+ $pÜt_\9a_ah_lb
+(32, 1, 1, 1)
+
+259
+ $pÜt_\9a_ah
+(40, 0, 0, 0)
+
+260
+ $pÜt_\9a_ah
+(40, 1, 0, 0)
+
+261
+ $pÜt_\9a_ah_lb
+(40, 1, 1, 0)
+
+262
+ $pÜt_\9a_ah_lb
+(40, 1, 1, 1)
+
+264
+ $pÜt_\9a_ah
+(48, 0, 0, 0)
+
+265
+ $pÜt_\9a_ah
+(48, 1, 0, 0)
+
+266
+ $pÜt_\9a_ah_lb
+(48, 1, 1, 0)
+
+267
+ $pÜt_\9a_ah_lb
+(48, 1, 1, 1)
+
+269
+ $pÜt_\9a_ah
+(56, 0, 0, 0)
+
+270
+ $pÜt_\9a_ah
+(56, 1, 0, 0)
+
+271
+ $pÜt_\9a_ah_lb
+(56, 1, 1, 0)
+
+272
+ $pÜt_\9a_ah_lb
+(56, 1, 1, 1)
+
+274
+ $pÜt_\9a_ah
+(64, 0, 0, 0)
+
+275
+ $pÜt_\9a_ah
+(64, 1, 0, 0)
+
+276
+ $pÜt_\9a_ah_lb
+(64, 1, 1, 0)
+
+277
+ $pÜt_\9a_ah_lb
+(64, 1, 1, 1)
+
+279 \18
+¹e_p\9d\96\9ae_pÜt_\9a_aùiÚ_hªdËr
+
+
+280
+ $g\91_pÜt_\9a_ah
+(\19
+p\9d\96\9ae_·s¡hrough
+ *
+p
+)
+
+282 ià(
+p
+->
+·¿ms
+.
+dma_\92abËd
+ == 0)
+
+283 \15
+NULL
+;
+
+285 ià(
+p
+->
+·¿ms
+.
+dma_hash_\92abËd
+) {
+
+286 ià(
+p
+->
+·¿ms
+.
+lb_hash_\92abËd
+) {
+
+287 ià(
+ `¹e_is_pow\94_of_2
+(
+p
+->p.
+n_pÜts_out
+))
+
+288 \1a
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+290 \ 48: \15
+pÜt_\9a_ah_size8_hash1_lb1_pw1
+;
+
+291 \ 416: \15
+pÜt_\9a_ah_size16_hash1_lb1_pw1
+;
+
+292 \ 424: \15
+pÜt_\9a_ah_size24_hash1_lb1_pw1
+;
+
+293 \ 432: \15
+pÜt_\9a_ah_size32_hash1_lb1_pw1
+;
+
+294 \ 440: \15
+pÜt_\9a_ah_size40_hash1_lb1_pw1
+;
+
+295 \ 448: \15
+pÜt_\9a_ah_size48_hash1_lb1_pw1
+;
+
+296 \ 456: \15
+pÜt_\9a_ah_size56_hash1_lb1_pw1
+;
+
+297 \ 464: \15
+pÜt_\9a_ah_size64_hash1_lb1_pw1
+;
+
+298 \a: \15
+NULL
+;
+
+301 \1a
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+303 \ 48: \15
+pÜt_\9a_ah_size8_hash1_lb1_pw0
+;
+
+304 \ 416: \15
+pÜt_\9a_ah_size16_hash1_lb1_pw0
+;
+
+305 \ 424: \15
+pÜt_\9a_ah_size24_hash1_lb1_pw0
+;
+
+306 \ 432: \15
+pÜt_\9a_ah_size32_hash1_lb1_pw0
+;
+
+307 \ 440: \15
+pÜt_\9a_ah_size40_hash1_lb1_pw0
+;
+
+308 \ 448: \15
+pÜt_\9a_ah_size48_hash1_lb1_pw0
+;
+
+309 \ 456: \15
+pÜt_\9a_ah_size56_hash1_lb1_pw0
+;
+
+310 \ 464: \15
+pÜt_\9a_ah_size64_hash1_lb1_pw0
+;
+
+311 \a: \15
+NULL
+;
+
+314 \1a
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+316 \ 48: \15
+pÜt_\9a_ah_size8_hash1_lb0_pw0
+;
+
+317 \ 416: \15
+pÜt_\9a_ah_size16_hash1_lb0_pw0
+;
+
+318 \ 424: \15
+pÜt_\9a_ah_size24_hash1_lb0_pw0
+;
+
+319 \ 432: \15
+pÜt_\9a_ah_size32_hash1_lb0_pw0
+;
+
+320 \ 440: \15
+pÜt_\9a_ah_size40_hash1_lb0_pw0
+;
+
+321 \ 448: \15
+pÜt_\9a_ah_size48_hash1_lb0_pw0
+;
+
+322 \ 456: \15
+pÜt_\9a_ah_size56_hash1_lb0_pw0
+;
+
+323 \ 464: \15
+pÜt_\9a_ah_size64_hash1_lb0_pw0
+;
+
+324 \a: \15
+NULL
+;
+
+327 \1a
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+329 \ 48: \15
+pÜt_\9a_ah_size8_hash0_lb0_pw0
+;
+
+330 \ 416: \15
+pÜt_\9a_ah_size16_hash0_lb0_pw0
+;
+
+331 \ 424: \15
+pÜt_\9a_ah_size24_hash0_lb0_pw0
+;
+
+332 \ 432: \15
+pÜt_\9a_ah_size32_hash0_lb0_pw0
+;
+
+333 \ 440: \15
+pÜt_\9a_ah_size40_hash0_lb0_pw0
+;
+
+334 \ 448: \15
+pÜt_\9a_ah_size48_hash0_lb0_pw0
+;
+
+335 \ 456: \15
+pÜt_\9a_ah_size56_hash0_lb0_pw0
+;
+
+336 \ 464: \15
+pÜt_\9a_ah_size64_hash0_lb0_pw0
+;
+
+337 \a: \15
+NULL
+;
+
+339
+ }
+}
+
+342
+ $p\9d\96\9ae_·s¡hrough_·r£_¬gs
+(\19
+p\9d\96\9ae_·s¡hrough_·¿ms
+ *
+p
+,
+
+343 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+)
+
+345
+u\9at32_t
+
+dma_d¡_off£t_´e£Á
+ = 0;
+
+346
+u\9at32_t
+
+dma_¤c_off£t_´e£Á
+ = 0;
+
+347
+u\9at32_t
+
+dma_¤c_mask_´e£Á
+ = 0;
+
+348
+u\9at32_t
+
+dma_size_´e£Á
+ = 0;
+
+349
+u\9at32_t
+
+dma_hash_off£t_´e£Á
+ = 0;
+
+350
+u\9at32_t
+
+lb_´e£Á
+ = 0;
+
+351
+u\9at32_t
+
+i
+;
+
+352 \ 5
+dma_mask_¡r
+[
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+ * 2];
+
+355
+p
+->
+dma_\92abËd
+ = 0;
+
+356
+p
+->
+dma_hash_\92abËd
+ = 0;
+
+357
+p
+->
+lb_hash_\92abËd
+ = 0;
+
+358
+ `mem£t
+(
+p
+->
+dma_¤c_mask
+, 0xFF, \17(p->dma_src_mask));
+
+360 \ f
+i
+ = 0; i <
+·¿ms
+->
+n_¬gs
+; i++) {
+
+361 \ 5*
+¬g_Çme
+ =
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+362 \ 5*
+¬g_v®ue
+ =
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+365 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "dma_dst_offset") == 0) {
+
+366 \12
+¡©us
+;
+
+368
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+369
+dma_d¡_off£t_´e£Á
+ =ð0,
+·¿ms
+->
+Çme
+,
+
+370
+¬g_Çme
+);
+
+371
+dma_d¡_off£t_´e£Á
+ = 1;
+
+373
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+dma_d¡_off£t
+,
+
+374
+¬g_v®ue
+);
+
+375
+ `PIPELINE_PARSE_ERR_INV_VAL
+((
+¡©us
+ !ð-
+EINVAL
+),
+
+376
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+377
+ `PIPELINE_PARSE_ERR_OUT_RNG
+((
+¡©us
+ !ð-
+ERANGE
+),
+
+378
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+380
+p
+->
+dma_\92abËd
+ = 1;
+
+386 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "dma_src_offset") == 0) {
+
+387 \12
+¡©us
+;
+
+389
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+390
+dma_¤c_off£t_´e£Á
+ =ð0,
+·¿ms
+->
+Çme
+,
+
+391
+¬g_Çme
+);
+
+392
+dma_¤c_off£t_´e£Á
+ = 1;
+
+394
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+dma_¤c_off£t
+,
+
+395
+¬g_v®ue
+);
+
+396
+ `PIPELINE_PARSE_ERR_INV_VAL
+((
+¡©us
+ !ð-
+EINVAL
+),
+
+397
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+398
+ `PIPELINE_PARSE_ERR_OUT_RNG
+((
+¡©us
+ !ð-
+ERANGE
+),
+
+399
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+401
+p
+->
+dma_\92abËd
+ = 1;
+
+407 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "dma_size") == 0) {
+
+408 \12
+¡©us
+;
+
+410
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+411
+dma_size_´e£Á
+ =ð0,
+·¿ms
+->
+Çme
+,
+
+412
+¬g_Çme
+);
+
+413
+dma_size_´e£Á
+ = 1;
+
+415
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+dma_size
+,
+
+416
+¬g_v®ue
+);
+
+417
+ `PIPELINE_PARSE_ERR_INV_VAL
+(((
+¡©us
+ !ð-
+EINVAL
+) &&
+
+418 (
+p
+->
+dma_size
+ != 0) &&
+
+419 ((
+p
+->
+dma_size
+ % 8) == 0)),
+
+420
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+421
+ `PIPELINE_PARSE_ERR_OUT_RNG
+(((
+¡©us
+ !ð-
+ERANGE
+) &&
+
+422 (
+p
+->
+dma_size
+ <=
+
+423
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+)),
+
+424
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+426
+p
+->
+dma_\92abËd
+ = 1;
+
+432 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "dma_src_mask") == 0) {
+
+433 \12
+mask_¡r_Ën
+ =
+ `¡¾\92
+(
+¬g_v®ue
+);
+
+435
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+436
+dma_¤c_mask_´e£Á
+ == 0,
+
+437
+·¿ms
+->
+Çme
+,
+¬g_Çme
+);
+
+438
+dma_¤c_mask_´e£Á
+ = 1;
+
+440
+ `PIPELINE_ARG_CHECK
+((
+mask_¡r_Ën
+ <
+
+441 (
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+ * 2)),
+
+443 "\"%s\"\81oØlÚg",
+·¿ms
+->
+Çme
+,
+
+444
+¬g_Çme
+);
+
+446
+ `¢´\9atf
+(
+dma_mask_¡r
+,
+mask_¡r_Ën
+ + 1,
+
+447 "%s",
+¬g_v®ue
+);
+
+449
+p
+->
+dma_\92abËd
+ = 1;
+
+455 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "dma_hash_offset") == 0) {
+
+456 \12
+¡©us
+;
+
+458
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+459
+dma_hash_off£t_´e£Á
+ == 0,
+
+460
+·¿ms
+->
+Çme
+,
+¬g_Çme
+);
+
+461
+dma_hash_off£t_´e£Á
+ = 1;
+
+463
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+dma_hash_off£t
+,
+
+464
+¬g_v®ue
+);
+
+465
+ `PIPELINE_PARSE_ERR_INV_VAL
+((
+¡©us
+ !ð-
+EINVAL
+),
+
+466
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+467
+ `PIPELINE_PARSE_ERR_OUT_RNG
+((
+¡©us
+ !ð-
+ERANGE
+),
+
+468
+·¿ms
+->
+Çme
+,
+¬g_Çme
+,
+¬g_v®ue
+);
+
+470
+p
+->
+dma_hash_\92abËd
+ = 1;
+
+471
+p
+->
+dma_\92abËd
+ = 1;
+
+477 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "lb") == 0) {
+
+478
+ `PIPELINE_PARSE_ERR_DUPLICATE
+(
+
+479
+lb_´e£Á
+ == 0,
+
+480
+·¿ms
+->
+Çme
+,
+¬g_Çme
+);
+
+481
+lb_´e£Á
+ = 1;
+
+483 ià((
+ `¡rcmp
+(
+¬g_v®ue
+, "hash") == 0) ||
+
+484 (
+ `¡rcmp
+(
+¬g_v®ue
+, "HASH") == 0))
+
+485
+p
+->
+lb_hash_\92abËd
+ = 1;
+
+487
+ `PIPELINE_PARSE_ERR_INV_VAL
+(0,
+
+488
+·¿ms
+->
+Çme
+,
+
+489
+¬g_Çme
+,
+
+490
+¬g_v®ue
+);
+
+496
+ `PIPELINE_PARSE_ERR_INV_ENT
+(0,
+·¿ms
+->
+Çme
+,
+¬g_Çme
+);
+
+500
+ `PIPELINE_ARG_CHECK
+((
+dma_d¡_off£t_´e£Á
+ =ð
+p
+->
+dma_\92abËd
+),
+
+502 "\"dma_d¡_off£t\"",
+·¿ms
+->
+Çme
+);
+
+503
+ `PIPELINE_ARG_CHECK
+((
+dma_¤c_off£t_´e£Á
+ =ð
+p
+->
+dma_\92abËd
+),
+
+505 "\"dma_¤c_off£t\"",
+·¿ms
+->
+Çme
+);
+
+506
+ `PIPELINE_ARG_CHECK
+((
+dma_size_´e£Á
+ =ð
+p
+->
+dma_\92abËd
+),
+
+508 "\"dma_size\"",
+·¿ms
+->
+Çme
+);
+
+509
+ `PIPELINE_ARG_CHECK
+((
+dma_hash_off£t_´e£Á
+ =ð
+p
+->
+dma_\92abËd
+),
+
+511 "\"dma_hash_off£t\"",
+·¿ms
+->
+Çme
+);
+
+512
+ `PIPELINE_ARG_CHECK
+((
+p
+->
+lb_hash_\92abËd
+ <ðp->
+dma_hash_\92abËd
+),
+
+514 "\"dma_hash_off£t\"",
+·¿ms
+->
+Çme
+);
+
+516 ià(
+dma_¤c_mask_´e£Á
+) {
+
+517
+u\9at32_t
+
+dma_size
+ =
+p
+->dma_size;
+
+518 \12
+¡©us
+;
+
+520
+ `PIPELINE_ARG_CHECK
+((
+ `¡¾\92
+(
+dma_mask_¡r
+) ==
+
+521 (
+dma_size
+ * 2)), "Parse\83rror in section "
+
+523 "dig\99s",
+·¿ms
+->
+Çme
+, (
+dma_size
+ * 2));
+
+525
+¡©us
+ =
+ `·r£_hex_¡r\9ag
+(
+dma_mask_¡r
+,
+p
+->
+dma_¤c_mask
+,
+
+526 &
+p
+->
+dma_size
+);
+
+528
+ `PIPELINE_PARSE_ERR_INV_VAL
+(((
+¡©us
+ == 0) &&
+
+529 (
+dma_size
+ =ð
+p
+->dma_size)),
+·¿ms
+->
+Çme
+,
+
+530 "dma_¤c_mask",
+dma_mask_¡r
+);
+
+534
+ }
+}
+
+537 \18
+¹e_\8fbË_hash_Ý_hash
+
+
+538
+ $g\91_hash_funùiÚ
+(\19
+p\9d\96\9ae_·s¡hrough
+ *
+p
+)
+
+540 \1a
+p
+->
+·¿ms
+.
+dma_size
+) {
+
+542 \ 48: \15
+hash_deçuÉ_key8
+;
+
+543 \ 416: \15
+hash_deçuÉ_key16
+;
+
+544 \ 424: \15
+hash_deçuÉ_key24
+;
+
+545 \ 432: \15
+hash_deçuÉ_key32
+;
+
+546 \ 440: \15
+hash_deçuÉ_key40
+;
+
+547 \ 448: \15
+hash_deçuÉ_key48
+;
+
+548 \ 456: \15
+hash_deçuÉ_key56
+;
+
+549 \ 464: \15
+hash_deçuÉ_key64
+;
+
+550 \a: \15
+NULL
+;
+
+552
+ }
+}
+
+555
+ $p\9d\96\9ae_·s¡hrough_\9a\99
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+556
+__¹e_unu£d
+ \1e*
+¬g
+)
+
+558 \19
+p\9d\96\9ae
+ *
+p
+;
+
+559 \19
+p\9d\96\9ae_·s¡hrough
+ *
+p_±
+;
+
+560
+u\9at32_t
+
+size
+,
+i
+;
+
+563 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+564 (
+·¿ms
+->
+n_pÜts_\9a
+ == 0) ||
+
+565 (
+·¿ms
+->
+n_pÜts_out
+ == 0) ||
+
+566 (
+·¿ms
+->
+n_pÜts_\9a
+ <\85¬ams->
+n_pÜts_out
+) ||
+
+567 (
+·¿ms
+->
+n_pÜts_\9a
+ %\85¬ams->
+n_pÜts_out
+))
+
+568 \15
+NULL
+;
+
+571
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+p\9d\96\9ae_·s¡hrough
+));
+
+572
+p
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+573
+p_±
+ = (\19
+p\9d\96\9ae_·s¡hrough
+ *è
+p
+;
+
+574 ià(
+p
+ =ð
+NULL
+)
+
+575 \15
+NULL
+;
+
+577
+ `¡rýy
+(
+p
+->
+Çme
+,
+·¿ms
+->name);
+
+578
+p
+->
+log_Ëv\96
+ =
+·¿ms
+->log_level;
+
+580
+ `PLOG
+(
+p
+,
+HIGH
+, "Pass-through");
+
+583 ià(
+ `p\9d\96\9ae_·s¡hrough_·r£_¬gs
+(&
+p_±
+->
+·¿ms
+,\85arams))
+
+584 \15
+NULL
+;
+
+585
+p_±
+->
+f_hash
+ =
+ `g\91_hash_funùiÚ
+(p_pt);
+
+589 \19
+¹e_p\9d\96\9ae_·¿ms
+
+p\9d\96\9ae_·¿ms
+ = {
+
+590 .
+Çme
+ = "PASS-THROUGH",
+
+591 .
+sock\91_id
+ =
+·¿ms
+->socket_id,
+
+592 .
+off£t_pÜt_id
+ = 0,
+
+595
+p
+->°ð
+ `¹e_p\9d\96\9ae_ü\97\8b
+(&
+p\9d\96\9ae_·¿ms
+);
+
+596 ià(
+p
+->°=ð
+NULL
+) {
+
+597
+ `¹e_ä\93
+(
+p
+);
+
+598 \15
+NULL
+;
+
+602
+p
+->
+n_pÜts_\9a
+ =
+·¿ms
+->n_ports_in;
+
+603
+p
+->
+n_pÜts_out
+ =
+·¿ms
+->n_ports_out;
+
+604
+p
+->
+n_\8fbËs
+ =\85->
+n_pÜts_\9a
+;
+
+607 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+608 \19
+¹e_p\9d\96\9ae_pÜt_\9a_·¿ms
+
+pÜt_·¿ms
+ = {
+
+609 .
+Ýs
+ =
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_g\91_Ýs
+(
+
+610 &
+·¿ms
+->
+pÜt_\9a
+[
+i
+]),
+
+611 .
+¬g_ü\97\8b
+ =
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_cÚv\94t
+(
+
+612 &
+·¿ms
+->
+pÜt_\9a
+[
+i
+]),
+
+613 .
+f_aùiÚ
+ =
+ `g\91_pÜt_\9a_ah
+(
+p_±
+),
+
+614 .
+¬g_ah
+ =
+p_±
+,
+
+615 .
+bur¡_size
+ =
+·¿ms
+->
+pÜt_\9a
+[
+i
+].burst_size,
+
+618 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_ü\97\8b
+(
+p
+->p,
+
+619 &
+pÜt_·¿ms
+,
+
+620 &
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+622 ià(
+¡©us
+) {
+
+623
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+624
+ `¹e_ä\93
+(
+p
+);
+
+625 \15
+NULL
+;
+
+630 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_out
+; i++) {
+
+631 \19
+¹e_p\9d\96\9ae_pÜt_out_·¿ms
+
+pÜt_·¿ms
+ = {
+
+632 .
+Ýs
+ =
+ `p\9d\96\9ae_pÜt_out_·¿ms_g\91_Ýs
+(
+
+633 &
+·¿ms
+->
+pÜt_out
+[
+i
+]),
+
+634 .
+¬g_ü\97\8b
+ =
+ `p\9d\96\9ae_pÜt_out_·¿ms_cÚv\94t
+(
+
+635 &
+·¿ms
+->
+pÜt_out
+[
+i
+]),
+
+636 .
+f_aùiÚ
+ =
+NULL
+,
+
+637 .
+¬g_ah
+ =
+NULL
+,
+
+640 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_out_ü\97\8b
+(
+p
+->p,
+
+641 &
+pÜt_·¿ms
+,
+
+642 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+644 ià(
+¡©us
+) {
+
+645
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+646
+ `¹e_ä\93
+(
+p
+);
+
+647 \15
+NULL
+;
+
+652 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+653 \19
+¹e_p\9d\96\9ae_\8fbË_·¿ms
+
+\8fbË_·¿ms
+ = {
+
+654 .
+Ýs
+ = &
+¹e_\8fbË_¡ub_Ýs
+,
+
+655 .
+¬g_ü\97\8b
+ =
+NULL
+,
+
+656 .
+f_aùiÚ_h\99
+ =
+NULL
+,
+
+657 .
+f_aùiÚ_miss
+ =
+NULL
+,
+
+658 .
+¬g_ah
+ =
+NULL
+,
+
+659 .
+aùiÚ_d©a_size
+ = 0,
+
+662 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_ü\97\8b
+(
+p
+->p,
+
+663 &
+\8fbË_·¿ms
+,
+
+664 &
+p
+->
+\8fbË_id
+[
+i
+]);
+
+666 ià(
+¡©us
+) {
+
+667
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+668
+ `¹e_ä\93
+(
+p
+);
+
+669 \15
+NULL
+;
+
+674 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+675 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_cÚÃù_to_\8fbË
+(
+p
+->p,
+
+676
+p
+->
+pÜt_\9a_id
+[
+i
+],
+
+677
+p
+->
+\8fbË_id
+[
+i
+]);
+
+679 ià(
+¡©us
+) {
+
+680
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+681
+ `¹e_ä\93
+(
+p
+);
+
+682 \15
+NULL
+;
+
+687 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+688 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+deçuÉ_\92\8cy
+ = {
+
+689 .
+aùiÚ
+ =
+RTE_PIPELINE_ACTION_PORT
+,
+
+690 {.
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[
+
+691
+i
+ / (
+p
+->
+n_pÜts_\9a
+ /\85->
+n_pÜts_out
+)]},
+
+694 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+deçuÉ_\92\8cy_±r
+;
+
+696 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_deçuÉ_\92\8cy_add
+(
+p
+->p,
+
+697
+p
+->
+\8fbË_id
+[
+i
+],
+
+698 &
+deçuÉ_\92\8cy
+,
+
+699 &
+deçuÉ_\92\8cy_±r
+);
+
+701 ià(
+¡©us
+) {
+
+702
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+703
+ `¹e_ä\93
+(
+p
+);
+
+704 \15
+NULL
+;
+
+709 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+710 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+->p,
+
+711
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+713 ià(
+¡©us
+) {
+
+714
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+715
+ `¹e_ä\93
+(
+p
+);
+
+716 \15
+NULL
+;
+
+721 ià(
+ `¹e_p\9d\96\9ae_check
+(
+p
+->p) < 0) {
+
+722
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+723
+ `¹e_ä\93
+(
+p
+);
+
+724 \15
+NULL
+;
+
+728
+p
+->
+n_msgq
+ =
+·¿ms
+->n_msgq;
+
+729 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+730
+p
+->
+msgq_\9a
+[
+i
+] =
+·¿ms
+->msgq_in[i];
+
+731 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+732
+p
+->
+msgq_out
+[
+i
+] =
+·¿ms
+->msgq_out[i];
+
+735
+ `memýy
+(
+p
+->
+hªdËrs
+, handlers, \17(p->handlers));
+
+737 \15
+p
+;
+
+738
+ }
+}
+
+741
+ $p\9d\96\9ae_·s¡hrough_ä\93
+(\1e*
+p\9d\96\9ae
+)
+
+743 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)\85ipeline;
+
+746 ià(
+p
+ =ð
+NULL
+)
+
+750
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+751
+ `¹e_ä\93
+(
+p
+);
+
+753
+ }
+}
+
+756
+ $p\9d\96\9ae_·s¡hrough_tim\94
+(\1e*
+p\9d\96\9ae
+)
+
+758 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)\85ipeline;
+
+760
+ `p\9d\96\9ae_msg_»q_hªdË
+(
+p
+);
+
+761
+ `¹e_p\9d\96\9ae_æush
+(
+p
+->p);
+
+764
+ }
+}
+
+767
+ $p\9d\96\9ae_·s¡hrough_\8cack
+(\1e*
+p\9d\96\9ae
+,
+u\9at32_t
+
+pÜt_\9a
+, u\9at32_\88*
+pÜt_out
+)
+
+769 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)\85ipeline;
+
+772 ià((
+p
+ =ð
+NULL
+) ||
+
+773 (
+pÜt_\9a
+ >ð
+p
+->
+n_pÜts_\9a
+) ||
+
+774 (
+pÜt_out
+ =ð
+NULL
+))
+
+777 *
+pÜt_out
+ =
+pÜt_\9a
+ /
+p
+->
+n_pÜts_\9a
+;
+
+779
+ }
+}
+
+781 \19
+p\9d\96\9ae_be_Ýs
+
+ gp\9d\96\9ae_·s¡hrough_be_Ýs
+ = {
+
+782 .
+f_\9a\99
+ =
+p\9d\96\9ae_·s¡hrough_\9a\99
+,
+
+783 .
+ gf_ä\93
+ =
+p\9d\96\9ae_·s¡hrough_ä\93
+,
+
+784 .
+ gf_run
+ =
+NULL
+,
+
+785 .
+ gf_tim\94
+ =
+p\9d\96\9ae_·s¡hrough_tim\94
+,
+
+786 .
+ gf_\8cack
+ =
+p\9d\96\9ae_·s¡hrough_\8cack
+,
+
+ @VIL/pipeline_passthrough/pipeline_passthrough_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+22 \ 1
+ #PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+ 64
+
+ )
+
+24 \19
+ sp\9d\96\9ae_·s¡hrough_·¿ms
+ {
+
+25
+u\9at32_t
+
+ mdma_\92abËd
+;
+
+26
+u\9at32_t
+
+ mdma_d¡_off£t
+;
+
+27
+u\9at32_t
+
+ mdma_¤c_off£t
+;
+
+28
+u\9at8_t
+
+ mdma_¤c_mask
+[
+PIPELINE_PASSTHROUGH_DMA_SIZE_MAX
+];
+
+29
+u\9at32_t
+
+ mdma_size
+;
+
+31
+u\9at32_t
+
+ mdma_hash_\92abËd
+;
+
+32
+u\9at32_t
+
+ mdma_hash_off£t
+;
+
+33
+u\9at32_t
+
+ mlb_hash_\92abËd
+;
+
+37
+p\9d\96\9ae_·s¡hrough_·r£_¬gs
+(\19
+p\9d\96\9ae_·s¡hrough_·¿ms
+ *
+p
+,
+
+38 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+);
+
+40 \r\19
+p\9d\96\9ae_be_Ýs
+
+p\9d\96\9ae_·s¡hrough_be_Ýs
+;
+
+ @VIL/pipeline_txrx/pipeline_txrx.c
+
+17 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+18 \ 2
+ ~<cmdl\9ae_·r£_num.h
+>
+
+19 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+20 \ 2
+ ~<cmdl\9ae_·r£_\9daddr.h
+>
+
+21 \ 2
+ ~<cmdl\9ae_·r£_\91h\94addr.h
+>
+
+23 \ 2
+ ~"p.h
+"
+
+24 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+25 \ 2
+ ~"p\9d\96\9ae_txrx.h
+"
+
+26 \ 2
+ ~"vnf_commÚ.h
+"
+
+28 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+31
+ $p_p\9d\96\9ae_txrx_\92\8cy_dbg
+(\19
+p_·¿ms
+ *
+p
+,
+
+32
+u\9at32_t
+
+p\9d\96\9ae_id
+,
+u\9at8_t
+ *
+msg
+)
+
+34 \19
+p\9d\96\9ae_txrx_\92\8cy_dbg_msg_»q
+ *
+»q
+;
+
+35 \19
+p\9d\96\9ae_txrx_\92\8cy_dbg_msg_r¥
+ *
+r¥
+;
+
+38 ià(
+p
+ =ð
+NULL
+)
+
+42
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+43 ià(
+»q
+ =ð
+NULL
+)
+
+46
+»q
+->
+ty³
+ =
+PIPELINE_MSG_REQ_CUSTOM
+;
+
+47
+»q
+->
+subty³
+ =
+PIPELINE_TXRX_MSG_REQ_ENTRY_DBG
+;
+
+48
+»q
+->
+d©a
+[0] =
+msg
+[0];
+
+49
+»q
+->
+d©a
+[1] =
+msg
+[1];
+
+51
+r¥
+ =
+ `p_msg_£nd_»cv
+(
+p
+,
+p\9d\96\9ae_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+52 ià(
+r¥
+ =ð
+NULL
+)
+
+56 ià(
+r¥
+->
+¡©us
+) {
+
+57
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+58
+ `´\9atf
+("E¼Ü\84¥->¡©u %d\n",
+r¥
+->
+¡©us
+);
+
+63
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+66
+ }
+}
+
+73 \19
+ scmd_\92\8cy_dbg_»suÉ
+ {
+
+74
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp_¡r\9ag
+;
+
+75
+u\9at32_t
+
+ mp
+;
+
+76
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\92\8cy_¡r\9ag
+;
+
+77
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdbg_¡r\9ag
+;
+
+78
+u\9at8_t
+
+ mcmd
+;
+
+79
+u\9at8_t
+
+ md1
+;
+
+83
+ $cmd_\92\8cy_dbg_·r£d
+(\1e*
+·r£d_»suÉ
+,
+
+84
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+, \1e*
+d©a
+)
+
+86 \19
+cmd_\92\8cy_dbg_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+87 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+88
+u\9at8_t
+
+msg
+[2];
+
+89 \12
+¡©us
+;
+
+91
+msg
+[0] =
+·¿ms
+->
+cmd
+;
+
+92
+msg
+[1] =
+·¿ms
+->
+d1
+;
+
+93
+¡©us
+ =
+ `p_p\9d\96\9ae_txrx_\92\8cy_dbg
+(
+p
+,
+·¿ms
+->
+p
+,
+msg
+);
+
+95 ià(
+¡©us
+ != 0) {
+
+96
+ `´\9atf
+("Dbg Command failed\n");
+
+99
+ }
+}
+
+101 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_p_¡r\9ag
+ =
+
+102
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p_¡r\9ag
+, "p");
+
+104 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_p
+ =
+
+105
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+p
+,
+UINT32
+);
+
+107 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+ =
+
+108
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+
+109
+\92\8cy_¡r\9ag
+, "txrx");
+
+111 \18
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ glb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+ =
+
+112
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+dbg_¡r\9ag
+,
+
+115 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_cmd
+ =
+
+116
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+cmd
+,
+UINT8
+);
+
+118 \18
+cmdl\9ae_·r£_tok\92_num_t
+
+ glb_cmd_\92\8cy_dbg_d1
+ =
+
+119
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_\92\8cy_dbg_»suÉ
+,
+d1
+,
+UINT8
+);
+
+121 \18
+cmdl\9ae_·r£_\9a¡_t
+
+ glb_cmd_\92\8cy_dbg
+ = {
+
+122 .
+f
+ =
+cmd_\92\8cy_dbg_·r£d
+,
+
+123 .
+ gd©a
+ =
+NULL
+,
+
+124 .
+ gh\96p_¡r
+ = "TXRX dbg cmd",
+
+125 .
+ gtok\92s
+ = {
+
+126 (\1e*)&
+lb_cmd_\92\8cy_dbg_p_¡r\9ag
+,
+
+127 (\1e*)&
+lb_cmd_\92\8cy_dbg_p
+,
+
+128 (\1e*)&
+lb_cmd_\92\8cy_dbg_\92\8cy_¡r\9ag
+,
+
+129 (\1e*)&
+lb_cmd_\92\8cy_dbg_dbg_¡r\9ag
+,
+
+130 (\1e*)&
+lb_cmd_\92\8cy_dbg_cmd
+,
+
+131 (\1e*)&
+lb_cmd_\92\8cy_dbg_d1
+,
+
+132
+NULL
+,
+
+136 \18
+cmdl\9ae_·r£_ùx_t
+
+ gp\9d\96\9ae_cmds
+[] = {
+
+137 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+lb_cmd_\92\8cy_dbg
+,
+
+138
+NULL
+,
+
+141 \18\19
+p\9d\96\9ae_ã_Ýs
+
+ gp\9d\96\9ae_txrx_ã_Ýs
+ = {
+
+142 .
+f_\9a\99
+ =
+NULL
+,
+
+143 .
+ gf_ä\93
+ =
+NULL
+,
+
+144 .
+ gcmds
+ =
+p\9d\96\9ae_cmds
+,
+
+147 \19
+p\9d\96\9ae_ty³
+
+ gp\9d\96\9ae_txrx
+ = {
+
+148 .
+Çme
+ = "TXRX",
+
+149 .
+ gbe_Ýs
+ = &
+p\9d\96\9ae_txrx_be_Ýs
+,
+
+150 .
+ gã_Ýs
+ = &
+p\9d\96\9ae_txrx_ã_Ýs
+,
+
+ @VIL/pipeline_txrx/pipeline_txrx.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_TXRX_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_TXRX_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+21 \ 2
+ ~"p\9d\96\9ae_txrx_be.h
+"
+
+26 \r\19
+p\9d\96\9ae_ty³
+
+p\9d\96\9ae_txrx
+;
+
+ @VIL/pipeline_txrx/pipeline_txrx_be.c
+
+17 \ 2
+ ~<¡r\9ag.h
+>
+
+19 \ 2
+ ~<¹e_commÚ.h
+>
+
+20 \ 2
+ ~<¹e_m®loc.h
+>
+
+21 \ 2
+ ~<¹e_by\8bÜd\94.h
+>
+
+22 \ 2
+ ~<¹e_\8fbË_¡ub.h
+>
+
+23 \ 2
+ ~<¹e_\8fbË_hash.h
+>
+
+24 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+26 \ 2
+ ~"p\9d\96\9ae_txrx_be.h
+"
+
+27 \ 2
+ ~"p\9d\96\9ae_aùiÚs_commÚ.h
+"
+
+28 \ 2
+ ~"·r£r.h
+"
+
+29 \ 2
+ ~"hash_func.h
+"
+
+30 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+31 \ 2
+ ~"vnf_commÚ.h
+"
+
+32 \ 2
+ ~"p.h
+"
+
+33 #iâdeà
+VNF_ACL
+
+
+34 \ 2
+ ~"lib_icmpv6.h
+"
+
+37
+u\9at8_t
+
+ gTXRX_DEBUG
+;
+
+38 \12
+ gpkt_bur¡_út
+;
+
+40 \19
+ sp\9d\96\9ae_txrx
+ {
+
+41 \19
+p\9d\96\9ae
+
+ mp
+;
+
+42
+p\9d\96\9ae_msg_»q_hªdËr
+
+
+43
+ mcu¡om_hªdËrs
+[
+PIPELINE_TXRX_MSG_REQS
+];
+
+44
+u\9at64_t
+
+ m»ûivedPktCouÁ
+;
+
+45
+u\9at64_t
+
+ mdrݳdPktCouÁ
+;
+
+46
+u\9at8_t
+
+ ml\9aks_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+47
+u\9at8_t
+
+ mou\8dÜt_id
+[
+PIPELINE_MAX_PORT_IN
+];
+
+48
+u\9at8_t
+
+ mp\9d\96\9ae_num
+;
+
+49
+u\9at8_t
+
+ mtxrx_ty³
+;
+
+50 }
+ g__¹e_ÿche_®igÃd
+;
+
+53
+ mTYPE_TXTX
+,
+
+54
+ mTYPE_RXRX
+,
+
+56 \18\1e*
+p\9d\96\9ae_txrx_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+57 \1e*
+msg
+);
+
+59 \18
+p\9d\96\9ae_msg_»q_hªdËr
+
+ ghªdËrs
+[] = {
+
+60 [
+PIPELINE_MSG_REQ_PING
+] =
+
+61
+p\9d\96\9ae_msg_»q_p\9ag_hªdËr
+,
+
+62 [
+PIPELINE_MSG_REQ_STATS_PORT_IN
+] =
+
+63
+p\9d\96\9ae_msg_»q_¡©s_pÜt_\9a_hªdËr
+,
+
+64 [
+PIPELINE_MSG_REQ_STATS_PORT_OUT
+] =
+
+65
+p\9d\96\9ae_msg_»q_¡©s_pÜt_out_hªdËr
+,
+
+66 [
+PIPELINE_MSG_REQ_STATS_TABLE
+] =
+
+67
+p\9d\96\9ae_msg_»q_¡©s_\8fbË_hªdËr
+,
+
+68 [
+PIPELINE_MSG_REQ_PORT_IN_ENABLE
+] =
+
+69
+p\9d\96\9ae_msg_»q_pÜt_\9a_\92abË_hªdËr
+,
+
+70 [
+PIPELINE_MSG_REQ_PORT_IN_DISABLE
+] =
+
+71
+p\9d\96\9ae_msg_»q_pÜt_\9a_di§bË_hªdËr
+,
+
+72 [
+PIPELINE_MSG_REQ_CUSTOM
+] =
+
+73
+p\9d\96\9ae_txrx_msg_»q_cu¡om_hªdËr
+,
+
+77 \18\1e*
+p\9d\96\9ae_txrx_msg_»q_\92\8cy_dbg_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+,
+
+78 \1e*
+msg
+);
+
+79 \18\1e*
+ $p\9d\96\9ae_txrx_msg_»q_\92\8cy_dbg_hªdËr
+(
+
+80
+__¹e_unu£d
+ \19
+p\9d\96\9ae
+ *
+p
+,
+
+81
+__¹e_unu£d
+ \1e*
+msg
+)
+
+84 \15
+NULL
+;
+
+85
+ }
+}
+
+87 \18
+__¹e_unu£d
+
+p\9d\96\9ae_msg_»q_hªdËr
+
+ gcu¡om_hªdËrs
+[] = {
+
+88 [
+PIPELINE_TXRX_MSG_REQ_ENTRY_DBG
+] =
+
+89
+p\9d\96\9ae_txrx_msg_»q_\92\8cy_dbg_hªdËr
+,
+
+103 \1e*
+ $p\9d\96\9ae_txrx_msg_»q_cu¡om_hªdËr
+(\19
+p\9d\96\9ae
+ *
+p
+, \1e*
+msg
+)
+
+105 \19
+p\9d\96\9ae_txrx
+ *
+p_txrx
+ = (\19p\9d\96\9ae_txrx *)
+p
+;
+
+106 \19
+p\9d\96\9ae_cu¡om_msg_»q
+ *
+»q
+ =
+msg
+;
+
+107
+p\9d\96\9ae_msg_»q_hªdËr
+
+f_hªdË
+;
+
+109
+f_hªdË
+ = (
+»q
+->
+subty³
+ <
+PIPELINE_TXRX_MSG_REQS
+) ?
+
+110
+p_txrx
+->
+cu¡om_hªdËrs
+[
+»q
+->
+subty³
+] :
+
+111
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+113 ià(
+f_hªdË
+ =ð
+NULL
+)
+
+114
+f_hªdË
+ =
+p\9d\96\9ae_msg_»q_\9av®id_hªdËr
+;
+
+116 \15
+ `f_hªdË
+(
+p
+,
+»q
+);
+
+117
+ }
+}
+
+123
+p\9d\96\9ae_txrx_·r£_¬gs
+(\19
+p\9d\96\9ae_txrx
+ *
+p
+,
+
+124 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+);
+
+126
+ $p\9d\96\9ae_txrx_·r£_¬gs
+(\19
+p\9d\96\9ae_txrx
+ *
+p
+,
+
+127 \19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+)
+
+129
+u\9at32_t
+
+i
+;
+
+130
+u\9at8_t
+
+txrx_ty³_´e£Á
+ = 0;
+
+132 ià(
+TXRX_DEBUG
+ > 2)
+
+133
+ `´\9atf
+("TXRX\85ipeline_txrx_parse_args\85arams->n_args: %d\n",
+
+134
+·¿ms
+->
+n_¬gs
+);
+
+136 \ f
+i
+ = 0; i <
+·¿ms
+->
+n_¬gs
+; i++) {
+
+137 \ 5*
+¬g_Çme
+ =
+·¿ms
+->
+¬gs_Çme
+[
+i
+];
+
+138 \ 5*
+¬g_v®ue
+ =
+·¿ms
+->
+¬gs_v®ue
+[
+i
+];
+
+140 ià(
+TXRX_DEBUG
+ > 2)
+
+141
+ `´\9atf
+("TXRX\87rgs[%d]: % %d, %s\n",
+i
+,
+¬g_Çme
+,
+
+142
+ `©oi
+(
+¬g_v®ue
+),\87rg_value);
+
+145 ià(
+ `¡rcmp
+(
+¬g_Çme
+, "pipeline_txrx_type") == 0) {
+
+146 ià(
+txrx_ty³_´e£Á
+)
+
+148
+txrx_ty³_´e£Á
+ = 1;
+
+151 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "TXTX") == 0) {
+
+152
+p
+->
+txrx_ty³
+ =
+TYPE_TXTX
+;
+
+153
+ `´\9atf
+("pipeline_txrx_type is TXTX\n");
+
+155 ià(
+ `¡rcmp
+(
+¬g_v®ue
+, "RXRX") == 0) {
+
+156
+p
+->
+txrx_ty³
+ =
+TYPE_RXRX
+;
+
+157
+ `´\9atf
+("pipeline_txrx_type is RXRX\n");
+
+163 ià(!
+txrx_ty³_´e£Á
+) {
+
+164
+ `´\9atf
+("TXRX\81ype\82ot specified\n");
+
+170
+ }
+}
+
+172
+u\9at32_t
+
+ gtxrx_pkt_´\9at_couÁ
+;
+
+173 \18
+\9al\9ae
+ \1e
+
+174
+ $pkt_wÜk_txrx
+(\19
+¹e_mbuf
+ *
+pkt
+,
+u\9at32_t
+
+pkt_num
+, \1e*
+¬g
+)
+
+177 \19
+p\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+178 \19
+p\9d\96\9ae_txrx
+ *
+p_txrx
+ = (\19p\9d\96\9ae_txrx *)
+
+->
+p
+;
+
+179
+u\9at8_t
+
+sÞic\99ed_node_muÉiÿ¡_addr
+[16] =
+
+182
+p_txrx
+->
+»ûivedPktCouÁ
+++;
+
+184 ià(
+p_txrx
+->
+txrx_ty³
+ =ð
+TYPE_TXTX
+)
+
+187
+u\9at8_t
+
+\9a_pÜt_id
+ =
+pkt
+->
+pÜt
+;
+
+188
+u\9at32_t
+
+\91h_´Ùo_off£t
+ =
+MBUF_HDR_ROOM
+ + 12;
+
+190
+u\9at32_t
+
+pkt_mask
+ = 1 <<
+pkt_num
+;
+
+192
+u\9at32_t
+
+out_pÜt
+ =
+p_txrx
+->
+p
+.
+n_pÜts_out
+ - 1;
+
+194
+u\9at16_t
+ *
+\91h_´Ùo
+ =
+
+195
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+,
+\91h_´Ùo_off£t
+);
+
+197
+u\9at8_t
+ *
+´ÙocÞ
+;
+
+198
+u\9at32_t
+
+´Ù_off£t
+ =
+
+199
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_PROTOCOL_OFST
+;
+
+201 #ifdeà
+IPV6
+
+
+202 \19
+\9dv6_hdr
+ *
+\9dv6_h
+;
+
+203
+\9dv6_h
+ =
+ `¹e_pktmbuf_mtod_off£t
+ (
+pkt
+, \19
+\9dv6_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+204
+u\9at32_t
+
+´Ù_off£t_\9dv6
+ =
+
+205
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IPV6_HDR_PROTOCOL_OFST
+;
+
+207 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETHER_TYPE_IPv6
+)
+
+208
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t_\9dv6
+);
+
+210
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t
+);
+
+212
+´ÙocÞ
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+,
+´Ù_off£t
+);
+
+216 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´\9at_couÁ
+ < 10)) {
+
+217
+ `´\9at_pkt1
+(
+pkt
+);
+
+218
+txrx_pkt_´\9at_couÁ
+++;
+
+219
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+221
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+), *
+´ÙocÞ
+,
+ETH_TYPE_ARP
+,
+
+222
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+225 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+227
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+230
+u\9at32_t
+
+d¡_addr_off£t
+ =
+
+231
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+232
+u\9at32_t
+ *
+d¡_addr
+ =
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+d¡_addr_off£t
+);
+
+234 ià(
+TXRX_DEBUG
+ > 2)
+
+235 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+è=ð
+ETH_TYPE_IPV4
+)
+
+236
+ `´\9atf
+ ("%s:\86\9akIp: %x, d¡_addr: %x\n",
+__FUNCTION__
+,
+l\9ak
+->
+\9d
+, *
+d¡_addr
+);
+
+239 \1a
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo
+)) {
+
+240 \ 4
+ETH_TYPE_ARP
+:
+
+241
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+242
+out_pÜt
+,
+pkt
+);
+
+243
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask
+);
+
+246 \ 4
+ETH_TYPE_IPV4
+:
+
+247 ià((*
+´ÙocÞ
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+248 (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr
+))) {
+
+249 ià(
+ `is_phy_pÜt_´iv\8b
+(
+pkt
+->
+pÜt
+)) {
+
+250
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+
+251
+p_txrx
+->
+p
+.p,
+
+252
+out_pÜt
+,
+pkt
+);
+
+253
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+
+254
+p_txrx
+->
+p
+.p,
+
+255
+pkt_mask
+);
+
+261 #ifdeà
+IPV6
+
+
+262 \ 4
+ETH_TYPE_IPV6
+:
+
+263 ià(*
+´ÙocÞ
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+264 #iâdeà
+VNF_ACL
+
+
+265 ià(!
+ `memcmp
+(
+\9dv6_h
+->
+d¡_addr
+,
+l\9ak
+->
+\9dv6
+, 16)
+
+266 || !
+ `memcmp
+(
+\9dv6_h
+->
+d¡_addr
+,
+sÞic\99ed_node_muÉiÿ¡_addr
+, 13)) {
+
+268
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+269
+out_pÜt
+,
+pkt
+);
+
+270
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask
+);
+
+271 #iâdeà
+VNF_ACL
+
+
+273
+ `´\9atf
+("Dropping\81he IPv6\85kt\n");
+
+274
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask
+);
+
+282
+ `´\9atf
+("Dropping\81he\85kt\n");
+
+283
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask
+);
+
+288
+ }
+}
+
+290 \18
+\9al\9ae
+ \1e
+
+291
+ $pkt4_wÜk_txrx
+(\19
+¹e_mbuf
+ **
+pkt
+,
+u\9at32_t
+
+pkt_num
+, \1e*
+¬g
+)
+
+293 \19
+p\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+ *
+
+ =
+¬g
+;
+
+294 \19
+p\9d\96\9ae_txrx
+ *
+p_txrx
+ = (\19p\9d\96\9ae_txrx *)
+
+->
+p
+;
+
+295
+u\9at8_t
+
+sÞic\99ed_node_muÉiÿ¡_addr
+[16] =
+
+299 ià(
+p_txrx
+->
+txrx_ty³
+ =ð
+TYPE_TXTX
+)
+
+302
+u\9at16_t
+
+\9a_pÜt_id
+ = (*
+pkt
+)->
+pÜt
+;
+
+303
+u\9at32_t
+
+\91h_´Ùo_off£t
+ =
+MBUF_HDR_ROOM
+ + 12;
+
+306
+u\9at32_t
+
+pkt_mask0
+ = 1 <<
+pkt_num
+;
+
+307
+u\9at32_t
+
+pkt_mask1
+ = 1 << (
+pkt_num
+ + 1);
+
+308
+u\9at32_t
+
+pkt_mask2
+ = 1 << (
+pkt_num
+ + 2);
+
+309
+u\9at32_t
+
+pkt_mask3
+ = 1 << (
+pkt_num
+ + 3);
+
+312
+u\9at32_t
+
+out_pÜt
+ =
+p_txrx
+->
+p
+.
+n_pÜts_out
+ - 1;
+
+314
+u\9at16_t
+ *
+\91h_´Ùo0
+ =
+
+315
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[0],
+\91h_´Ùo_off£t
+);
+
+316
+u\9at16_t
+ *
+\91h_´Ùo1
+ =
+
+317
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[1],
+\91h_´Ùo_off£t
+);
+
+318
+u\9at16_t
+ *
+\91h_´Ùo2
+ =
+
+319
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[2],
+\91h_´Ùo_off£t
+);
+
+320
+u\9at16_t
+ *
+\91h_´Ùo3
+ =
+
+321
+ `RTE_MBUF_METADATA_UINT16_PTR
+(
+pkt
+[3],
+\91h_´Ùo_off£t
+);
+
+323
+u\9at8_t
+ *
+´ÙocÞ0
+, *
+´ÙocÞ1
+, *
+´ÙocÞ2
+, *
+´ÙocÞ3
+;
+
+324
+u\9at32_t
+
+´Ù_off£t
+ =
+
+325
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_PROTOCOL_OFST
+;
+
+327 #ifdeà
+IPV6
+
+
+328 \19
+\9dv6_hdr
+ *
+\9dv6_h0
+, *
+\9dv6_h1
+, *
+\9dv6_h2
+, *
+\9dv6_h3
+;
+
+329
+\9dv6_h0
+ =
+ `¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[0], \19
+\9dv6_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+330
+u\9at32_t
+
+´Ù_off£t_\9dv6
+ =
+
+331
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IPV6_HDR_PROTOCOL_OFST
+;
+
+334 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETHER_TYPE_IPv6
+)
+
+335
+´ÙocÞ0
+ =
+
+336
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t_\9dv6
+);
+
+338
+´ÙocÞ0
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t
+);
+
+341
+\9dv6_h1
+ =
+ `¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[1], \19
+\9dv6_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+342 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETHER_TYPE_IPv6
+)
+
+343
+´ÙocÞ1
+ =
+
+344
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t_\9dv6
+);
+
+346
+´ÙocÞ1
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t
+);
+
+349
+\9dv6_h2
+ =
+ `¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[2], \19
+\9dv6_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+350 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETHER_TYPE_IPv6
+)
+
+351
+´ÙocÞ2
+ =
+
+352
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t_\9dv6
+);
+
+354
+´ÙocÞ2
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t
+);
+
+357
+\9dv6_h3
+ =
+ `¹e_pktmbuf_mtod_off£t
+ (
+pkt
+[3], \19
+\9dv6_hdr
+ *, \17(\19
+\91h\94_hdr
+));
+
+358 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETHER_TYPE_IPv6
+)
+
+359
+´ÙocÞ3
+ =
+
+360
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t_\9dv6
+);
+
+362
+´ÙocÞ3
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t
+);
+
+364
+´ÙocÞ0
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[0],
+´Ù_off£t
+);
+
+365
+´ÙocÞ1
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[1],
+´Ù_off£t
+);
+
+366
+´ÙocÞ2
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[2],
+´Ù_off£t
+);
+
+367
+´ÙocÞ3
+ =
+ `RTE_MBUF_METADATA_UINT8_PTR
+(
+pkt
+[3],
+´Ù_off£t
+);
+
+370 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´\9at_couÁ
+ < 10)) {
+
+371
+ `´\9at_pkt1
+(
+pkt
+[0]);
+
+372
+txrx_pkt_´\9at_couÁ
+++;
+
+373
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+375
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+), *
+´ÙocÞ0
+,
+ETH_TYPE_ARP
+,
+
+376
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+379 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+;
+
+381
+l\9ak
+ = &
+myAµ
+->
+l\9ak_·¿ms
+[
+\9a_pÜt_id
+];
+
+384
+u\9at32_t
+
+d¡_addr_off£t0
+ =
+
+385
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+386
+u\9at32_t
+ *
+d¡_addr0
+ =
+
+387
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[0],
+d¡_addr_off£t0
+);
+
+389 ià(
+TXRX_DEBUG
+ > 2)
+
+390 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+è=ð
+ETH_TYPE_IPV4
+)
+
+391
+ `´\9atf
+ ("%s:\86\9akIp: %x, d¡_addr0: %x\n",
+__FUNCTION__
+,
+l\9ak
+->
+\9d
+, *
+d¡_addr0
+);
+
+394 \1a
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo0
+)) {
+
+395 \ 4
+ETH_TYPE_ARP
+:
+
+396
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+397
+out_pÜt
+,
+pkt
+[0]);
+
+398
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask0
+);
+
+401 \ 4
+ETH_TYPE_IPV4
+:
+
+402 ià((*
+´ÙocÞ0
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+403 (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr0
+))) {
+
+404 ià(
+ `is_phy_pÜt_´iv\8b
+(
+pkt
+[0]->
+pÜt
+)) {
+
+405
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+
+406
+p_txrx
+->
+p
+.p,
+out_pÜt
+,
+pkt
+[0]);
+
+407
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+
+408
+p_txrx
+->
+p
+.p,
+pkt_mask0
+);
+
+414 #ifdeà
+IPV6
+
+
+415 \ 4
+ETH_TYPE_IPV6
+:
+
+416 ià(*
+´ÙocÞ0
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+417 #iâdeà
+VNF_ACL
+
+
+418 ià(!
+ `memcmp
+(
+\9dv6_h0
+->
+d¡_addr
+,
+l\9ak
+->
+\9dv6
+, 16)
+
+419 || !
+ `memcmp
+(
+\9dv6_h0
+->
+d¡_addr
+,
+sÞic\99ed_node_muÉiÿ¡_addr
+, 13)) {
+
+421
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+422
+out_pÜt
+,
+pkt
+[0]);
+
+423
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask0
+);
+
+425 #iâdeà
+VNF_ACL
+
+
+427
+ `´\9atf
+("Dropping\81he IPv6\85kt\n");
+
+428
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask0
+);
+
+436
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask0
+);
+
+441 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´\9at_couÁ
+ < 10)) {
+
+442
+ `´\9at_pkt1
+(
+pkt
+[1]);
+
+443
+txrx_pkt_´\9at_couÁ
+++;
+
+444
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+446
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+), *
+´ÙocÞ1
+,
+ETH_TYPE_ARP
+,
+
+447
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+451
+u\9at32_t
+
+d¡_addr_off£t1
+ =
+
+452
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+453
+u\9at32_t
+ *
+d¡_addr1
+ =
+
+454
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[1],
+d¡_addr_off£t1
+);
+
+456 ià(
+TXRX_DEBUG
+ > 2)
+
+457 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+è=ð
+ETH_TYPE_IPV4
+)
+
+458
+ `´\9atf
+ ("%s:\86\9akIp: %x, d¡_addr1: %x\n",
+__FUNCTION__
+,
+l\9ak
+->
+\9d
+, *
+d¡_addr1
+);
+
+460 \1a
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo1
+)) {
+
+461 \ 4
+ETH_TYPE_ARP
+:
+
+462
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+463
+out_pÜt
+,
+pkt
+[1]);
+
+464
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask1
+);
+
+467 \ 4
+ETH_TYPE_IPV4
+:
+
+468 ià((*
+´ÙocÞ1
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+469 (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr1
+))) {
+
+470 ià(
+ `is_phy_pÜt_´iv\8b
+(
+pkt
+[1]->
+pÜt
+)) {
+
+471
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+
+472
+p_txrx
+->
+p
+.p,
+
+473
+out_pÜt
+,
+pkt
+[1]);
+
+474
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+
+475
+p_txrx
+->
+p
+.p,
+
+476
+pkt_mask1
+);
+
+482 #ifdeà
+IPV6
+
+
+483 \ 4
+ETH_TYPE_IPV6
+:
+
+484 ià(*
+´ÙocÞ1
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+485 #iâdeà
+VNF_ACL
+
+
+486 ià(!
+ `memcmp
+(
+\9dv6_h1
+->
+d¡_addr
+,
+l\9ak
+->
+\9dv6
+, 16)
+
+487 || !
+ `memcmp
+(
+\9dv6_h1
+->
+d¡_addr
+,
+sÞic\99ed_node_muÉiÿ¡_addr
+, 13)) {
+
+489
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+490
+out_pÜt
+,
+pkt
+[1]);
+
+491
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask1
+);
+
+492 #iâdeà
+VNF_ACL
+
+
+494
+ `´\9atf
+("Dropping\81he IPv6\85kt\n");
+
+495
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask1
+);
+
+503
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask1
+);
+
+507 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´\9at_couÁ
+ < 10)) {
+
+508
+ `´\9at_pkt1
+(
+pkt
+[2]);
+
+509
+txrx_pkt_´\9at_couÁ
+++;
+
+510
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+512
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+), *
+´ÙocÞ2
+,
+ETH_TYPE_ARP
+,
+
+513
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+517
+u\9at32_t
+
+d¡_addr_off£t2
+ =
+
+518
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+519
+u\9at32_t
+ *
+d¡_addr2
+ =
+
+520
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+[2],
+d¡_addr_off£t2
+);
+
+522 ià(
+TXRX_DEBUG
+ > 2)
+
+523 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+è=ð
+ETH_TYPE_IPV4
+)
+
+524
+ `´\9atf
+ ("%s:\86\9akIp: %x, d¡_addr2: %x\n",
+__FUNCTION__
+,
+l\9ak
+->
+\9d
+, *
+d¡_addr2
+);
+
+526 \1a
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo2
+)) {
+
+527 \ 4
+ETH_TYPE_ARP
+:
+
+528
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+529
+out_pÜt
+,
+pkt
+[2]);
+
+530
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask2
+);
+
+533 \ 4
+ETH_TYPE_IPV4
+:
+
+534 ià((*
+´ÙocÞ2
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+535 (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr2
+))) {
+
+536 ià(
+ `is_phy_pÜt_´iv\8b
+(
+pkt
+[2]->
+pÜt
+)) {
+
+537
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+
+538
+p_txrx
+->
+p
+.p,
+
+539
+out_pÜt
+,
+pkt
+[2]);
+
+540
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+
+541
+p_txrx
+->
+p
+.p,
+
+542
+pkt_mask2
+);
+
+548 #ifdeà
+IPV6
+
+
+549 \ 4
+ETH_TYPE_IPV6
+:
+
+550 ià(*
+´ÙocÞ2
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+551 #iâdeà
+VNF_ACL
+
+
+552 ià(!
+ `memcmp
+(
+\9dv6_h2
+->
+d¡_addr
+,
+l\9ak
+->
+\9dv6
+, 16)
+
+553 || !
+ `memcmp
+(
+\9dv6_h2
+->
+d¡_addr
+,
+sÞic\99ed_node_muÉiÿ¡_addr
+, 13)) {
+
+555
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+556
+out_pÜt
+,
+pkt
+[2]);
+
+557
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask2
+);
+
+558 #iâdeà
+VNF_ACL
+
+
+560
+ `´\9atf
+("Dropping\81he IPv6\85kt\n");
+
+561
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask2
+);
+
+569
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask2
+);
+
+573 ià((
+TXRX_DEBUG
+ > 2è&& (
+txrx_pkt_´\9at_couÁ
+ < 10)) {
+
+574
+ `´\9at_pkt1
+(
+pkt
+[3]);
+
+575
+txrx_pkt_´\9at_couÁ
+++;
+
+576
+ `´\9atf
+("\nEth Typ %x, Prot %x, ETH_TYPE_ARP %x, "
+
+578
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+), *
+´ÙocÞ3
+,
+ETH_TYPE_ARP
+,
+
+579
+ETH_TYPE_IPV4
+,
+IP_PROTOCOL_ICMP
+);
+
+583
+u\9at32_t
+
+d¡_addr_off£t3
+ =
+
+584
+MBUF_HDR_ROOM
+ +
+ETH_HDR_SIZE
+ +
+IP_HDR_DST_ADR_OFST
+;
+
+585
+u\9at32_t
+ *
+d¡_addr3
+ =
+
+586
+ `RTE_MBUF_METADATA_UINT32_PTR
+(
+pkt
+,
+d¡_addr_off£t3
+);
+
+588 ià(
+TXRX_DEBUG
+ > 2)
+
+589 ià(
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+è=ð
+ETH_TYPE_IPV4
+)
+
+590
+ `´\9atf
+ ("%s:\86\9akIp: %x, d¡_addr3: %x\n",
+__FUNCTION__
+,
+l\9ak
+->
+\9d
+, *
+d¡_addr3
+);
+
+592 \1a
+ `¹e_be_to_ýu_16
+(*
+\91h_´Ùo3
+)) {
+
+593 \ 4
+ETH_TYPE_ARP
+:
+
+594
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+595
+out_pÜt
+,
+pkt
+[3]);
+
+596
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask3
+);
+
+599 \ 4
+ETH_TYPE_IPV4
+:
+
+600 ià((*
+´ÙocÞ3
+ =ð
+IP_PROTOCOL_ICMP
+) &&
+
+601 (
+l\9ak
+->
+\9d
+ =ð
+ `¹e_be_to_ýu_32
+(*
+d¡_addr3
+))) {
+
+602 ià(
+ `is_phy_pÜt_´iv\8b
+(
+pkt
+[3]->
+pÜt
+)) {
+
+603
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+
+604
+p_txrx
+->
+p
+.p,
+
+605
+out_pÜt
+,
+pkt
+[3]);
+
+606
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+
+607
+p_txrx
+->
+p
+.p,
+
+608
+pkt_mask3
+);
+
+614 #ifdeà
+IPV6
+
+
+615 \ 4
+ETH_TYPE_IPV6
+:
+
+616 ià(*
+´ÙocÞ3
+ =ð
+ICMPV6_PROTOCOL_ID
+) {
+
+617 #iâdeà
+VNF_ACL
+
+
+618 ià(!
+ `memcmp
+(
+\9dv6_h3
+->
+d¡_addr
+,
+l\9ak
+->
+\9dv6
+, 16)
+
+619 || !
+ `memcmp
+(
+\9dv6_h3
+->
+d¡_addr
+,
+sÞic\99ed_node_muÉiÿ¡_addr
+, 13)) {
+
+621
+ `¹e_p\9d\96\9ae_pÜt_out_·ck\91_\9a£¹
+(
+p_txrx
+->
+p
+.p,
+
+622
+out_pÜt
+,
+pkt
+[3]);
+
+623
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask3
+);
+
+624 #iâdeà
+VNF_ACL
+
+
+626
+ `´\9atf
+("Dropping\81he IPv6\85kt\n");
+
+627
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask3
+);
+
+635
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p_txrx
+->
+p
+.p,
+pkt_mask3
+);
+
+639
+p_txrx
+->
+»ûivedPktCouÁ
+ += 4;
+
+641
+ }
+}
+
+643
+PIPELINE_TXRX_KEY_PORT_IN_AH
+(
+pÜt_\9a_ah_txrx
+,
+pkt_wÜk_txrx
+,
+pkt4_wÜk_txrx
+);
+
+645 \18\1e*
+ $p\9d\96\9ae_txrx_\9a\99
+(\19
+p\9d\96\9ae_·¿ms
+ *
+·¿ms
+,
+
+646
+__¹e_unu£d
+ \1e*
+¬g
+)
+
+648 \19
+p\9d\96\9ae
+ *
+p
+;
+
+649 \19
+p\9d\96\9ae_txrx
+ *
+p_±
+;
+
+650
+u\9at32_t
+
+size
+,
+i
+,
+\9a_pÜts_¬g_size
+;
+
+652
+ `´\9atf
+("Start\85ipeline_txrx_init\n");
+
+655 ià((
+·¿ms
+ =ð
+NULL
+) ||
+
+656 (
+·¿ms
+->
+n_pÜts_\9a
+ == 0) ||
+
+657 (
+·¿ms
+->
+n_pÜts_out
+ == 0))
+
+658 \15
+NULL
+;
+
+661
+size
+ =
+ `RTE_CACHE_LINE_ROUNDUP
+(\17(\19
+p\9d\96\9ae_txrx
+));
+
+662
+p
+ =
+ `¹e_zm®loc
+(
+NULL
+,
+size
+,
+RTE_CACHE_LINE_SIZE
+);
+
+663
+p_±
+ = (\19
+p\9d\96\9ae_txrx
+ *)
+p
+;
+
+664 ià(
+p
+ =ð
+NULL
+)
+
+665 \15
+NULL
+;
+
+667
+ `PLOG
+(
+p
+,
+HIGH
+, "TXRX");
+
+668
+ `¡rýy
+(
+p
+->
+Çme
+,
+·¿ms
+->name);
+
+669
+p
+->
+log_Ëv\96
+ =
+·¿ms
+->log_level;
+
+671
+p_±
+->
+»ûivedPktCouÁ
+ = 0;
+
+672
+p_±
+->
+drݳdPktCouÁ
+ = 0;
+
+673 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++)
+
+674
+p_±
+->
+l\9aks_m
+[
+i
+] = 0xff;
+
+676
+p_±
+->
+p\9d\96\9ae_num
+ = 0;
+
+677
+ `´\9atf
+("txrx initialization of variables done\n");
+
+680 ià(
+ `p\9d\96\9ae_txrx_·r£_¬gs
+(
+p_±
+,
+·¿ms
+))
+
+681 \15
+NULL
+;
+
+685 \19
+¹e_p\9d\96\9ae_·¿ms
+
+p\9d\96\9ae_·¿ms
+ = {
+
+686 .
+Çme
+ = "TXRX",
+
+687 .
+sock\91_id
+ =
+·¿ms
+->socket_id,
+
+688 .
+off£t_pÜt_id
+ = 0,
+
+691
+p
+->°ð
+ `¹e_p\9d\96\9ae_ü\97\8b
+(&
+p\9d\96\9ae_·¿ms
+);
+
+692 ià(
+p
+->°=ð
+NULL
+) {
+
+693
+ `¹e_ä\93
+(
+p
+);
+
+694 \15
+NULL
+;
+
+698
+p
+->
+n_pÜts_\9a
+ =
+·¿ms
+->n_ports_in;
+
+699
+p
+->
+n_pÜts_out
+ =
+·¿ms
+->n_ports_out;
+
+700
+p
+->
+n_\8fbËs
+ =\85->
+n_pÜts_\9a
+;
+
+703
+\9a_pÜts_¬g_size
+ =
+
+704
+ `RTE_CACHE_LINE_ROUNDUP
+((\17
+
+705 (\19
+p\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+)) *
+
+706 (
+·¿ms
+->
+n_pÜts_\9a
+));
+
+707 \19
+p\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+ *
+
+ =
+
+708 (\19
+p\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+ *)
+ `¹e_zm®loc
+(
+NULL
+,
+
+709
+\9a_pÜts_¬g_size
+,
+
+710
+RTE_CACHE_LINE_SIZE
+);
+
+711 ià(
+
+ =ð
+NULL
+)
+
+712 \15
+NULL
+;
+
+714 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+716 (
+
+[
+i
+]).
+p
+ =
+p_±
+;
+
+717 (
+
+[
+i
+]).
+\9a_pÜt_id
+ = i;
+
+718 \19
+¹e_p\9d\96\9ae_pÜt_\9a_·¿ms
+
+pÜt_·¿ms
+ = {
+
+719 .
+Ýs
+ =
+
+720
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+
+721
+pÜt_\9a
+[
+i
+]),
+
+722 .
+¬g_ü\97\8b
+ =
+
+723
+ `p\9d\96\9ae_pÜt_\9a_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+
+724
+pÜt_\9a
+[
+i
+]),
+
+725 .
+f_aùiÚ
+ =
+NULL
+,
+
+726 .
+¬g_ah
+ = &(
+
+[
+i
+]),
+
+727 .
+bur¡_size
+ =
+·¿ms
+->
+pÜt_\9a
+[
+i
+].burst_size,
+
+730
+pÜt_·¿ms
+.
+f_aùiÚ
+ =
+pÜt_\9a_ah_txrx
+;
+
+732 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_ü\97\8b
+(
+p
+->p,
+
+733 &
+pÜt_·¿ms
+,
+
+734 &
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+736 ià(
+¡©us
+) {
+
+737
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+738
+ `¹e_ä\93
+(
+p
+);
+
+739 \15
+NULL
+;
+
+744 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_out
+; i++) {
+
+745 \19
+¹e_p\9d\96\9ae_pÜt_out_·¿ms
+
+pÜt_·¿ms
+ = {
+
+746 .
+Ýs
+ =
+
+747
+ `p\9d\96\9ae_pÜt_out_·¿ms_g\91_Ýs
+(&
+·¿ms
+->
+
+748
+pÜt_out
+[
+i
+]),
+
+749 .
+¬g_ü\97\8b
+ =
+
+750
+ `p\9d\96\9ae_pÜt_out_·¿ms_cÚv\94t
+(&
+·¿ms
+->
+
+751
+pÜt_out
+[
+i
+]),
+
+752 .
+f_aùiÚ
+ =
+NULL
+,
+
+753 .
+¬g_ah
+ =
+NULL
+,
+
+756 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_out_ü\97\8b
+(
+p
+->p,
+
+757 &
+pÜt_·¿ms
+,
+
+758 &
+p
+->
+pÜt_out_id
+[
+i
+]);
+
+760 ià(
+¡©us
+) {
+
+761
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+762
+ `¹e_ä\93
+(
+p
+);
+
+763 \15
+NULL
+;
+
+767 \12
+p\9d\96\9ae_num
+ = 0;
+
+768 \12
+¡©us
+ =
+ `ssÿnf
+(
+·¿ms
+->
+Çme
+, "PIPELINE%d", &
+p\9d\96\9ae_num
+);
+
+769 ià(
+¡©us
+ < 0) {
+
+770
+ `´\9atf
+("Unable\81o\84ead\85ipeline\82umber\n");
+
+771 \15
+NULL
+;
+
+773
+p_±
+->
+p\9d\96\9ae_num
+ = (
+u\9at8_t
+)\85ipeline_num;
+
+775
+ `»gi¡\94_p\9d\96\9ae_Qs
+(
+p_±
+->
+p\9d\96\9ae_num
+,
+p
+);
+
+776
+ `£t_l\9ak_m
+(
+p_±
+->
+p\9d\96\9ae_num
+,
+p
+,\85_±->
+l\9aks_m
+);
+
+777
+ `£t_ou\8dÜt_id
+(
+p_±
+->
+p\9d\96\9ae_num
+,
+p
+,\85_±->
+ou\8dÜt_id
+);
+
+780 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+781 \19
+¹e_p\9d\96\9ae_\8fbË_·¿ms
+
+\8fbË_·¿ms
+ = {
+
+782 .
+Ýs
+ = &
+¹e_\8fbË_¡ub_Ýs
+,
+
+783 .
+¬g_ü\97\8b
+ =
+NULL
+,
+
+784 .
+f_aùiÚ_h\99
+ =
+NULL
+,
+
+785 .
+f_aùiÚ_miss
+ =
+NULL
+,
+
+786 .
+¬g_ah
+ =
+NULL
+,
+
+787 .
+aùiÚ_d©a_size
+ = 0,
+
+790 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_ü\97\8b
+(
+p
+->p,
+
+791 &
+\8fbË_·¿ms
+,
+
+792 &
+p
+->
+\8fbË_id
+[
+i
+]);
+
+794 ià(
+¡©us
+) {
+
+795
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+796
+ `¹e_ä\93
+(
+p
+);
+
+797 \15
+NULL
+;
+
+802 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+803 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_cÚÃù_to_\8fbË
+(
+p
+->p,
+
+804
+p
+->
+
+805
+pÜt_\9a_id
+
+
+806 [
+i
+],
+
+807
+p
+->
+
+808
+\8fbË_id
+[
+i
+]);
+
+810 ià(
+¡©us
+) {
+
+811
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+812
+ `¹e_ä\93
+(
+p
+);
+
+813 \15
+NULL
+;
+
+818 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+819 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+
+deçuÉ_\92\8cy
+ = {
+
+820 .
+aùiÚ
+ =
+RTE_PIPELINE_ACTION_PORT
+,
+
+821 .
+pÜt_id
+ =
+p
+->
+pÜt_out_id
+[
+i
+],
+
+824 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+deçuÉ_\92\8cy_±r
+;
+
+826 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_\8fbË_deçuÉ_\92\8cy_add
+(
+
+827
+p
+->p,
+
+828
+p
+->
+
+829
+\8fbË_id
+[
+i
+],
+
+830 &
+deçuÉ_\92\8cy
+,
+
+831 &
+deçuÉ_\92\8cy_±r
+);
+
+833 ià(
+¡©us
+) {
+
+834
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+835
+ `¹e_ä\93
+(
+p
+);
+
+836 \15
+NULL
+;
+
+841 \ f
+i
+ = 0; i <
+p
+->
+n_pÜts_\9a
+; i++) {
+
+842 \12
+¡©us
+ =
+ `¹e_p\9d\96\9ae_pÜt_\9a_\92abË
+(
+p
+->p,
+
+843
+p
+->
+pÜt_\9a_id
+[
+i
+]);
+
+845 ià(
+¡©us
+) {
+
+846
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+847
+ `¹e_ä\93
+(
+p
+);
+
+848 \15
+NULL
+;
+
+853 ià(
+ `¹e_p\9d\96\9ae_check
+(
+p
+->p) < 0) {
+
+854
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+855
+ `¹e_ä\93
+(
+p
+);
+
+856 \15
+NULL
+;
+
+860
+p
+->
+n_msgq
+ =
+·¿ms
+->n_msgq;
+
+861 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+862
+p
+->
+msgq_\9a
+[
+i
+] =
+·¿ms
+->msgq_in[i];
+
+863 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++)
+
+864
+p
+->
+msgq_out
+[
+i
+] =
+·¿ms
+->msgq_out[i];
+
+867
+ `memýy
+(
+p
+->
+hªdËrs
+, handlers, \17(p->handlers));
+
+869 \15
+p
+;
+
+870
+ }
+}
+
+872 \18\12
+ $p\9d\96\9ae_txrx_ä\93
+(\1e*
+p\9d\96\9ae
+)
+
+874 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+877 ià(
+p
+ =ð
+NULL
+)
+
+881
+ `¹e_p\9d\96\9ae_ä\93
+(
+p
+->p);
+
+882
+ `¹e_ä\93
+(
+p
+);
+
+884
+ }
+}
+
+886 \18\12
+ $p\9d\96\9ae_txrx_tim\94
+(\1e*
+p\9d\96\9ae
+)
+
+888 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+890
+ `p\9d\96\9ae_msg_»q_hªdË
+(
+p
+);
+
+891
+ `¹e_p\9d\96\9ae_æush
+(
+p
+->p);
+
+894
+ }
+}
+
+897
+ $p\9d\96\9ae_txrx_\8cack
+(\1e*
+p\9d\96\9ae
+,
+u\9at32_t
+
+pÜt_\9a
+, u\9at32_\88*
+pÜt_out
+)
+
+899 \19
+p\9d\96\9ae
+ *
+p
+ = (\19pipeline *)pipeline;
+
+902 ià((
+p
+ =ð
+NULL
+è|| (
+pÜt_\9a
+ >ðp->
+n_pÜts_\9a
+è|| (
+pÜt_out
+ == NULL))
+
+905 *
+pÜt_out
+ =
+pÜt_\9a
+ /
+p
+->
+n_pÜts_\9a
+;
+
+907
+ }
+}
+
+909 \19
+p\9d\96\9ae_be_Ýs
+
+ gp\9d\96\9ae_txrx_be_Ýs
+ = {
+
+910 .
+f_\9a\99
+ =
+p\9d\96\9ae_txrx_\9a\99
+,
+
+911 .
+ gf_ä\93
+ =
+p\9d\96\9ae_txrx_ä\93
+,
+
+912 .
+ gf_run
+ =
+NULL
+,
+
+913 .
+ gf_tim\94
+ =
+p\9d\96\9ae_txrx_tim\94
+,
+
+914 .
+ gf_\8cack
+ =
+p\9d\96\9ae_txrx_\8cack
+,
+
+ @VIL/pipeline_txrx/pipeline_txrx_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_TXRX_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_TXRX_BE_H__
+
+
+ )
+
+20 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+21 \ 1
+ #PIPELINE_TXRX_KEY_PORT_IN_AH
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+23
+ `f_ah
+( \
+
+24
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+¹e_p
+, \
+
+25 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+26
+u\9at32_t
+
+n_pkts
+, \
+
+27 \1e*
+¬g
+) \
+
+29
+u\9at32_t
+
+i
+,
+j
+; \
+
+31 \ f
+j
+ = 0; j <
+n_pkts
+; j++) \
+
+32
+ `¹e_´eãtch0
+(
+pkts
+[
+j
+]); \
+
+34
+pkt_bur¡_út
+ = 0; \
+
+35 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+36
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], i,
+¬g
+); \
+
+38 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+39
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+], i,
+¬g
+); \
+
+43 }
+
+ )
+
+45 \r\19
+p\9d\96\9ae_be_Ýs
+
+p\9d\96\9ae_txrx_be_Ýs
+;
+
+49 \f
+ ep\9d\96\9ae_txrx_msg_»q_ty³
+ {
+
+50
+ mPIPELINE_TXRX_MSG_REQ_ENTRY_DBG
+,
+
+51
+ mPIPELINE_TXRX_MSG_REQS
+
+
+56 \19
+ sp\9d\96\9ae_txrx_\92\8cy_dbg_msg_»q
+ {
+
+57 \f
+p\9d\96\9ae_msg_»q_ty³
+
+ mty³
+;
+
+58 \f
+p\9d\96\9ae_txrx_msg_»q_ty³
+
+ msubty³
+;
+
+61
+u\9at8_t
+
+ md©a
+[5];
+
+67 \19
+ sp\9d\96\9ae_txrx_\9a_pÜt_h_¬g
+ {
+
+68 \19
+p\9d\96\9ae_txrx
+ *
+ mp
+;
+
+69
+u\9at8_t
+
+ m\9a_pÜt_id
+;
+
+72 \19
+ sp\9d\96\9ae_txrx_\92\8cy_dbg_msg_r¥
+ {
+
+73 \12
+ m¡©us
+;
+
+ @vnf_common/app.h
+
+17 #iâdeà
+__INCLUDE_APP_H__
+
+
+18 \ 1
+ #__INCLUDE_APP_H__
+
+
+ )
+
+20 \ 2
+ ~<¡d\9at.h
+>
+
+21 \ 2
+ ~<¡r\9ag.h
+>
+
+23 \ 2
+ ~<¹e_commÚ.h
+>
+
+24 \ 2
+ ~<¹e_mempoÞ.h
+>
+
+25 \ 2
+ ~<¹e_r\9ag.h
+>
+
+26 \ 2
+ ~<¹e_sched.h
+>
+
+27 \ 2
+ ~<¹e_tim\94.h
+>
+
+28 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+30 \ 2
+ ~<¹e_\91hdev.h
+>
+
+32 \ 2
+ ~"ýu_cÜe_m.h
+"
+
+33 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+35 \ 1
+ #APP_PARAM_NAME_SIZE
+
+PIPELINE_NAME_SIZE
+
+
+ )
+
+36 \ 1
+ #APP_LINK_PCI_BDF_SIZE
+ 32
+
+ )
+
+37 \19
+p_l\9ak_·¿ms
+ *
+ gfd\9c_p_l\9ak
+;
+
+38 \19
+ sp_mempoÞ_·¿ms
+ {
+
+39 \ 5*
+ mÇme
+;
+
+40
+u\9at32_t
+
+ m·r£d
+;
+
+41
+u\9at32_t
+
+ mbufãr_size
+;
+
+42
+u\9at32_t
+
+ mpoÞ_size
+;
+
+43
+u\9at32_t
+
+ mÿche_size
+;
+
+44
+u\9at32_t
+
+ mýu_sock\91_id
+;
+
+47 \19
+ sp_l\9ak_·¿ms
+ {
+
+48 \ 5*
+ mÇme
+;
+
+49
+u\9at32_t
+
+ m·r£d
+;
+
+50
+u\9at32_t
+
+ mpmd_id
+;
+
+51
+u\9at32_t
+
+ m¬p_q
+;
+
+52
+u\9at32_t
+
+ mtý_syn_q
+;
+
+53
+u\9at32_t
+
+ m\9d_loÿl_q
+;
+
+54
+u\9at32_t
+
+ mtý_loÿl_q
+;
+
+55
+u\9at32_t
+
+ mudp_loÿl_q
+;
+
+56
+u\9at32_t
+
+ msùp_loÿl_q
+;
+
+57
+u\9at32_t
+
+ m¡©e
+;
+
+58
+u\9at32_t
+
+ m\9d
+;
+
+59
+u\9at8_t
+
+ m\9dv6
+[16];
+
+60
+u\9at32_t
+
+ md\95th
+;
+
+61
+u\9at32_t
+
+ md\95th_\9dv6
+;
+
+62
+u\9at64_t
+
+ mmac_addr
+;
+
+63 \ 5
+ mpci_bdf
+[
+APP_LINK_PCI_BDF_SIZE
+];
+
+65 \19
+¹e_\91h_cÚf
+
+ mcÚf
+;
+
+66
+u\9at8_t
+
+ m´omisc
+;
+
+69 \19
+ sp_pktq_hwq_\9a_·¿ms
+ {
+
+70 \ 5*
+ mÇme
+;
+
+71
+u\9at32_t
+
+ m·r£d
+;
+
+72
+u\9at32_t
+
+ mmempoÞ_id
+;
+
+73
+u\9at32_t
+
+ msize
+;
+
+74
+u\9at32_t
+
+ mbur¡
+;
+
+76 \19
+¹e_\91h_rxcÚf
+
+ mcÚf
+;
+
+79 \19
+ sp_pktq_hwq_out_·¿ms
+ {
+
+80 \ 5*
+ mÇme
+;
+
+81
+u\9at32_t
+
+ m·r£d
+;
+
+82
+u\9at32_t
+
+ msize
+;
+
+83
+u\9at32_t
+
+ mbur¡
+;
+
+84
+u\9at32_t
+
+ mdrÝËss
+;
+
+85
+u\9at64_t
+
+ mn_»\8c\9bs
+;
+
+86 \19
+¹e_\91h_txcÚf
+
+ mcÚf
+;
+
+89 \19
+ sp_pktq_swq_·¿ms
+ {
+
+90 \ 5*
+ mÇme
+;
+
+91
+u\9at32_t
+
+ m·r£d
+;
+
+92
+u\9at32_t
+
+ msize
+;
+
+93
+u\9at32_t
+
+ mbur¡_»ad
+;
+
+94
+u\9at32_t
+
+ mbur¡_wr\99e
+;
+
+95
+u\9at32_t
+
+ mdrÝËss
+;
+
+96
+u\9at64_t
+
+ mn_»\8c\9bs
+;
+
+97
+u\9at32_t
+
+ mýu_sock\91_id
+;
+
+98
+u\9at32_t
+
+ m\9dv4_äag
+;
+
+99
+u\9at32_t
+
+ m\9dv6_äag
+;
+
+100
+u\9at32_t
+
+ m\9dv4_¿s
+;
+
+101
+u\9at32_t
+
+ m\9dv6_¿s
+;
+
+102
+u\9at32_t
+
+ mmtu
+;
+
+103
+u\9at32_t
+
+ mm\91ad©a_size
+;
+
+104
+u\9at32_t
+
+ mmempoÞ_d\9ceù_id
+;
+
+105
+u\9at32_t
+
+ mmempoÞ_\9ad\9ceù_id
+;
+
+108 #iâdeà
+APP_FILE_NAME_SIZE
+
+
+109 \ 1
+ #APP_FILE_NAME_SIZE
+ 256
+
+ )
+
+112 #iâdeà
+APP_MAX_SCHED_SUBPORTS
+
+
+113 \ 1
+ #APP_MAX_SCHED_SUBPORTS
+ 8
+
+ )
+
+116 #iâdeà
+APP_MAX_SCHED_PIPES
+
+
+117 \ 1
+ #APP_MAX_SCHED_PIPES
+ 4096
+
+ )
+
+120 \19
+ sp_pktq_tm_·¿ms
+ {
+
+121 \ 5*
+ mÇme
+;
+
+122
+u\9at32_t
+
+ m·r£d
+;
+
+123 cڡ \ 5*
+ mf\9ee_Çme
+;
+
+124 \19
+¹e_sched_pÜt_·¿ms
+
+ msched_pÜt_·¿ms
+;
+
+125 \19
+¹e_sched_subpÜt_·¿ms
+
+
+126
+ msched_subpÜt_·¿ms
+[
+APP_MAX_SCHED_SUBPORTS
+];
+
+127 \19
+¹e_sched_p\9de_·¿ms
+
+
+128
+ msched_p\9de_´of\9ees
+[
+RTE_SCHED_PIPE_PROFILES_PER_PORT
+];
+
+129 \12
+ msched_p\9de_to_´of\9ee
+[
+APP_MAX_SCHED_SUBPORTS
+ *
+APP_MAX_SCHED_PIPES
+];
+
+130
+u\9at32_t
+
+ mbur¡_»ad
+;
+
+131
+u\9at32_t
+
+ mbur¡_wr\99e
+;
+
+134 \19
+ sp_pktq_sourû_·¿ms
+ {
+
+135 \ 5*
+ mÇme
+;
+
+136
+u\9at32_t
+
+ m·r£d
+;
+
+137
+u\9at32_t
+
+ mmempoÞ_id
+;
+
+138
+u\9at32_t
+
+ mbur¡
+;
+
+139 \ 5*
+ mf\9ee_Çme
+;
+
+140
+u\9at32_t
+
+ mn_by\8bs_³r_pkt
+;
+
+143 \19
+ sp_pktq_s\9ak_·¿ms
+ {
+
+144 \ 5*
+ mÇme
+;
+
+145
+u\9at8_t
+
+ m·r£d
+;
+
+146 \ 5*
+ mf\9ee_Çme
+;
+
+147
+u\9at32_t
+
+ mn_pkts_to_dump
+;
+
+150 \19
+ sp_msgq_·¿ms
+ {
+
+151 \ 5*
+ mÇme
+;
+
+152
+u\9at32_t
+
+ m·r£d
+;
+
+153
+u\9at32_t
+
+ msize
+;
+
+154
+u\9at32_t
+
+ mýu_sock\91_id
+;
+
+157 \f
+ ep_pktq_\9a_ty³
+ {
+
+158
+ mAPP_PKTQ_IN_HWQ
+,
+
+159
+ mAPP_PKTQ_IN_SWQ
+,
+
+160
+ mAPP_PKTQ_IN_TM
+,
+
+161
+ mAPP_PKTQ_IN_SOURCE
+,
+
+164 \19
+ sp_pktq_\9a_·¿ms
+ {
+
+165 \f
+p_pktq_\9a_ty³
+
+ mty³
+;
+
+166
+u\9at32_t
+
+ mid
+;
+
+169 \f
+ ep_pktq_out_ty³
+ {
+
+170
+ mAPP_PKTQ_OUT_HWQ
+,
+
+171
+ mAPP_PKTQ_OUT_SWQ
+,
+
+172
+ mAPP_PKTQ_OUT_TM
+,
+
+173
+ mAPP_PKTQ_OUT_SINK
+,
+
+176 \19
+ sp_pktq_out_·¿ms
+ {
+
+177 \f
+p_pktq_out_ty³
+
+ mty³
+;
+
+178
+u\9at32_t
+
+ mid
+;
+
+181 #iâdeà
+APP_PIPELINE_TYPE_SIZE
+
+
+182 \ 1
+ #APP_PIPELINE_TYPE_SIZE
+ 64
+
+ )
+
+185 \ 1
+ #APP_MAX_PIPELINE_PKTQ_IN
+
+PIPELINE_MAX_PORT_IN
+
+
+ )
+
+186 \ 1
+ #APP_MAX_PIPELINE_PKTQ_OUT
+
+PIPELINE_MAX_PORT_OUT
+
+
+ )
+
+187 \ 1
+ #APP_MAX_PIPELINE_MSGQ_IN
+
+PIPELINE_MAX_MSGQ_IN
+
+
+ )
+
+188 \ 1
+ #APP_MAX_PIPELINE_MSGQ_OUT
+
+PIPELINE_MAX_MSGQ_OUT
+
+
+ )
+
+190 \ 1
+ #APP_MAX_PIPELINE_ARGS
+
+PIPELINE_MAX_ARGS
+
+
+ )
+
+192 \19
+ sp_p\9d\96\9ae_·¿ms
+ {
+
+193 \ 5*
+ mÇme
+;
+
+194
+u\9at8_t
+
+ m·r£d
+;
+
+196 \ 5
+ mty³
+[
+APP_PIPELINE_TYPE_SIZE
+];
+
+198
+u\9at32_t
+
+ msock\91_id
+;
+
+199
+u\9at32_t
+
+ mcÜe_id
+;
+
+200
+u\9at32_t
+
+ mhy³r_th_id
+;
+
+202 \19
+p_pktq_\9a_·¿ms
+
+ mpktq_\9a
+[
+APP_MAX_PIPELINE_PKTQ_IN
+];
+
+203 \19
+p_pktq_out_·¿ms
+
+ mpktq_out
+[
+APP_MAX_PIPELINE_PKTQ_OUT
+];
+
+204
+u\9at32_t
+
+ mmsgq_\9a
+[
+APP_MAX_PIPELINE_MSGQ_IN
+];
+
+205
+u\9at32_t
+
+ mmsgq_out
+[
+APP_MAX_PIPELINE_MSGQ_OUT
+];
+
+207
+u\9at32_t
+
+ mn_pktq_\9a
+;
+
+208
+u\9at32_t
+
+ mn_pktq_out
+;
+
+209
+u\9at32_t
+
+ mn_msgq_\9a
+;
+
+210
+u\9at32_t
+
+ mn_msgq_out
+;
+
+212
+u\9at32_t
+
+ mtim\94_³riod
+;
+
+214 \ 5*
+ m¬gs_Çme
+[
+APP_MAX_PIPELINE_ARGS
+];
+
+215 \ 5*
+ m¬gs_v®ue
+[
+APP_MAX_PIPELINE_ARGS
+];
+
+216
+u\9at32_t
+
+ mn_¬gs
+;
+
+219 \19
+ sp_p\9d\96\9ae_d©a
+ {
+
+220 \1e*
+ mbe
+;
+
+221 \1e*
+ mã
+;
+
+222 \19
+p\9d\96\9ae_ty³
+ *
+ m±y³
+;
+
+223
+u\9at64_t
+
+ mtim\94_³riod
+;
+
+224
+u\9at32_t
+
+ m\92abËd
+;
+
+227 \19
+ sp_th»ad_p\9d\96\9ae_d©a
+ {
+
+228
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+229 \1e*
+ mbe
+;
+
+230
+p\9d\96\9ae_be_Ý_run
+
+ mf_run
+;
+
+231
+p\9d\96\9ae_be_Ý_tim\94
+
+ mf_tim\94
+;
+
+232
+u\9at64_t
+
+ mtim\94_³riod
+;
+
+233
+u\9at64_t
+
+ md\97dl\9ae
+;
+
+236 #iâdeà
+APP_MAX_THREAD_PIPELINES
+
+
+237 \ 1
+ #APP_MAX_THREAD_PIPELINES
+ 32
+
+ )
+
+240 #iâdeà
+APP_THREAD_TIMER_PERIOD
+
+
+241 \ 1
+ #APP_THREAD_TIMER_PERIOD
+ 1
+
+ )
+
+244 \19
+ sp_th»ad_d©a
+ {
+
+245 \19
+p_th»ad_p\9d\96\9ae_d©a
+
+ m»guÏr
+[
+APP_MAX_THREAD_PIPELINES
+];
+
+246 \19
+p_th»ad_p\9d\96\9ae_d©a
+
+ mcu¡om
+[
+APP_MAX_THREAD_PIPELINES
+];
+
+248
+u\9at32_t
+
+ mn_»guÏr
+;
+
+249
+u\9at32_t
+
+ mn_cu¡om
+;
+
+251
+u\9at64_t
+
+ mtim\94_³riod
+;
+
+252
+u\9at64_t
+
+ mth»ad_»q_d\97dl\9ae
+;
+
+254
+u\9at64_t
+
+ md\97dl\9ae
+;
+
+256 \19
+¹e_r\9ag
+ *
+ mmsgq_\9a
+;
+
+257 \19
+¹e_r\9ag
+ *
+ mmsgq_out
+;
+
+259
+u\9at64_t
+
+ mh\97droom_time
+;
+
+260
+u\9at64_t
+
+ mh\97droom_cyþes
+;
+
+261 \b
+ mh\97droom_¿tio
+;
+
+264 #iâdeà
+APP_MAX_LINKS
+
+
+265 \ 1
+ #APP_MAX_LINKS
+ 32
+
+ )
+
+268 \19
+ sp_\97l_·¿ms
+ {
+
+270 \ 5*
+ mcÜem
+;
+
+273
+u\9at32_t
+
+ mma¡\94_lcÜe_´e£Á
+;
+
+274
+u\9at32_t
+
+ mma¡\94_lcÜe
+;
+
+277
+u\9at32_t
+
+ mchªÃls_´e£Á
+;
+
+278
+u\9at32_t
+
+ mchªÃls
+;
+
+281
+u\9at32_t
+
+ mmemÜy_´e£Á
+;
+
+282
+u\9at32_t
+
+ mmemÜy
+;
+
+285
+u\9at32_t
+
+ m¿nks_´e£Á
+;
+
+286
+u\9at32_t
+
+ m¿nks
+;
+
+289 \ 5*
+ mpci_bÏckli¡
+[
+APP_MAX_LINKS
+];
+
+292 \ 5*
+ mpci_wh\99\96i¡
+[
+APP_MAX_LINKS
+];
+
+295 \ 5*
+ mvdev
+[
+APP_MAX_LINKS
+];
+
+298
+u\9at32_t
+
+ mvmw¬e_tsc_m_´e£Á
+;
+
+299 \12
+ mvmw¬e_tsc_m
+;
+
+302 \ 5*
+ m´oc_ty³
+;
+
+305 \ 5*
+ msy¦og
+;
+
+308
+u\9at32_t
+
+ mlog_Ëv\96_´e£Á
+;
+
+309
+u\9at32_t
+
+ mlog_Ëv\96
+;
+
+312
+u\9at32_t
+
+ mv\94siÚ_´e£Á
+;
+
+313 \12
+ mv\94siÚ
+;
+
+316
+u\9at32_t
+
+ mh\96p_´e£Á
+;
+
+317 \12
+ mh\96p
+;
+
+320
+u\9at32_t
+
+ mno_huge_´e£Á
+;
+
+321 \12
+ mno_huge
+;
+
+324
+u\9at32_t
+
+ mno_pci_´e£Á
+;
+
+325 \12
+ mno_pci
+;
+
+328
+u\9at32_t
+
+ mno_h³t_´e£Á
+;
+
+329 \12
+ mno_h³t
+;
+
+332
+u\9at32_t
+
+ mno_shcÚf_´e£Á
+;
+
+333 \12
+ mno_shcÚf
+;
+
+336 \ 5*
+ madd_driv\94
+;
+
+339 \ 5*
+ msock\91_mem
+;
+
+342 \ 5*
+ mhuge_d\9c
+;
+
+345 \ 5*
+ mf\9ee_´efix
+;
+
+348 \ 5*
+ mba£_v\9c\8fddr
+;
+
+351
+u\9at32_t
+
+ mü\97\8b_uio_dev_´e£Á
+;
+
+352 \12
+ mü\97\8b_uio_dev
+;
+
+355 \ 5*
+ mvfio_\9a\8c
+;
+
+358
+u\9at32_t
+
+ mx\92_dom0_´e£Á
+;
+
+359 \12
+ mx\92_dom0
+;
+
+362 #iâdeà
+APP_APPNAME_SIZE
+
+
+363 \ 1
+ #APP_APPNAME_SIZE
+ 256
+
+ )
+
+366 #iâdeà
+APP_MAX_MEMPOOLS
+
+
+367 \ 1
+ #APP_MAX_MEMPOOLS
+ 8
+
+ )
+
+370 #iâdeà
+APP_LINK_MAX_HWQ_IN
+
+
+371 \ 1
+ #APP_LINK_MAX_HWQ_IN
+ 64
+
+ )
+
+374 #iâdeà
+APP_LINK_MAX_HWQ_OUT
+
+
+375 \ 1
+ #APP_LINK_MAX_HWQ_OUT
+ 64
+
+ )
+
+378 \ 1
+ #APP_MAX_HWQ_IN
+ (
+APP_MAX_LINKS
+ *
+APP_LINK_MAX_HWQ_IN
+)
+
+ )
+
+380 \ 1
+ #APP_MAX_HWQ_OUT
+ (
+APP_MAX_LINKS
+ *
+APP_LINK_MAX_HWQ_OUT
+)
+
+ )
+
+382 #iâdeà
+APP_MAX_PKTQ_SWQ
+
+
+383 \ 1
+ #APP_MAX_PKTQ_SWQ
+ 256
+
+ )
+
+386 \ 1
+ #APP_MAX_PKTQ_TM
+
+APP_MAX_LINKS
+
+
+ )
+
+388 #iâdeà
+APP_MAX_PKTQ_SOURCE
+
+
+389 \ 1
+ #APP_MAX_PKTQ_SOURCE
+ 32
+
+ )
+
+392 #iâdeà
+APP_MAX_PKTQ_SINK
+
+
+393 \ 1
+ #APP_MAX_PKTQ_SINK
+ 32
+
+ )
+
+396 #iâdeà
+APP_MAX_MSGQ
+
+
+397 \ 1
+ #APP_MAX_MSGQ
+ 128
+
+ )
+
+400 #iâdeà
+APP_MAX_PIPELINES
+
+
+401 \ 1
+ #APP_MAX_PIPELINES
+ 64
+
+ )
+
+404 #iâdeà
+APP_EAL_ARGC
+
+
+405 \ 1
+ #APP_EAL_ARGC
+ 32
+
+ )
+
+408 #iâdeà
+APP_MAX_PIPELINE_TYPES
+
+
+409 \ 1
+ #APP_MAX_PIPELINE_TYPES
+ 64
+
+ )
+
+412 #iâdeà
+APP_MAX_THREADS
+
+
+413 \ 1
+ #APP_MAX_THREADS
+
+RTE_MAX_LCORE
+
+
+ )
+
+416 #iâdeà
+APP_MAX_CMDS
+
+
+417 \ 1
+ #APP_MAX_CMDS
+ 128
+
+ )
+
+420 #iâdeà
+APP_THREAD_HEADROOM_STATS_COLLECT
+
+
+421 \ 1
+ #APP_THREAD_HEADROOM_STATS_COLLECT
+ 1
+
+ )
+
+424
+u\9at8_t
+
+ g\92abË_hwlb
+;
+
+425
+u\9at8_t
+
+ g\92abË_æow_d\9c
+;
+
+427 \ 1
+ #APP_CORE_MASK_SIZE
+ \
+
+428 (
+RTE_MAX_LCORE
+ / 64 + ((RTE_MAX_LCORE % 64è? 1 : 0))
+
+ )
+
+430 \19
+ sp_·¿ms
+ {
+
+432 \ 5
+ mp_Çme
+[
+APP_APPNAME_SIZE
+];
+
+433 cڡ \ 5*
+ mcÚfig_f\9ee
+;
+
+434 cڡ \ 5*
+ msü\9dt_f\9ee
+;
+
+435 cڡ \ 5*
+ m·r£r_f\9ee
+;
+
+436 cڡ \ 5*
+ mou\8dut_f\9ee
+;
+
+437 cڡ \ 5*
+ m´\95roc
+;
+
+438 cڡ \ 5*
+ m´\95roc_¬gs
+;
+
+439
+u\9at64_t
+
+ mpÜt_mask
+;
+
+440
+u\9at32_t
+
+ mlog_Ëv\96
+;
+
+442 \19
+p_\97l_·¿ms
+
+ m\97l_·¿ms
+;
+
+443 \19
+p_mempoÞ_·¿ms
+
+ mmempoÞ_·¿ms
+[
+APP_MAX_MEMPOOLS
+];
+
+444 \19
+p_l\9ak_·¿ms
+
+ ml\9ak_·¿ms
+[
+APP_MAX_LINKS
+];
+
+445 \19
+p_pktq_hwq_\9a_·¿ms
+
+ mhwq_\9a_·¿ms
+[
+APP_MAX_HWQ_IN
+];
+
+446 \19
+p_pktq_hwq_out_·¿ms
+
+ mhwq_out_·¿ms
+[
+APP_MAX_HWQ_OUT
+];
+
+447 \19
+p_pktq_swq_·¿ms
+
+ mswq_·¿ms
+[
+APP_MAX_PKTQ_SWQ
+];
+
+448 \19
+p_pktq_tm_·¿ms
+
+ mtm_·¿ms
+[
+APP_MAX_PKTQ_TM
+];
+
+449 \19
+p_pktq_sourû_·¿ms
+
+ msourû_·¿ms
+[
+APP_MAX_PKTQ_SOURCE
+];
+
+450 \19
+p_pktq_s\9ak_·¿ms
+
+ ms\9ak_·¿ms
+[
+APP_MAX_PKTQ_SINK
+];
+
+451 \19
+p_msgq_·¿ms
+
+ mmsgq_·¿ms
+[
+APP_MAX_MSGQ
+];
+
+452 \19
+p_p\9d\96\9ae_·¿ms
+
+ mp\9d\96\9ae_·¿ms
+[
+APP_MAX_PIPELINES
+];
+
+454
+u\9at32_t
+
+ mn_mempoÞs
+;
+
+455
+u\9at32_t
+
+ mn_l\9aks
+;
+
+456
+u\9at32_t
+
+ mn_pktq_hwq_\9a
+;
+
+457
+u\9at32_t
+
+ mn_pktq_hwq_out
+;
+
+458
+u\9at32_t
+
+ mn_pktq_swq
+;
+
+459
+u\9at32_t
+
+ mn_pktq_tm
+;
+
+460
+u\9at32_t
+
+ mn_pktq_sourû
+;
+
+461
+u\9at32_t
+
+ mn_pktq_s\9ak
+;
+
+462
+u\9at32_t
+
+ mn_msgq
+;
+
+463
+u\9at32_t
+
+ mn_p\9d\96\9aes
+;
+
+465
+u\9at32_t
+
+ mh\97d\94_csum_»q
+;
+
+466
+u\9at32_t
+
+ mn_hwlb_q
+;
+
+468 \ 5*
+ m\97l_¬gv
+[1 +
+APP_EAL_ARGC
+];
+
+469 \19
+ýu_cÜe_m
+ *
+ mcÜe_m
+;
+
+470
+u\9at64_t
+
+ mcÜe_mask
+[
+APP_CORE_MASK_SIZE
+];
+
+471 \19
+¹e_mempoÞ
+ *
+ mmempoÞ
+[
+APP_MAX_MEMPOOLS
+];
+
+472 \19
+¹e_r\9ag
+ *
+ mswq
+[
+APP_MAX_PKTQ_SWQ
+];
+
+473 \19
+¹e_sched_pÜt
+ *
+ mtm
+[
+APP_MAX_PKTQ_TM
+];
+
+474 \19
+¹e_r\9ag
+ *
+ mmsgq
+[
+APP_MAX_MSGQ
+];
+
+475 \19
+p\9d\96\9ae_ty³
+
+ mp\9d\96\9ae_ty³
+[
+APP_MAX_PIPELINE_TYPES
+];
+
+476 \19
+p_p\9d\96\9ae_d©a
+
+ mp\9d\96\9ae_d©a
+[
+APP_MAX_PIPELINES
+];
+
+477 \19
+p_th»ad_d©a
+
+ mth»ad_d©a
+[
+APP_MAX_THREADS
+];
+
+478
+cmdl\9ae_·r£_ùx_t
+
+ mcmds
+[
+APP_MAX_CMDS
+ + 1];
+
+480 \12
+ m\97l_¬gc
+;
+
+481
+u\9at32_t
+
+ mn_p\9d\96\9ae_ty³s
+;
+
+482
+u\9at32_t
+
+ mn_cmds
+;
+
+485 \ 1
+ #APP_PARAM_VALID
+(
+obj
+è((obj)->
+Çme
+ !ð
+NULL
+)
+
+ )
+
+487 \ 1
+ #APP_PARAM_COUNT
+(
+obj_¬¿y
+,
+n_objs
+) \
+
+489
+size_t
+
+i
+; \
+
+491
+n_objs
+ = 0; \
+
+492 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+obj_¬¿y
+); i++) \
+
+493 ià(
+ `APP_PARAM_VALID
+(&((
+obj_¬¿y
+)[
+i
+]))) \
+
+494
+n_objs
+++; \
+
+495 }
+
+ )
+
+497 \ 1
+ #APP_PARAM_FIND
+(
+obj_¬¿y
+,
+key
+) \
+
+499
+ssize_t
+
+obj_idx
+; \
+
+500 cڡ
+ssize_t
+
+obj_couÁ
+ =
+ `RTE_DIM
+(
+obj_¬¿y
+); \
+
+502 \ f
+obj_idx
+ = 0; obj_idx <
+obj_couÁ
+; obj_idx++) { \
+
+503 ià(!
+ `APP_PARAM_VALID
+(&((
+obj_¬¿y
+)[
+obj_idx
+]))) \
+
+506 ià(
+ `¡rcmp
+(
+key
+, (
+obj_¬¿y
+)[
+obj_idx
+].
+Çme
+) == 0) \
+
+509
+obj_idx
+ <
+obj_couÁ
+ ? obj_idx : -
+ENOENT
+; \
+
+510 })
+
+ )
+
+512 \ 1
+ #APP_PARAM_FIND_BY_ID
+(
+obj_¬¿y
+,
+´efix
+,
+id
+,
+obj
+) \
+
+514 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+]; \
+
+515
+ssize_t
+
+pos
+; \
+
+517
+ `¥r\9atf
+(
+Çme
+,
+´efix
+ "%"
+PRIu32
+,
+id
+); \
+
+518
+pos
+ =
+ `APP_PARAM_FIND
+(
+obj_¬¿y
+,
+Çme
+); \
+
+519
+obj
+ = (
+pos
+ < 0è?
+NULL
+ : &((
+obj_¬¿y
+)[pos]); \
+
+520 } \1f0)
+
+ )
+
+522 \ 1
+ #APP_PARAM_GET_ID
+(
+obj
+,
+´efix
+,
+id
+) \
+
+524
+ `ssÿnf
+(
+obj
+->
+Çme
+,
+´efix
+ "%"
+SCNu32
+, &
+id
+); \
+
+526
+
+ )
+
+527 \ 1
+ #APP_PARAM_ADD
+(
+obj_¬¿y
+,
+obj_Çme
+) \
+
+529
+ssize_t
+
+obj_idx
+; \
+
+530 cڡ
+ssize_t
+
+obj_couÁ
+ =
+ `RTE_DIM
+(
+obj_¬¿y
+); \
+
+532
+obj_idx
+ =
+ `APP_PARAM_FIND
+(
+obj_¬¿y
+,
+obj_Çme
+); \
+
+533 ià(
+obj_idx
+ < 0) { \
+
+534 \ f
+obj_idx
+ = 0; obj_idx <
+obj_couÁ
+; obj_idx++) { \
+
+535 ià(!
+ `APP_PARAM_VALID
+(&((
+obj_¬¿y
+)[
+obj_idx
+]))) \
+
+539 ià(
+obj_idx
+ <
+obj_couÁ
+) { \
+
+540 (
+obj_¬¿y
+)[
+obj_idx
+].
+Çme
+ =
+ `¡rdup
+(
+obj_Çme
+); \
+
+541 ià((
+obj_¬¿y
+)[
+obj_idx
+].
+Çme
+ =ð
+NULL
+) \
+
+542
+obj_idx
+ = -
+EINVAL
+; \
+
+544
+obj_idx
+ = -
+ENOMEM
+; \
+
+546
+obj_idx
+; \
+
+547 })
+
+ )
+
+549 \ 1
+ #APP_CHECK
+(
+exp
+,
+fmt
+, ...) \
+
+551 ià(!(
+exp
+)) { \
+
+552
+ `år\9atf
+(
+¡d\94r
+,
+fmt
+ "\n", ##
+__VA_ARGS__
+); \
+
+553
+ `abÜt
+(); \
+
+555 } \1f0)
+
+ )
+
+557 \f
+ ep_log_Ëv\96
+ {
+
+558
+ mAPP_LOG_LEVEL_HIGH
+ = 1,
+
+559
+ mAPP_LOG_LEVEL_LOW
+,
+
+560
+ mAPP_LOG_LEVELS
+
+
+563 \ 1
+ #APP_LOG
+(
+p
+,
+Ëv\96
+,
+fmt
+, ...) \
+
+565 ià(
+p
+->
+log_Ëv\96
+ >ð
+APP_LOG_LEVEL_
+ ##
+Ëv\96
+) \
+
+566
+ `år\9atf
+(
+¡dout
+, "[APP] "
+fmt
+ "\n", ##
+__VA_ARGS__
+); \
+
+567 } \1f0)
+
+ )
+
+569 \18
+\9al\9ae
+
+u\9at32_t
+
+
+570
+ $p_l\9ak_g\91_n_rxq
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+)
+
+572
+u\9at32_t
+
+n_rxq
+ = 0,
+l\9ak_id
+,
+i
+;
+
+573
+u\9at32_t
+
+n_pktq_hwq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_hwq_in,
+
+574
+ `RTE_DIM
+(
+p
+->
+hwq_\9a_·¿ms
+));
+
+576
+ `APP_PARAM_GET_ID
+(
+l\9ak
+, "LINK",
+l\9ak_id
+);
+
+578 \ f
+i
+ = 0; i <
+n_pktq_hwq_\9a
+; i++) {
+
+579 \19
+p_pktq_hwq_\9a_·¿ms
+ *
+p
+ = &
+p
+->
+hwq_\9a_·¿ms
+[
+i
+];
+
+580
+u\9at32_t
+
+rxq_l\9ak_id
+,
+rxq_queue_id
+;
+
+582
+ `ssÿnf
+(
+p
+->
+Çme
+, "RXQ%"
+SCNu32
+ ".%" SCNu32,
+
+583 &
+rxq_l\9ak_id
+, &
+rxq_queue_id
+);
+
+584 ià(
+rxq_l\9ak_id
+ =ð
+l\9ak_id
+)
+
+585
+n_rxq
+++;
+
+588 \15
+n_rxq
+;
+
+589
+ }
+}
+
+591 \18
+\9al\9ae
+
+u\9at32_t
+
+
+592
+ $p_l\9ak_g\91_n_txq
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+)
+
+594
+u\9at32_t
+
+n_txq
+ = 0,
+l\9ak_id
+,
+i
+;
+
+595
+u\9at32_t
+
+n_pktq_hwq_out
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_hwq_out,
+
+596
+ `RTE_DIM
+(
+p
+->
+hwq_out_·¿ms
+));
+
+598
+ `APP_PARAM_GET_ID
+(
+l\9ak
+, "LINK",
+l\9ak_id
+);
+
+600 \ f
+i
+ = 0; i <
+n_pktq_hwq_out
+; i++) {
+
+601 \19
+p_pktq_hwq_out_·¿ms
+ *
+p
+ = &
+p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+602
+u\9at32_t
+
+txq_l\9ak_id
+,
+txq_queue_id
+;
+
+604
+ `ssÿnf
+(
+p
+->
+Çme
+, "TXQ%"
+SCNu32
+ ".%" SCNu32,
+
+605 &
+txq_l\9ak_id
+, &
+txq_queue_id
+);
+
+606 ià(
+txq_l\9ak_id
+ =ð
+l\9ak_id
+)
+
+607
+n_txq
+++;
+
+610 \15
+n_txq
+;
+
+611
+ }
+}
+
+613 \18
+\9al\9ae
+
+u\9at32_t
+
+
+614
+ $p_rxq_g\91_»ad\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_hwq_\9a_·¿ms
+ *
+rxq
+)
+
+616
+u\9at32_t
+
+pos
+ =
+rxq
+ -
+p
+->
+hwq_\9a_·¿ms
+;
+
+617
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+618
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+619
+u\9at32_t
+
+n_»ad\94s
+ = 0,
+i
+;
+
+621 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+622 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+623
+u\9at32_t
+
+n_pktq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_\9a,
+ `RTE_DIM
+Õ->
+pktq_\9a
+));
+
+624
+u\9at32_t
+
+j
+;
+
+626 \ f
+j
+ = 0; j <
+n_pktq_\9a
+; j++) {
+
+627 \19
+p_pktq_\9a_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_\9a
+[
+j
+];
+
+629 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_HWQ
+) &&
+
+630 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+631
+n_»ad\94s
+++;
+
+635 \15
+n_»ad\94s
+;
+
+636
+ }
+}
+
+638 \18
+\9al\9ae
+
+u\9at32_t
+
+
+639
+ $p_swq_g\91_»ad\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_swq_·¿ms
+ *
+swq
+)
+
+641
+u\9at32_t
+
+pos
+ =
+swq
+ -
+p
+->
+swq_·¿ms
+;
+
+642
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+643
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+644
+u\9at32_t
+
+n_»ad\94s
+ = 0,
+i
+;
+
+646 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+647 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+648
+u\9at32_t
+
+n_pktq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_\9a,
+ `RTE_DIM
+Õ->
+pktq_\9a
+));
+
+649
+u\9at32_t
+
+j
+;
+
+651 \ f
+j
+ = 0; j <
+n_pktq_\9a
+; j++) {
+
+652 \19
+p_pktq_\9a_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_\9a
+[
+j
+];
+
+654 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_SWQ
+) &&
+
+655 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+656
+n_»ad\94s
+++;
+
+660 \15
+n_»ad\94s
+;
+
+661
+ }
+}
+
+663 \18
+\9al\9ae
+
+u\9at32_t
+
+
+664
+ $p_tm_g\91_»ad\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_tm_·¿ms
+ *
+tm
+)
+
+666
+u\9at32_t
+
+pos
+ =
+tm
+ -
+p
+->
+tm_·¿ms
+;
+
+667
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+668
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+669
+u\9at32_t
+
+n_»ad\94s
+ = 0,
+i
+;
+
+671 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+672 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+673
+u\9at32_t
+
+n_pktq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_\9a,
+ `RTE_DIM
+Õ->
+pktq_\9a
+));
+
+674
+u\9at32_t
+
+j
+;
+
+676 \ f
+j
+ = 0; j <
+n_pktq_\9a
+; j++) {
+
+677 \19
+p_pktq_\9a_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_\9a
+[
+j
+];
+
+679 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_TM
+) &&
+
+680 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+681
+n_»ad\94s
+++;
+
+685 \15
+n_»ad\94s
+;
+
+686
+ }
+}
+
+688 \18
+\9al\9ae
+
+u\9at32_t
+
+
+689
+ $p_sourû_g\91_»ad\94s
+(\19
+p_·¿ms
+ *
+p
+,
+
+690 \19
+p_pktq_sourû_·¿ms
+ *
+sourû
+)
+
+692
+u\9at32_t
+
+pos
+ =
+sourû
+ -
+p
+->
+sourû_·¿ms
+;
+
+693
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+694
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+695
+u\9at32_t
+
+n_»ad\94s
+ = 0,
+i
+;
+
+697 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+698 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+699
+u\9at32_t
+
+n_pktq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_\9a,
+ `RTE_DIM
+Õ->
+pktq_\9a
+));
+
+700
+u\9at32_t
+
+j
+;
+
+702 \ f
+j
+ = 0; j <
+n_pktq_\9a
+; j++) {
+
+703 \19
+p_pktq_\9a_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_\9a
+[
+j
+];
+
+705 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_IN_SOURCE
+) &&
+
+706 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+707
+n_»ad\94s
+++;
+
+711 \15
+n_»ad\94s
+;
+
+712
+ }
+}
+
+714 \18
+\9al\9ae
+
+u\9at32_t
+
+
+715
+ $p_msgq_g\91_»ad\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_msgq_·¿ms
+ *
+msgq
+)
+
+717
+u\9at32_t
+
+pos
+ =
+msgq
+ -
+p
+->
+msgq_·¿ms
+;
+
+718
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+719
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+720
+u\9at32_t
+
+n_»ad\94s
+ = 0,
+i
+;
+
+722 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+723 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+724
+u\9at32_t
+
+n_msgq_\9a
+ =
+ `RTE_MIN
+(
+p
+->n_msgq_\9a,
+ `RTE_DIM
+Õ->
+msgq_\9a
+));
+
+725
+u\9at32_t
+
+j
+;
+
+727 \ f
+j
+ = 0; j <
+n_msgq_\9a
+; j++)
+
+728 ià(
+p
+->
+msgq_\9a
+[
+j
+] =ð
+pos
+)
+
+729
+n_»ad\94s
+++;
+
+732 \15
+n_»ad\94s
+;
+
+733
+ }
+}
+
+735 \18
+\9al\9ae
+
+u\9at32_t
+
+
+736
+ $p_txq_g\91_wr\99\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_hwq_out_·¿ms
+ *
+txq
+)
+
+738
+u\9at32_t
+
+pos
+ =
+txq
+ -
+p
+->
+hwq_out_·¿ms
+;
+
+739
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+740
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+741
+u\9at32_t
+
+n_wr\99\94s
+ = 0,
+i
+;
+
+743 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+744 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+745
+u\9at32_t
+
+n_pktq_out
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_out,
+
+746
+ `RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+747
+u\9at32_t
+
+j
+;
+
+749 \ f
+j
+ = 0; j <
+n_pktq_out
+; j++) {
+
+750 \19
+p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+752 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_HWQ
+) &&
+
+753 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+754
+n_wr\99\94s
+++;
+
+758 \15
+n_wr\99\94s
+;
+
+759
+ }
+}
+
+761 \18
+\9al\9ae
+
+u\9at32_t
+
+
+762
+ $p_swq_g\91_wr\99\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_swq_·¿ms
+ *
+swq
+)
+
+764
+u\9at32_t
+
+pos
+ =
+swq
+ -
+p
+->
+swq_·¿ms
+;
+
+765
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+766
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+767
+u\9at32_t
+
+n_wr\99\94s
+ = 0,
+i
+;
+
+769 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+770 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+771
+u\9at32_t
+
+n_pktq_out
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_out,
+
+772
+ `RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+773
+u\9at32_t
+
+j
+;
+
+775 \ f
+j
+ = 0; j <
+n_pktq_out
+; j++) {
+
+776 \19
+p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+778 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_SWQ
+) &&
+
+779 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+780
+n_wr\99\94s
+++;
+
+784 \15
+n_wr\99\94s
+;
+
+785
+ }
+}
+
+787 \18
+\9al\9ae
+
+u\9at32_t
+
+
+788
+ $p_tm_g\91_wr\99\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_tm_·¿ms
+ *
+tm
+)
+
+790
+u\9at32_t
+
+pos
+ =
+tm
+ -
+p
+->
+tm_·¿ms
+;
+
+791
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+792
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+793
+u\9at32_t
+
+n_wr\99\94s
+ = 0,
+i
+;
+
+795 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+796 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+797
+u\9at32_t
+
+n_pktq_out
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_out,
+
+798
+ `RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+799
+u\9at32_t
+
+j
+;
+
+801 \ f
+j
+ = 0; j <
+n_pktq_out
+; j++) {
+
+802 \19
+p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+804 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_TM
+) &&
+
+805 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+806
+n_wr\99\94s
+++;
+
+810 \15
+n_wr\99\94s
+;
+
+811
+ }
+}
+
+813 \18
+\9al\9ae
+
+u\9at32_t
+
+
+814
+ $p_s\9ak_g\91_wr\99\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_s\9ak_·¿ms
+ *
+s\9ak
+)
+
+816
+u\9at32_t
+
+pos
+ =
+s\9ak
+ -
+p
+->
+s\9ak_·¿ms
+;
+
+817
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+818
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+819
+u\9at32_t
+
+n_wr\99\94s
+ = 0,
+i
+;
+
+821 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+822 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+823
+u\9at32_t
+
+n_pktq_out
+ =
+ `RTE_MIN
+(
+p
+->n_pktq_out,
+
+824
+ `RTE_DIM
+(
+p
+->
+pktq_out
+));
+
+825
+u\9at32_t
+
+j
+;
+
+827 \ f
+j
+ = 0; j <
+n_pktq_out
+; j++) {
+
+828 \19
+p_pktq_out_·¿ms
+ *
+pktq
+ = &
+p
+->
+pktq_out
+[
+j
+];
+
+830 ià((
+pktq
+->
+ty³
+ =ð
+APP_PKTQ_OUT_SINK
+) &&
+
+831 (
+pktq
+->
+id
+ =ð
+pos
+))
+
+832
+n_wr\99\94s
+++;
+
+836 \15
+n_wr\99\94s
+;
+
+837
+ }
+}
+
+839 \18
+\9al\9ae
+
+u\9at32_t
+
+
+840
+ $p_cÜe_is_\92abËd
+(\19
+p_·¿ms
+ *
+p
+,
+u\9at32_t
+
+lcÜe_id
+) {
+
+841 \15(
+p
+->
+cÜe_mask
+[
+lcÜe_id
+ / 64] &
+
+842 (1LLU << (
+lcÜe_id
+ % 64)));
+
+843
+ }
+}
+
+845 \18
+\9al\9ae
+ \1e
+
+846
+ $p_cÜe_\92abË_\9a_cÜe_mask
+(\19
+p_·¿ms
+ *
+p
+, \12
+lcÜe_id
+) {
+
+847
+p
+->
+cÜe_mask
+[
+lcÜe_id
+ / 64] |= 1LLU << (lcore_id % 64);
+
+849
+ }
+}
+
+851 \18
+\9al\9ae
+ \1e
+
+852
+ $p_cÜe_bu\9ed_cÜe_mask_¡r\9ag
+(\19
+p_·¿ms
+ *
+p
+, \ 5
+
+853 *
+mask_bufãr
+) {
+
+854 \12
+i
+;
+
+856
+mask_bufãr
+[0] = '\0';
+
+857 \ f
+i
+ = (\12)
+ `RTE_DIM
+(
+p
+->
+cÜe_mask
+); i > 0; i--) {
+
+859 \ 5
+bufãr
+[(64 / 8) * 2 + 1];
+
+860
+ `mem£t
+(
+bufãr
+, 0, \17(buffer));
+
+861
+ `¢´\9atf
+(
+bufãr
+, \17(bufãr), "%016"
+PRIx64
+,
+
+862
+p
+->
+cÜe_mask
+[
+i
+-1]);
+
+863
+ `¡rÿt
+(
+mask_bufãr
+,
+bufãr
+);
+
+865
+ }
+}
+
+867 \18
+\9al\9ae
+
+u\9at32_t
+
+
+868
+ $p_msgq_g\91_wr\99\94s
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_msgq_·¿ms
+ *
+msgq
+)
+
+870
+u\9at32_t
+
+pos
+ =
+msgq
+ -
+p
+->
+msgq_·¿ms
+;
+
+871
+u\9at32_t
+
+n_p\9d\96\9aes
+ =
+ `RTE_MIN
+(
+p
+->n_pipelines,
+
+872
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+));
+
+873
+u\9at32_t
+
+n_wr\99\94s
+ = 0,
+i
+;
+
+875 \ f
+i
+ = 0; i <
+n_p\9d\96\9aes
+; i++) {
+
+876 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+877
+u\9at32_t
+
+n_msgq_out
+ =
+ `RTE_MIN
+(
+p
+->n_msgq_out,
+
+878
+ `RTE_DIM
+(
+p
+->
+msgq_out
+));
+
+879
+u\9at32_t
+
+j
+;
+
+881 \ f
+j
+ = 0; j <
+n_msgq_out
+; j++)
+
+882 ià(
+p
+->
+msgq_out
+[
+j
+] =ð
+pos
+)
+
+883
+n_wr\99\94s
+++;
+
+886 \15
+n_wr\99\94s
+;
+
+887
+ }
+}
+
+889 \18
+\9al\9ae
+ \19
+p_l\9ak_·¿ms
+ *
+
+890
+ $p_g\91_l\9ak_fÜ_rxq
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_hwq_\9a_·¿ms
+ *
+p
+)
+
+892 \ 5
+l\9ak_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+893
+ssize_t
+
+l\9ak_·¿m_idx
+;
+
+894
+u\9at32_t
+
+rxq_l\9ak_id
+,
+rxq_queue_id
+;
+
+896
+ `ssÿnf
+(
+p
+->
+Çme
+, "RXQ%"
+SCNu32
+ ".%" SCNu32,
+
+897 &
+rxq_l\9ak_id
+, &
+rxq_queue_id
+);
+
+898
+ `¥r\9atf
+(
+l\9ak_Çme
+, "LINK%"
+PRIu32
+,
+rxq_l\9ak_id
+);
+
+899
+l\9ak_·¿m_idx
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+l\9ak_·¿ms
+,
+l\9ak_Çme
+);
+
+900
+ `APP_CHECK
+((
+l\9ak_·¿m_idx
+ >= 0),
+
+901 "CªnÙ f\9ad % fÜ %s",
+l\9ak_Çme
+,
+p
+->
+Çme
+);
+
+903 \15 &
+p
+->
+l\9ak_·¿ms
+[
+l\9ak_·¿m_idx
+];
+
+904
+ }
+}
+
+906 \18
+\9al\9ae
+ \19
+p_l\9ak_·¿ms
+ *
+
+907
+ $p_g\91_l\9ak_fÜ_txq
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_hwq_out_·¿ms
+ *
+p
+)
+
+909 \ 5
+l\9ak_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+910
+ssize_t
+
+l\9ak_·¿m_idx
+;
+
+911
+u\9at32_t
+
+txq_l\9ak_id
+,
+txq_queue_id
+;
+
+913
+ `ssÿnf
+(
+p
+->
+Çme
+, "TXQ%"
+SCNu32
+ ".%" SCNu32,
+
+914 &
+txq_l\9ak_id
+, &
+txq_queue_id
+);
+
+915
+ `¥r\9atf
+(
+l\9ak_Çme
+, "LINK%"
+PRIu32
+,
+txq_l\9ak_id
+);
+
+916
+l\9ak_·¿m_idx
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+l\9ak_·¿ms
+,
+l\9ak_Çme
+);
+
+917
+ `APP_CHECK
+((
+l\9ak_·¿m_idx
+ >= 0),
+
+918 "CªnÙ f\9ad % fÜ %s",
+l\9ak_Çme
+,
+p
+->
+Çme
+);
+
+920 \15 &
+p
+->
+l\9ak_·¿ms
+[
+l\9ak_·¿m_idx
+];
+
+921
+ }
+}
+
+923 \18
+\9al\9ae
+ \19
+p_l\9ak_·¿ms
+ *
+
+924
+ $p_g\91_l\9ak_fÜ_tm
+(\19
+p_·¿ms
+ *
+p
+, \19
+p_pktq_tm_·¿ms
+ *
+p_tm
+)
+
+926 \ 5
+l\9ak_Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+927
+u\9at32_t
+
+l\9ak_id
+;
+
+928
+ssize_t
+
+l\9ak_·¿m_idx
+;
+
+930
+ `ssÿnf
+(
+p_tm
+->
+Çme
+, "TM%"
+PRIu32
+, &
+l\9ak_id
+);
+
+931
+ `¥r\9atf
+(
+l\9ak_Çme
+, "LINK%"
+PRIu32
+,
+l\9ak_id
+);
+
+932
+l\9ak_·¿m_idx
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+l\9ak_·¿ms
+,
+l\9ak_Çme
+);
+
+933
+ `APP_CHECK
+((
+l\9ak_·¿m_idx
+ >= 0),
+
+934 "CªnÙ f\9ad % fÜ %s",
+l\9ak_Çme
+,
+p_tm
+->
+Çme
+);
+
+936 \15 &
+p
+->
+l\9ak_·¿ms
+[
+l\9ak_·¿m_idx
+];
+
+937
+ }
+}
+
+939 \12
+p_cÚfig_\9a\99
+(\19
+p_·¿ms
+ *
+p
+);
+
+941 \12
+p_cÚfig_¬gs
+(\19
+p_·¿ms
+ *
+p
+,
+
+942 \12
+¬gc
+, \ 5**
+¬gv
+);
+
+944 \12
+p_cÚfig_´\95roc
+(\19
+p_·¿ms
+ *
+p
+);
+
+946 \12
+p_cÚfig_·r£
+(\19
+p_·¿ms
+ *
+p
+,
+
+947 cڡ \ 5*
+f\9ee_Çme
+);
+
+949 \12
+p_cÚfig_·r£_tm
+(\19
+p_·¿ms
+ *
+p
+);
+
+951 \1e
+p_cÚfig_§ve
+(\19
+p_·¿ms
+ *
+p
+,
+
+952 cڡ \ 5*
+f\9ee_Çme
+);
+
+954 \12
+p_cÚfig_check
+(\19
+p_·¿ms
+ *
+p
+);
+
+956 \12
+p_\9a\99
+(\19
+p_·¿ms
+ *
+p
+);
+
+958 \12
+p_th»ad
+(\1e*
+¬g
+);
+
+960 \12
+p_p\9d\96\9ae_ty³_»gi¡\94
+(\19
+p_·¿ms
+ *
+p
+,
+
+961 \19
+p\9d\96\9ae_ty³
+ *
+±y³
+);
+
+963 \19
+p\9d\96\9ae_ty³
+ *
+p_p\9d\96\9ae_ty³_f\9ad
+(\19
+p_·¿ms
+ *
+p
+,
+
+964 \ 5*
+Çme
+);
+
+966 \1e
+p_l\9ak_up_\9a\8bº®
+(\19
+p_·¿ms
+ *
+p
+,
+
+967 \19
+p_l\9ak_·¿ms
+ *
+ý
+);
+
+969 \1e
+p_l\9ak_down_\9a\8bº®
+(\19
+p_·¿ms
+ *
+p
+,
+
+970 \19
+p_l\9ak_·¿ms
+ *
+ý
+);
+
+ @vnf_common/config_check.c
+
+17 \ 2
+ ~<¡dio.h
+>
+
+19 \ 2
+ ~<¹e_\9d.h
+>
+
+21 \ 2
+ ~"p.h
+"
+
+23
+u\9at8_t
+
+ gg_n_hwq_\9a
+;
+
+25
+ $check_mempoÞs
+(\19
+p_·¿ms
+ *
+p
+)
+
+27
+u\9at32_t
+
+i
+;
+
+29 \ f
+i
+ = 0; i <
+p
+->
+n_mempoÞs
+; i++) {
+
+30 \19
+p_mempoÞ_·¿ms
+ *
+p
+ = &
+p
+->
+mempoÞ_·¿ms
+[
+i
+];
+
+32
+ `APP_CHECK
+((
+p
+->
+poÞ_size
+ > 0),
+
+33 "MempoÞ % siz\90i 0\n",
+p
+->
+Çme
+);
+
+35
+ `APP_CHECK
+((
+p
+->
+ÿche_size
+ > 0),
+
+36 "MempoÞ % ÿch\90siz\90i 0\n",
+p
+->
+Çme
+);
+
+38
+ `APP_CHECK
+(
+ `¹e_is_pow\94_of_2
+(
+p
+->
+ÿche_size
+),
+
+39 "MempoÞ % ÿch\90siz\90nÙ\87\85ow\94 oà2\n",
+p
+->
+Çme
+);
+
+41
+ }
+}
+
+44
+ $check_l\9aks
+(\19
+p_·¿ms
+ *
+p
+)
+
+46
+u\9at32_t
+
+i
+;
+
+49 ià(
+p
+->
+pÜt_mask
+) {
+
+50
+u\9at32_t
+
+n_l\9aks_pÜt_mask
+ =
+
+51
+ `__bu\9et\9a_pÝcouÁÎ
+(
+p
+->
+pÜt_mask
+);
+
+53
+ `APP_CHECK
+((
+p
+->
+n_l\9aks
+ =ð
+n_l\9aks_pÜt_mask
+),
+
+57 \ f
+i
+ = 0; i <
+p
+->
+n_l\9aks
+; i++) {
+
+58 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+ = &
+p
+->
+l\9ak_·¿ms
+[
+i
+];
+
+59
+u\9at32_t
+
+rxq_max
+,
+n_rxq
+,
+n_txq
+,
+l\9ak_id
+,
+i
+;
+
+61
+ `APP_PARAM_GET_ID
+(
+l\9ak
+, "LINK",
+l\9ak_id
+);
+
+64
+rxq_max
+ = 0;
+
+65 ià(
+l\9ak
+->
+¬p_q
+ >
+rxq_max
+)
+
+66
+rxq_max
+ =
+l\9ak
+->
+¬p_q
+;
+
+67 ià(
+l\9ak
+->
+tý_syn_q
+ >
+rxq_max
+)
+
+68
+rxq_max
+ =
+l\9ak
+->
+tý_syn_q
+;
+
+69 ià(
+l\9ak
+->
+\9d_loÿl_q
+ >
+rxq_max
+)
+
+70
+rxq_max
+ =
+l\9ak
+->
+\9d_loÿl_q
+;
+
+71 ià(
+l\9ak
+->
+tý_loÿl_q
+ >
+rxq_max
+)
+
+72
+rxq_max
+ =
+l\9ak
+->
+tý_loÿl_q
+;
+
+73 ià(
+l\9ak
+->
+udp_loÿl_q
+ >
+rxq_max
+)
+
+74
+rxq_max
+ =
+l\9ak
+->
+udp_loÿl_q
+;
+
+75 ià(
+l\9ak
+->
+sùp_loÿl_q
+ >
+rxq_max
+)
+
+76
+rxq_max
+ =
+l\9ak
+->
+sùp_loÿl_q
+;
+
+78 if(
+\92abË_hwlb
+ ||
+\92abË_æow_d\9c
+){
+
+79
+g_n_hwq_\9a
+ =
+p
+->
+n_hwlb_q
+;
+
+80
+rxq_max
+ = (
+g_n_hwq_\9a
+ - 1);
+
+81 \ f
+i
+ =
+g_n_hwq_\9a
+; i <ð
+rxq_max
+; i++)
+
+82
+ `APP_CHECK
+(((
+l\9ak
+->
+¬p_q
+ =ð
+i
+) ||
+
+83 (
+l\9ak
+->
+tý_syn_q
+ =ð
+i
+) ||
+
+84 (
+l\9ak
+->
+\9d_loÿl_q
+ =ð
+i
+) ||
+
+85 (
+l\9ak
+->
+tý_loÿl_q
+ =ð
+i
+) ||
+
+86 (
+l\9ak
+->
+udp_loÿl_q
+ =ð
+i
+) ||
+
+87 (
+l\9ak
+->
+sùp_loÿl_q
+ =ð
+i
+)),
+
+88 "% RXQ ¬\90nÙ cÚtiguou (A)\n",
+l\9ak
+->
+Çme
+);
+
+92 \ f
+i
+ = 1; i <ð
+rxq_max
+; i++)
+
+93
+ `APP_CHECK
+(((
+l\9ak
+->
+¬p_q
+ =ð
+i
+) ||
+
+94 (
+l\9ak
+->
+tý_syn_q
+ =ð
+i
+) ||
+
+95 (
+l\9ak
+->
+\9d_loÿl_q
+ =ð
+i
+) ||
+
+96 (
+l\9ak
+->
+tý_loÿl_q
+ =ð
+i
+) ||
+
+97 (
+l\9ak
+->
+udp_loÿl_q
+ =ð
+i
+) ||
+
+98 (
+l\9ak
+->
+sùp_loÿl_q
+ =ð
+i
+)),
+
+99 "% RXQ ¬\90nÙ cÚtiguou (A)\n",
+l\9ak
+->
+Çme
+);
+
+101
+n_rxq
+ =
+ `p_l\9ak_g\91_n_rxq
+(
+p
+,
+l\9ak
+);
+
+103
+ `APP_CHECK
+((
+n_rxq
+), "% dÛ nÙ hav\90ªy RXQ\n",
+l\9ak
+->
+Çme
+);
+
+104
+ `´\9atf
+("n_rxq = %d\n",
+n_rxq
+);
+
+105
+ `´\9atf
+("rxq_max = %d\n",
+rxq_max
+);
+
+109 \ f
+i
+ = 0; i <
+n_rxq
+; i++) {
+
+110 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+111 \12
+pos
+;
+
+113
+ `¥r\9atf
+(
+Çme
+, "RXQ%"
+PRIu32
+ ".%" PRIu32,
+
+114
+l\9ak_id
+,
+i
+);
+
+115
+pos
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+hwq_\9a_·¿ms
+,
+Çme
+);
+
+116
+ `APP_CHECK
+((
+pos
+ >= 0),
+
+117 "% RXQ ¬\90nÙ cÚtiguou (C)\n",
+l\9ak
+->
+Çme
+);
+
+121
+n_txq
+ =
+ `p_l\9ak_g\91_n_txq
+(
+p
+,
+l\9ak
+);
+
+123
+ `APP_CHECK
+((
+n_txq
+), "% dÛ nÙ hav\90ªy TXQ\n",
+l\9ak
+->
+Çme
+);
+
+125 \ f
+i
+ = 0; i <
+n_txq
+; i++) {
+
+126 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+127 \12
+pos
+;
+
+129
+ `¥r\9atf
+(
+Çme
+, "TXQ%"
+PRIu32
+ ".%" PRIu32,
+
+130
+l\9ak_id
+,
+i
+);
+
+131
+pos
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+hwq_out_·¿ms
+,
+Çme
+);
+
+132
+ `APP_CHECK
+((
+pos
+ >= 0),
+
+133 "% TXQ ¬\90nÙ cÚtiguous\n",
+l\9ak
+->
+Çme
+);
+
+136
+ }
+}
+
+139
+ $check_rxqs
+(\19
+p_·¿ms
+ *
+p
+)
+
+141
+u\9at32_t
+
+i
+;
+
+143 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_hwq_\9a
+; i++) {
+
+144 \19
+p_pktq_hwq_\9a_·¿ms
+ *
+p
+ = &
+p
+->
+hwq_\9a_·¿ms
+[
+i
+];
+
+145
+u\9at32_t
+
+n_»ad\94s
+ =
+ `p_rxq_g\91_»ad\94s
+(
+p
+,
+p
+);
+
+147
+ `APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+148 "% siz\90i 0\n",
+p
+->
+Çme
+);
+
+150
+ `APP_CHECK
+((
+ `¹e_is_pow\94_of_2
+(
+p
+->
+size
+)),
+
+151 "% siz\90i nÙ\87\85ow\94 oà2\n",
+p
+->
+Çme
+);
+
+153
+ `APP_CHECK
+((
+p
+->
+bur¡
+ > 0),
+
+154 "% bur¡ siz\90i 0\n",
+p
+->
+Çme
+);
+
+156
+ `APP_CHECK
+((
+p
+->
+bur¡
+ <ðp->
+size
+),
+
+157 "% bur¡ siz\90i bigg\94\81hª it size\n",
+p
+->
+Çme
+);
+
+159
+ `APP_CHECK
+((
+n_»ad\94s
+ != 0),
+
+160 "% ha nػad\94\n",
+p
+->
+Çme
+);
+
+162
+ `APP_CHECK
+((
+n_»ad\94s
+ == 1),
+
+163 "% ha mÜ\90thª oÃ\84\97d\94\n",
+p
+->
+Çme
+);
+
+165
+ }
+}
+
+168
+ $check_txqs
+(\19
+p_·¿ms
+ *
+p
+)
+
+170
+u\9at32_t
+
+i
+;
+
+172 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_hwq_out
+; i++) {
+
+173 \19
+p_pktq_hwq_out_·¿ms
+ *
+p
+ = &
+p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+174
+u\9at32_t
+
+n_wr\99\94s
+ =
+ `p_txq_g\91_wr\99\94s
+(
+p
+,
+p
+);
+
+176
+ `APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+177 "% siz\90i 0\n",
+p
+->
+Çme
+);
+
+179
+ `APP_CHECK
+((
+ `¹e_is_pow\94_of_2
+(
+p
+->
+size
+)),
+
+180 "% siz\90i nÙ\87\85ow\94 oà2\n",
+p
+->
+Çme
+);
+
+182
+ `APP_CHECK
+((
+p
+->
+bur¡
+ > 0),
+
+183 "% bur¡ siz\90i 0\n",
+p
+->
+Çme
+);
+
+185
+ `APP_CHECK
+((
+p
+->
+bur¡
+ <ðp->
+size
+),
+
+186 "% bur¡ siz\90i bigg\94\81hª it size\n",
+p
+->
+Çme
+);
+
+188
+ `APP_CHECK
+((
+n_wr\99\94s
+ != 0),
+
+189 "% ha nØwr\99\94\n",
+p
+->
+Çme
+);
+
+191
+ `APP_CHECK
+((
+n_wr\99\94s
+ == 1),
+
+192 "% ha mÜ\90thª oà wr\99\94\n",
+p
+->
+Çme
+);
+
+194
+ }
+}
+
+197
+ $check_swqs
+(\19
+p_·¿ms
+ *
+p
+)
+
+199
+u\9at32_t
+
+i
+;
+
+201 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_swq
+; i++) {
+
+202 \19
+p_pktq_swq_·¿ms
+ *
+p
+ = &
+p
+->
+swq_·¿ms
+[
+i
+];
+
+203
+u\9at32_t
+
+n_»ad\94s
+ =
+ `p_swq_g\91_»ad\94s
+(
+p
+,
+p
+);
+
+204
+u\9at32_t
+
+n_wr\99\94s
+ =
+ `p_swq_g\91_wr\99\94s
+(
+p
+,
+p
+);
+
+205
+u\9at32_t
+
+n_æags
+;
+
+207
+ `APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+208 "% siz\90i 0\n",
+p
+->
+Çme
+);
+
+210
+ `APP_CHECK
+((
+ `¹e_is_pow\94_of_2
+(
+p
+->
+size
+)),
+
+211 "% siz\90i nÙ\87\85ow\94 oà2\n",
+p
+->
+Çme
+);
+
+213
+ `APP_CHECK
+((
+p
+->
+bur¡_»ad
+ > 0),
+
+214 "% »ad bur¡ siz\90i 0\n",
+p
+->
+Çme
+);
+
+216
+ `APP_CHECK
+((
+p
+->
+bur¡_»ad
+ <ðp->
+size
+),
+
+218
+p
+->
+Çme
+);
+
+220
+ `APP_CHECK
+((
+p
+->
+bur¡_wr\99e
+ > 0),
+
+221 "% wr\99\90bur¡ siz\90i 0\n",
+p
+->
+Çme
+);
+
+223
+ `APP_CHECK
+((
+p
+->
+bur¡_wr\99e
+ <ðp->
+size
+),
+
+225
+p
+->
+Çme
+);
+
+227
+ `APP_CHECK
+((
+n_»ad\94s
+ != 0),
+
+228 "% ha nػad\94\n",
+p
+->
+Çme
+);
+
+230 ià(
+n_»ad\94s
+ > 1)
+
+231
+ `APP_LOG
+(
+p
+,
+LOW
+, "% ha mÜ\90thª oÃ\84\97d\94",
+p
+->
+Çme
+);
+
+233
+ `APP_CHECK
+((
+n_wr\99\94s
+ != 0),
+
+234 "% ha nØwr\99\94\n",
+p
+->
+Çme
+);
+
+236 ià(
+n_wr\99\94s
+ > 1)
+
+237
+ `APP_LOG
+(
+p
+,
+LOW
+, "% ha mÜ\90thª oà wr\99\94",
+p
+->
+Çme
+);
+
+239
+n_æags
+ =
+p
+->
+\9dv4_äag
+ +\85->
+\9dv6_äag
+ +\85->
+\9dv4_¿s
+ +\85->
+\9dv6_¿s
+;
+
+241
+ `APP_CHECK
+((
+n_æags
+ < 2),
+
+243
+p
+->
+Çme
+);
+
+245
+ `APP_CHECK
+((!((
+n_»ad\94s
+ > 1è&& (
+n_æags
+ == 1))),
+
+248
+p
+->
+Çme
+);
+
+250
+ `APP_CHECK
+((!((
+n_wr\99\94s
+ > 1è&& (
+n_æags
+ == 1))),
+
+253
+p
+->
+Çme
+);
+
+255
+n_æags
+ =
+p
+->
+\9dv4_¿s
+ +\85->
+\9dv6_¿s
+;
+
+257
+ `APP_CHECK
+((!((
+p
+->
+drÝËss
+ =ð1è&& (
+n_æags
+ == 1))),
+
+258 "% ha drÝËs wh\92\84\97s£mbly mod\90\92abËd\n",
+p
+->
+Çme
+);
+
+260
+n_æags
+ =
+p
+->
+\9dv4_äag
+ +\85->
+\9dv6_äag
+;
+
+262 ià(
+n_æags
+ == 1) {
+
+263
+u\9at16_t
+
+\9d_hdr_size
+ = (
+p
+->
+\9dv4_äag
+è? \17(\19
+\9dv4_hdr
+) :
+
+264 \17(\19
+\9dv6_hdr
+);
+
+266
+ `APP_CHECK
+((
+p
+->
+mtu
+ >
+\9d_hdr_size
+),
+
+267 "% mtu siz\90i sm®Ë¸thª i°h\97d\94\n",
+p
+->
+Çme
+);
+
+269
+ `APP_CHECK
+((!((
+p
+->
+mtu
+ -
+\9d_hdr_size
+) % 8)),
+
+270 "% mtu siz\90i \9acÜ»ù\n",
+p
+->
+Çme
+);
+
+273
+ }
+}
+
+276
+ $check_tms
+(\19
+p_·¿ms
+ *
+p
+)
+
+278
+u\9at32_t
+
+i
+;
+
+280 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_tm
+; i++) {
+
+281 \19
+p_pktq_tm_·¿ms
+ *
+p
+ = &
+p
+->
+tm_·¿ms
+[
+i
+];
+
+282
+u\9at32_t
+
+n_»ad\94s
+ =
+ `p_tm_g\91_»ad\94s
+(
+p
+,
+p
+);
+
+283
+u\9at32_t
+
+n_wr\99\94s
+ =
+ `p_tm_g\91_wr\99\94s
+(
+p
+,
+p
+);
+
+285
+ `APP_CHECK
+((
+n_»ad\94s
+ != 0),
+
+286 "% ha nػad\94\n",
+p
+->
+Çme
+);
+
+288
+ `APP_CHECK
+((
+n_»ad\94s
+ == 1),
+
+289 "% ha mÜ\90thª oÃ\84\97d\94\n",
+p
+->
+Çme
+);
+
+291
+ `APP_CHECK
+((
+n_wr\99\94s
+ != 0),
+
+292 "% ha nØwr\99\94\n",
+p
+->
+Çme
+);
+
+294
+ `APP_CHECK
+((
+n_wr\99\94s
+ == 1),
+
+295 "% ha mÜ\90thª oà wr\99\94\n",
+p
+->
+Çme
+);
+
+297
+ }
+}
+
+300
+ $check_sourûs
+(\19
+p_·¿ms
+ *
+p
+)
+
+302
+u\9at32_t
+
+i
+;
+
+304 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_sourû
+; i++) {
+
+305 \19
+p_pktq_sourû_·¿ms
+ *
+p
+ = &
+p
+->
+sourû_·¿ms
+[
+i
+];
+
+306
+u\9at32_t
+
+n_»ad\94s
+ =
+ `p_sourû_g\91_»ad\94s
+(
+p
+,
+p
+);
+
+308
+ `APP_CHECK
+((
+n_»ad\94s
+ != 0),
+
+309 "% ha nػad\94\n",
+p
+->
+Çme
+);
+
+311
+ `APP_CHECK
+((
+n_»ad\94s
+ == 1),
+
+312 "% ha mÜ\90thª oÃ\84\97d\94\n",
+p
+->
+Çme
+);
+
+314
+ }
+}
+
+317
+ $check_s\9aks
+(\19
+p_·¿ms
+ *
+p
+)
+
+319
+u\9at32_t
+
+i
+;
+
+321 \ f
+i
+ = 0; i <
+p
+->
+n_pktq_s\9ak
+; i++) {
+
+322 \19
+p_pktq_s\9ak_·¿ms
+ *
+p
+ = &
+p
+->
+s\9ak_·¿ms
+[
+i
+];
+
+323
+u\9at32_t
+
+n_wr\99\94s
+ =
+ `p_s\9ak_g\91_wr\99\94s
+(
+p
+,
+p
+);
+
+325
+ `APP_CHECK
+((
+n_wr\99\94s
+ != 0),
+
+326 "% ha nØwr\99\94\n",
+p
+->
+Çme
+);
+
+328
+ `APP_CHECK
+((
+n_wr\99\94s
+ == 1),
+
+329 "% ha mÜ\90thª oà wr\99\94\n",
+p
+->
+Çme
+);
+
+331
+ }
+}
+
+334
+ $check_msgqs
+(\19
+p_·¿ms
+ *
+p
+)
+
+336
+u\9at32_t
+
+i
+;
+
+338 \ f
+i
+ = 0; i <
+p
+->
+n_msgq
+; i++) {
+
+339 \19
+p_msgq_·¿ms
+ *
+p
+ = &
+p
+->
+msgq_·¿ms
+[
+i
+];
+
+340
+u\9at32_t
+
+n_»ad\94s
+ =
+ `p_msgq_g\91_»ad\94s
+(
+p
+,
+p
+);
+
+341
+u\9at32_t
+
+n_wr\99\94s
+ =
+ `p_msgq_g\91_wr\99\94s
+(
+p
+,
+p
+);
+
+342
+u\9at32_t
+
+msgq_»q_p\9d\96\9ae
+,
+msgq_r¥_p\9d\96\9ae
+;
+
+343
+u\9at32_t
+
+msgq_»q_cÜe
+,
+msgq_r¥_cÜe
+;
+
+345
+ `APP_CHECK
+((
+p
+->
+size
+ > 0),
+
+346 "% siz\90i 0\n",
+p
+->
+Çme
+);
+
+348
+ `APP_CHECK
+((
+ `¹e_is_pow\94_of_2
+(
+p
+->
+size
+)),
+
+349 "% siz\90i nÙ\87\85ow\94 oà2\n",
+p
+->
+Çme
+);
+
+351
+msgq_»q_p\9d\96\9ae
+ = (
+ `¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-REQ-PIPELINE",
+
+352
+ `¡¾\92
+("MSGQ-REQ-PIPELINE")) == 0);
+
+354
+msgq_r¥_p\9d\96\9ae
+ = (
+ `¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-RSP-PIPELINE",
+
+355
+ `¡¾\92
+("MSGQ-RSP-PIPELINE")) == 0);
+
+357
+msgq_»q_cÜe
+ = (
+ `¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-REQ-CORE",
+
+358
+ `¡¾\92
+("MSGQ-REQ-CORE")) == 0);
+
+360
+msgq_r¥_cÜe
+ = (
+ `¡ºcmp
+(
+p
+->
+Çme
+, "MSGQ-RSP-CORE",
+
+361
+ `¡¾\92
+("MSGQ-RSP-CORE")) == 0);
+
+363 ià((
+msgq_»q_p\9d\96\9ae
+ == 0) &&
+
+364 (
+msgq_r¥_p\9d\96\9ae
+ == 0) &&
+
+365 (
+msgq_»q_cÜe
+ == 0) &&
+
+366 (
+msgq_r¥_cÜe
+ == 0)) {
+
+367
+ `APP_CHECK
+((
+n_»ad\94s
+ != 0),
+
+368 "% ha nػad\94\n",
+p
+->
+Çme
+);
+
+370
+ `APP_CHECK
+((
+n_»ad\94s
+ == 1),
+
+371 "% ha mÜ\90thª oÃ\84\97d\94\n",
+p
+->
+Çme
+);
+
+373
+ `APP_CHECK
+((
+n_wr\99\94s
+ != 0),
+
+374 "% ha nØwr\99\94\n",
+p
+->
+Çme
+);
+
+376
+ `APP_CHECK
+((
+n_wr\99\94s
+ == 1),
+
+377 "% ha mÜ\90thª oà wr\99\94\n",
+p
+->
+Çme
+);
+
+380 ià(
+msgq_»q_p\9d\96\9ae
+) {
+
+381 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p\9d\96\9ae
+;
+
+382
+u\9at32_t
+
+p\9d\96\9ae_id
+;
+
+384
+ `APP_PARAM_GET_ID
+(
+p
+, "MSGQ-REQ-PIPELINE",
+p\9d\96\9ae_id
+);
+
+386
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+,
+
+388
+p\9d\96\9ae_id
+,
+
+389
+p\9d\96\9ae
+);
+
+391
+ `APP_CHECK
+((
+p\9d\96\9ae
+ !ð
+NULL
+),
+
+393
+p
+->
+Çme
+);
+
+396 ià(
+msgq_r¥_p\9d\96\9ae
+) {
+
+397 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p\9d\96\9ae
+;
+
+398
+u\9at32_t
+
+p\9d\96\9ae_id
+;
+
+400
+ `APP_PARAM_GET_ID
+(
+p
+, "MSGQ-RSP-PIPELINE",
+p\9d\96\9ae_id
+);
+
+402
+ `APP_PARAM_FIND_BY_ID
+(
+p
+->
+p\9d\96\9ae_·¿ms
+,
+
+404
+p\9d\96\9ae_id
+,
+
+405
+p\9d\96\9ae
+);
+
+407
+ `APP_CHECK
+((
+p\9d\96\9ae
+ !ð
+NULL
+),
+
+409
+p
+->
+Çme
+);
+
+412
+ }
+}
+
+415
+ $check_p\9d\96\9aes
+(\19
+p_·¿ms
+ *
+p
+)
+
+417
+u\9at32_t
+
+i
+;
+
+419 \ f
+i
+ = 0; i <
+p
+->
+n_p\9d\96\9aes
+; i++) {
+
+420 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+422
+ `APP_CHECK
+((
+p
+->
+n_msgq_\9a
+ =ðp->
+n_msgq_out
+),
+
+424 "th\90numb\94 oàou\8du\88MSGQs\n",
+p
+->
+Çme
+);
+
+426
+ }
+}
+
+429
+ $p_cÚfig_check
+(\19
+p_·¿ms
+ *
+p
+)
+
+431
+ `check_mempoÞs
+(
+p
+);
+
+432
+ `check_l\9aks
+(
+p
+);
+
+433
+ `check_rxqs
+(
+p
+);
+
+434
+ `check_txqs
+(
+p
+);
+
+435
+ `check_swqs
+(
+p
+);
+
+436
+ `check_tms
+(
+p
+);
+
+437
+ `check_sourûs
+(
+p
+);
+
+438
+ `check_s\9aks
+(
+p
+);
+
+439
+ `check_msgqs
+(
+p
+);
+
+440
+ `check_p\9d\96\9aes
+(
+p
+);
+
+443
+ }
+}
+
+ @vnf_common/config_parse.c
+
+16 \ 2
+ ~<¡d\9at.h
+>
+
+17 \ 2
+ ~<¡dlib.h
+>
+
+18 \ 2
+ ~<¡dio.h
+>
+
+19 \ 2
+ ~<ùy³.h
+>
+
+20 \ 2
+ ~<g\91Ýt.h
+>
+
+21 \ 2
+ ~<\94ºo.h
+>
+
+22 \ 2
+ ~<¡d¬g.h
+>
+
+23 \ 2
+ ~<¡r\9ag.h
+>
+
+24 \ 2
+ ~<libg\92.h
+>
+
+25 \ 2
+ ~<uni¡d.h
+>
+
+26 \ 2
+ ~<sys/wa\99.h
+>
+
+28 \ 2
+ ~<¹e_\94ºo.h
+>
+
+29 \ 2
+ ~<¹e_cfgf\9ee.h
+>
+
+30 \ 2
+ ~<¹e_¡r\9ag_âs.h
+>
+
+32 \ 2
+ ~"p.h
+"
+
+33 \ 2
+ ~"·r£r.h
+"
+
+39 \18\19
+p_·¿ms
+
+ gp_·¿ms_deçuÉ
+ = {
+
+40 .
+cÚfig_f\9ee
+ = "./config/ip_pipeline.cfg",
+
+41 .
+ glog_Ëv\96
+ =
+APP_LOG_LEVEL_HIGH
+,
+
+42 .
+ gpÜt_mask
+ = 0,
+
+44 .
+ g\97l_·¿ms
+ = {
+
+45 .
+chªÃls
+ = 4,
+
+49 \18cڡ \19
+p_mempoÞ_·¿ms
+
+ gmempoÞ_·¿ms_deçuÉ
+ = {
+
+50 .
+·r£d
+ = 0,
+
+51 .
+ gbufãr_size
+ = 2048 + \17(\19
+¹e_mbuf
+è+
+RTE_PKTMBUF_HEADROOM
+,
+
+52 .
+ gpoÞ_size
+ = 32 * 1024,
+
+53 .
+ gÿche_size
+ = 256,
+
+54 .
+ gýu_sock\91_id
+ = 0,
+
+57 \18cڡ \19
+p_l\9ak_·¿ms
+
+ gl\9ak_·¿ms_deçuÉ
+ = {
+
+58 .
+·r£d
+ = 0,
+
+59 .
+ gpmd_id
+ = 0,
+
+60 .
+ g¬p_q
+ = 0,
+
+61 .
+ gtý_syn_q
+ = 0,
+
+62 .
+ g\9d_loÿl_q
+ = 0,
+
+63 .
+ gtý_loÿl_q
+ = 0,
+
+64 .
+ gudp_loÿl_q
+ = 0,
+
+65 .
+ gsùp_loÿl_q
+ = 0,
+
+66 .
+ g¡©e
+ = 0,
+
+67 .
+ g\9d
+ = 0,
+
+68 .
+ g\9dv6
+ = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+
+69 .
+ gd\95th
+ = 0,
+
+70 .
+ gd\95th_\9dv6
+ = 0,
+
+71 .
+ gmac_addr
+ = 0,
+
+72 .
+ gpci_bdf
+ = {0},
+
+74 .
+ gcÚf
+ = {
+
+75 .
+l\9ak_¥\93ds
+ = 0,
+
+76 .
+ grxmode
+ = {
+
+77 .
+mq_mode
+ =
+ETH_MQ_RX_NONE
+,
+
+79 .
+ gh\97d\94_¥l\99
+ = 0,
+
+80 .
+ ghw_\9d_checksum
+ = 0,
+
+81 .
+ ghw_vÏn_f\9e\8br
+ = 0,
+
+82 .
+ ghw_vÏn_¡r\9d
+ = 0,
+
+83 .
+ ghw_vÏn_ex\8bnd
+ = 0,
+
+84 .
+ gjumbo_äame
+ = 0,
+
+85 .
+ ghw_¡r\9d_üc
+ = 0,
+
+86 .
+ g\92abË_sÿ\89\94
+ = 0,
+
+88 .
+ gmax_rx_pkt_Ën
+ = 9000,
+
+89 .
+ g¥l\99_hdr_size
+ = 0,
+
+91 .
+ gtxmode
+ = {
+
+92 .
+mq_mode
+ =
+ETH_MQ_TX_NONE
+,
+
+94 .
+ gÍbk_mode
+ = 0,
+
+95 #iâdeà
+VNF_ACL
+
+
+96 #ifdeà
+LSC_GRARP
+
+
+97 .
+ g\9a\8c_cÚf
+ = {
+
+98 .
+lsc
+ = 1,
+
+104 .
+ g´omisc
+ = 1,
+
+107 \18cڡ \19
+p_pktq_hwq_\9a_·¿ms
+
+ gdeçuÉ_hwq_\9a_·¿ms
+ = {
+
+108 .
+·r£d
+ = 0,
+
+109 .
+ gmempoÞ_id
+ = 0,
+
+110 .
+ gsize
+ = 128,
+
+111 .
+ gbur¡
+ = 32,
+
+113 .
+ gcÚf
+ = {
+
+114 .
+rx_th»sh
+ = {
+
+115 .
+±h»sh
+ = 8,
+
+116 .
+ ghth»sh
+ = 8,
+
+117 .
+ gwth»sh
+ = 4,
+
+119 .
+ grx_ä\93_th»sh
+ = 64,
+
+120 .
+ grx_drÝ_\92
+ = 0,
+
+121 .
+ grx_deã¼ed_¡¬t
+ = 0,
+
+125 \18cڡ \19
+p_pktq_hwq_out_·¿ms
+
+ gdeçuÉ_hwq_out_·¿ms
+ = {
+
+126 .
+·r£d
+ = 0,
+
+127 .
+ gsize
+ = 512,
+
+128 .
+ gbur¡
+ = 32,
+
+129 .
+ gdrÝËss
+ = 0,
+
+130 .
+ gn_»\8c\9bs
+ = 0,
+
+132 .
+ gcÚf
+ = {
+
+133 .
+tx_th»sh
+ = {
+
+134 .
+±h»sh
+ = 36,
+
+135 .
+ ghth»sh
+ = 0,
+
+136 .
+ gwth»sh
+ = 0,
+
+138 .
+ gtx_rs_th»sh
+ = 0,
+
+139 .
+ gtx_ä\93_th»sh
+ = 0,
+
+140 .
+ gtxq_æags
+ =
+ETH_TXQ_FLAGS_NOMULTSEGS
+ |
+
+141
+ETH_TXQ_FLAGS_NOOFFLOADS
+,
+
+142 .
+ gtx_deã¼ed_¡¬t
+ = 0,
+
+146 \18cڡ \19
+p_pktq_swq_·¿ms
+
+ gdeçuÉ_swq_·¿ms
+ = {
+
+147 .
+·r£d
+ = 0,
+
+148 .
+ gsize
+ = 256,
+
+149 .
+ gbur¡_»ad
+ = 32,
+
+150 .
+ gbur¡_wr\99e
+ = 32,
+
+151 .
+ gdrÝËss
+ = 0,
+
+152 .
+ gn_»\8c\9bs
+ = 0,
+
+153 .
+ gýu_sock\91_id
+ = 0,
+
+154 .
+ g\9dv4_äag
+ = 0,
+
+155 .
+ g\9dv6_äag
+ = 0,
+
+156 .
+ g\9dv4_¿s
+ = 0,
+
+157 .
+ g\9dv6_¿s
+ = 0,
+
+158 .
+ gmtu
+ = 0,
+
+159 .
+ gm\91ad©a_size
+ = 0,
+
+160 .
+ gmempoÞ_d\9ceù_id
+ = 0,
+
+161 .
+ gmempoÞ_\9ad\9ceù_id
+ = 0,
+
+164 \19
+p_pktq_tm_·¿ms
+
+ gdeçuÉ_tm_·¿ms
+ = {
+
+165 .
+·r£d
+ = 0,
+
+166 .
+ gf\9ee_Çme
+ = "./config/tm_profile.cfg",
+
+167 .
+ gbur¡_»ad
+ = 64,
+
+168 .
+ gbur¡_wr\99e
+ = 32,
+
+171 \19
+p_pktq_sourû_·¿ms
+
+ gdeçuÉ_sourû_·¿ms
+ = {
+
+172 .
+·r£d
+ = 0,
+
+173 .
+ gmempoÞ_id
+ = 0,
+
+174 .
+ gbur¡
+ = 32,
+
+175 .
+ gf\9ee_Çme
+ =
+NULL
+,
+
+176 .
+ gn_by\8bs_³r_pkt
+ = 0,
+
+179 \19
+p_pktq_s\9ak_·¿ms
+
+ gdeçuÉ_s\9ak_·¿ms
+ = {
+
+180 .
+·r£d
+ = 0,
+
+181 .
+ gf\9ee_Çme
+ =
+NULL
+,
+
+182 .
+ gn_pkts_to_dump
+ = 0,
+
+185 \19
+p_msgq_·¿ms
+
+ gdeçuÉ_msgq_·¿ms
+ = {
+
+186 .
+·r£d
+ = 0,
+
+187 .
+ gsize
+ = 64,
+
+188 .
+ gýu_sock\91_id
+ = 0,
+
+191 \19
+p_p\9d\96\9ae_·¿ms
+
+ gdeçuÉ_p\9d\96\9ae_·¿ms
+ = {
+
+192 .
+·r£d
+ = 0,
+
+193 .
+ gsock\91_id
+ = 0,
+
+194 .
+ gcÜe_id
+ = 0,
+
+195 .
+ ghy³r_th_id
+ = 0,
+
+196 .
+ gn_pktq_\9a
+ = 0,
+
+197 .
+ gn_pktq_out
+ = 0,
+
+198 .
+ gn_msgq_\9a
+ = 0,
+
+199 .
+ gn_msgq_out
+ = 0,
+
+200 .
+ gtim\94_³riod
+ = 1,
+
+201 .
+ gn_¬gs
+ = 0,
+
+204 \18cڡ \ 5
+ gp_u§ge
+[] =
+
+220
+ $p_´\9at_u§ge
+(\ 5*
+´gÇme
+)
+
+222
+ `¹e_ex\99
+(0,
+p_u§ge
+,
+´gÇme
+,
+p_·¿ms_deçuÉ
+.
+cÚfig_f\9ee
+);
+
+223
+ }
+}
+
+225 \ 1
+ #sk\9d_wh\99e_¥aûs
+(
+pos
+) \
+
+227
+ `__ty³of__
+(
+pos
+è
+_p
+ = (pos); \
+
+228 \ f ;
+ `is¥aû
+(*
+_p
+); _p++); \
+
+229
+_p
+; \
+
+230 })
+
+ )
+
+232 \ 1
+ #PARSER_PARAM_ADD_CHECK
+(
+»suÉ
+,
+·¿ms_¬¿y
+,
+£ùiÚ_Çme
+) \
+
+234
+ `APP_CHECK
+((
+»suÉ
+ !ð-
+EINVAL
+), \
+
+236
+ `APP_CHECK
+((
+»suÉ
+ !ð-
+ENOMEM
+), \
+
+237 "P¬£\83¼Ü:\81oØmªy \"%s\" seùiÚs",
+£ùiÚ_Çme
+); \
+
+238
+ `APP_CHECK
+(((
+»suÉ
+ >ð0è&& (
+·¿ms_¬¿y
+)[»suÉ].
+·r£d
+ == 0),\
+
+239 "P¬£\83¼Ü: du¶iÿ\8b \"%s\" seùiÚ",
+£ùiÚ_Çme
+); \
+
+240
+ `APP_CHECK
+((
+»suÉ
+ >= 0), \
+
+241 "P¬£\83¼Ü iÀ£ùiÚ \"%s\"",
+£ùiÚ_Çme
+); \
+
+242 } \1f0)
+
+ )
+
+245
+ $·r£r_»ad_¬g_boÞ
+(cڡ \ 5*
+p
+)
+
+247
+p
+ =
+ `sk\9d_wh\99e_¥aûs
+(p);
+
+248 \12
+»suÉ
+ = -
+EINVAL
+;
+
+250 ià(((
+p
+[0] == 'y') && (p[1] == 'e') && (p[2] == 's')) ||
+
+251 ((
+p
+[0] == 'Y') && (p[1] == 'E') && (p[2] == 'S'))) {
+
+252
+p
+ += 3;
+
+253
+»suÉ
+ = 1;
+
+256 ià(((
+p
+[0] == 'o') && (p[1] == 'n')) ||
+
+257 ((
+p
+[0] == 'O') && (p[1] == 'N'))) {
+
+258
+p
+ += 2;
+
+259
+»suÉ
+ = 1;
+
+262 ià(((
+p
+[0] == 'n') && (p[1] == 'o')) ||
+
+263 ((
+p
+[0] == 'N') && (p[1] == 'O'))) {
+
+264
+p
+ += 2;
+
+265
+»suÉ
+ = 0;
+
+268 ià(((
+p
+[0] == 'o') && (p[1] == 'f') && (p[2] == 'f')) ||
+
+269 ((
+p
+[0] == 'O') && (p[1] == 'F') && (p[2] == 'F'))) {
+
+270
+p
+ += 3;
+
+271
+»suÉ
+ = 0;
+
+274
+p
+ =
+ `sk\9d_wh\99e_¥aûs
+(p);
+
+276 ià(
+p
+[0] != '\0')
+
+277 \15 -
+EINVAL
+;
+
+279 \15
+»suÉ
+;
+
+280
+ }
+}
+
+282 \ 1
+ #PARSE_ERROR
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+283
+ `APP_CHECK
+(
+exp
+, "P¬£\83¼Ü iÀ£ùiÚ \"%s\":\83Áry \"%s\"\n",
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+285 \ 1
+ #PARSE_ERROR_MESSAGE
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+,
+mes§ge
+) \
+
+286
+ `APP_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\",\83ntry \"%s\": %s\n", \
+
+287
+£ùiÚ
+,
+\92\8cy
+,
+mes§ge
+)
+
+ )
+
+290 \ 1
+ #PARSE_ERROR_MALLOC
+(
+exp
+) \
+
+291
+ `APP_CHECK
+(
+exp
+, "P¬£\83¼Ü:\82Øä\93 memÜy\n")
+
+ )
+
+293 \ 1
+ #PARSE_ERROR_SECTION
+(
+exp
+,
+£ùiÚ
+) \
+
+294
+ `APP_CHECK
+(
+exp
+, "P¬£\83¼Ü iÀ£ùiÚ \"%s\"",
+£ùiÚ
+)
+
+ )
+
+296 \ 1
+ #PARSE_ERROR_SECTION_NO_ENTRIES
+(
+exp
+,
+£ùiÚ
+) \
+
+297
+ `APP_CHECK
+(
+exp
+, "P¬£\83¼Ü iÀ£ùiÚ \"%s\":\82Ø\92\8c\9bs\n",
+£ùiÚ
+)
+
+ )
+
+299 \ 1
+ #PARSE_WARNING_IGNORED
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+301 ià(!(
+exp
+)) \
+
+302
+ `år\9atf
+(
+¡d\94r
+, "Parse warning in section \"%s\": " \
+
+303 "\92\8cy \"%s\" i ignÜed\n",
+£ùiÚ
+,
+\92\8cy
+); \
+
+304 \1f0)
+
+ )
+
+306 \ 1
+ #PARSE_ERROR_INVALID
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+307
+ `APP_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\": unrecognized\83ntry \"%s\"\n",\
+
+308
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+310 \ 1
+ #PARSE_ERROR_DUPLICATE
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+311
+ `APP_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\": duplicate\83ntry \"%s\"\n",\
+
+312
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+315
+ $·r£r_»ad_u\9at64
+(
+u\9at64_t
+ *
+v®ue
+, cڡ \ 5*
+p
+)
+
+317 \ 5*
+Ãxt
+;
+
+318
+u\9at64_t
+
+v®
+;
+
+320
+p
+ =
+ `sk\9d_wh\99e_¥aûs
+(p);
+
+321 ià(!
+ `isdig\99
+(*
+p
+))
+
+322 \15 -
+EINVAL
+;
+
+324
+v®
+ =
+ `¡¹oul
+(
+p
+, &
+Ãxt
+, 10);
+
+325 ià(
+p
+ =ð
+Ãxt
+)
+
+326 \15 -
+EINVAL
+;
+
+328
+p
+ =
+Ãxt
+;
+
+329 \1a*
+p
+) {
+
+331
+v®
+ *= 1024ULL;
+
+334
+v®
+ *= 1024ULL;
+
+337
+v®
+ *= 1024ULL;
+
+341
+v®
+ *= 1024ULL;
+
+342
+p
+++;
+
+346
+p
+ =
+ `sk\9d_wh\99e_¥aûs
+(p);
+
+347 ià(*
+p
+ != '\0')
+
+348 \15 -
+EINVAL
+;
+
+350 *
+v®ue
+ =
+v®
+;
+
+352
+ }
+}
+
+355
+ $·r£r_»ad_u\9at32
+(
+u\9at32_t
+ *
+v®ue
+, cڡ \ 5*
+p
+)
+
+357
+u\9at64_t
+
+v®
+ = 0;
+
+358 \12
+»t
+ =
+ `·r£r_»ad_u\9at64
+(&
+v®
+,
+p
+);
+
+360 ià(
+»t
+ < 0)
+
+361 \15
+»t
+;
+
+363 ià(
+v®
+ >
+UINT32_MAX
+)
+
+364 \15 -
+ERANGE
+;
+
+366 *
+v®ue
+ =
+v®
+;
+
+368
+ }
+}
+
+371
+ $·r£_p\9d\96\9ae_cÜe
+(
+u\9at32_t
+ *
+sock\91
+,
+
+372
+u\9at32_t
+ *
+cÜe
+,
+
+373
+u\9at32_t
+ *
+ht
+,
+
+374 cڡ \ 5*
+\92\8cy
+)
+
+376
+size_t
+
+num_Ën
+;
+
+377 \ 5
+num
+[8];
+
+379
+u\9at32_t
+
+s
+ = 0,
+c
+ = 0,
+h
+ = 0,
+v®
+;
+
+380
+u\9at8_t
+
+s_·r£d
+ = 0,
+c_·r£d
+ = 0,
+h_·r£d
+ = 0;
+
+381 cڡ \ 5*
+Ãxt
+ =
+ `sk\9d_wh\99e_¥aûs
+(
+\92\8cy
+);
+
+382 \ 5
+ty³
+;
+
+385 \1f*
+Ãxt
+ != '\0') {
+
+387 ià(
+s_·r£d
+ &&
+c_·r£d
+ &&
+h_·r£d
+)
+
+388 \15 -
+EINVAL
+;
+
+390
+ty³
+ = *
+Ãxt
+;
+
+391 \1a
+ty³
+) {
+
+394 ià(
+s_·r£d
+ ||
+c_·r£d
+ ||
+h_·r£d
+)
+
+395 \15 -
+EINVAL
+;
+
+396
+s_·r£d
+ = 1;
+
+397
+Ãxt
+++;
+
+401 ià(
+c_·r£d
+ ||
+h_·r£d
+)
+
+402 \15 -
+EINVAL
+;
+
+403
+c_·r£d
+ = 1;
+
+404
+Ãxt
+++;
+
+408 ià(
+h_·r£d
+)
+
+409 \15 -
+EINVAL
+;
+
+410
+h_·r£d
+ = 1;
+
+411
+Ãxt
+++;
+
+415 ià(!
+ `isdig\99
+(*
+Ãxt
+è||
+s_·r£d
+ ||
+c_·r£d
+ ||
+h_·r£d
+)
+
+416 \15 -
+EINVAL
+;
+
+418
+ty³
+ = 'C';
+
+421 \ f
+num_Ën
+ = 0; *
+Ãxt
+ != '\0';\82ext++,\82um_len++) {
+
+422 ià(
+num_Ën
+ =ð
+ `RTE_DIM
+(
+num
+))
+
+423 \15 -
+EINVAL
+;
+
+425 ià(!
+ `isdig\99
+(*
+Ãxt
+))
+
+428
+num
+[
+num_Ën
+] = *
+Ãxt
+;
+
+431 ià(
+num_Ën
+ =ð0 &&
+ty³
+ != 'h' &&\81ype != 'H')
+
+432 \15 -
+EINVAL
+;
+
+434 ià(
+num_Ën
+ !ð0 && (
+ty³
+ == 'h' ||\81ype == 'H'))
+
+435 \15 -
+EINVAL
+;
+
+436 if(
+num_Ën
+ < \17(
+num
+))
+
+437
+num
+[
+num_Ën
+] = '\0';
+
+438
+v®
+ =
+ `¡¹Þ
+(
+num
+,
+NULL
+, 10);
+
+440
+h
+ = 0;
+
+441 \1a
+ty³
+) {
+
+444
+s
+ =
+v®
+;
+
+448
+c
+ =
+v®
+;
+
+452
+h
+ = 1;
+
+457 *
+sock\91
+ =
+s
+;
+
+458 *
+cÜe
+ =
+c
+;
+
+459 *
+ht
+ =
+h
+;
+
+461
+ }
+}
+
+463 \18
+u\9at32_t
+
+
+464
+ $g\91_hex_v®
+(\ 5
+c
+)
+
+466 \1a
+c
+) {
+
+469 \15
+c
+ - '0';
+
+471 \15
+c
+ - 'A' + 10;
+
+473 \15
+c
+ - 'a' + 10;
+
+477
+ }
+}
+
+480
+ $·r£_hex_¡r\9ag
+(\ 5*
+¤c
+,
+u\9at8_t
+ *
+d¡
+,
+u\9at32_t
+ *
+size
+)
+
+482 \ 5*
+c
+;
+
+483
+u\9at32_t
+
+Ën
+,
+i
+;
+
+486 ià((
+¤c
+ =ð
+NULL
+) ||
+
+487 (
+d¡
+ =ð
+NULL
+) ||
+
+488 (
+size
+ =ð
+NULL
+) ||
+
+489 (*
+size
+ == 0))
+
+492
+Ën
+ =
+ `¡¾\92
+(
+¤c
+);
+
+493 ià(((
+Ën
+ & 3) != 0) ||
+
+494 (
+Ën
+ > (*
+size
+) * 2))
+
+496 *
+size
+ =
+Ën
+ / 2;
+
+498 \ f
+c
+ =
+¤c
+; *c != 0; c++) {
+
+499 ià((((*
+c
+) >= '0') && ((*c) <= '9')) ||
+
+500 (((*
+c
+) >= 'A') && ((*c) <= 'F')) ||
+
+501 (((*
+c
+) >= 'a') && ((*c) <= 'f')))
+
+508 \ f
+i
+ = 0; i < *
+size
+; i++)
+
+509
+d¡
+[
+i
+] =
+ `g\91_hex_v®
+(
+¤c
+[2 * i]) * 16 +
+
+510
+ `g\91_hex_v®
+(
+¤c
+[2 *
+i
+ + 1]);
+
+513
+ }
+}
+
+515 \18
+size_t
+
+
+516
+ $sk\9d_dig\99s
+(cڡ \ 5*
+¤c
+)
+
+518
+size_t
+
+i
+;
+
+520 \ f
+i
+ = 0;
+ `isdig\99
+(
+¤c
+[i]); i++);
+
+522 \15
+i
+;
+
+523
+ }
+}
+
+526
+ $v®id©e_Çme
+(cڡ \ 5*
+Çme
+, cڡ \ 5*
+´efix
+, \12
+num
+)
+
+528
+size_t
+
+i
+,
+j
+;
+
+530 \ f
+i
+ = 0; (
+Çme
+[i] !ð'\0'è&& (
+´efix
+[i] != '\0'); i++) {
+
+531 ià(
+Çme
+[
+i
+] !ð
+´efix
+[i])
+
+535 ià(
+´efix
+[
+i
+] != '\0')
+
+538 ià(!
+num
+) {
+
+539 ià(
+Çme
+[
+i
+] != '\0')
+
+545 ià(
+num
+ == 2) {
+
+546
+j
+ =
+ `sk\9d_dig\99s
+(&
+Çme
+[
+i
+]);
+
+547
+i
+ +ð
+j
+;
+
+548 ià((
+j
+ =ð0è|| (
+Çme
+[
+i
+] != '.'))
+
+550
+i
+++;
+
+553 ià(
+num
+ == 1) {
+
+554
+j
+ =
+ `sk\9d_dig\99s
+(&
+Çme
+[
+i
+]);
+
+555
+i
+ +ð
+j
+;
+
+556 ià((
+j
+ =ð0è|| (
+Çme
+[
+i
+] != '\0'))
+
+561
+ }
+}
+
+564
+ $·r£_\97l
+(\19
+p_·¿ms
+ *
+p
+,
+
+565 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+566 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+568 \19
+p_\97l_·¿ms
+ *
+p
+ = &
+p
+->
+\97l_·¿ms
+;
+
+569 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+570 \12
+n_\92\8c\9bs
+,
+i
+;
+
+572
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+573
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+575
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+576
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+578
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+580 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+581 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8cy
+ = &
+\92\8c\9bs
+[
+i
+];
+
+584 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "c") == 0) {
+
+585
+ `PARSE_WARNING_IGNORED
+(0,
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+590 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "l") == 0) {
+
+591
+ `PARSE_WARNING_IGNORED
+(0,
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+596 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "lcores") == 0) {
+
+597
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+cÜem
+ =ð
+NULL
+),
+
+598
+£ùiÚ_Çme
+,
+
+599
+\92\8cy
+->
+Çme
+);
+
+600
+p
+->
+cÜem
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+605 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "master_lcore") == 0) {
+
+606 \12
+¡©us
+;
+
+608
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+ma¡\94_lcÜe_´e£Á
+ == 0),
+
+609
+£ùiÚ_Çme
+,
+
+610
+\92\8cy
+->
+Çme
+);
+
+611
+p
+->
+ma¡\94_lcÜe_´e£Á
+ = 1;
+
+613
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+ma¡\94_lcÜe
+,
+
+614
+\92\8cy
+->
+v®ue
+);
+
+615
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+620 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "n") == 0) {
+
+621 \12
+¡©us
+;
+
+623
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+chªÃls_´e£Á
+ == 0),
+
+624
+£ùiÚ_Çme
+,
+
+625
+\92\8cy
+->
+Çme
+);
+
+626
+p
+->
+chªÃls_´e£Á
+ = 1;
+
+628
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+chªÃls
+,
+\92\8cy
+->
+v®ue
+);
+
+629
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+634 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "m") == 0) {
+
+635 \12
+¡©us
+;
+
+637
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+memÜy_´e£Á
+ == 0),
+
+638
+£ùiÚ_Çme
+,
+
+639
+\92\8cy
+->
+Çme
+);
+
+640
+p
+->
+memÜy_´e£Á
+ = 1;
+
+642
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+memÜy
+,
+\92\8cy
+->
+v®ue
+);
+
+643
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+648 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "r") == 0) {
+
+649 \12
+¡©us
+;
+
+651
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+¿nks_´e£Á
+ == 0),
+
+652
+£ùiÚ_Çme
+,
+
+653
+\92\8cy
+->
+Çme
+);
+
+654
+p
+->
+¿nks_´e£Á
+ = 1;
+
+656
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+¿nks
+,
+\92\8cy
+->
+v®ue
+);
+
+657
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+662 ià((
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "pci_blacklist") == 0) ||
+
+663 (
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "b") == 0)) {
+
+664
+u\9at32_t
+
+i
+;
+
+666 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+667 ià(
+p
+->
+pci_bÏckli¡
+[
+i
+])
+
+670
+p
+->
+pci_bÏckli¡
+[
+i
+] =
+
+671
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+672
+ `PARSE_ERROR_MALLOC
+(
+p
+->
+pci_bÏckli¡
+[
+i
+]);
+
+677
+ `PARSE_ERROR_MESSAGE
+((
+i
+ <
+APP_MAX_LINKS
+),
+
+678
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+,
+
+684 ià((
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "pci_whitelist") == 0) ||
+
+685 (
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "w") == 0)) {
+
+686
+u\9at32_t
+
+i
+;
+
+688
+ `PARSE_ERROR_MESSAGE
+((
+p
+->
+pÜt_mask
+ != 0),
+
+689
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+, "entry\81o be "
+
+693 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+694 ià(
+p
+->
+pci_wh\99\96i¡
+[
+i
+])
+
+697
+p
+->
+pci_wh\99\96i¡
+[
+i
+] =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+698
+ `PARSE_ERROR_MALLOC
+(
+p
+->
+pci_wh\99\96i¡
+[
+i
+]);
+
+703
+ `PARSE_ERROR_MESSAGE
+((
+i
+ <
+APP_MAX_LINKS
+),
+
+704
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+,
+
+710 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "vdev") == 0) {
+
+711
+u\9at32_t
+
+i
+;
+
+713 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+714 ià(
+p
+->
+vdev
+[
+i
+])
+
+717
+p
+->
+vdev
+[
+i
+] =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+718
+ `PARSE_ERROR_MALLOC
+(
+p
+->
+vdev
+[
+i
+]);
+
+723
+ `PARSE_ERROR_MESSAGE
+((
+i
+ <
+APP_MAX_LINKS
+),
+
+724
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+,
+
+730 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "vmware_tsc_map") == 0) {
+
+731 \12
+v®
+;
+
+733
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+vmw¬e_tsc_m_´e£Á
+ == 0),
+
+734
+£ùiÚ_Çme
+,
+
+735
+\92\8cy
+->
+Çme
+);
+
+736
+p
+->
+vmw¬e_tsc_m_´e£Á
+ = 1;
+
+738
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+739
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+740
+p
+->
+vmw¬e_tsc_m
+ =
+v®
+;
+
+745 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "proc_type") == 0) {
+
+746
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+´oc_ty³
+ =ð
+NULL
+),
+
+747
+£ùiÚ_Çme
+,
+
+748
+\92\8cy
+->
+Çme
+);
+
+749
+p
+->
+´oc_ty³
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+754 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "syslog") == 0) {
+
+755
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+sy¦og
+ =ð
+NULL
+),
+
+756
+£ùiÚ_Çme
+,
+
+757
+\92\8cy
+->
+Çme
+);
+
+758
+p
+->
+sy¦og
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+763 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "log_level") == 0) {
+
+764 \12
+¡©us
+;
+
+766
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+log_Ëv\96_´e£Á
+ == 0),
+
+767
+£ùiÚ_Çme
+,
+
+768
+\92\8cy
+->
+Çme
+);
+
+769
+p
+->
+log_Ëv\96_´e£Á
+ = 1;
+
+771
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+p
+->
+log_Ëv\96
+,
+
+772
+\92\8cy
+->
+v®ue
+);
+
+773
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+778 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "v") == 0) {
+
+779 \12
+v®
+;
+
+781
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+v\94siÚ_´e£Á
+ == 0),
+
+782
+£ùiÚ_Çme
+,
+
+783
+\92\8cy
+->
+Çme
+);
+
+784
+p
+->
+v\94siÚ_´e£Á
+ = 1;
+
+786
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+787
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+788
+p
+->
+v\94siÚ
+ =
+v®
+;
+
+793 ià((
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "help") == 0) ||
+
+794 (
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "h") == 0)) {
+
+795 \12
+v®
+;
+
+797
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+h\96p_´e£Á
+ == 0),
+
+798
+£ùiÚ_Çme
+,
+
+799
+\92\8cy
+->
+Çme
+);
+
+800
+p
+->
+h\96p_´e£Á
+ = 1;
+
+802
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+803
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+804
+p
+->
+h\96p
+ =
+v®
+;
+
+809 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "no_huge") == 0) {
+
+810 \12
+v®
+;
+
+812
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_huge_´e£Á
+ == 0),
+
+813
+£ùiÚ_Çme
+,
+
+814
+\92\8cy
+->
+Çme
+);
+
+815
+p
+->
+no_huge_´e£Á
+ = 1;
+
+817
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+818
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+819
+p
+->
+no_huge
+ =
+v®
+;
+
+824 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "no_pci") == 0) {
+
+825 \12
+v®
+;
+
+827
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_pci_´e£Á
+ == 0),
+
+828
+£ùiÚ_Çme
+,
+
+829
+\92\8cy
+->
+Çme
+);
+
+830
+p
+->
+no_pci_´e£Á
+ = 1;
+
+832
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+833
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+834
+p
+->
+no_pci
+ =
+v®
+;
+
+839 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "no_hpet") == 0) {
+
+840 \12
+v®
+;
+
+842
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_h³t_´e£Á
+ == 0),
+
+843
+£ùiÚ_Çme
+,
+
+844
+\92\8cy
+->
+Çme
+);
+
+845
+p
+->
+no_h³t_´e£Á
+ = 1;
+
+847
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+848
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+849
+p
+->
+no_h³t
+ =
+v®
+;
+
+854 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "no_shconf") == 0) {
+
+855 \12
+v®
+;
+
+857
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+no_shcÚf_´e£Á
+ == 0),
+
+858
+£ùiÚ_Çme
+,
+
+859
+\92\8cy
+->
+Çme
+);
+
+860
+p
+->
+no_shcÚf_´e£Á
+ = 1;
+
+862
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+863
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+864
+p
+->
+no_shcÚf
+ =
+v®
+;
+
+869 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "d") == 0) {
+
+870
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+add_driv\94
+ =ð
+NULL
+),
+
+871
+£ùiÚ_Çme
+,
+
+872
+\92\8cy
+->
+Çme
+);
+
+873
+p
+->
+add_driv\94
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+878 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "socket_mem") == 0) {
+
+879
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+sock\91_mem
+ =ð
+NULL
+),
+
+880
+£ùiÚ_Çme
+,
+
+881
+\92\8cy
+->
+Çme
+);
+
+882
+p
+->
+sock\91_mem
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+887 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "huge_dir") == 0) {
+
+888
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+huge_d\9c
+ =ð
+NULL
+),
+
+889
+£ùiÚ_Çme
+,
+
+890
+\92\8cy
+->
+Çme
+);
+
+891
+p
+->
+huge_d\9c
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+896 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "file_prefix") == 0) {
+
+897
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+f\9ee_´efix
+ =ð
+NULL
+),
+
+898
+£ùiÚ_Çme
+,
+
+899
+\92\8cy
+->
+Çme
+);
+
+900
+p
+->
+f\9ee_´efix
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+905 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "base_virtaddr") == 0) {
+
+906
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+ba£_v\9c\8fddr
+ =ð
+NULL
+),
+
+907
+£ùiÚ_Çme
+,
+
+908
+\92\8cy
+->
+Çme
+);
+
+909
+p
+->
+ba£_v\9c\8fddr
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+914 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "create_uio_dev") == 0) {
+
+915 \12
+v®
+;
+
+917
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+ü\97\8b_uio_dev_´e£Á
+ == 0),
+
+918
+£ùiÚ_Çme
+,
+
+919
+\92\8cy
+->
+Çme
+);
+
+920
+p
+->
+ü\97\8b_uio_dev_´e£Á
+ = 1;
+
+922
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+923
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+924
+p
+->
+ü\97\8b_uio_dev
+ =
+v®
+;
+
+929 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "vfio_intr") == 0) {
+
+930
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+vfio_\9a\8c
+ =ð
+NULL
+),
+
+931
+£ùiÚ_Çme
+,
+
+932
+\92\8cy
+->
+Çme
+);
+
+933
+p
+->
+vfio_\9a\8c
+ =
+ `¡rdup
+(
+\92\8cy
+->
+v®ue
+);
+
+938 ià(
+ `¡rcmp
+(
+\92\8cy
+->
+Çme
+, "xen_dom0") == 0) {
+
+939 \12
+v®
+;
+
+941
+ `PARSE_ERROR_DUPLICATE
+((
+p
+->
+x\92_dom0_´e£Á
+ == 0),
+
+942
+£ùiÚ_Çme
+,
+
+943
+\92\8cy
+->
+Çme
+);
+
+944
+p
+->
+x\92_dom0_´e£Á
+ = 1;
+
+946
+v®
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92\8cy
+->
+v®ue
+);
+
+947
+ `PARSE_ERROR
+((
+v®
+ >ð0),
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+948
+p
+->
+x\92_dom0
+ =
+v®
+;
+
+953
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92\8cy
+->
+Çme
+);
+
+956
+ `ä\93
+(
+\92\8c\9bs
+);
+
+957
+ }
+}
+
+960
+ $·r£_p\9d\96\9ae_pÿp_sourû
+(\19
+p_·¿ms
+ *
+p
+,
+
+961 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+962 cڡ \ 5*
+f\9ee_Çme
+, cڡ \ 5*
+ý_size
+)
+
+964 cڡ \ 5*
+Ãxt
+ =
+NULL
+;
+
+965 \ 5*
+\92d
+;
+
+966
+u\9at32_t
+
+i
+;
+
+967 \12
+·r£_f\9ee
+ = 0;
+
+969 ià(
+f\9ee_Çme
+ && !
+ý_size
+) {
+
+970
+Ãxt
+ =
+f\9ee_Çme
+;
+
+971
+·r£_f\9ee
+ = 1;
+
+972 } \vià(
+ý_size
+ && !
+f\9ee_Çme
+) {
+
+973
+Ãxt
+ =
+ý_size
+;
+
+974
+·r£_f\9ee
+ = 0;
+
+976 \15 -
+EINVAL
+;
+
+978 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+979
+size_t
+
+Çme_Ën
+;
+
+981 ià(
+p
+->
+n_pktq_\9a
+ == 0)
+
+982 \15 -
+EINVAL
+;
+
+984
+i
+ = 0;
+
+985 \1f*
+Ãxt
+ != '\0') {
+
+986
+u\9at32_t
+
+id
+;
+
+988 ià(
+i
+ >ð
+p
+->
+n_pktq_\9a
+)
+
+989 \15 -
+EINVAL
+;
+
+991
+id
+ =
+p
+->
+pktq_\9a
+[
+i
+].id;
+
+993
+\92d
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+994 ià(!
+\92d
+)
+
+995
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+997
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+999 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1000 \15 -
+EINVAL
+;
+
+1002
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1003
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1004
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1005 ià(*
+Ãxt
+ != '\0')
+
+1006
+Ãxt
+++;
+
+1008 ià(
+·r£_f\9ee
+) {
+
+1009
+p
+->
+sourû_·¿ms
+[
+id
+].
+f\9ee_Çme
+ =
+ `¡rdup
+(
+Çme
+);
+
+1010 ià(
+p
+->
+sourû_·¿ms
+[
+id
+].
+f\9ee_Çme
+ =ð
+NULL
+)
+
+1011 \15 -
+ENOMEM
+;
+
+1013 ià(
+ `·r£r_»ad_u\9at32
+(
+
+1014 &
+p
+->
+sourû_·¿ms
+[
+id
+].
+n_by\8bs_³r_pkt
+,
+
+1015
+Çme
+) != 0) {
+
+1016 ià(
+p
+->
+sourû_·¿ms
+[
+id
+].
+
+1017
+f\9ee_Çme
+ !ð
+NULL
+)
+
+1018
+ `ä\93
+(
+p
+->
+sourû_·¿ms
+[
+id
+].
+
+1019
+f\9ee_Çme
+);
+
+1020 \15 -
+EINVAL
+;
+
+1024
+i
+++;
+
+1026 ià(
+i
+ =ð
+p
+->
+n_pktq_\9a
+)
+
+1030 \15 -
+EINVAL
+;
+
+1031
+ }
+}
+
+1034
+ $·r£_p\9d\96\9ae_pÿp_s\9ak
+(\19
+p_·¿ms
+ *
+p
+,
+
+1035 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+1036 cڡ \ 5*
+f\9ee_Çme
+, cڡ \ 5*
+n_pkts_to_dump
+)
+
+1038 cڡ \ 5*
+Ãxt
+ =
+NULL
+;
+
+1039 \ 5*
+\92d
+;
+
+1040
+u\9at32_t
+
+i
+;
+
+1041 \12
+·r£_f\9ee
+ = 0;
+
+1043 ià(
+f\9ee_Çme
+ && !
+n_pkts_to_dump
+) {
+
+1044
+Ãxt
+ =
+f\9ee_Çme
+;
+
+1045
+·r£_f\9ee
+ = 1;
+
+1046 } \vià(
+n_pkts_to_dump
+ && !
+f\9ee_Çme
+) {
+
+1047
+Ãxt
+ =
+n_pkts_to_dump
+;
+
+1048
+·r£_f\9ee
+ = 0;
+
+1050 \15 -
+EINVAL
+;
+
+1052 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1053
+size_t
+
+Çme_Ën
+;
+
+1055 ià(
+p
+->
+n_pktq_out
+ == 0)
+
+1056 \15 -
+EINVAL
+;
+
+1058
+i
+ = 0;
+
+1059 \1f*
+Ãxt
+ != '\0') {
+
+1060
+u\9at32_t
+
+id
+;
+
+1062 ià(
+i
+ >ð
+p
+->
+n_pktq_out
+)
+
+1063 \15 -
+EINVAL
+;
+
+1065
+id
+ =
+p
+->
+pktq_out
+[
+i
+].id;
+
+1067
+\92d
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1068 ià(!
+\92d
+)
+
+1069
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+1071
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+1073 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1074 \15 -
+EINVAL
+;
+
+1076
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1077
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1078
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1079 ià(*
+Ãxt
+ != '\0')
+
+1080
+Ãxt
+++;
+
+1082 ià(
+·r£_f\9ee
+) {
+
+1083
+p
+->
+s\9ak_·¿ms
+[
+id
+].
+f\9ee_Çme
+ =
+ `¡rdup
+(
+Çme
+);
+
+1084 ià(
+p
+->
+s\9ak_·¿ms
+[
+id
+].
+f\9ee_Çme
+ =ð
+NULL
+)
+
+1085 \15 -
+ENOMEM
+;
+
+1087 ià(
+ `·r£r_»ad_u\9at32
+(
+
+1088 &
+p
+->
+s\9ak_·¿ms
+[
+id
+].
+n_pkts_to_dump
+,
+
+1089
+Çme
+) != 0) {
+
+1090 ià(
+p
+->
+s\9ak_·¿ms
+[
+id
+].
+f\9ee_Çme
+ !=
+
+1091
+NULL
+)
+
+1092
+ `ä\93
+(
+p
+->
+s\9ak_·¿ms
+[
+id
+].
+
+1093
+f\9ee_Çme
+);
+
+1094 \15 -
+EINVAL
+;
+
+1098
+i
+++;
+
+1100 ià(
+i
+ =ð
+p
+->
+n_pktq_out
+)
+
+1104 \15 -
+EINVAL
+;
+
+1105
+ }
+}
+
+1108
+ $·r£_p\9d\96\9ae_pktq_\9a
+(\19
+p_·¿ms
+ *
+p
+,
+
+1109 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+1110 cڡ \ 5*
+v®ue
+)
+
+1112 cڡ \ 5*
+Ãxt
+ =
+v®ue
+;
+
+1113 if(
+Ãxt
+ =ð
+NULL
+)
+
+1114 \15 -
+EINVAL
+;
+
+1115 \ 5*
+\92d
+;
+
+1116 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1117
+size_t
+
+Çme_Ën
+;
+
+1119 \1f*
+Ãxt
+ != '\0') {
+
+1120 \f
+p_pktq_\9a_ty³
+
+ty³
+;
+
+1121 \12
+id
+;
+
+1122 \ 5*
+\92d_¥aû
+;
+
+1123 \ 5*
+\92d_\8fb
+;
+
+1124 if(
+Ãxt
+ !ð
+NULL
+)
+
+1125
+Ãxt
+ =
+ `sk\9d_wh\99e_¥aûs
+(next);
+
+1126 ià(!
+Ãxt
+)
+
+1129
+\92d_¥aû
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1130
+\92d_\8fb
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1132 ià(
+\92d_¥aû
+ && (!
+\92d_\8fb
+))
+
+1133
+\92d
+ =
+\92d_¥aû
+;
+
+1134 \vià((!
+\92d_¥aû
+è&&
+\92d_\8fb
+)
+
+1135
+\92d
+ =
+\92d_\8fb
+;
+
+1136 \vià(
+\92d_¥aû
+ &&
+\92d_\8fb
+)
+
+1137
+\92d
+ =
+ `RTE_MIN
+(
+\92d_¥aû
+,
+\92d_\8fb
+);
+
+1139
+\92d
+ =
+NULL
+;
+
+1141 ià(!
+\92d
+)
+
+1142
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+1144
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+1146 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1147 \15 -
+EINVAL
+;
+
+1149
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1150
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1151
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1152 ià(*
+Ãxt
+ != '\0')
+
+1153
+Ãxt
+++;
+
+1155 ià(
+ `v®id©e_Çme
+(
+Çme
+, "RXQ", 2) == 0) {
+
+1156
+ty³
+ =
+APP_PKTQ_IN_HWQ
+;
+
+1157
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+hwq_\9a_·¿ms
+,
+Çme
+);
+
+1158 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "SWQ", 1) == 0) {
+
+1159
+ty³
+ =
+APP_PKTQ_IN_SWQ
+;
+
+1160
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+swq_·¿ms
+,
+Çme
+);
+
+1161 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "TM", 1) == 0) {
+
+1162
+ty³
+ =
+APP_PKTQ_IN_TM
+;
+
+1163
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+tm_·¿ms
+,
+Çme
+);
+
+1164 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "SOURCE", 1) == 0) {
+
+1165
+ty³
+ =
+APP_PKTQ_IN_SOURCE
+;
+
+1166
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+sourû_·¿ms
+,
+Çme
+);
+
+1168 \15 -
+EINVAL
+;
+
+1170 ià(
+id
+ < 0)
+
+1171 \15
+id
+;
+
+1173
+p
+->
+pktq_\9a
+[p->
+n_pktq_\9a
+].
+ty³
+ =\81ype;
+
+1174
+p
+->
+pktq_\9a
+[p->
+n_pktq_\9a
+].
+id
+ = (
+u\9at32_t
+) id;
+
+1175
+p
+->
+n_pktq_\9a
+++;
+
+1179
+ }
+}
+
+1182
+ $·r£_p\9d\96\9ae_pktq_out
+(\19
+p_·¿ms
+ *
+p
+,
+
+1183 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+1184 cڡ \ 5*
+v®ue
+)
+
+1186 cڡ \ 5*
+Ãxt
+ =
+v®ue
+;
+
+1187 if(
+Ãxt
+ =ð
+NULL
+)
+
+1188 \15 -
+EINVAL
+;
+
+1189 \ 5*
+\92d
+;
+
+1190 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1191
+size_t
+
+Çme_Ën
+;
+
+1193 \1f*
+Ãxt
+ != '\0') {
+
+1194 \f
+p_pktq_out_ty³
+
+ty³
+;
+
+1195 \12
+id
+;
+
+1196 \ 5*
+\92d_¥aû
+;
+
+1197 \ 5*
+\92d_\8fb
+;
+
+1198 if(
+Ãxt
+ !ð
+NULL
+)
+
+1199
+Ãxt
+ =
+ `sk\9d_wh\99e_¥aûs
+(next);
+
+1200 ià(!
+Ãxt
+)
+
+1203
+\92d_¥aû
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1204
+\92d_\8fb
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1206 ià(
+\92d_¥aû
+ && (!
+\92d_\8fb
+))
+
+1207
+\92d
+ =
+\92d_¥aû
+;
+
+1208 \vià((!
+\92d_¥aû
+è&&
+\92d_\8fb
+)
+
+1209
+\92d
+ =
+\92d_\8fb
+;
+
+1210 \vià(
+\92d_¥aû
+ &&
+\92d_\8fb
+)
+
+1211
+\92d
+ =
+ `RTE_MIN
+(
+\92d_¥aû
+,
+\92d_\8fb
+);
+
+1213
+\92d
+ =
+NULL
+;
+
+1215 ià(!
+\92d
+)
+
+1216
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+1218
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+1220 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1221 \15 -
+EINVAL
+;
+
+1223
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1224
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1225
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1226 ià(*
+Ãxt
+ != '\0')
+
+1227
+Ãxt
+++;
+
+1228 ià(
+ `v®id©e_Çme
+(
+Çme
+, "TXQ", 2) == 0) {
+
+1229
+ty³
+ =
+APP_PKTQ_OUT_HWQ
+;
+
+1230
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+hwq_out_·¿ms
+,
+Çme
+);
+
+1231 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "SWQ", 1) == 0) {
+
+1232
+ty³
+ =
+APP_PKTQ_OUT_SWQ
+;
+
+1233
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+swq_·¿ms
+,
+Çme
+);
+
+1234 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "TM", 1) == 0) {
+
+1235
+ty³
+ =
+APP_PKTQ_OUT_TM
+;
+
+1236
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+tm_·¿ms
+,
+Çme
+);
+
+1237 } \vià(
+ `v®id©e_Çme
+(
+Çme
+, "SINK", 1) == 0) {
+
+1238
+ty³
+ =
+APP_PKTQ_OUT_SINK
+;
+
+1239
+id
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+s\9ak_·¿ms
+,
+Çme
+);
+
+1241 \15 -
+EINVAL
+;
+
+1243 ià(
+id
+ < 0)
+
+1244 \15
+id
+;
+
+1246
+p
+->
+pktq_out
+[p->
+n_pktq_out
+].
+ty³
+ =\81ype;
+
+1247
+p
+->
+pktq_out
+[p->
+n_pktq_out
+].
+id
+ = id;
+
+1248
+p
+->
+n_pktq_out
+++;
+
+1252
+ }
+}
+
+1255
+ $·r£_p\9d\96\9ae_msgq_\9a
+(\19
+p_·¿ms
+ *
+p
+,
+
+1256 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+1257 cڡ \ 5*
+v®ue
+)
+
+1259 cڡ \ 5*
+Ãxt
+ =
+v®ue
+;
+
+1260 if(
+Ãxt
+ =ð
+NULL
+)
+
+1261 \15 -
+EINVAL
+;
+
+1262 \ 5*
+\92d
+;
+
+1263 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1264
+size_t
+
+Çme_Ën
+;
+
+1265
+ssize_t
+
+idx
+;
+
+1267 \1f*
+Ãxt
+ != '\0') {
+
+1268 \ 5*
+\92d_¥aû
+;
+
+1269 \ 5*
+\92d_\8fb
+;
+
+1270 if(
+Ãxt
+ !ð
+NULL
+)
+
+1271
+Ãxt
+ =
+ `sk\9d_wh\99e_¥aûs
+(next);
+
+1272 ià(!
+Ãxt
+)
+
+1275
+\92d_¥aû
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1276
+\92d_\8fb
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1278 ià(
+\92d_¥aû
+ && (!
+\92d_\8fb
+))
+
+1279
+\92d
+ =
+\92d_¥aû
+;
+
+1280 \vià((!
+\92d_¥aû
+è&&
+\92d_\8fb
+)
+
+1281
+\92d
+ =
+\92d_\8fb
+;
+
+1282 \vià(
+\92d_¥aû
+ &&
+\92d_\8fb
+)
+
+1283
+\92d
+ =
+ `RTE_MIN
+(
+\92d_¥aû
+,
+\92d_\8fb
+);
+
+1285
+\92d
+ =
+NULL
+;
+
+1287 ià(!
+\92d
+)
+
+1288
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+1290
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+1292 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1293 \15 -
+EINVAL
+;
+
+1295
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1296
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1297
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1298 ià(*
+Ãxt
+ != '\0')
+
+1299
+Ãxt
+++;
+
+1301 ià(
+ `v®id©e_Çme
+(
+Çme
+, "MSGQ", 1) != 0)
+
+1302 \15 -
+EINVAL
+;
+
+1304
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1305 ià(
+idx
+ < 0)
+
+1306 \15
+idx
+;
+
+1308
+p
+->
+msgq_\9a
+[p->
+n_msgq_\9a
+] =
+idx
+;
+
+1309
+p
+->
+n_msgq_\9a
+++;
+
+1313
+ }
+}
+
+1316
+ $·r£_p\9d\96\9ae_msgq_out
+(\19
+p_·¿ms
+ *
+p
+,
+
+1317 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+,
+
+1318 cڡ \ 5*
+v®ue
+)
+
+1320 cڡ \ 5*
+Ãxt
+ =
+v®ue
+;
+
+1321 if(
+Ãxt
+ =ð
+NULL
+)
+
+1322 \15 -
+EINVAL
+;
+
+1323 \ 5*
+\92d
+;
+
+1324 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+1325
+size_t
+
+Çme_Ën
+;
+
+1326
+ssize_t
+
+idx
+;
+
+1328 \1f*
+Ãxt
+ != '\0') {
+
+1329 \ 5*
+\92d_¥aû
+;
+
+1330 \ 5*
+\92d_\8fb
+;
+
+1331 if(
+Ãxt
+ !ð
+NULL
+)
+
+1332
+Ãxt
+ =
+ `sk\9d_wh\99e_¥aûs
+(next);
+
+1333 ià(!
+Ãxt
+)
+
+1336
+\92d_¥aû
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1337
+\92d_\8fb
+ =
+ `¡rchr
+(
+Ãxt
+, ' ');
+
+1339 ià(
+\92d_¥aû
+ && (!
+\92d_\8fb
+))
+
+1340
+\92d
+ =
+\92d_¥aû
+;
+
+1341 \vià((!
+\92d_¥aû
+è&&
+\92d_\8fb
+)
+
+1342
+\92d
+ =
+\92d_\8fb
+;
+
+1343 \vià(
+\92d_¥aû
+ &&
+\92d_\8fb
+)
+
+1344
+\92d
+ =
+ `RTE_MIN
+(
+\92d_¥aû
+,
+\92d_\8fb
+);
+
+1346
+\92d
+ =
+NULL
+;
+
+1348 ià(!
+\92d
+)
+
+1349
+Çme_Ën
+ =
+ `¡¾\92
+(
+Ãxt
+);
+
+1351
+Çme_Ën
+ =
+\92d
+ -
+Ãxt
+;
+
+1353 ià(
+Çme_Ën
+ =ð0 ||\82ame_ËÀ=ð\17(
+Çme
+))
+
+1354 \15 -
+EINVAL
+;
+
+1356
+ `¡ºýy
+(
+Çme
+,
+Ãxt
+,
+Çme_Ën
+);
+
+1357
+Çme
+[
+Çme_Ën
+] = '\0';
+
+1358
+Ãxt
+ +ð
+Çme_Ën
+;
+
+1359 ià(*
+Ãxt
+ != '\0')
+
+1360
+Ãxt
+++;
+
+1362 ià(
+ `v®id©e_Çme
+(
+Çme
+, "MSGQ", 1) != 0)
+
+1363 \15 -
+EINVAL
+;
+
+1365
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1366 ià(
+idx
+ < 0)
+
+1367 \15
+idx
+;
+
+1369
+p
+->
+msgq_out
+[p->
+n_msgq_out
+] =
+idx
+;
+
+1370
+p
+->
+n_msgq_out
+++;
+
+1374
+ }
+}
+
+1377
+ $·r£_p\9d\96\9ae
+(\19
+p_·¿ms
+ *
+p
+,
+
+1378 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1379 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1381 \ 5
+Çme
+[
+CFG_NAME_LEN
+];
+
+1382 \19
+p_p\9d\96\9ae_·¿ms
+ *
+·¿m
+;
+
+1383 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1384
+ssize_t
+
+·¿m_idx
+;
+
+1385 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1387
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1388
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1390
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1391
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1393
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1395
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+p\9d\96\9ae_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1396
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+p\9d\96\9ae_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1398
+·¿m
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+·¿m_idx
+];
+
+1400 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1401 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1403 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "type") == 0) {
+
+1404 \12
+w_size
+ =
+ `¢´\9atf
+(
+·¿m
+->
+ty³
+,
+ `RTE_DIM
+(param->type),
+
+1405 "%s",
+\92t
+->
+v®ue
+);
+
+1407
+ `PARSE_ERROR
+(((
+w_size
+ > 0) &&
+
+1408 (
+w_size
+ < (\12)
+ `RTE_DIM
+(
+·¿m
+->
+ty³
+))),
+
+1409
+£ùiÚ_Çme
+,
+
+1410
+\92t
+->
+Çme
+);
+
+1414 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "core") == 0) {
+
+1415 \12
+¡©us
+ =
+ `·r£_p\9d\96\9ae_cÜe
+(
+
+1416 &
+·¿m
+->
+sock\91_id
+, &·¿m->
+cÜe_id
+,
+
+1417 &
+·¿m
+->
+hy³r_th_id
+,
+\92t
+->
+v®ue
+);
+
+1419
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1420
+\92t
+->
+Çme
+);
+
+1424 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pktq_in") == 0) {
+
+1425 \12
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pktq_\9a
+(
+p
+,
+·¿m
+,
+
+1426
+\92t
+->
+v®ue
+);
+
+1428
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1429
+\92t
+->
+Çme
+);
+
+1433 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pktq_out") == 0) {
+
+1434 \12
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pktq_out
+(
+p
+,
+·¿m
+,
+
+1435
+\92t
+->
+v®ue
+);
+
+1437
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1438
+\92t
+->
+Çme
+);
+
+1442 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "msgq_in") == 0) {
+
+1443 \12
+¡©us
+ =
+ `·r£_p\9d\96\9ae_msgq_\9a
+(
+p
+,
+·¿m
+,
+
+1444
+\92t
+->
+v®ue
+);
+
+1446
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1447
+\92t
+->
+Çme
+);
+
+1451 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "msgq_out") == 0) {
+
+1452 \12
+¡©us
+ =
+ `·r£_p\9d\96\9ae_msgq_out
+(
+p
+,
+·¿m
+,
+
+1453
+\92t
+->
+v®ue
+);
+
+1455
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1456
+\92t
+->
+Çme
+);
+
+1460 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "timer_period") == 0) {
+
+1461 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1462 &
+·¿m
+->
+tim\94_³riod
+,
+
+1463
+\92t
+->
+v®ue
+);
+
+1465
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1466
+\92t
+->
+Çme
+);
+
+1470 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_file_rd") == 0) {
+
+1471 \12
+¡©us
+;
+
+1473 #iâdeà
+RTE_PORT_PCAP
+
+
+1474
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1477
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pÿp_sourû
+(
+p
+,
+
+1478
+·¿m
+,
+\92t
+->
+v®ue
+,
+NULL
+);
+
+1480
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1481
+\92t
+->
+Çme
+);
+
+1485 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_bytes_rd_per_pkt") == 0) {
+
+1486 \12
+¡©us
+;
+
+1488 #iâdeà
+RTE_PORT_PCAP
+
+
+1489
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1492
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pÿp_sourû
+(
+p
+,
+
+1493
+·¿m
+,
+NULL
+,
+\92t
+->
+v®ue
+);
+
+1495
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1496
+\92t
+->
+Çme
+);
+
+1500 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_file_wr") == 0) {
+
+1501 \12
+¡©us
+;
+
+1503 #iâdeà
+RTE_PORT_PCAP
+
+
+1504
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1507
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pÿp_s\9ak
+(
+p
+,
+·¿m
+,
+
+1508
+\92t
+->
+v®ue
+,
+NULL
+);
+
+1510
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1511
+\92t
+->
+Çme
+);
+
+1515 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_n_pkt_wr") == 0) {
+
+1516 \12
+¡©us
+;
+
+1518 #iâdeà
+RTE_PORT_PCAP
+
+
+1519
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1522
+¡©us
+ =
+ `·r£_p\9d\96\9ae_pÿp_s\9ak
+(
+p
+,
+·¿m
+,
+
+1523
+NULL
+,
+\92t
+->
+v®ue
+);
+
+1525
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1526
+\92t
+->
+Çme
+);
+
+1531
+ `APP_CHECK
+((
+·¿m
+->
+n_¬gs
+ <
+APP_MAX_PIPELINE_ARGS
+),
+
+1533 "p\9d\96\9a\90¥ecif\9bd\85¬am\91\94s",
+£ùiÚ_Çme
+);
+
+1535
+·¿m
+->
+¬gs_Çme
+[·¿m->
+n_¬gs
+] =
+ `¡rdup
+(
+\92t
+->
+Çme
+);
+
+1536
+·¿m
+->
+¬gs_v®ue
+[·¿m->
+n_¬gs
+] =
+ `¡rdup
+(
+\92t
+->
+v®ue
+);
+
+1538
+ `APP_CHECK
+((
+·¿m
+->
+¬gs_Çme
+[·¿m->
+n_¬gs
+] !ð
+NULL
+) &&
+
+1539 (
+·¿m
+->
+¬gs_v®ue
+[·¿m->
+n_¬gs
+] !ð
+NULL
+),
+
+1542
+·¿m
+->
+n_¬gs
+++;
+
+1545
+·¿m
+->
+·r£d
+ = 1;
+
+1547
+ `¢´\9atf
+(
+Çme
+, \17Òame), "MSGQ-REQ-%s",
+£ùiÚ_Çme
+);
+
+1548
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1549
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1550
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+].
+ýu_sock\91_id
+ =
+·¿m
+->
+sock\91_id
+;
+
+1551
+·¿m
+->
+msgq_\9a
+[·¿m->
+n_msgq_\9a
+++] =
+·¿m_idx
+;
+
+1553
+ `¢´\9atf
+(
+Çme
+, \17Òame), "MSGQ-RSP-%s",
+£ùiÚ_Çme
+);
+
+1554
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1555
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1556
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+].
+ýu_sock\91_id
+ =
+·¿m
+->
+sock\91_id
+;
+
+1557
+·¿m
+->
+msgq_out
+[·¿m->
+n_msgq_out
+++] =
+·¿m_idx
+;
+
+1559
+ `¢´\9atf
+(
+Çme
+, \17Òame), "MSGQ-REQ-CORE-s%"
+PRIu32
+ "c%" PRIu32 "%s",
+
+1560
+·¿m
+->
+sock\91_id
+,
+
+1561
+·¿m
+->
+cÜe_id
+,
+
+1562 (
+·¿m
+->
+hy³r_th_id
+) ? "h" : "");
+
+1563
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1564
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1565
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+].
+ýu_sock\91_id
+ =
+·¿m
+->
+sock\91_id
+;
+
+1567
+ `¢´\9atf
+(
+Çme
+, \17Òame), "MSGQ-RSP-CORE-s%"
+PRIu32
+ "c%" PRIu32 "%s",
+
+1568
+·¿m
+->
+sock\91_id
+,
+
+1569
+·¿m
+->
+cÜe_id
+,
+
+1570 (
+·¿m
+->
+hy³r_th_id
+) ? "h" : "");
+
+1571
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1572
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+Çme
+);
+
+1573
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+].
+ýu_sock\91_id
+ =
+·¿m
+->
+sock\91_id
+;
+
+1575
+ `ä\93
+(
+\92\8c\9bs
+);
+
+1576
+ }
+}
+
+1579
+ $·r£_mempoÞ
+(\19
+p_·¿ms
+ *
+p
+,
+
+1580 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1581 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1583 \19
+p_mempoÞ_·¿ms
+ *
+·¿m
+;
+
+1584 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1585
+ssize_t
+
+·¿m_idx
+;
+
+1586 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1588
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1589
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1591
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1592
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1594
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1596
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1597
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+mempoÞ_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1599
+·¿m
+ = &
+p
+->
+mempoÞ_·¿ms
+[
+·¿m_idx
+];
+
+1601 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1602 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1604 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "buffer_size") == 0) {
+
+1605 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1606 &
+·¿m
+->
+bufãr_size
+,
+\92t
+->
+v®ue
+);
+
+1608
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1609
+\92t
+->
+Çme
+);
+
+1613 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pool_size") == 0) {
+
+1614 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1615 &
+·¿m
+->
+poÞ_size
+,
+\92t
+->
+v®ue
+);
+
+1617
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1618
+\92t
+->
+Çme
+);
+
+1622 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "cache_size") == 0) {
+
+1623 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1624 &
+·¿m
+->
+ÿche_size
+,
+\92t
+->
+v®ue
+);
+
+1626
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1627
+\92t
+->
+Çme
+);
+
+1631 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "cpu") == 0) {
+
+1632 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1633 &
+·¿m
+->
+ýu_sock\91_id
+,
+\92t
+->
+v®ue
+);
+
+1635
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1636
+\92t
+->
+Çme
+);
+
+1641
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1644
+·¿m
+->
+·r£d
+ = 1;
+
+1646
+ `ä\93
+(
+\92\8c\9bs
+);
+
+1647
+ }
+}
+
+1650
+ $·r£_l\9ak
+(\19
+p_·¿ms
+ *
+p
+,
+
+1651 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1652 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1654 \19
+p_l\9ak_·¿ms
+ *
+·¿m
+;
+
+1655 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1656 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1657 \12
+pci_bdf_´e£Á
+ = 0;
+
+1658
+ssize_t
+
+·¿m_idx
+;
+
+1660
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1661
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1663
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1664
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1666
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1668
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+l\9ak_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1669
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+l\9ak_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1671
+·¿m
+ = &
+p
+->
+l\9ak_·¿ms
+[
+·¿m_idx
+];
+
+1673 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1674 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1676 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "promisc") == 0) {
+
+1677 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+1679
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+1680
+\92t
+->
+Çme
+);
+
+1681
+·¿m
+->
+´omisc
+ =
+¡©us
+;
+
+1685 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "arp_q") == 0) {
+
+1686 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+¬p_q
+,
+
+1687
+\92t
+->
+v®ue
+);
+
+1689
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1690
+\92t
+->
+Çme
+);
+
+1694 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "tcp_syn_q") == 0) {
+
+1695 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1696 &
+·¿m
+->
+tý_syn_q
+,
+\92t
+->
+v®ue
+);
+
+1698
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1702 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "ip_local_q") == 0) {
+
+1703 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1704 &
+·¿m
+->
+\9d_loÿl_q
+,
+\92t
+->
+v®ue
+);
+
+1706
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1707
+\92t
+->
+Çme
+);
+
+1712 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "tcp_local_q") == 0) {
+
+1713 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1714 &
+·¿m
+->
+tý_loÿl_q
+,
+\92t
+->
+v®ue
+);
+
+1716
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1717
+\92t
+->
+Çme
+);
+
+1721 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "udp_local_q") == 0) {
+
+1722 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1723 &
+·¿m
+->
+udp_loÿl_q
+,
+\92t
+->
+v®ue
+);
+
+1725
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1726
+\92t
+->
+Çme
+);
+
+1730 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "sctp_local_q") == 0) {
+
+1731 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1732 &
+·¿m
+->
+sùp_loÿl_q
+,
+\92t
+->
+v®ue
+);
+
+1734
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1735
+\92t
+->
+Çme
+);
+
+1739 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pci_bdf") == 0) {
+
+1740
+ `PARSE_ERROR_DUPLICATE
+((
+pci_bdf_´e£Á
+ == 0),
+
+1741
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1743
+ `¢´\9atf
+(
+·¿m
+->
+pci_bdf
+,
+APP_LINK_PCI_BDF_SIZE
+,
+
+1744 "%s",
+\92t
+->
+v®ue
+);
+
+1745
+pci_bdf_´e£Á
+ = 1;
+
+1750
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1754 ià(
+p
+->
+pÜt_mask
+)
+
+1755
+ `PARSE_ERROR_MESSAGE
+((
+pci_bdf_´e£Á
+ == 0),
+
+1756
+£ùiÚ_Çme
+, "pci_bdf",
+
+1759
+ `PARSE_ERROR_MESSAGE
+((
+pci_bdf_´e£Á
+),
+
+1760
+£ùiÚ_Çme
+, "pci_bdf",
+
+1764
+·¿m
+->
+·r£d
+ = 1;
+
+1766
+ `ä\93
+(
+\92\8c\9bs
+);
+
+1767
+ }
+}
+
+1770
+ $·r£_rxq
+(\19
+p_·¿ms
+ *
+p
+,
+
+1771 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1772 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1774 \19
+p_pktq_hwq_\9a_·¿ms
+ *
+·¿m
+;
+
+1775 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1776 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1777
+ssize_t
+
+·¿m_idx
+;
+
+1779
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1780
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1782
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1783
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1785
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1787
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+hwq_\9a_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1788
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+hwq_\9a_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1790
+·¿m
+ = &
+p
+->
+hwq_\9a_·¿ms
+[
+·¿m_idx
+];
+
+1792 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1793 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1795 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "mempool") == 0) {
+
+1796 \12
+¡©us
+ =
+ `v®id©e_Çme
+(
+\92t
+->
+v®ue
+,
+
+1798
+ssize_t
+
+idx
+;
+
+1800
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1801
+\92t
+->
+Çme
+);
+
+1802
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+,
+
+1803
+\92t
+->
+v®ue
+);
+
+1804
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+mempoÞ_·¿ms
+,
+
+1805
+£ùiÚ_Çme
+);
+
+1806
+·¿m
+->
+mempoÞ_id
+ =
+idx
+;
+
+1810 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+1811 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+1812
+\92t
+->
+v®ue
+);
+
+1814
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1815
+\92t
+->
+Çme
+);
+
+1819 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst") == 0) {
+
+1820 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+bur¡
+,
+
+1821
+\92t
+->
+v®ue
+);
+
+1823
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1824
+\92t
+->
+Çme
+);
+
+1829
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1832
+·¿m
+->
+·r£d
+ = 1;
+
+1834
+ `ä\93
+(
+\92\8c\9bs
+);
+
+1835
+ }
+}
+
+1838
+ $·r£_txq
+(\19
+p_·¿ms
+ *
+p
+,
+
+1839 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1840 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1842 \19
+p_pktq_hwq_out_·¿ms
+ *
+·¿m
+;
+
+1843 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1844 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1845
+ssize_t
+
+·¿m_idx
+;
+
+1847
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1848
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1850
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1851
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1853
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1855
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+hwq_out_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1856
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+hwq_out_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1858
+·¿m
+ = &
+p
+->
+hwq_out_·¿ms
+[
+·¿m_idx
+];
+
+1860 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1861 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1863 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+1864 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+1865
+\92t
+->
+v®ue
+);
+
+1867
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1868
+\92t
+->
+Çme
+);
+
+1872 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst") == 0) {
+
+1873 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+bur¡
+,
+
+1874
+\92t
+->
+v®ue
+);
+
+1876
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1877
+\92t
+->
+Çme
+);
+
+1881 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "dropless") == 0) {
+
+1882 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+1885
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+1886
+\92t
+->
+Çme
+);
+
+1887
+·¿m
+->
+drÝËss
+ =
+¡©us
+;
+
+1892
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1895
+·¿m
+->
+·r£d
+ = 1;
+
+1897
+ `ä\93
+(
+\92\8c\9bs
+);
+
+1898
+ }
+}
+
+1901
+ $·r£_swq
+(\19
+p_·¿ms
+ *
+p
+,
+
+1902 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+1903 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+1905 \19
+p_pktq_swq_·¿ms
+ *
+·¿m
+;
+
+1906 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+1907 \12
+n_\92\8c\9bs
+,
+i
+;
+
+1908
+u\9at32_t
+
+mtu_´e£Á
+ = 0;
+
+1909
+u\9at32_t
+
+m\91ad©a_size_´e£Á
+ = 0;
+
+1910
+u\9at32_t
+
+mempoÞ_d\9ceù_´e£Á
+ = 0;
+
+1911
+u\9at32_t
+
+mempoÞ_\9ad\9ceù_´e£Á
+ = 0;
+
+1913
+ssize_t
+
+·¿m_idx
+;
+
+1915
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+1916
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+1918
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+1919
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+1921
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+1923
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+swq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1924
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+swq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+1926
+·¿m
+ = &
+p
+->
+swq_·¿ms
+[
+·¿m_idx
+];
+
+1928 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+1929 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+1931 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+1932 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+1933
+\92t
+->
+v®ue
+);
+
+1935
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1936
+\92t
+->
+Çme
+);
+
+1940 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst_read") == 0) {
+
+1941 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+
+1942
+·¿m
+->
+bur¡_»ad
+,
+\92t
+->
+v®ue
+);
+
+1944
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1945
+\92t
+->
+Çme
+);
+
+1949 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst_write") == 0) {
+
+1950 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1951 &
+·¿m
+->
+bur¡_wr\99e
+,
+\92t
+->
+v®ue
+);
+
+1953
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1954
+\92t
+->
+Çme
+);
+
+1958 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "dropless") == 0) {
+
+1959 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+1961
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+1962
+\92t
+->
+Çme
+);
+
+1963
+·¿m
+->
+drÝËss
+ =
+¡©us
+;
+
+1967 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "n_retries") == 0) {
+
+1968 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at64
+(&
+·¿m
+->
+n_»\8c\9bs
+,
+
+1969
+\92t
+->
+v®ue
+);
+
+1971
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+1972
+\92t
+->
+Çme
+);
+
+1976 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "cpu") == 0) {
+
+1977 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+1978 &
+·¿m
+->
+ýu_sock\91_id
+,
+\92t
+->
+v®ue
+);
+
+1980
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+1984 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "ipv4_frag") == 0) {
+
+1985 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+1987
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+1988
+\92t
+->
+Çme
+);
+
+1990
+·¿m
+->
+\9dv4_äag
+ =
+¡©us
+;
+
+1991 ià(
+·¿m
+->
+mtu
+ == 0)
+
+1992
+·¿m
+->
+mtu
+ = 1500;
+
+1997 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "ipv6_frag") == 0) {
+
+1998 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+2000
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+2001
+\92t
+->
+Çme
+);
+
+2002
+·¿m
+->
+\9dv6_äag
+ =
+¡©us
+;
+
+2003 ià(
+·¿m
+->
+mtu
+ == 0)
+
+2004
+·¿m
+->
+mtu
+ = 1320;
+
+2008 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "ipv4_ras") == 0) {
+
+2009 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+2011
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+2012
+\92t
+->
+Çme
+);
+
+2013
+·¿m
+->
+\9dv4_¿s
+ =
+¡©us
+;
+
+2017 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "ipv6_ras") == 0) {
+
+2018 \12
+¡©us
+ =
+ `·r£r_»ad_¬g_boÞ
+(
+\92t
+->
+v®ue
+);
+
+2020
+ `PARSE_ERROR
+((
+¡©us
+ !ð-
+EINVAL
+),
+£ùiÚ_Çme
+,
+
+2021
+\92t
+->
+Çme
+);
+
+2022
+·¿m
+->
+\9dv6_¿s
+ =
+¡©us
+;
+
+2026 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "mtu") == 0) {
+
+2027 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+mtu
+,
+
+2028
+\92t
+->
+v®ue
+);
+
+2030
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2031
+\92t
+->
+Çme
+);
+
+2032
+mtu_´e£Á
+ = 1;
+
+2036 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "metadata_size") == 0) {
+
+2037 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2038 &
+·¿m
+->
+m\91ad©a_size
+,
+\92t
+->
+v®ue
+);
+
+2040
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2041
+\92t
+->
+Çme
+);
+
+2042
+m\91ad©a_size_´e£Á
+ = 1;
+
+2046 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "mempool_direct") == 0) {
+
+2047 \12
+¡©us
+ =
+ `v®id©e_Çme
+(
+\92t
+->
+v®ue
+,
+
+2049
+ssize_t
+
+idx
+;
+
+2051
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2052
+\92t
+->
+Çme
+);
+
+2054
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+,
+
+2055
+\92t
+->
+v®ue
+);
+
+2056
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+mempoÞ_·¿ms
+,
+
+2057
+£ùiÚ_Çme
+);
+
+2058
+·¿m
+->
+mempoÞ_d\9ceù_id
+ =
+idx
+;
+
+2059
+mempoÞ_d\9ceù_´e£Á
+ = 1;
+
+2063 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "mempool_indirect") == 0) {
+
+2064 \12
+¡©us
+ =
+ `v®id©e_Çme
+(
+\92t
+->
+v®ue
+,
+
+2066
+ssize_t
+
+idx
+;
+
+2068
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2069
+\92t
+->
+Çme
+);
+
+2070
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+,
+
+2071
+\92t
+->
+v®ue
+);
+
+2072
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+mempoÞ_·¿ms
+,
+
+2073
+£ùiÚ_Çme
+);
+
+2074
+·¿m
+->
+mempoÞ_\9ad\9ceù_id
+ =
+idx
+;
+
+2075
+mempoÞ_\9ad\9ceù_´e£Á
+ = 1;
+
+2080
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2083
+ `APP_CHECK
+(((
+mtu_´e£Á
+) &&
+
+2084 ((
+·¿m
+->
+\9dv4_äag
+ =ð1è|| (·¿m->
+\9dv6_äag
+ == 1))),
+
+2087
+£ùiÚ_Çme
+);
+
+2089
+ `APP_CHECK
+(((
+m\91ad©a_size_´e£Á
+) &&
+
+2090 ((
+·¿m
+->
+\9dv4_äag
+ =ð1è|| (·¿m->
+\9dv6_äag
+ == 1))),
+
+2093 "nÙ\87Îowed",
+£ùiÚ_Çme
+);
+
+2095
+ `APP_CHECK
+(((
+mempoÞ_d\9ceù_´e£Á
+) &&
+
+2096 ((
+·¿m
+->
+\9dv4_äag
+ =ð1è|| (·¿m->
+\9dv6_äag
+ == 1))),
+
+2099 "nÙ\87Îowed",
+£ùiÚ_Çme
+);
+
+2101
+ `APP_CHECK
+(((
+mempoÞ_\9ad\9ceù_´e£Á
+) &&
+
+2102 ((
+·¿m
+->
+\9dv4_äag
+ =ð1è|| (·¿m->
+\9dv6_äag
+ == 1))),
+
+2105 "nÙ\87Îowed",
+£ùiÚ_Çme
+);
+
+2107
+·¿m
+->
+·r£d
+ = 1;
+
+2109
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2110
+ }
+}
+
+2113
+ $·r£_tm
+(\19
+p_·¿ms
+ *
+p
+,
+
+2114 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2115 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2117 \19
+p_pktq_tm_·¿ms
+ *
+·¿m
+;
+
+2118 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2119 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2120
+ssize_t
+
+·¿m_idx
+;
+
+2122
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2123
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2125
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2126
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2128
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2130
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+tm_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2131
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+tm_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2133
+·¿m
+ = &
+p
+->
+tm_·¿ms
+[
+·¿m_idx
+];
+
+2135 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2136 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2138 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "cfg") == 0) {
+
+2139
+·¿m
+->
+f\9ee_Çme
+ =
+ `¡rdup
+(
+\92t
+->
+v®ue
+);
+
+2140
+ `PARSE_ERROR_MALLOC
+(
+·¿m
+->
+f\9ee_Çme
+ !ð
+NULL
+);
+
+2144 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst_read") == 0) {
+
+2145 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2146 &
+·¿m
+->
+bur¡_»ad
+,
+\92t
+->
+v®ue
+);
+
+2148
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2149
+\92t
+->
+Çme
+);
+
+2153 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst_write") == 0) {
+
+2154 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2155 &
+·¿m
+->
+bur¡_wr\99e
+,
+\92t
+->
+v®ue
+);
+
+2157
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2158
+\92t
+->
+Çme
+);
+
+2163
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2166
+·¿m
+->
+·r£d
+ = 1;
+
+2168
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2169
+ }
+}
+
+2172
+ $·r£_sourû
+(\19
+p_·¿ms
+ *
+p
+,
+
+2173 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2174 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2176 \19
+p_pktq_sourû_·¿ms
+ *
+·¿m
+;
+
+2177 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2178 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2179
+ssize_t
+
+·¿m_idx
+;
+
+2180
+u\9at32_t
+
+pÿp_f\9ee_´e£Á
+ = 0;
+
+2181
+u\9at32_t
+
+pÿp_size_´e£Á
+ = 0;
+
+2183
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2184
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2186
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2187
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2189
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2191
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+sourû_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2192
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+sourû_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2194
+·¿m
+ = &
+p
+->
+sourû_·¿ms
+[
+·¿m_idx
+];
+
+2196 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2197 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2199 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "mempool") == 0) {
+
+2200 \12
+¡©us
+ =
+ `v®id©e_Çme
+(
+\92t
+->
+v®ue
+,
+
+2202
+ssize_t
+
+idx
+;
+
+2204
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2205
+\92t
+->
+Çme
+);
+
+2206
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+,
+
+2207
+\92t
+->
+v®ue
+);
+
+2208
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+mempoÞ_·¿ms
+,
+
+2209
+£ùiÚ_Çme
+);
+
+2210
+·¿m
+->
+mempoÞ_id
+ =
+idx
+;
+
+2214 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "burst") == 0) {
+
+2215 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+bur¡
+,
+
+2216
+\92t
+->
+v®ue
+);
+
+2218
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2219
+\92t
+->
+Çme
+);
+
+2223 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_file_rd")) {
+
+2224
+ `PARSE_ERROR_DUPLICATE
+((
+pÿp_f\9ee_´e£Á
+ == 0),
+
+2225
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2227
+·¿m
+->
+f\9ee_Çme
+ =
+ `¡rdup
+(
+\92t
+->
+v®ue
+);
+
+2229
+ `PARSE_ERROR_MALLOC
+(
+·¿m
+->
+f\9ee_Çme
+ !ð
+NULL
+);
+
+2230
+pÿp_f\9ee_´e£Á
+ = 1;
+
+2235 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_bytes_rd_per_pkt") == 0) {
+
+2236 \12
+¡©us
+;
+
+2238
+ `PARSE_ERROR_DUPLICATE
+((
+pÿp_size_´e£Á
+ == 0),
+
+2239
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2241
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2242 &
+·¿m
+->
+n_by\8bs_³r_pkt
+,
+\92t
+->
+v®ue
+);
+
+2244
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2245
+\92t
+->
+Çme
+);
+
+2246
+pÿp_size_´e£Á
+ = 1;
+
+2252
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2255
+·¿m
+->
+·r£d
+ = 1;
+
+2257
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2258
+ }
+}
+
+2261
+ $·r£_s\9ak
+(\19
+p_·¿ms
+ *
+p
+,
+
+2262 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2263 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2265 \19
+p_pktq_s\9ak_·¿ms
+ *
+·¿m
+;
+
+2266 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2267 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2268
+ssize_t
+
+·¿m_idx
+;
+
+2269
+u\9at32_t
+
+pÿp_f\9ee_´e£Á
+ = 0;
+
+2270
+u\9at32_t
+
+pÿp_n_pkt_´e£Á
+ = 0;
+
+2272
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2273
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2275
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2276
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2278
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2280
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+s\9ak_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2281
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+s\9ak_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2283
+·¿m
+ = &
+p
+->
+s\9ak_·¿ms
+[
+·¿m_idx
+];
+
+2285 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2286 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2288 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_file_wr")) {
+
+2289
+ `PARSE_ERROR_DUPLICATE
+((
+pÿp_f\9ee_´e£Á
+ == 0),
+
+2290
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2292
+·¿m
+->
+f\9ee_Çme
+ =
+ `¡rdup
+(
+\92t
+->
+v®ue
+);
+
+2294
+ `PARSE_ERROR_MALLOC
+((
+·¿m
+->
+f\9ee_Çme
+ !ð
+NULL
+));
+
+2299 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "pcap_n_pkt_wr")) {
+
+2300 \12
+¡©us
+;
+
+2302
+ `PARSE_ERROR_DUPLICATE
+((
+pÿp_n_pkt_´e£Á
+ == 0),
+
+2303
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2305
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2306 &
+·¿m
+->
+n_pkts_to_dump
+,
+\92t
+->
+v®ue
+);
+
+2308
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2309
+\92t
+->
+Çme
+);
+
+2315
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2318
+·¿m
+->
+·r£d
+ = 1;
+
+2320
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2321
+ }
+}
+
+2324
+ $·r£_msgq_»q_p\9d\96\9ae
+(\19
+p_·¿ms
+ *
+p
+,
+
+2325 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2326 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2328 \19
+p_msgq_·¿ms
+ *
+·¿m
+;
+
+2329 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2330 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2331
+ssize_t
+
+·¿m_idx
+;
+
+2333
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2334
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2336
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2337
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2339
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2341
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2342
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2344
+·¿m
+ = &
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+];
+
+2346 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2347 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2349 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+2350 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+2351
+\92t
+->
+v®ue
+);
+
+2353
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2354
+\92t
+->
+Çme
+);
+
+2359
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2362
+·¿m
+->
+·r£d
+ = 1;
+
+2363
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2364
+ }
+}
+
+2367
+ $·r£_msgq_r¥_p\9d\96\9ae
+(\19
+p_·¿ms
+ *
+p
+,
+
+2368 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2369 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2371 \19
+p_msgq_·¿ms
+ *
+·¿m
+;
+
+2372 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2373 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2374
+ssize_t
+
+·¿m_idx
+;
+
+2376
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2377
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2379
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2380
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2382
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2384
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2385
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2387
+·¿m
+ = &
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+];
+
+2389 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2390 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2392 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+2393 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+2394
+\92t
+->
+v®ue
+);
+
+2396
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2397
+\92t
+->
+Çme
+);
+
+2402
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2405
+·¿m
+->
+·r£d
+ = 1;
+
+2407
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2408
+ }
+}
+
+2411
+ $·r£_msgq
+(\19
+p_·¿ms
+ *
+p
+,
+
+2412 cڡ \ 5*
+£ùiÚ_Çme
+,
+
+2413 \19
+¹e_cfgf\9ee
+ *
+cfg
+)
+
+2415 \19
+p_msgq_·¿ms
+ *
+·¿m
+;
+
+2416 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92\8c\9bs
+;
+
+2417 \12
+n_\92\8c\9bs
+,
+i
+;
+
+2418
+ssize_t
+
+·¿m_idx
+;
+
+2420
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+);
+
+2421
+ `PARSE_ERROR_SECTION_NO_ENTRIES
+((
+n_\92\8c\9bs
+ > 0),
+£ùiÚ_Çme
+);
+
+2423
+\92\8c\9bs
+ =
+ `m®loc
+(
+n_\92\8c\9bs
+ * \17(\19
+¹e_cfgf\9ee_\92\8cy
+));
+
+2424
+ `PARSE_ERROR_MALLOC
+(
+\92\8c\9bs
+ !ð
+NULL
+);
+
+2426
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+cfg
+,
+£ùiÚ_Çme
+,
+\92\8c\9bs
+,
+n_\92\8c\9bs
+);
+
+2428
+·¿m_idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2429
+ `PARSER_PARAM_ADD_CHECK
+(
+·¿m_idx
+,
+p
+->
+msgq_·¿ms
+,
+£ùiÚ_Çme
+);
+
+2431
+·¿m
+ = &
+p
+->
+msgq_·¿ms
+[
+·¿m_idx
+];
+
+2433 \ f
+i
+ = 0; i <
+n_\92\8c\9bs
+; i++) {
+
+2434 \19
+¹e_cfgf\9ee_\92\8cy
+ *
+\92t
+ = &
+\92\8c\9bs
+[
+i
+];
+
+2436 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "size") == 0) {
+
+2437 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(&
+·¿m
+->
+size
+,
+
+2438
+\92t
+->
+v®ue
+);
+
+2440
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2441
+\92t
+->
+Çme
+);
+
+2445 ià(
+ `¡rcmp
+(
+\92t
+->
+Çme
+, "cpu") == 0) {
+
+2446 \12
+¡©us
+ =
+ `·r£r_»ad_u\9at32
+(
+
+2447 &
+·¿m
+->
+ýu_sock\91_id
+,
+\92t
+->
+v®ue
+);
+
+2449
+ `PARSE_ERROR
+((
+¡©us
+ =ð0),
+£ùiÚ_Çme
+,
+
+2450
+\92t
+->
+Çme
+);
+
+2455
+ `PARSE_ERROR_INVALID
+(0,
+£ùiÚ_Çme
+,
+\92t
+->
+Çme
+);
+
+2458
+·¿m
+->
+·r£d
+ = 1;
+
+2460
+ `ä\93
+(
+\92\8c\9bs
+);
+
+2461
+ }
+}
+
+2463 \e\1e(*
+ tcÚfig_£ùiÚ_lßd
+)(\19
+ tp_·¿ms
+ *
+ tp
+,
+
+2464 cڡ \ 5*
+ t£ùiÚ_Çme
+,
+
+2465 \19
+ t¹e_cfgf\9ee
+ *
+ tcfg
+);
+
+2467 \19
+ scÚfig_£ùiÚ
+ {
+
+2468 cڡ \ 5
+´efix
+[
+CFG_NAME_LEN
+];
+
+2469 \12
+numb\94s
+;
+
+2470
+cÚfig_£ùiÚ_lßd
+
+lßd
+;
+
+2473 \18cڡ \19
+cÚfig_£ùiÚ
+
+cfg_f\9ee_scheme
+[] = {
+
+2474 {"EAL", 0,
+·r£_\97l
+},
+
+2475 {"PIPELINE", 1,
+·r£_p\9d\96\9ae
+},
+
+2476 {"MEMPOOL", 1,
+·r£_mempoÞ
+},
+
+2477 {"LINK", 1,
+·r£_l\9ak
+},
+
+2478 {"RXQ", 2,
+·r£_rxq
+},
+
+2479 {"TXQ", 2,
+·r£_txq
+},
+
+2480 {"SWQ", 1,
+·r£_swq
+},
+
+2481 {"TM", 1,
+·r£_tm
+},
+
+2482 {"SOURCE", 1,
+·r£_sourû
+},
+
+2483 {"SINK", 1,
+·r£_s\9ak
+},
+
+2484 {"MSGQ-REQ-PIPELINE", 1,
+·r£_msgq_»q_p\9d\96\9ae
+},
+
+2485 {"MSGQ-RSP-PIPELINE", 1,
+·r£_msgq_r¥_p\9d\96\9ae
+},
+
+2486 {"MSGQ", 1,
+·r£_msgq
+},
+
+2487
+ }
+};
+
+2490
+ $ü\97\8b_im¶ic\99_mempoÞs
+(\19
+p_·¿ms
+ *
+p
+)
+
+2492
+ssize_t
+
+idx
+;
+
+2494
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+mempoÞ_·¿ms
+, "MEMPOOL0");
+
+2495
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+mempoÞ_·¿ms
+, "start-up");
+
+2496
+ }
+}
+
+2499
+ $ü\97\8b_im¶ic\99_l\9aks_äom_pÜt_mask
+(\19
+p_·¿ms
+ *
+p
+,
+
+2500
+u\9at64_t
+
+pÜt_mask
+)
+
+2502
+u\9at32_t
+
+pmd_id
+,
+l\9ak_id
+;
+
+2504
+l\9ak_id
+ = 0;
+
+2505 \ f
+pmd_id
+ = 0;\85md_id <
+RTE_MAX_ETHPORTS
+;\85md_id++) {
+
+2506 \ 5
+Çme
+[
+APP_PARAM_NAME_SIZE
+];
+
+2507
+ssize_t
+
+idx
+;
+
+2509 ià((
+pÜt_mask
+ & (1LLU <<
+pmd_id
+)) == 0)
+
+2512
+ `¢´\9atf
+(
+Çme
+, \17Òame), "LINK%"
+PRIu32
+,
+l\9ak_id
+);
+
+2513
+idx
+ =
+ `APP_PARAM_ADD
+(
+p
+->
+l\9ak_·¿ms
+,
+Çme
+);
+
+2514
+ `PARSER_PARAM_ADD_CHECK
+(
+idx
+,
+p
+->
+l\9ak_·¿ms
+,
+Çme
+);
+
+2516
+p
+->
+l\9ak_·¿ms
+[
+idx
+].
+pmd_id
+ =\85md_id;
+
+2517
+l\9ak_id
+++;
+
+2519
+ }
+}
+
+2522
+ $assign_l\9ak_pmd_id_äom_pci_bdf
+(\19
+p_·¿ms
+ *
+p
+)
+
+2524
+u\9at32_t
+
+i
+;
+
+2526 \ f
+i
+ = 0; i <
+p
+->
+n_l\9aks
+; i++) {
+
+2527 \19
+p_l\9ak_·¿ms
+ *
+l\9ak
+ = &
+p
+->
+l\9ak_·¿ms
+[
+i
+];
+
+2529
+l\9ak
+->
+pmd_id
+ =
+i
+;
+
+2531
+ }
+}
+
+2534
+ $p_cÚfig_·r£
+(\19
+p_·¿ms
+ *
+p
+, cڡ \ 5*
+f\9ee_Çme
+)
+
+2536 \19
+¹e_cfgf\9ee
+ *
+cfg
+;
+
+2537 \ 5**
+£ùiÚ_Çmes
+;
+
+2538 \12
+i
+,
+j
+,
+£ù_couÁ
+;
+
+2541
+ `ü\97\8b_im¶ic\99_mempoÞs
+(
+p
+);
+
+2544 ià(
+p
+->
+pÜt_mask
+)
+
+2545
+ `ü\97\8b_im¶ic\99_l\9aks_äom_pÜt_mask
+(
+p
+,\87µ->
+pÜt_mask
+);
+
+2548
+cfg
+ =
+ `¹e_cfgf\9ee_lßd
+(
+f\9ee_Çme
+, 0);
+
+2549
+ `APP_CHECK
+((
+cfg
+ !ð
+NULL
+), "Parse\83rror: Unable\81o\86oad config "
+
+2550 "f\9e\90%s",
+f\9ee_Çme
+);
+
+2552
+£ù_couÁ
+ =
+ `¹e_cfgf\9ee_num_£ùiÚs
+(
+cfg
+,
+NULL
+, 0);
+
+2553
+ `APP_CHECK
+((
+£ù_couÁ
+ > 0), "Parse\83rror:\82umber of sections "
+
+2554 "\9a f\9e\90\"%s\"\84\91uº %d",
+f\9ee_Çme
+,
+
+2555
+£ù_couÁ
+);
+
+2557
+£ùiÚ_Çmes
+ =
+ `m®loc
+(
+£ù_couÁ
+ * \17(\ 5*));
+
+2558
+ `PARSE_ERROR_MALLOC
+(
+£ùiÚ_Çmes
+ !ð
+NULL
+);
+
+2560 \ f
+i
+ = 0; i <
+£ù_couÁ
+; i++)
+
+2561
+£ùiÚ_Çmes
+[
+i
+] =
+ `m®loc
+(
+CFG_NAME_LEN
+);
+
+2563
+ `¹e_cfgf\9ee_£ùiÚs
+(
+cfg
+,
+£ùiÚ_Çmes
+,
+£ù_couÁ
+);
+
+2565 \ f
+i
+ = 0; i <
+£ù_couÁ
+; i++) {
+
+2566 cڡ \19
+cÚfig_£ùiÚ
+ *
+sch_s
+;
+
+2567 \12
+Ën
+,
+cfg_Çme_Ën
+;
+
+2569
+cfg_Çme_Ën
+ =
+ `¡¾\92
+(
+£ùiÚ_Çmes
+[
+i
+]);
+
+2572 \ f
+j
+ = 0; j < (\12)
+ `RTE_DIM
+(
+cfg_f\9ee_scheme
+); j++) {
+
+2573
+sch_s
+ = &
+cfg_f\9ee_scheme
+[
+j
+];
+
+2574
+Ën
+ =
+ `¡¾\92
+(
+sch_s
+->
+´efix
+);
+
+2576 ià(
+cfg_Çme_Ën
+ <
+Ën
+)
+
+2585 ià((
+£ùiÚ_Çmes
+[
+i
+][
+Ën
+] != '\0') &&
+
+2586 !
+ `isdig\99
+(
+£ùiÚ_Çmes
+[
+i
+][
+Ën
+]))
+
+2589 ià(
+ `¡ºcmp
+(
+sch_s
+->
+´efix
+,
+£ùiÚ_Çmes
+[
+i
+],
+Ën
+) == 0)
+
+2593
+ `APP_CHECK
+(
+j
+ < (\12)
+ `RTE_DIM
+(
+cfg_f\9ee_scheme
+),
+
+2595
+£ùiÚ_Çmes
+[
+i
+]);
+
+2597
+ `APP_CHECK
+(
+ `v®id©e_Çme
+(
+£ùiÚ_Çmes
+[
+i
+],
+
+2598
+sch_s
+->
+´efix
+,
+
+2599
+sch_s
+->
+numb\94s
+) == 0,
+
+2601
+£ùiÚ_Çmes
+[
+i
+]);
+
+2603
+sch_s
+->
+ `lßd
+(
+p
+,
+£ùiÚ_Çmes
+[
+i
+],
+cfg
+);
+
+2606 \ f
+i
+ = 0; i <
+£ù_couÁ
+; i++)
+
+2607
+ `ä\93
+(
+£ùiÚ_Çmes
+[
+i
+]);
+
+2609
+ `ä\93
+(
+£ùiÚ_Çmes
+);
+
+2611
+ `¹e_cfgf\9ee_þo£
+(
+cfg
+);
+
+2613
+ `APP_PARAM_COUNT
+(
+p
+->
+mempoÞ_·¿ms
+,\87µ->
+n_mempoÞs
+);
+
+2614
+ `APP_PARAM_COUNT
+(
+p
+->
+l\9ak_·¿ms
+,\87µ->
+n_l\9aks
+);
+
+2615
+ `APP_PARAM_COUNT
+(
+p
+->
+hwq_\9a_·¿ms
+,\87µ->
+n_pktq_hwq_\9a
+);
+
+2616
+ `APP_PARAM_COUNT
+(
+p
+->
+hwq_out_·¿ms
+,\87µ->
+n_pktq_hwq_out
+);
+
+2617
+ `APP_PARAM_COUNT
+(
+p
+->
+swq_·¿ms
+,\87µ->
+n_pktq_swq
+);
+
+2618
+ `APP_PARAM_COUNT
+(
+p
+->
+tm_·¿ms
+,\87µ->
+n_pktq_tm
+);
+
+2619
+ `APP_PARAM_COUNT
+(
+p
+->
+sourû_·¿ms
+,\87µ->
+n_pktq_sourû
+);
+
+2620
+ `APP_PARAM_COUNT
+(
+p
+->
+s\9ak_·¿ms
+,\87µ->
+n_pktq_s\9ak
+);
+
+2621
+ `APP_PARAM_COUNT
+(
+p
+->
+msgq_·¿ms
+,\87µ->
+n_msgq
+);
+
+2622
+ `APP_PARAM_COUNT
+(
+p
+->
+p\9d\96\9ae_·¿ms
+,\87µ->
+n_p\9d\96\9aes
+);
+
+2624 #ifdeà
+RTE_PORT_PCAP
+
+
+2625 \ f
+i
+ = 0; i < (\12)
+p
+->
+n_pktq_sourû
+; i++) {
+
+2626 \19
+p_pktq_sourû_·¿ms
+ *
+p
+ = &
+p
+->
+sourû_·¿ms
+[
+i
+];
+
+2628
+ `APP_CHECK
+((
+p
+->
+f\9ee_Çme
+), "Parse\83rror: missing "
+
+2630
+p
+->
+Çme
+);
+
+2633 \ f
+i
+ = 0; i < (\12)
+p
+->
+n_pktq_sourû
+; i++) {
+
+2634 \19
+p_pktq_sourû_·¿ms
+ *
+p
+ = &
+p
+->
+sourû_·¿ms
+[
+i
+];
+
+2636
+ `APP_CHECK
+((!
+p
+->
+f\9ee_Çme
+), "Parse\83rror: invalid field "
+
+2637 "\"pÿp_f\9ee_rd\" fÜ \"%s\"",
+p
+->
+Çme
+);
+
+2641 ià(
+p
+->
+pÜt_mask
+ == 0)
+
+2642
+ `assign_l\9ak_pmd_id_äom_pci_bdf
+(
+p
+);
+
+2645
+ `p_cÚfig_§ve
+(
+p
+,\87µ->
+ou\8dut_f\9ee
+);
+
+2648
+ `p_cÚfig_·r£_tm
+(
+p
+);
+
+2651
+ }
+}
+
+2654
+ $§ve_\97l_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2656 \19
+p_\97l_·¿ms
+ *
+p
+ = &
+p
+->
+\97l_·¿ms
+;
+
+2657
+u\9at32_t
+
+i
+;
+
+2659
+ `år\9atf
+(
+f
+, "[EAL]\n");
+
+2661 ià(
+p
+->
+cÜem
+)
+
+2662
+ `år\9atf
+(
+f
+, "% ð%s\n", "lcÜes",
+p
+->
+cÜem
+);
+
+2664 ià(
+p
+->
+ma¡\94_lcÜe_´e£Á
+)
+
+2665
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n",
+
+2666 "ma¡\94_lcÜe",
+p
+->
+ma¡\94_lcÜe
+);
+
+2668
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "n",
+p
+->
+chªÃls
+);
+
+2670 ià(
+p
+->
+memÜy_´e£Á
+)
+
+2671
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "m",
+p
+->
+memÜy
+);
+
+2673 ià(
+p
+->
+¿nks_´e£Á
+)
+
+2674
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "r",
+p
+->
+¿nks
+);
+
+2676 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+2677 ià(
+p
+->
+pci_bÏckli¡
+[
+i
+] =ð
+NULL
+)
+
+2680
+ `år\9atf
+(
+f
+, "%s = %s\n", "pci_blacklist",
+
+2681
+p
+->
+pci_bÏckli¡
+[
+i
+]);
+
+2684 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+2685 ià(
+p
+->
+pci_wh\99\96i¡
+[
+i
+] =ð
+NULL
+)
+
+2688
+ `år\9atf
+(
+f
+, "%s = %s\n", "pci_whitelist",
+
+2689
+p
+->
+pci_wh\99\96i¡
+[
+i
+]);
+
+2692 \ f
+i
+ = 0; i <
+APP_MAX_LINKS
+; i++) {
+
+2693 ià(
+p
+->
+vdev
+[
+i
+] =ð
+NULL
+)
+
+2696
+ `år\9atf
+(
+f
+, "%s = %s\n", "vdev",
+
+2697
+p
+->
+vdev
+[
+i
+]);
+
+2700 ià(
+p
+->
+vmw¬e_tsc_m_´e£Á
+)
+
+2701
+ `år\9atf
+(
+f
+, "%s = %s\n", "vmware_tsc_map",
+
+2702 (
+p
+->
+vmw¬e_tsc_m
+) ? "yes" : "no");
+
+2704 ià(
+p
+->
+´oc_ty³
+)
+
+2705
+ `år\9atf
+(
+f
+, "% ð%s\n", "´oc_ty³",
+p
+->
+´oc_ty³
+);
+
+2707 ià(
+p
+->
+sy¦og
+)
+
+2708
+ `år\9atf
+(
+f
+, "% ð%s\n", "sy¦og",
+p
+->
+sy¦og
+);
+
+2710 ià(
+p
+->
+log_Ëv\96_´e£Á
+)
+
+2711
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "log_Ëv\96",
+p
+->
+log_Ëv\96
+);
+
+2713 ià(
+p
+->
+v\94siÚ_´e£Á
+)
+
+2714
+ `år\9atf
+(
+f
+, "% ð%s\n", "v", (
+p
+->
+v\94siÚ
+) ? "yes" : "no");
+
+2716 ià(
+p
+->
+h\96p_´e£Á
+)
+
+2717
+ `år\9atf
+(
+f
+, "% ð%s\n", "h\96p", (
+p
+->
+h\96p
+) ? "yes" : "no");
+
+2719 ià(
+p
+->
+no_huge_´e£Á
+)
+
+2720
+ `år\9atf
+(
+f
+, "% ð%s\n", "no_huge", (
+p
+->
+no_huge
+) ? "yes" : "no");
+
+2722 ià(
+p
+->
+no_pci_´e£Á
+)
+
+2723
+ `år\9atf
+(
+f
+, "% ð%s\n", "no_pci", (
+p
+->
+no_pci
+) ? "yes" : "no");
+
+2725 ià(
+p
+->
+no_h³t_´e£Á
+)
+
+2726
+ `år\9atf
+(
+f
+, "% ð%s\n", "no_h³t", (
+p
+->
+no_h³t
+) ? "yes" : "no");
+
+2728 ià(
+p
+->
+no_shcÚf_´e£Á
+)
+
+2729
+ `år\9atf
+(
+f
+, "%s = %s\n", "no_shconf",
+
+2730 (
+p
+->
+no_shcÚf
+) ? "yes" : "no");
+
+2732 ià(
+p
+->
+add_driv\94
+)
+
+2733
+ `år\9atf
+(
+f
+, "% ð%s\n", "d",
+p
+->
+add_driv\94
+);
+
+2735 ià(
+p
+->
+sock\91_mem
+)
+
+2736
+ `år\9atf
+(
+f
+, "% ð%s\n", "sock\91_mem",
+p
+->
+sock\91_mem
+);
+
+2738 ià(
+p
+->
+huge_d\9c
+)
+
+2739
+ `år\9atf
+(
+f
+, "% ð%s\n", "huge_d\9c",
+p
+->
+huge_d\9c
+);
+
+2741 ià(
+p
+->
+f\9ee_´efix
+)
+
+2742
+ `år\9atf
+(
+f
+, "% ð%s\n", "f\9ee_´efix",
+p
+->
+f\9ee_´efix
+);
+
+2744 ià(
+p
+->
+ba£_v\9c\8fddr
+)
+
+2745
+ `år\9atf
+(
+f
+, "% ð%s\n", "ba£_v\9c\8fddr",
+p
+->
+ba£_v\9c\8fddr
+);
+
+2747 ià(
+p
+->
+ü\97\8b_uio_dev_´e£Á
+)
+
+2748
+ `år\9atf
+(
+f
+, "%s = %s\n", "create_uio_dev",
+
+2749 (
+p
+->
+ü\97\8b_uio_dev
+) ? "yes" : "no");
+
+2751 ià(
+p
+->
+vfio_\9a\8c
+)
+
+2752
+ `år\9atf
+(
+f
+, "% ð%s\n", "vfio_\9a\8c",
+p
+->
+vfio_\9a\8c
+);
+
+2754 ià(
+p
+->
+x\92_dom0_´e£Á
+)
+
+2755
+ `år\9atf
+(
+f
+, "%s = %s\n", "xen_dom0",
+
+2756 (
+p
+->
+x\92_dom0
+) ? "yes" : "no");
+
+2758
+ `åutc
+('\n',
+f
+);
+
+2759
+ }
+}
+
+2762
+ $§ve_mempoÞ_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2764 \19
+p_mempoÞ_·¿ms
+ *
+p
+;
+
+2765
+size_t
+
+i
+,
+couÁ
+;
+
+2767
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+mempoÞ_·¿ms
+);
+
+2768 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2769
+p
+ = &
+p
+->
+mempoÞ_·¿ms
+[
+i
+];
+
+2770 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2773
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2774
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bufãr_size",
+p
+->
+bufãr_size
+);
+
+2775
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "poÞ_size",
+p
+->
+poÞ_size
+);
+
+2776
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "ÿche_size",
+p
+->
+ÿche_size
+);
+
+2777
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "ýu",
+p
+->
+ýu_sock\91_id
+);
+
+2779
+ `åutc
+('\n',
+f
+);
+
+2781
+ }
+}
+
+2784
+ $§ve_l\9aks_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2786 \19
+p_l\9ak_·¿ms
+ *
+p
+;
+
+2787
+size_t
+
+i
+,
+couÁ
+;
+
+2789
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+l\9ak_·¿ms
+);
+
+2790 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2791
+p
+ = &
+p
+->
+l\9ak_·¿ms
+[
+i
+];
+
+2792 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2795
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2796
+ `år\9atf
+(
+f
+, "; % ð%"
+PRIu32
+ "\n", "pmd_id",
+p
+->
+pmd_id
+);
+
+2797
+ `år\9atf
+(
+f
+, "% ð%s\n", "´omisc",
+p
+->
+´omisc
+ ? "yes" : "no");
+
+2798
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "¬p_q",
+p
+->
+¬p_q
+);
+
+2799
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "tcp_syn_q",
+
+2800
+p
+->
+tý_syn_q
+);
+
+2801
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "\9d_loÿl_q",
+p
+->
+\9d_loÿl_q
+);
+
+2802
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "tý_loÿl_q",
+p
+->
+tý_loÿl_q
+);
+
+2803
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "udp_loÿl_q",
+p
+->
+udp_loÿl_q
+);
+
+2804
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "sctp_local_q",
+
+2805
+p
+->
+sùp_loÿl_q
+);
+
+2807 ià(
+ `¡¾\92
+(
+p
+->
+pci_bdf
+))
+
+2808
+ `år\9atf
+(
+f
+, "% ð%s\n", "pci_bdf",
+p
+->
+pci_bdf
+);
+
+2810
+ `åutc
+('\n',
+f
+);
+
+2812
+ }
+}
+
+2815
+ $§ve_rxq_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2817 \19
+p_pktq_hwq_\9a_·¿ms
+ *
+p
+;
+
+2818
+size_t
+
+i
+,
+couÁ
+;
+
+2820
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+hwq_\9a_·¿ms
+);
+
+2821 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2822
+p
+ = &
+p
+->
+hwq_\9a_·¿ms
+[
+i
+];
+
+2823 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2826
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2827
+ `år\9atf
+(
+f
+, "%s = %s\n",
+
+2829
+p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_id
+].
+Çme
+);
+
+2830
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "size",
+p
+->
+size
+);
+
+2831
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡",
+p
+->
+bur¡
+);
+
+2833
+ `åutc
+('\n',
+f
+);
+
+2835
+ }
+}
+
+2838
+ $§ve_txq_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2840 \19
+p_pktq_hwq_out_·¿ms
+ *
+p
+;
+
+2841
+size_t
+
+i
+,
+couÁ
+;
+
+2843
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+hwq_out_·¿ms
+);
+
+2844 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2845
+p
+ = &
+p
+->
+hwq_out_·¿ms
+[
+i
+];
+
+2846 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2849
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2850
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "size",
+p
+->
+size
+);
+
+2851
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡",
+p
+->
+bur¡
+);
+
+2852
+ `år\9atf
+(
+f
+, "%s = %s\n",
+
+2854
+p
+->
+drÝËss
+ ? "yes" : "no");
+
+2856
+ `åutc
+('\n',
+f
+);
+
+2858
+ }
+}
+
+2861
+ $§ve_swq_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2863 \19
+p_pktq_swq_·¿ms
+ *
+p
+;
+
+2864
+size_t
+
+i
+,
+couÁ
+;
+
+2866
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+swq_·¿ms
+);
+
+2867 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2868
+p
+ = &
+p
+->
+swq_·¿ms
+[
+i
+];
+
+2869 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2872
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2873
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "size",
+p
+->
+size
+);
+
+2874
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡_»ad",
+p
+->
+bur¡_»ad
+);
+
+2875
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡_wr\99e",
+p
+->
+bur¡_wr\99e
+);
+
+2876
+ `år\9atf
+(
+f
+, "% ð%s\n", "drÝËss",
+p
+->
+drÝËss
+ ? "yes" : "no");
+
+2877
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu64
+ "\n", "n_»\8c\9bs",
+p
+->
+n_»\8c\9bs
+);
+
+2878
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "ýu",
+p
+->
+ýu_sock\91_id
+);
+
+2879
+ `år\9atf
+(
+f
+, "% ð%s\n", "\9dv4_äag",
+p
+->
+\9dv4_äag
+ ? "yes" : "no");
+
+2880
+ `år\9atf
+(
+f
+, "% ð%s\n", "\9dv6_äag",
+p
+->
+\9dv6_äag
+ ? "yes" : "no");
+
+2881
+ `år\9atf
+(
+f
+, "% ð%s\n", "\9dv4_¿s",
+p
+->
+\9dv4_¿s
+ ? "yes" : "no");
+
+2882
+ `år\9atf
+(
+f
+, "% ð%s\n", "\9dv6_¿s",
+p
+->
+\9dv6_¿s
+ ? "yes" : "no");
+
+2883 ià((
+p
+->
+\9dv4_äag
+ =ð1è|| (p->
+\9dv6_äag
+ == 1)) {
+
+2884
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "mtu",
+p
+->
+mtu
+);
+
+2885
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "m\91ad©a_size",
+p
+->
+m\91ad©a_size
+);
+
+2886
+ `år\9atf
+(
+f
+, "%s = %s\n",
+
+2888
+p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_d\9ceù_id
+].
+Çme
+);
+
+2889
+ `år\9atf
+(
+f
+, "%s = %s\n",
+
+2891
+p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_\9ad\9ceù_id
+].
+Çme
+);
+
+2894
+ `åutc
+('\n',
+f
+);
+
+2896
+ }
+}
+
+2899
+ $§ve_tm_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2901 \19
+p_pktq_tm_·¿ms
+ *
+p
+;
+
+2902
+size_t
+
+i
+,
+couÁ
+;
+
+2904
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+tm_·¿ms
+);
+
+2905 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2906
+p
+ = &
+p
+->
+tm_·¿ms
+[
+i
+];
+
+2907 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2910
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2911
+ `år\9atf
+(
+f
+, "% ð%s\n", "cfg",
+p
+->
+f\9ee_Çme
+);
+
+2912
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡_»ad",
+p
+->
+bur¡_»ad
+);
+
+2913
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡_wr\99e",
+p
+->
+bur¡_wr\99e
+);
+
+2915
+ `åutc
+('\n',
+f
+);
+
+2917
+ }
+}
+
+2920
+ $§ve_sourû_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2922 \19
+p_pktq_sourû_·¿ms
+ *
+p
+;
+
+2923
+size_t
+
+i
+,
+couÁ
+;
+
+2925
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+sourû_·¿ms
+);
+
+2926 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2927
+p
+ = &
+p
+->
+sourû_·¿ms
+[
+i
+];
+
+2928 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2931
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2932
+ `år\9atf
+(
+f
+, "%s = %s\n",
+
+2934
+p
+->
+mempoÞ_·¿ms
+[
+p
+->
+mempoÞ_id
+].
+Çme
+);
+
+2935
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "bur¡",
+p
+->
+bur¡
+);
+
+2936
+ `år\9atf
+(
+f
+, "% ð%s\n", "pÿp_f\9ee_rd",
+p
+->
+f\9ee_Çme
+);
+
+2937
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "pcap_bytes_rd_per_pkt",
+
+2938
+p
+->
+n_by\8bs_³r_pkt
+);
+
+2939
+ `åutc
+('\n',
+f
+);
+
+2941
+ }
+}
+
+2944
+ $§ve_s\9ak_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2946 \19
+p_pktq_s\9ak_·¿ms
+ *
+p
+;
+
+2947
+size_t
+
+i
+,
+couÁ
+;
+
+2949
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+s\9ak_·¿ms
+);
+
+2950 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2951
+p
+ = &
+p
+->
+s\9ak_·¿ms
+[
+i
+];
+
+2952 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2955
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2956
+ `år\9atf
+(
+f
+, "% ð%s\n", "pÿp_f\9ee_wr",
+p
+->
+f\9ee_Çme
+);
+
+2957
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n",
+
+2958 "pÿp_n_pkt_wr",
+p
+->
+n_pkts_to_dump
+);
+
+2959
+ `åutc
+('\n',
+f
+);
+
+2961
+ }
+}
+
+2964
+ $§ve_msgq_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2966 \19
+p_msgq_·¿ms
+ *
+p
+;
+
+2967
+size_t
+
+i
+,
+couÁ
+;
+
+2969
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+msgq_·¿ms
+);
+
+2970 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2971
+p
+ = &
+p
+->
+msgq_·¿ms
+[
+i
+];
+
+2972 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2975
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2976
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "size",
+p
+->
+size
+);
+
+2977
+ `år\9atf
+(
+f
+, "% ð%"
+PRIu32
+ "\n", "ýu",
+p
+->
+ýu_sock\91_id
+);
+
+2979
+ `åutc
+('\n',
+f
+);
+
+2981
+ }
+}
+
+2984
+ $§ve_p\9d\96\9ae_·¿ms
+(\19
+p_·¿ms
+ *
+p
+,
+FILE
+ *
+f
+)
+
+2986
+size_t
+
+i
+,
+couÁ
+;
+
+2988
+couÁ
+ =
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+);
+
+2989 \ f
+i
+ = 0; i <
+couÁ
+; i++) {
+
+2990 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+];
+
+2992 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+2996
+ `år\9atf
+(
+f
+, "[%s]\n",
+p
+->
+Çme
+);
+
+2999
+ `år\9atf
+(
+f
+, "ty³ = %s\n",
+p
+->
+ty³
+);
+
+3002
+ `år\9atf
+(
+f
+, "cÜ\90ðs%"
+PRIu32
+ "c%" PRIu32 "%s\n",
+
+3003
+p
+->
+sock\91_id
+,
+
+3004
+p
+->
+cÜe_id
+,
+
+3005 (
+p
+->
+hy³r_th_id
+) ? "h" : "");
+
+3008 ià(
+p
+->
+n_pktq_\9a
+) {
+
+3009
+u\9at32_t
+
+j
+;
+
+3011
+ `år\9atf
+(
+f
+, "pktq_in =");
+
+3012 \ f
+j
+ = 0; j <
+p
+->
+n_pktq_\9a
+; j++) {
+
+3013 \19
+p_pktq_\9a_·¿ms
+ *
+µ
+ = &
+p
+->
+pktq_\9a
+[
+j
+];
+
+3014 \ 5*
+Çme
+;
+
+3016 \1a
+µ
+->
+ty³
+) {
+
+3017 \ 4
+APP_PKTQ_IN_HWQ
+:
+
+3018
+Çme
+ =
+p
+->
+hwq_\9a_·¿ms
+[
+µ
+->
+id
+].name;
+
+3020 \ 4
+APP_PKTQ_IN_SWQ
+:
+
+3021
+Çme
+ =
+p
+->
+swq_·¿ms
+[
+µ
+->
+id
+].name;
+
+3023 \ 4
+APP_PKTQ_IN_TM
+:
+
+3024
+Çme
+ =
+p
+->
+tm_·¿ms
+[
+µ
+->
+id
+].name;
+
+3026 \ 4
+APP_PKTQ_IN_SOURCE
+:
+
+3027
+Çme
+ =
+p
+->
+sourû_·¿ms
+[
+µ
+->
+id
+].name;
+
+3030
+ `APP_CHECK
+(0, "System\83rror "
+
+3035
+ `år\9atf
+(
+f
+, " %s",
+Çme
+);
+
+3037
+ `år\9atf
+(
+f
+, "\n");
+
+3041 ià(
+p
+->
+n_pktq_out
+) {
+
+3042
+u\9at32_t
+
+j
+;
+
+3044
+ `år\9atf
+(
+f
+, "pktq_out =");
+
+3045 \ f
+j
+ = 0; j <
+p
+->
+n_pktq_out
+; j++) {
+
+3046 \19
+p_pktq_out_·¿ms
+ *
+µ
+ =
+
+3047 &
+p
+->
+pktq_out
+[
+j
+];
+
+3048 \ 5*
+Çme
+;
+
+3050 \1a
+µ
+->
+ty³
+) {
+
+3051 \ 4
+APP_PKTQ_OUT_HWQ
+:
+
+3052
+Çme
+ =
+p
+->
+hwq_out_·¿ms
+[
+µ
+->
+id
+].name;
+
+3054 \ 4
+APP_PKTQ_OUT_SWQ
+:
+
+3055
+Çme
+ =
+p
+->
+swq_·¿ms
+[
+µ
+->
+id
+].name;
+
+3057 \ 4
+APP_PKTQ_OUT_TM
+:
+
+3058
+Çme
+ =
+p
+->
+tm_·¿ms
+[
+µ
+->
+id
+].name;
+
+3060 \ 4
+APP_PKTQ_OUT_SINK
+:
+
+3061
+Çme
+ =
+p
+->
+s\9ak_·¿ms
+[
+µ
+->
+id
+].name;
+
+3064
+ `APP_CHECK
+(0, "System\83rror "
+
+3069
+ `år\9atf
+(
+f
+, " %s",
+Çme
+);
+
+3071
+ `år\9atf
+(
+f
+, "\n");
+
+3075 ià(
+p
+->
+n_msgq_\9a
+) {
+
+3076
+u\9at32_t
+
+j
+;
+
+3078
+ `år\9atf
+(
+f
+, "msgq_in =");
+
+3079 \ f
+j
+ = 0; j <
+p
+->
+n_msgq_\9a
+; j++) {
+
+3080
+u\9at32_t
+
+id
+ =
+p
+->
+msgq_\9a
+[
+j
+];
+
+3081 \ 5*
+Çme
+ =
+p
+->
+msgq_·¿ms
+[
+id
+].name;
+
+3083
+ `år\9atf
+(
+f
+, " %s",
+Çme
+);
+
+3085
+ `år\9atf
+(
+f
+, "\n");
+
+3089 ià(
+p
+->
+n_msgq_out
+) {
+
+3090
+u\9at32_t
+
+j
+;
+
+3092
+ `år\9atf
+(
+f
+, "msgq_out =");
+
+3093 \ f
+j
+ = 0; j <
+p
+->
+n_msgq_out
+; j++) {
+
+3094
+u\9at32_t
+
+id
+ =
+p
+->
+msgq_out
+[
+j
+];
+
+3095 \ 5*
+Çme
+ =
+p
+->
+msgq_·¿ms
+[
+id
+].name;
+
+3097
+ `år\9atf
+(
+f
+, " %s",
+Çme
+);
+
+3099
+ `år\9atf
+(
+f
+, "\n");
+
+3103
+ `år\9atf
+(
+f
+, "tim\94_³riod = %"
+PRIu32
+ "\n",
+p
+->
+tim\94_³riod
+);
+
+3106 ià(
+p
+->
+n_¬gs
+) {
+
+3107
+u\9at32_t
+
+j
+;
+
+3109 \ f
+j
+ = 0; j <
+p
+->
+n_¬gs
+; j++)
+
+3110
+ `år\9atf
+(
+f
+, "% ð%s\n",
+p
+->
+¬gs_Çme
+[
+j
+],
+
+3111
+p
+->
+¬gs_v®ue
+[
+j
+]);
+
+3114
+ `år\9atf
+(
+f
+, "\n");
+
+3116
+ }
+}
+
+3119
+ $p_cÚfig_§ve
+(\19
+p_·¿ms
+ *
+p
+, cڡ \ 5*
+f\9ee_Çme
+)
+
+3121
+FILE
+ *
+f\9ee
+;
+
+3122 \ 5*
+Çme
+, *
+d\9c_Çme
+;
+
+3123 \12
+¡©us
+;
+
+3125
+Çme
+ =
+ `¡rdup
+(
+f\9ee_Çme
+);
+
+3126
+d\9c_Çme
+ =
+ `d\9cÇme
+(
+Çme
+);
+
+3127
+¡©us
+ =
+ `acûss
+(
+d\9c_Çme
+,
+W_OK
+);
+
+3128
+ `APP_CHECK
+((
+¡©us
+ == 0),
+
+3130 "\"%s\"\81اv\90cÚfigu¿tiÚ\n",
+d\9c_Çme
+);
+
+3132
+f\9ee
+ =
+ `fݒ
+(
+f\9ee_Çme
+, "w");
+
+3133
+ `APP_CHECK
+((
+f\9ee
+ !ð
+NULL
+),
+
+3135
+f\9ee_Çme
+);
+
+3137
+ `§ve_\97l_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3138
+ `§ve_p\9d\96\9ae_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3139
+ `§ve_mempoÞ_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3140
+ `§ve_l\9aks_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3141
+ `§ve_rxq_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3142
+ `§ve_txq_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3143
+ `§ve_swq_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3144
+ `§ve_tm_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3145
+ `§ve_sourû_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3146
+ `§ve_s\9ak_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3147
+ `§ve_msgq_·¿ms
+(
+p
+,
+f\9ee
+);
+
+3149
+ `fþo£
+(
+f\9ee
+);
+
+3150
+ `ä\93
+(
+Çme
+);
+
+3151
+ }
+}
+
+3154
+ $p_cÚfig_\9a\99
+(\19
+p_·¿ms
+ *
+p
+)
+
+3156
+size_t
+
+i
+;
+
+3158
+ `memýy
+(
+p
+, &
+p_·¿ms_deçuÉ
+, \17(\19
+p_·¿ms
+));
+
+3160 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+mempoÞ_·¿ms
+); i++)
+
+3161
+ `memýy
+(&
+p
+->
+mempoÞ_·¿ms
+[
+i
+],
+
+3162 &
+mempoÞ_·¿ms_deçuÉ
+,
+
+3163 \17(\19
+p_mempoÞ_·¿ms
+));
+
+3165 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+l\9ak_·¿ms
+); i++)
+
+3166
+ `memýy
+(&
+p
+->
+l\9ak_·¿ms
+[
+i
+],
+
+3167 &
+l\9ak_·¿ms_deçuÉ
+,
+
+3168 \17(\19
+p_l\9ak_·¿ms
+));
+
+3170 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+hwq_\9a_·¿ms
+); i++)
+
+3171
+ `memýy
+(&
+p
+->
+hwq_\9a_·¿ms
+[
+i
+],
+
+3172 &
+deçuÉ_hwq_\9a_·¿ms
+,
+
+3173 \17(
+deçuÉ_hwq_\9a_·¿ms
+));
+
+3175 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+hwq_out_·¿ms
+); i++)
+
+3176
+ `memýy
+(&
+p
+->
+hwq_out_·¿ms
+[
+i
+],
+
+3177 &
+deçuÉ_hwq_out_·¿ms
+,
+
+3178 \17(
+deçuÉ_hwq_out_·¿ms
+));
+
+3180 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+swq_·¿ms
+); i++)
+
+3181
+ `memýy
+(&
+p
+->
+swq_·¿ms
+[
+i
+],
+
+3182 &
+deçuÉ_swq_·¿ms
+,
+
+3183 \17(
+deçuÉ_swq_·¿ms
+));
+
+3185 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+tm_·¿ms
+); i++)
+
+3186
+ `memýy
+(&
+p
+->
+tm_·¿ms
+[
+i
+],
+
+3187 &
+deçuÉ_tm_·¿ms
+,
+
+3188 \17(
+deçuÉ_tm_·¿ms
+));
+
+3190 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+sourû_·¿ms
+); i++)
+
+3191
+ `memýy
+(&
+p
+->
+sourû_·¿ms
+[
+i
+],
+
+3192 &
+deçuÉ_sourû_·¿ms
+,
+
+3193 \17(
+deçuÉ_sourû_·¿ms
+));
+
+3195 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+s\9ak_·¿ms
+); i++)
+
+3196
+ `memýy
+(&
+p
+->
+s\9ak_·¿ms
+[
+i
+],
+
+3197 &
+deçuÉ_s\9ak_·¿ms
+,
+
+3198 \17(
+deçuÉ_s\9ak_·¿ms
+));
+
+3200 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+msgq_·¿ms
+); i++)
+
+3201
+ `memýy
+(&
+p
+->
+msgq_·¿ms
+[
+i
+],
+
+3202 &
+deçuÉ_msgq_·¿ms
+,
+
+3203 \17(
+deçuÉ_msgq_·¿ms
+));
+
+3205 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+p\9d\96\9ae_·¿ms
+); i++)
+
+3206
+ `memýy
+(&
+p
+->
+p\9d\96\9ae_·¿ms
+[
+i
+],
+
+3207 &
+deçuÉ_p\9d\96\9ae_·¿ms
+,
+
+3208 \17(
+deçuÉ_p\9d\96\9ae_·¿ms
+));
+
+3211
+ }
+}
+
+3214
+ $f\9e\92amedup
+(cڡ \ 5*
+f\9e\92ame
+, cڡ \ 5*
+suffix
+)
+
+3216 \ 5*
+s
+ =
+ `m®loc
+(
+ `¡¾\92
+(
+f\9e\92ame
+è+ s\8cËn(
+suffix
+) + 1);
+
+3218 ià(!
+s
+)
+
+3219 \15
+NULL
+;
+
+3221
+ `¥r\9atf
+(
+s
+, "%s%s",
+f\9e\92ame
+,
+suffix
+);
+
+3222 \15
+s
+;
+
+3223
+ }
+}
+
+3226
+ $p_cÚfig_¬gs
+(\19
+p_·¿ms
+ *
+p
+, \12
+¬gc
+, \ 5**
+¬gv
+)
+
+3228 cڡ \ 5*
+݊ame
+;
+
+3229 \12
+Ýt
+,
+ÝtiÚ_\9adex
+;
+
+3230 \12
+f_´e£Á
+,
+s_´e£Á
+,
+p_´e£Á
+,
+l_´e£Á
+;
+
+3231 \12
+´\95roc_´e£Á
+,
+´\95roc_·¿ms_´e£Á
+,
+di§bË_csum_´e£Á
+;
+
+3232 \12
+hwlb_´e£Á
+;
+
+3233 \12
+æow_d\9c_´e£Á
+;
+
+3234 \12
+sÿÃd
+ = 0;
+
+3236 \18\19
+ÝtiÚ
+
+lgÝts
+[] = {
+
+3242 {
+NULL
+, 0, 0, 0 }
+
+3246
+ `¡ºýy
+(
+p
+->
+p_Çme
+,
+¬gv
+[0],
+APP_APPNAME_SIZE
+ - 1);
+
+3248
+f_´e£Á
+ = 0;
+
+3249
+s_´e£Á
+ = 0;
+
+3250
+p_´e£Á
+ = 0;
+
+3251
+l_´e£Á
+ = 0;
+
+3252
+di§bË_csum_´e£Á
+ = 0;
+
+3253
+´\95roc_´e£Á
+ = 0;
+
+3254
+´\95roc_·¿ms_´e£Á
+ = 0;
+
+3255
+p
+->
+h\97d\94_csum_»q
+ =1;
+
+3256
+hwlb_´e£Á
+ = 0;
+
+3257
+æow_d\9c_´e£Á
+ = 0;
+
+3260 \1f(
+Ýt
+ =
+ `g\91Ýt_lÚg
+(
+¬gc
+,
+¬gv
+, "f:s:p:l:",
+lgÝts
+,
+
+3261 &
+ÝtiÚ_\9adex
+)è!ð
+EOF
+)
+
+3262 \1a
+Ýt
+) {
+
+3264 ià(
+f_´e£Á
+)
+
+3265
+ `¹e_·nic
+("Error: Config file is\85rovided "
+
+3267
+f_´e£Á
+ = 1;
+
+3269 ià(!
+ `¡¾\92
+(
+ݏrg
+))
+
+3270
+ `¹e_·nic
+("Error: Config file\82ame is\82ull\n");
+
+3272
+p
+->
+cÚfig_f\9ee
+ =
+ `¡rdup
+(
+ݏrg
+);
+
+3273 ià(
+p
+->
+cÚfig_f\9ee
+ =ð
+NULL
+)
+
+3274
+ `¹e_·nic
+("Error: Memory\87llocation failure\n");
+
+3279 ià(
+s_´e£Á
+)
+
+3280
+ `¹e_·nic
+("Error: Script file is\85rovided "
+
+3282
+s_´e£Á
+ = 1;
+
+3284 ià(!
+ `¡¾\92
+(
+ݏrg
+))
+
+3285
+ `¹e_·nic
+("Error: Script file\82ame is\82ull\n");
+
+3287
+p
+->
+sü\9dt_f\9ee
+ =
+ `¡rdup
+(
+ݏrg
+);
+
+3288 ià(
+p
+->
+sü\9dt_f\9ee
+ =ð
+NULL
+)
+
+3289
+ `¹e_·nic
+("Error: Memory\87llocation failure\n");
+
+3294 ià(
+p_´e£Á
+)
+
+3295
+ `¹e_·nic
+("Error: PORT_MASK is\85rovided "
+
+3297
+p_´e£Á
+ = 1;
+
+3299 ià((
+ `ssÿnf
+(
+ݏrg
+, "%"
+SCNx64
+ "%n", &
+p
+->
+pÜt_mask
+,
+
+3300 &
+sÿÃd
+) != 1) ||
+
+3301 ((
+size_t
+è
+sÿÃd
+ !ð
+ `¡¾\92
+(
+ݏrg
+)))
+
+3302
+ `¹e_·nic
+("Error: PORT_MASK is\82ot "
+
+3305 ià(
+p
+->
+pÜt_mask
+ == 0)
+
+3306
+ `¹e_·nic
+("Error: PORT_MASK is\82ull\n");
+
+3311 ià(
+l_´e£Á
+)
+
+3312
+ `¹e_·nic
+("Error: LOG_LEVEL is\85rovided "
+
+3314
+l_´e£Á
+ = 1;
+
+3316 ià((
+ `ssÿnf
+(
+ݏrg
+, "%"
+SCNu32
+ "%n", &
+p
+->
+log_Ëv\96
+,
+
+3317 &
+sÿÃd
+) != 1) ||
+
+3318 ((
+size_t
+è
+sÿÃd
+ !ð
+ `¡¾\92
+(
+ݏrg
+)) ||
+
+3319 (
+p
+->
+log_Ëv\96
+ >ð
+APP_LOG_LEVELS
+))
+
+3320
+ `¹e_·nic
+("Error: LOG_LEVEL invalid value\n");
+
+3325
+݊ame
+ =
+lgÝts
+[
+ÝtiÚ_\9adex
+].
+Çme
+;
+
+3327 ià(
+ `¡rcmp
+(
+݊ame
+, "hwlb") == 0) {
+
+3328 ià(
+hwlb_´e£Á
+)
+
+3329
+ `¹e_·nic
+("Error: hwlb\87rgument "
+
+3331
+hwlb_´e£Á
+ = 1;
+
+3332
+ `´\9atf
+(" HWLB is configured\n");
+
+3334
+p
+->
+n_hwlb_q
+ =
+ `©oi
+(
+ݏrg
+);
+
+3336 if(!
+p
+->
+n_hwlb_q
+)
+
+3337
+ `¹e_·nic
+("HWQs for HWLB must be\87tleast 1\n");
+
+3339
+ `´\9atf
+("NØoàHWQ fÜ HWLB\87» %d\n",
+p
+->
+n_hwlb_q
+);
+
+3340
+\92abË_hwlb
+ = 1;
+
+3344 ià(
+ `¡rcmp
+(
+݊ame
+, "flow_dir") == 0) {
+
+3345 ià(
+æow_d\9c_´e£Á
+)
+
+3346
+ `¹e_·nic
+("Error: flow_dir\87rgument "
+
+3348
+æow_d\9c_´e£Á
+ = 1;
+
+3349
+ `´\9atf
+(" FLOW DIR is configured\n");
+
+3351
+\92abË_æow_d\9c
+ = 1;
+
+3356 ià(
+ `¡rcmp
+(
+݊ame
+, "disable-hw-csum") == 0) {
+
+3357 ià(
+di§bË_csum_´e£Á
+)
+
+3358
+ `¹e_·nic
+("Error: disable-hw-csum\87rgument "
+
+3361
+ `´\9atf
+("Disable TCP/UDP HW checksumi\n");
+
+3362
+p
+->
+h\97d\94_csum_»q
+ = 0;
+
+3363
+di§bË_csum_´e£Á
+ = 1;
+
+3367 ià(
+ `¡rcmp
+(
+݊ame
+, "preproc") == 0) {
+
+3368 ià(
+´\95roc_´e£Á
+)
+
+3369
+ `¹e_·nic
+("Error: Preprocessor\87rgument "
+
+3371
+´\95roc_´e£Á
+ = 1;
+
+3373
+p
+->
+´\95roc
+ =
+ `¡rdup
+(
+ݏrg
+);
+
+3377 ià(
+ `¡rcmp
+(
+݊ame
+, "preproc-args") == 0) {
+
+3378 ià(
+´\95roc_·¿ms_´e£Á
+)
+
+3379
+ `¹e_·nic
+("Error: Preprocessor\87rgs "
+
+3381
+´\95roc_·¿ms_´e£Á
+ = 1;
+
+3383
+p
+->
+´\95roc_¬gs
+ =
+ `¡rdup
+(
+ݏrg
+);
+
+3387
+ `p_´\9at_u§ge
+(
+¬gv
+[0]);
+
+3391
+ `p_´\9at_u§ge
+(
+¬gv
+[0]);
+
+3394
+Ýt\9ad
+ = 0;
+
+3397 ià(
+´\95roc_·¿ms_´e£Á
+ && (
+´\95roc_´e£Á
+ == 0))
+
+3398
+ `¹e_·nic
+("Error: Preprocessor\87rgs specified while "
+
+3401
+p
+->
+·r£r_f\9ee
+ =
+´\95roc_´e£Á
+ ?
+
+3402
+ `f\9e\92amedup
+(
+p
+->
+cÚfig_f\9ee
+, ".preproc") :
+
+3403
+ `¡rdup
+(
+p
+->
+cÚfig_f\9ee
+);
+
+3404
+p
+->
+ou\8dut_f\9ee
+ =
+ `f\9e\92amedup
+->
+cÚfig_f\9ee
+, ".out");
+
+3407
+ }
+}
+
+3410
+ $p_cÚfig_´\95roc
+(\19
+p_·¿ms
+ *
+p
+)
+
+3412 \ 5
+bufãr
+[256];
+
+3413 \12
+¡©us
+;
+
+3415 ià(
+p
+->
+´\95roc
+ =ð
+NULL
+)
+
+3418
+¡©us
+ =
+ `acûss
+(
+p
+->
+cÚfig_f\9ee
+,
+F_OK
+ |
+R_OK
+);
+
+3419
+ `APP_CHECK
+((
+¡©us
+ == 0), "Error: Unable\81o open file %s",
+
+3420
+p
+->
+cÚfig_f\9ee
+);
+
+3422
+ `¢´\9atf
+(
+bufãr
+, \17(buffer), "%s %s %s > %s",
+
+3423
+p
+->
+´\95roc
+,
+
+3424
+p
+->
+´\95roc_¬gs
+ ?\87pp->preproc_args : "",
+
+3425
+p
+->
+cÚfig_f\9ee
+,
+
+3426
+p
+->
+·r£r_f\9ee
+);
+
+3428
+¡©us
+ =
+ `sy¡em
+(
+bufãr
+);
+
+3429
+ `APP_CHECK
+((
+ `WIFEXITED
+(
+¡©us
+è&& (
+ `WEXITSTATUS
+(status) == 0)),
+
+3431
+p
+->
+cÚfig_f\9ee
+);
+
+3433 \15
+¡©us
+;
+
+3434
+ }
+}
+
+ @vnf_common/config_parse_tm.c
+
+16 \ 2
+ ~<¡d\9at.h
+>
+
+17 \ 2
+ ~<¡dlib.h
+>
+
+18 \ 2
+ ~<¡dio.h
+>
+
+19 \ 2
+ ~<ùy³.h
+>
+
+20 \ 2
+ ~<g\91Ýt.h
+>
+
+21 \ 2
+ ~<\94ºo.h
+>
+
+22 \ 2
+ ~<¡d¬g.h
+>
+
+23 \ 2
+ ~<¡r\9ag.h
+>
+
+24 \ 2
+ ~<libg\92.h
+>
+
+25 \ 2
+ ~<uni¡d.h
+>
+
+27 \ 2
+ ~<¹e_\94ºo.h
+>
+
+28 \ 2
+ ~<¹e_cfgf\9ee.h
+>
+
+29 \ 2
+ ~<¹e_¡r\9ag_âs.h
+>
+
+31 \ 2
+ ~"p.h
+"
+
+34
+ $tm_cfgf\9ee_lßd_sched_pÜt
+(
+
+35 \19
+¹e_cfgf\9ee
+ *
+f\9ee
+,
+
+36 \19
+¹e_sched_pÜt_·¿ms
+ *
+pÜt_·¿ms
+)
+
+38 cڡ \ 5*
+\92\8cy
+;
+
+39 \12
+j
+;
+
+41
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "port", "frame overhead");
+
+42 ià(
+\92\8cy
+)
+
+43
+pÜt_·¿ms
+->
+äame_ov\94h\97d
+ = (
+u\9at32_t
+)
+ `©oi
+(
+\92\8cy
+);
+
+45
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "port", "mtu");
+
+46 ià(
+\92\8cy
+)
+
+47
+pÜt_·¿ms
+->
+mtu
+ = (
+u\9at32_t
+)
+ `©oi
+(
+\92\8cy
+);
+
+49
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+52 ià(
+\92\8cy
+)
+
+53
+pÜt_·¿ms
+->
+n_subpÜts_³r_pÜt
+ = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+55
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+58 ià(
+\92\8cy
+)
+
+59
+pÜt_·¿ms
+->
+n_p\9des_³r_subpÜt
+ = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+61
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "port", "queue sizes");
+
+62 ià(
+\92\8cy
+) {
+
+63 \ 5*
+Ãxt
+;
+
+65 \ f
+j
+ = 0; j <
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+; j++) {
+
+66
+pÜt_·¿ms
+->
+qsize
+[
+j
+] = (
+u\9at16_t
+)
+
+67
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+68 ià(
+Ãxt
+ =ð
+NULL
+)
+
+70
+\92\8cy
+ =
+Ãxt
+;
+
+74 #ifdeà
+RTE_SCHED_RED
+
+
+75 \ f
+j
+ = 0; j <
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+; j++) {
+
+76 \ 5
+¡r
+[32];
+
+79
+ `¢´\9atf
+(
+¡r
+, \17(¡r), "tø%"
+PRId32
+ " w»d m\9a",
+j
+);
+
+80
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "»d",
+¡r
+);
+
+81 ià(
+\92\8cy
+) {
+
+82 \ 5*
+Ãxt
+;
+
+83 \12
+k
+;
+
+86 \ f
+k
+ = 0; k <
+e_RTE_METER_COLORS
+; k++) {
+
+87
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+m\9a_th
+
+
+88 ð(
+u\9at16_t
+)
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+89 ià(
+Ãxt
+ =ð
+NULL
+)
+
+91
+\92\8cy
+ =
+Ãxt
+;
+
+96
+ `¢´\9atf
+(
+¡r
+, \17(¡r), "tø%"
+PRId32
+ " w»d max",
+j
+);
+
+97
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "»d",
+¡r
+);
+
+98 ià(
+\92\8cy
+) {
+
+99 \ 5*
+Ãxt
+;
+
+100 \12
+k
+;
+
+103 \ f
+k
+ = 0; k <
+e_RTE_METER_COLORS
+; k++) {
+
+104
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+max_th
+
+
+105 ð(
+u\9at16_t
+)
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+106 ià(
+Ãxt
+ =ð
+NULL
+)
+
+108
+\92\8cy
+ =
+Ãxt
+;
+
+113
+ `¢´\9atf
+(
+¡r
+, \17(¡r), "tø%"
+PRId32
+ " w»d inv\85rob",
+j
+);
+
+114
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "»d",
+¡r
+);
+
+115 ià(
+\92\8cy
+) {
+
+116 \ 5*
+Ãxt
+;
+
+117 \12
+k
+;
+
+120 \ f
+k
+ = 0; k <
+e_RTE_METER_COLORS
+; k++) {
+
+121
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+maxp_\9av
+
+
+122 ð(
+u\9at8_t
+)
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+124 ià(
+Ãxt
+ =ð
+NULL
+)
+
+126
+\92\8cy
+ =
+Ãxt
+;
+
+131
+ `¢´\9atf
+(
+¡r
+, \17(¡r), "tø%"
+PRId32
+ " w»d weight",
+j
+);
+
+132
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+, "»d",
+¡r
+);
+
+133 ià(
+\92\8cy
+) {
+
+134 \ 5*
+Ãxt
+;
+
+135 \12
+k
+;
+
+138 \ f
+k
+ = 0; k <
+e_RTE_METER_COLORS
+; k++) {
+
+139
+pÜt_·¿ms
+->
+»d_·¿ms
+[
+j
+][
+k
+].
+wq_log2
+
+
+140 ð(
+u\9at8_t
+)
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+141 ià(
+Ãxt
+ =ð
+NULL
+)
+
+143
+\92\8cy
+ =
+Ãxt
+;
+
+150
+ }
+}
+
+153
+ $tm_cfgf\9ee_lßd_sched_p\9de
+(
+
+154 \19
+¹e_cfgf\9ee
+ *
+f\9ee
+,
+
+155 \19
+¹e_sched_pÜt_·¿ms
+ *
+pÜt_·¿ms
+,
+
+156 \19
+¹e_sched_p\9de_·¿ms
+ *
+p\9de_·¿ms
+)
+
+158 \12
+i
+,
+j
+;
+
+159 \ 5*
+Ãxt
+;
+
+160 cڡ \ 5*
+\92\8cy
+;
+
+161 \12
+´of\9ees
+;
+
+163
+´of\9ees
+ =
+ `¹e_cfgf\9ee_num_£ùiÚs
+(
+f\9ee
+,
+
+165
+pÜt_·¿ms
+->
+n_p\9de_´of\9ees
+ =
+´of\9ees
+;
+
+167 \ f
+j
+ = 0; j <
+´of\9ees
+; j++) {
+
+168 \ 5
+p\9de_Çme
+[32];
+
+170
+ `¢´\9atf
+(
+p\9de_Çme
+, \17(pipe_name),
+
+171 "p\9d\90´of\9e\90%"
+PRId32
+,
+j
+);
+
+173
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tb\84ate");
+
+174 ià(
+\92\8cy
+)
+
+175
+p\9de_·¿ms
+[
+j
+].
+tb_¿\8b
+ = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+177
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tb size");
+
+178 ià(
+\92\8cy
+)
+
+179
+p\9de_·¿ms
+[
+j
+].
+tb_size
+ = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+181
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc\85eriod");
+
+182 ià(
+\92\8cy
+)
+
+183
+p\9de_·¿ms
+[
+j
+].
+tc_³riod
+ = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+185
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 0\84ate");
+
+186 ià(
+\92\8cy
+)
+
+187
+p\9de_·¿ms
+[
+j
+].
+tc_¿\8b
+[0] = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+189
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 1\84ate");
+
+190 ià(
+\92\8cy
+)
+
+191
+p\9de_·¿ms
+[
+j
+].
+tc_¿\8b
+[1] = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+193
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 2\84ate");
+
+194 ià(
+\92\8cy
+)
+
+195
+p\9de_·¿ms
+[
+j
+].
+tc_¿\8b
+[2] = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+197
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 3\84ate");
+
+198 ià(
+\92\8cy
+)
+
+199
+p\9de_·¿ms
+[
+j
+].
+tc_¿\8b
+[3] = (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+201 #ifdeà
+RTE_SCHED_SUBPORT_TC_OV
+
+
+202
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+,
+
+204 ià(
+\92\8cy
+)
+
+205
+p\9de_·¿ms
+[
+j
+].
+tc_ov_weight
+ = (
+u\9at8_t
+)
+ `©oi
+(
+\92\8cy
+);
+
+208
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+209
+p\9de_Çme
+,
+
+211 ià(
+\92\8cy
+)
+
+212 \ f
+i
+ = 0; i <
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+213
+p\9de_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*0 +
+i
+] =
+
+214 (
+u\9at8_t
+è
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+215 ià(
+Ãxt
+ =ð
+NULL
+)
+
+217
+\92\8cy
+ =
+Ãxt
+;
+
+220
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 1 wrr weights");
+
+221 ià(
+\92\8cy
+)
+
+222 \ f
+i
+ = 0; i <
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+223
+p\9de_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*1 +
+i
+] =
+
+224 (
+u\9at8_t
+è
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+225 ià(
+Ãxt
+ =ð
+NULL
+)
+
+227
+\92\8cy
+ =
+Ãxt
+;
+
+230
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 2 wrr weights");
+
+231 ià(
+\92\8cy
+)
+
+232 \ f
+i
+ = 0; i <
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+233
+p\9de_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*2 +
+i
+] =
+
+234 (
+u\9at8_t
+è
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+235 ià(
+Ãxt
+ =ð
+NULL
+)
+
+237
+\92\8cy
+ =
+Ãxt
+;
+
+240
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+p\9de_Çme
+, "tc 3 wrr weights");
+
+241 ià(
+\92\8cy
+)
+
+242 \ f
+i
+ = 0; i <
+RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS
+; i++) {
+
+243
+p\9de_·¿ms
+[
+j
+].
+w¼_weights
+[
+RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE
+*3 +
+i
+] =
+
+244 (
+u\9at8_t
+è
+ `¡¹Þ
+(
+\92\8cy
+, &
+Ãxt
+, 10);
+
+245 ià(
+Ãxt
+ =ð
+NULL
+)
+
+247
+\92\8cy
+ =
+Ãxt
+;
+
+251
+ }
+}
+
+254
+ $tm_cfgf\9ee_lßd_sched_subpÜt
+(
+
+255 \19
+¹e_cfgf\9ee
+ *
+f\9ee
+,
+
+256 \19
+¹e_sched_subpÜt_·¿ms
+ *
+subpÜt_·¿ms
+,
+
+257 \12*
+p\9de_to_´of\9ee
+)
+
+259 cڡ \ 5*
+\92\8cy
+;
+
+260 \12
+i
+,
+j
+,
+k
+;
+
+262 \ f
+i
+ = 0; i <
+APP_MAX_SCHED_SUBPORTS
+; i++) {
+
+263 \ 5
+£c_Çme
+[
+CFG_NAME_LEN
+];
+
+265
+ `¢´\9atf
+(
+£c_Çme
+, \17(sec_name),
+
+266 "subp܈%"
+PRId32
+,
+i
+);
+
+268 ià(
+ `¹e_cfgf\9ee_has_£ùiÚ
+(
+f\9ee
+,
+£c_Çme
+)) {
+
+269
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+270
+£c_Çme
+,
+
+272 ià(
+\92\8cy
+)
+
+273
+subpÜt_·¿ms
+[
+i
+].
+tb_¿\8b
+ =
+
+274 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+276
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+277
+£c_Çme
+,
+
+279 ià(
+\92\8cy
+)
+
+280
+subpÜt_·¿ms
+[
+i
+].
+tb_size
+ =
+
+281 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+283
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+284
+£c_Çme
+,
+
+286 ià(
+\92\8cy
+)
+
+287
+subpÜt_·¿ms
+[
+i
+].
+tc_³riod
+ =
+
+288 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+290
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+291
+£c_Çme
+,
+
+293 ià(
+\92\8cy
+)
+
+294
+subpÜt_·¿ms
+[
+i
+].
+tc_¿\8b
+[0] =
+
+295 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+297
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+298
+£c_Çme
+,
+
+300 ià(
+\92\8cy
+)
+
+301
+subpÜt_·¿ms
+[
+i
+].
+tc_¿\8b
+[1] =
+
+302 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+304
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+305
+£c_Çme
+,
+
+307 ià(
+\92\8cy
+)
+
+308
+subpÜt_·¿ms
+[
+i
+].
+tc_¿\8b
+[2] =
+
+309 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+311
+\92\8cy
+ =
+ `¹e_cfgf\9ee_g\91_\92\8cy
+(
+f\9ee
+,
+
+312
+£c_Çme
+,
+
+314 ià(
+\92\8cy
+)
+
+315
+subpÜt_·¿ms
+[
+i
+].
+tc_¿\8b
+[3] =
+
+316 (
+u\9at32_t
+è
+ `©oi
+(
+\92\8cy
+);
+
+318 \12
+n_\92\8c\9bs
+ =
+ `¹e_cfgf\9ee_£ùiÚ_num_\92\8c\9bs
+(
+f\9ee
+,
+
+319
+£c_Çme
+);
+
+320 \19
+¹e_cfgf\9ee_\92\8cy
+
+\92\8c\9bs
+[
+n_\92\8c\9bs
+];
+
+322
+ `¹e_cfgf\9ee_£ùiÚ_\92\8c\9bs
+(
+f\9ee
+,
+
+323
+£c_Çme
+,
+
+324
+\92\8c\9bs
+,
+
+325
+n_\92\8c\9bs
+);
+
+327 \ f
+j
+ = 0; j <
+n_\92\8c\9bs
+; j++)
+
+328 ià(
+ `¡ºcmp
+("pipe",
+
+329
+\92\8c\9bs
+[
+j
+].
+Çme
+,
+
+331 \12
+´of\9ee
+;
+
+332 \ 5*
+tok\92s
+[2] = {
+NULL
+, NULL};
+
+333 \12
+n_tok\92s
+;
+
+334 \12
+beg\9a
+,
+\92d
+;
+
+335 \ 5
+Çme
+[
+CFG_NAME_LEN
+ + 1];
+
+337
+´of\9ee
+ =
+ `©oi
+(
+\92\8c\9bs
+[
+j
+].
+v®ue
+);
+
+338
+ `¡ºýy
+(
+Çme
+,
+
+339
+\92\8c\9bs
+[
+j
+].
+Çme
+,
+
+340 \17(
+Çme
+));
+
+341
+n_tok\92s
+ =
+ `¹e_¡r¥l\99
+(
+
+342 &
+Çme
+[\17("pipe")],
+
+343
+ `¡ºËn
+(
+Çme
+,
+CFG_NAME_LEN
+),
+
+344
+tok\92s
+, 2, '-');
+
+346
+beg\9a
+ =
+ `©oi
+(
+tok\92s
+[0]);
+
+347 ià(
+n_tok\92s
+ == 2)
+
+348
+\92d
+ =
+ `©oi
+(
+tok\92s
+[1]);
+
+350
+\92d
+ =
+beg\9a
+;
+
+352 ià((
+\92d
+ >ð
+APP_MAX_SCHED_PIPES
+) ||
+
+353 (
+beg\9a
+ >
+\92d
+))
+
+356 \ f
+k
+ =
+beg\9a
+; k <ð
+\92d
+; k++) {
+
+357 \ 5
+´of\9ee_Çme
+[
+CFG_NAME_LEN
+];
+
+359
+ `¢´\9atf
+(
+´of\9ee_Çme
+,
+
+360 \17(
+´of\9ee_Çme
+),
+
+361 "p\9d\90´of\9e\90%"
+PRId32
+,
+
+362
+´of\9ee
+);
+
+363 ià(
+ `¹e_cfgf\9ee_has_£ùiÚ
+(
+f\9ee
+,
+´of\9ee_Çme
+))
+
+364
+p\9de_to_´of\9ee
+[
+i
+ *
+APP_MAX_SCHED_PIPES
+ +
+k
+] =
+´of\9ee
+;
+
+366
+ `¹e_ex\99
+(
+EXIT_FAILURE
+,
+
+368
+\92\8c\9bs
+[
+j
+].
+v®ue
+);
+
+375
+ }
+}
+
+378
+ $tm_cfgf\9ee_lßd
+(\19
+p_pktq_tm_·¿ms
+ *
+tm
+)
+
+380 \19
+¹e_cfgf\9ee
+ *
+f\9ee
+;
+
+381
+u\9at32_t
+
+i
+;
+
+383
+ `mem£t
+(
+tm
+->
+sched_subpÜt_·¿ms
+, 0, \17(tm->sched_subport_params));
+
+384
+ `mem£t
+(
+tm
+->
+sched_p\9de_´of\9ees
+, 0, \17(tm->sched_pipe_profiles));
+
+385
+ `mem£t
+(&
+tm
+->
+sched_pÜt_·¿ms
+, 0, \17(tm->sched_port_params));
+
+386 \ f
+i
+ = 0; i <
+APP_MAX_SCHED_SUBPORTS
+ *
+APP_MAX_SCHED_PIPES
+; i++)
+
+387
+tm
+->
+sched_p\9de_to_´of\9ee
+[
+i
+] = -1;
+
+389
+tm
+->
+sched_pÜt_·¿ms
+.
+p\9de_´of\9ees
+ = &tm->
+sched_p\9de_´of\9ees
+[0];
+
+391 ià(
+tm
+->
+f\9ee_Çme
+[0] == '\0')
+
+394
+f\9ee
+ =
+ `¹e_cfgf\9ee_lßd
+(
+tm
+->
+f\9ee_Çme
+, 0);
+
+395 ià(
+f\9ee
+ =ð
+NULL
+)
+
+398
+ `tm_cfgf\9ee_lßd_sched_pÜt
+(
+f\9ee
+,
+
+399 &
+tm
+->
+sched_pÜt_·¿ms
+);
+
+400
+ `tm_cfgf\9ee_lßd_sched_subpÜt
+(
+f\9ee
+,
+
+401
+tm
+->
+sched_subpÜt_·¿ms
+,
+
+402
+tm
+->
+sched_p\9de_to_´of\9ee
+);
+
+403
+ `tm_cfgf\9ee_lßd_sched_p\9de
+(
+f\9ee
+,
+
+404 &
+tm
+->
+sched_pÜt_·¿ms
+,
+
+405
+tm
+->
+sched_p\9de_´of\9ees
+);
+
+407
+ `¹e_cfgf\9ee_þo£
+(
+f\9ee
+);
+
+409
+ }
+}
+
+412
+ $p_cÚfig_·r£_tm
+(\19
+p_·¿ms
+ *
+p
+)
+
+414
+u\9at32_t
+
+i
+;
+
+416 \ f
+i
+ = 0; i <
+ `RTE_DIM
+(
+p
+->
+tm_·¿ms
+); i++) {
+
+417 \19
+p_pktq_tm_·¿ms
+ *
+p
+ = &
+p
+->
+tm_·¿ms
+[
+i
+];
+
+418 \12
+¡©us
+;
+
+420 ià(!
+ `APP_PARAM_VALID
+(
+p
+))
+
+423
+¡©us
+ =
+ `tm_cfgf\9ee_lßd
+(
+p
+);
+
+424
+ `APP_CHECK
+(
+¡©us
+ == 0,
+
+426
+p
+->
+Çme
+,
+
+427
+p
+->
+f\9ee_Çme
+);
+
+431
+ }
+}
+
+ @vnf_common/cpu_core_map.c
+
+17 \ 2
+ ~<\9a\89y³s.h
+>
+
+18 \ 2
+ ~<¡dlib.h
+>
+
+19 \ 2
+ ~<¡dio.h
+>
+
+20 \ 2
+ ~<¡r\9ag.h
+>
+
+22 \ 2
+ ~<¹e_lcÜe.h
+>
+
+24 \ 2
+ ~"ýu_cÜe_m.h
+"
+
+26 \19
+ sýu_cÜe_m
+ {
+
+27
+u\9at32_t
+
+ mn_max_sock\91s
+;
+
+28
+u\9at32_t
+
+ mn_max_cÜes_³r_sock\91
+;
+
+29
+u\9at32_t
+
+ mn_max_ht_³r_cÜe
+;
+
+30
+u\9at32_t
+
+ mn_sock\91s
+;
+
+31
+u\9at32_t
+
+ mn_cÜes_³r_sock\91
+;
+
+32
+u\9at32_t
+
+ mn_ht_³r_cÜe
+;
+
+33 \12
+ mm
+[0];
+
+36 \18
+\9al\9ae
+
+u\9at32_t
+
+
+37
+ $ýu_cÜe_m_pos
+(\19
+ýu_cÜe_m
+ *
+m
+,
+
+38
+u\9at32_t
+
+sock\91_id
+,
+
+39
+u\9at32_t
+
+cÜe_id
+,
+
+40
+u\9at32_t
+
+ht_id
+)
+
+42 \15 (
+sock\91_id
+ *
+m
+->
+n_max_cÜes_³r_sock\91
+ +
+cÜe_id
+) *
+
+43
+m
+->
+n_max_ht_³r_cÜe
+ +
+ht_id
+;
+
+44
+ }
+}
+
+47
+ýu_cÜe_m_compu\8b_\97l
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+50
+ýu_cÜe_m_compu\8b_l\9aux
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+53
+ýu_cÜe_m_compu\8b_ªd_check
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+55 \19
+ýu_cÜe_m
+ *
+
+56
+ $ýu_cÜe_m_\9a\99
+(
+u\9at32_t
+
+n_max_sock\91s
+,
+
+57
+u\9at32_t
+
+n_max_cÜes_³r_sock\91
+,
+
+58
+u\9at32_t
+
+n_max_ht_³r_cÜe
+,
+
+59
+u\9at32_t
+
+\97l_\9a\99\9flized
+)
+
+61
+u\9at32_t
+
+m_size
+,
+m_mem_size
+,
+i
+;
+
+62 \19
+ýu_cÜe_m
+ *
+m
+;
+
+63 \12
+¡©us
+;
+
+66 ià((
+n_max_sock\91s
+ == 0) ||
+
+67 (
+n_max_cÜes_³r_sock\91
+ == 0) ||
+
+68 (
+n_max_ht_³r_cÜe
+ == 0))
+
+69 \15
+NULL
+;
+
+72
+m_size
+ =
+n_max_sock\91s
+ *
+n_max_cÜes_³r_sock\91
+ *
+n_max_ht_³r_cÜe
+;
+
+73
+m_mem_size
+ = \17(\19
+ýu_cÜe_m
+è+
+m_size
+ * \17(\12);
+
+74
+m
+ = (\19
+ýu_cÜe_m
+ *è
+ `m®loc
+(
+m_mem_size
+);
+
+75 ià(
+m
+ =ð
+NULL
+)
+
+76 \15
+NULL
+;
+
+79
+m
+->
+n_max_sock\91s
+ =\82_max_sockets;
+
+80
+m
+->
+n_max_cÜes_³r_sock\91
+ =\82_max_cores_per_socket;
+
+81
+m
+->
+n_max_ht_³r_cÜe
+ =\82_max_ht_per_core;
+
+82
+m
+->
+n_sock\91s
+ = 0;
+
+83
+m
+->
+n_cÜes_³r_sock\91
+ = 0;
+
+84
+m
+->
+n_ht_³r_cÜe
+ = 0;
+
+86 \ f
+i
+ = 0; i <
+m_size
+; i++)
+
+87
+m
+->m[
+i
+] = -1;
+
+89
+¡©us
+ = (
+\97l_\9a\99\9flized
+) ?
+
+90
+ `ýu_cÜe_m_compu\8b_\97l
+(
+m
+) :
+
+91
+ `ýu_cÜe_m_compu\8b_l\9aux
+(
+m
+);
+
+93 ià(
+¡©us
+) {
+
+94
+ `ä\93
+(
+m
+);
+
+95 \15
+NULL
+;
+
+98
+¡©us
+ =
+ `ýu_cÜe_m_compu\8b_ªd_check
+(
+m
+);
+
+99 ià(
+¡©us
+) {
+
+100
+ `ä\93
+(
+m
+);
+
+101 \15
+NULL
+;
+
+104 \15
+m
+;
+
+105
+ }
+}
+
+108
+ $ýu_cÜe_m_compu\8b_\97l
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+110
+u\9at32_t
+
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+;
+
+113 \ f
+sock\91_id
+ = 0; sock\91_id <
+m
+->
+n_max_sock\91s
+; socket_id++) {
+
+114
+u\9at32_t
+
+n_d\91eùed
+,
+cÜe_id_cÚtig
+;
+
+115 \12
+lcÜe_id
+;
+
+117
+n_d\91eùed
+ = 0;
+
+118 \ f
+lcÜe_id
+ = 0;\86cÜe_id <
+RTE_MAX_LCORE
+;\86core_id++) {
+
+119 \19
+lcÜe_cÚfig
+ *
+p
+ = &lcÜe_cÚfig[
+lcÜe_id
+];
+
+121 ià((
+p
+->
+d\91eùed
+è&& (p->
+sock\91_id
+ == socket_id))
+
+122
+n_d\91eùed
+++;
+
+125
+cÜe_id_cÚtig
+ = 0;
+
+127 \ f
+cÜe_id
+ = 0;
+n_d\91eùed
+ ; core_id++) {
+
+128
+ht_id
+ = 0;
+
+130 \ f
+lcÜe_id
+ = 0;
+
+131
+lcÜe_id
+ <
+RTE_MAX_LCORE
+;
+
+132
+lcÜe_id
+++) {
+
+133 \19
+lcÜe_cÚfig
+ *
+p
+ =
+
+134 &
+lcÜe_cÚfig
+[
+lcÜe_id
+];
+
+136 ià((
+p
+->
+d\91eùed
+) &&
+
+137 (
+p
+->
+sock\91_id
+ == socket_id) &&
+
+138 (
+p
+->
+cÜe_id
+ == core_id)) {
+
+139
+u\9at32_t
+
+pos
+ =
+ `ýu_cÜe_m_pos
+(
+m
+,
+
+140
+sock\91_id
+,
+
+141
+cÜe_id_cÚtig
+,
+
+142
+ht_id
+);
+
+144
+m
+->m[
+pos
+] =
+lcÜe_id
+;
+
+145
+ht_id
+++;
+
+146
+n_d\91eùed
+--;
+
+150 ià(
+ht_id
+) {
+
+151
+cÜe_id_cÚtig
+++;
+
+152 ià(
+cÜe_id_cÚtig
+ ==
+
+153
+m
+->
+n_max_cÜes_³r_sock\91
+)
+
+160
+ }
+}
+
+163
+ $ýu_cÜe_m_compu\8b_ªd_check
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+165
+u\9at32_t
+
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+;
+
+168 \ f
+ht_id
+ = 0; ht_id <
+m
+->
+n_max_ht_³r_cÜe
+; ht_id++) {
+
+169 ià(
+m
+->m[
+ht_id
+] == -1)
+
+172
+m
+->
+n_ht_³r_cÜe
+++;
+
+175 ià(
+m
+->
+n_ht_³r_cÜe
+ == 0)
+
+178 \ f
+cÜe_id
+ = 0; cÜe_id <
+m
+->
+n_max_cÜes_³r_sock\91
+; core_id++) {
+
+179
+u\9at32_t
+
+pos
+ =
+cÜe_id
+ *
+m
+->
+n_max_ht_³r_cÜe
+;
+
+181 ià(
+m
+->m[
+pos
+] == -1)
+
+184
+m
+->
+n_cÜes_³r_sock\91
+++;
+
+187 ià(
+m
+->
+n_cÜes_³r_sock\91
+ == 0)
+
+190 \ f
+sock\91_id
+ = 0; sock\91_id <
+m
+->
+n_max_sock\91s
+; socket_id++) {
+
+191
+u\9at32_t
+
+pos
+ =
+sock\91_id
+ *
+m
+->
+n_max_cÜes_³r_sock\91
+ *
+
+192
+m
+->
+n_max_ht_³r_cÜe
+;
+
+194 ià(
+m
+->m[
+pos
+] == -1)
+
+197
+m
+->
+n_sock\91s
+++;
+
+200 ià(
+m
+->
+n_sock\91s
+ == 0)
+
+205 \ f
+sock\91_id
+ = 0; sock\91_id <
+m
+->
+n_sock\91s
+; socket_id++) {
+
+206 \ f
+cÜe_id
+ = 0; cÜe_id <
+m
+->
+n_cÜes_³r_sock\91
+; core_id++)
+
+207 \ f
+ht_id
+ = 0;
+
+208
+ht_id
+ <
+m
+->
+n_max_ht_³r_cÜe
+;
+
+209
+ht_id
+++) {
+
+210
+u\9at32_t
+
+pos
+ = (
+sock\91_id
+ *
+
+211
+m
+->
+n_max_cÜes_³r_sock\91
+ +
+cÜe_id
+) *
+
+212
+m
+->
+n_max_ht_³r_cÜe
+ +
+ht_id
+;
+
+214 ià(((
+ht_id
+ <
+m
+->
+n_ht_³r_cÜe
+) &&
+
+215 (
+m
+->m[
+pos
+] == -1)) ||
+
+216 ((
+ht_id
+ >ð
+m
+->
+n_ht_³r_cÜe
+) &&
+
+217 (
+m
+->m[
+pos
+] != -1)))
+
+221 \ f ;
+cÜe_id
+ <
+m
+->
+n_max_cÜes_³r_sock\91
+; core_id++)
+
+222 \ f
+ht_id
+ = 0;
+
+223
+ht_id
+ <
+m
+->
+n_max_ht_³r_cÜe
+;
+
+224
+ht_id
+++) {
+
+225
+u\9at32_t
+
+pos
+ =
+ `ýu_cÜe_m_pos
+(
+m
+,
+
+226
+sock\91_id
+,
+
+227
+cÜe_id
+,
+
+228
+ht_id
+);
+
+230 ià(
+m
+->m[
+pos
+] != -1)
+
+236
+ }
+}
+
+238 \ 1
+ #FILE_LINUX_CPU_N_LCORES
+ \
+
+239 "/sys/deviûs/sy¡em/ýu/´e£Á"
+
+ )
+
+242
+ $ýu_cÜe_m_g\91_n_lcÜes_l\9aux
+(\1e)
+
+244 \ 5
+bufãr
+[64], *
+¡r\9ag
+;
+
+245
+FILE
+ *
+fd
+;
+
+247
+fd
+ =
+ `fݒ
+(
+FILE_LINUX_CPU_N_LCORES
+, "r");
+
+248 ià(
+fd
+ =ð
+NULL
+)
+
+251 ià(
+ `fg\91s
+(
+bufãr
+, \17(bufãr),
+fd
+è=ð
+NULL
+) {
+
+252
+ `fþo£
+(
+fd
+);
+
+256
+ `fþo£
+(
+fd
+);
+
+258
+¡r\9ag
+ =
+ `\9adex
+(
+bufãr
+, '-');
+
+259 ià(
+¡r\9ag
+ =ð
+NULL
+)
+
+262 \15
+ `©oi
+(++
+¡r\9ag
+) + 1;
+
+263
+ }
+}
+
+265 \ 1
+ #FILE_LINUX_CPU_CORE_ID
+ \
+
+266 "/sys/deviûs/sy¡em/ýu/ýu%"
+PRIu32
+ "/tÝÞogy/cÜe_id"
+
+ )
+
+269
+ $ýu_cÜe_m_g\91_cÜe_id_l\9aux
+(\12
+lcÜe_id
+)
+
+271 \ 5
+bufãr
+[64];
+
+272
+FILE
+ *
+fd
+;
+
+273 \12
+cÜe_id
+;
+
+275
+ `¢´\9atf
+(
+bufãr
+, \17(bufãr),
+FILE_LINUX_CPU_CORE_ID
+,
+lcÜe_id
+);
+
+276
+fd
+ =
+ `fݒ
+(
+bufãr
+, "r");
+
+277 ià(
+fd
+ =ð
+NULL
+)
+
+280 ià(
+ `fg\91s
+(
+bufãr
+, \17(bufãr),
+fd
+è=ð
+NULL
+) {
+
+281
+ `fþo£
+(
+fd
+);
+
+285
+ `fþo£
+(
+fd
+);
+
+287
+cÜe_id
+ =
+ `©oi
+(
+bufãr
+);
+
+288 \15
+cÜe_id
+;
+
+289
+ }
+}
+
+291 \ 1
+ #FILE_LINUX_CPU_SOCKET_ID
+ \
+
+292 "/sys/deviûs/sy¡em/ýu/ýu%"
+PRIu32
+ "/tÝÞogy/physiÿl_·ckage_id"
+
+ )
+
+295
+ $ýu_cÜe_m_g\91_sock\91_id_l\9aux
+(\12
+lcÜe_id
+)
+
+297 \ 5
+bufãr
+[64];
+
+298
+FILE
+ *
+fd
+;
+
+299 \12
+sock\91_id
+;
+
+301
+ `¢´\9atf
+(
+bufãr
+, \17(bufãr),
+FILE_LINUX_CPU_SOCKET_ID
+,
+lcÜe_id
+);
+
+302
+fd
+ =
+ `fݒ
+(
+bufãr
+, "r");
+
+303 ià(
+fd
+ =ð
+NULL
+)
+
+306 ià(
+ `fg\91s
+(
+bufãr
+, \17(bufãr),
+fd
+è=ð
+NULL
+) {
+
+307
+ `fþo£
+(
+fd
+);
+
+311
+ `fþo£
+(
+fd
+);
+
+313
+sock\91_id
+ =
+ `©oi
+(
+bufãr
+);
+
+314 \15
+sock\91_id
+;
+
+315
+ }
+}
+
+318
+ $ýu_cÜe_m_compu\8b_l\9aux
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+320
+u\9at32_t
+
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+;
+
+321 \12
+n_lcÜes
+;
+
+323
+n_lcÜes
+ =
+ `ýu_cÜe_m_g\91_n_lcÜes_l\9aux
+();
+
+324 ià(
+n_lcÜes
+ <= 0)
+
+328 \ f
+sock\91_id
+ = 0; sock\91_id <
+m
+->
+n_max_sock\91s
+; socket_id++) {
+
+329
+u\9at32_t
+
+n_d\91eùed
+,
+cÜe_id_cÚtig
+;
+
+330 \12
+lcÜe_id
+;
+
+332
+n_d\91eùed
+ = 0;
+
+333 \ f
+lcÜe_id
+ = 0;\86cÜe_id <
+n_lcÜes
+;\86core_id++) {
+
+334 \12
+lcÜe_sock\91_id
+ =
+
+335
+ `ýu_cÜe_m_g\91_sock\91_id_l\9aux
+(
+lcÜe_id
+);
+
+337 ià(
+lcÜe_sock\91_id
+ < 0)
+
+340 ià(((
+u\9at32_t
+è
+lcÜe_sock\91_id
+è=ð
+sock\91_id
+)
+
+341
+n_d\91eùed
+++;
+
+344
+cÜe_id_cÚtig
+ = 0;
+
+346 \ f
+cÜe_id
+ = 0;
+n_d\91eùed
+ ; core_id++) {
+
+347
+ht_id
+ = 0;
+
+349 \ f
+lcÜe_id
+ = 0;\86cÜe_id <
+n_lcÜes
+;\86core_id++) {
+
+350 \12
+lcÜe_sock\91_id
+ =
+
+351
+ `ýu_cÜe_m_g\91_sock\91_id_l\9aux
+(
+
+352
+lcÜe_id
+);
+
+354 ià(
+lcÜe_sock\91_id
+ < 0)
+
+357 \12
+lcÜe_cÜe_id
+ =
+
+358
+ `ýu_cÜe_m_g\91_cÜe_id_l\9aux
+(
+
+359
+lcÜe_id
+);
+
+361 ià(
+lcÜe_cÜe_id
+ < 0)
+
+364 ià(((
+u\9at32_t
+è
+lcÜe_sock\91_id
+ =ð
+sock\91_id
+) &&
+
+365 ((
+u\9at32_t
+è
+lcÜe_cÜe_id
+ =ð
+cÜe_id
+)) {
+
+366
+u\9at32_t
+
+pos
+ =
+ `ýu_cÜe_m_pos
+(
+m
+,
+
+367
+sock\91_id
+,
+
+368
+cÜe_id_cÚtig
+,
+
+369
+ht_id
+);
+
+371
+m
+->m[
+pos
+] =
+lcÜe_id
+;
+
+372
+ht_id
+++;
+
+373
+n_d\91eùed
+--;
+
+377 ià(
+ht_id
+) {
+
+378
+cÜe_id_cÚtig
+++;
+
+379 ià(
+cÜe_id_cÚtig
+ ==
+
+380
+m
+->
+n_max_cÜes_³r_sock\91
+)
+
+387
+ }
+}
+
+390
+ $ýu_cÜe_m_´\9at
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+392
+u\9at32_t
+
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+;
+
+394 ià(
+m
+ =ð
+NULL
+)
+
+397 \ f
+sock\91_id
+ = 0; sock\91_id <
+m
+->
+n_sock\91s
+; socket_id++) {
+
+398
+ `´\9atf
+("Sock\91 %"
+PRIu32
+ ":\n",
+sock\91_id
+);
+
+400 \ f
+cÜe_id
+ = 0;
+
+401
+cÜe_id
+ <
+m
+->
+n_cÜes_³r_sock\91
+;
+
+402
+cÜe_id
+++) {
+
+403
+ `´\9atf
+("[%"
+PRIu32
+ "] = [",
+cÜe_id
+);
+
+405 \ f
+ht_id
+ = 0; ht_id <
+m
+->
+n_ht_³r_cÜe
+; ht_id++) {
+
+406 \12
+lcÜe_id
+ =
+ `ýu_cÜe_m_g\91_lcÜe_id
+(
+m
+,
+
+407
+sock\91_id
+,
+
+408
+cÜe_id
+,
+
+409
+ht_id
+);
+
+411
+u\9at32_t
+
+cÜe_id_nÚcÚtig
+ =
+
+412
+ `ýu_cÜe_m_g\91_cÜe_id_l\9aux
+(
+
+413
+lcÜe_id
+);
+
+415
+ `´\9atf
+(" %"
+PRId32
+ " (%"
+PRIu32
+ ") ",
+
+416
+lcÜe_id
+,
+
+417
+cÜe_id_nÚcÚtig
+);
+
+420
+ `´\9atf
+("]\n");
+
+423
+ }
+}
+
+425
+u\9at32_t
+
+
+426
+ $ýu_cÜe_m_g\91_n_sock\91s
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+428 ià(
+m
+ =ð
+NULL
+)
+
+431 \15
+m
+->
+n_sock\91s
+;
+
+432
+ }
+}
+
+434
+u\9at32_t
+
+
+435
+ $ýu_cÜe_m_g\91_n_cÜes_³r_sock\91
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+437 ià(
+m
+ =ð
+NULL
+)
+
+440 \15
+m
+->
+n_cÜes_³r_sock\91
+;
+
+441
+ }
+}
+
+443
+u\9at32_t
+
+
+444
+ $ýu_cÜe_m_g\91_n_ht_³r_cÜe
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+446 ià(
+m
+ =ð
+NULL
+)
+
+449 \15
+m
+->
+n_ht_³r_cÜe
+;
+
+450
+ }
+}
+
+453
+ $ýu_cÜe_m_g\91_lcÜe_id
+(\19
+ýu_cÜe_m
+ *
+m
+,
+
+454
+u\9at32_t
+
+sock\91_id
+,
+
+455
+u\9at32_t
+
+cÜe_id
+,
+
+456
+u\9at32_t
+
+ht_id
+)
+
+458
+u\9at32_t
+
+pos
+;
+
+460 ià((
+m
+ =ð
+NULL
+) ||
+
+461 (
+sock\91_id
+ >ð
+m
+->
+n_sock\91s
+) ||
+
+462 (
+cÜe_id
+ >ð
+m
+->
+n_cÜes_³r_sock\91
+) ||
+
+463 (
+ht_id
+ >ð
+m
+->
+n_ht_³r_cÜe
+))
+
+466
+pos
+ =
+ `ýu_cÜe_m_pos
+(
+m
+,
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+);
+
+468 \15
+m
+->m[
+pos
+];
+
+469
+ }
+}
+
+472
+ $ýu_cÜe_m_ä\93
+(\19
+ýu_cÜe_m
+ *
+m
+)
+
+474
+ `ä\93
+(
+m
+);
+
+475
+ }
+}
+
+ @vnf_common/cpu_core_map.h
+
+17 #iâdeà
+__INCLUDE_CPU_CORE_MAP_H__
+
+
+18 \ 1
+ #__INCLUDE_CPU_CORE_MAP_H__
+
+
+ )
+
+20 \ 2
+ ~<¡dio.h
+>
+
+22 \ 2
+ ~<¹e_lcÜe.h
+>
+
+24 \19
+ gýu_cÜe_m
+;
+
+26 \19
+ýu_cÜe_m
+ *
+
+27
+ýu_cÜe_m_\9a\99
+(
+u\9at32_t
+
+n_max_sock\91s
+,
+
+28
+u\9at32_t
+
+n_max_cÜes_³r_sock\91
+,
+
+29
+u\9at32_t
+
+n_max_ht_³r_cÜe
+,
+
+30
+u\9at32_t
+
+\97l_\9a\99\9flized
+);
+
+32
+u\9at32_t
+
+
+33
+ýu_cÜe_m_g\91_n_sock\91s
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+35
+u\9at32_t
+
+
+36
+ýu_cÜe_m_g\91_n_cÜes_³r_sock\91
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+38
+u\9at32_t
+
+
+39
+ýu_cÜe_m_g\91_n_ht_³r_cÜe
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+42
+ýu_cÜe_m_g\91_lcÜe_id
+(\19
+ýu_cÜe_m
+ *
+m
+,
+
+43
+u\9at32_t
+
+sock\91_id
+,
+
+44
+u\9at32_t
+
+cÜe_id
+,
+
+45
+u\9at32_t
+
+ht_id
+);
+
+47 \1e
+ýu_cÜe_m_´\9at
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+50
+ýu_cÜe_m_ä\93
+(\19
+ýu_cÜe_m
+ *
+m
+);
+
+ @vnf_common/hash_func.h
+
+16 #iâdeà
+__INCLUDE_HASH_FUNC_H__
+
+
+17 \ 1
+ #__INCLUDE_HASH_FUNC_H__
+
+
+ )
+
+19 \18
+\9al\9ae
+
+u\9at64_t
+
+
+20
+ $hash_xÜ_key8
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+22
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+23
+u\9at64_t
+
+xÜ0
+;
+
+25
+xÜ0
+ =
+£ed
+ ^
+k
+[0];
+
+27 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+28
+ }
+}
+
+30 \18
+\9al\9ae
+
+u\9at64_t
+
+
+31
+ $hash_xÜ_key16
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+33
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+34
+u\9at64_t
+
+xÜ0
+;
+
+36
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+38 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+39
+ }
+}
+
+41 \18
+\9al\9ae
+
+u\9at64_t
+
+
+42
+ $hash_xÜ_key24
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+44
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+45
+u\9at64_t
+
+xÜ0
+;
+
+47
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+49
+xÜ0
+ ^ð
+k
+[2];
+
+51 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+52
+ }
+}
+
+54 \18
+\9al\9ae
+
+u\9at64_t
+
+
+55
+ $hash_xÜ_key32
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+57
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+58
+u\9at64_t
+
+xÜ0
+,
+xÜ1
+;
+
+60
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+61
+xÜ1
+ =
+k
+[2] ^ k[3];
+
+63
+xÜ0
+ ^ð
+xÜ1
+;
+
+65 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+66
+ }
+}
+
+68 \18
+\9al\9ae
+
+u\9at64_t
+
+
+69
+ $hash_xÜ_key40
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+71
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+72
+u\9at64_t
+
+xÜ0
+,
+xÜ1
+;
+
+74
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+75
+xÜ1
+ =
+k
+[2] ^ k[3];
+
+77
+xÜ0
+ ^ð
+xÜ1
+;
+
+79
+xÜ0
+ ^ð
+k
+[4];
+
+81 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+82
+ }
+}
+
+84 \18
+\9al\9ae
+
+u\9at64_t
+
+
+85
+ $hash_xÜ_key48
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+87
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+88
+u\9at64_t
+
+xÜ0
+,
+xÜ1
+,
+xÜ2
+;
+
+90
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+91
+xÜ1
+ =
+k
+[2] ^ k[3];
+
+92
+xÜ2
+ =
+k
+[4] ^ k[5];
+
+94
+xÜ0
+ ^ð
+xÜ1
+;
+
+96
+xÜ0
+ ^ð
+xÜ2
+;
+
+98 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+99
+ }
+}
+
+101 \18
+\9al\9ae
+
+u\9at64_t
+
+
+102
+ $hash_xÜ_key56
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+104
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+105
+u\9at64_t
+
+xÜ0
+,
+xÜ1
+,
+xÜ2
+;
+
+107
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+108
+xÜ1
+ =
+k
+[2] ^ k[3];
+
+109
+xÜ2
+ =
+k
+[4] ^ k[5];
+
+111
+xÜ0
+ ^ð
+xÜ1
+;
+
+112
+xÜ2
+ ^ð
+k
+[6];
+
+114
+xÜ0
+ ^ð
+xÜ2
+;
+
+116 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+117
+ }
+}
+
+119 \18
+\9al\9ae
+
+u\9at64_t
+
+
+120
+ $hash_xÜ_key64
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+122
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+123
+u\9at64_t
+
+xÜ0
+,
+xÜ1
+,
+xÜ2
+,
+xÜ3
+;
+
+125
+xÜ0
+ = (
+k
+[0] ^
+£ed
+) ^ k[1];
+
+126
+xÜ1
+ =
+k
+[2] ^ k[3];
+
+127
+xÜ2
+ =
+k
+[4] ^ k[5];
+
+128
+xÜ3
+ =
+k
+[6] ^ k[7];
+
+130
+xÜ0
+ ^ð
+xÜ1
+;
+
+131
+xÜ2
+ ^ð
+xÜ3
+;
+
+133
+xÜ0
+ ^ð
+xÜ2
+;
+
+135 \15 (
+xÜ0
+ >> 32) ^ xor0;
+
+136
+ }
+}
+
+138 #ià
+def\9aed
+(
+RTE_ARCH_X86_64
+è&& def\9aed(
+RTE_MACHINE_CPUFLAG_SSE4_2
+)
+
+140 \ 2
+ ~<x86\9a\8c\9a.h
+>
+
+142 \18
+\9al\9ae
+
+u\9at64_t
+
+
+143
+ $hash_üc_key8
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+145
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+146
+u\9at64_t
+
+üc0
+;
+
+148
+üc0
+ =
+ `_mm_üc32_u64
+(
+£ed
+,
+k
+[0]);
+
+150 \15
+üc0
+;
+
+151
+ }
+}
+
+153 \18
+\9al\9ae
+
+u\9at64_t
+
+
+154
+ $hash_üc_key16
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+156
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+157
+u\9at64_t
+
+k0
+,
+üc0
+,
+üc1
+;
+
+159
+k0
+ =
+k
+[0];
+
+161
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+162
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+164
+üc0
+ ^ð
+üc1
+;
+
+166 \15
+üc0
+;
+
+167
+ }
+}
+
+169 \18
+\9al\9ae
+
+u\9at64_t
+
+
+170
+ $hash_üc_key24
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+172
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+173
+u\9at64_t
+
+k0
+,
+k2
+,
+üc0
+,
+üc1
+;
+
+175
+k0
+ =
+k
+[0];
+
+176
+k2
+ =
+k
+[2];
+
+178
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+179
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+181
+üc0
+ =
+ `_mm_üc32_u64
+(üc0,
+k2
+);
+
+183
+üc0
+ ^ð
+üc1
+;
+
+185 \15
+üc0
+;
+
+186
+ }
+}
+
+188 \18
+\9al\9ae
+
+u\9at64_t
+
+
+189
+ $hash_üc_key32
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+191
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+192
+u\9at64_t
+
+k0
+,
+k2
+,
+üc0
+,
+üc1
+,
+üc2
+,
+üc3
+;
+
+194
+k0
+ =
+k
+[0];
+
+195
+k2
+ =
+k
+[2];
+
+197
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+198
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+200
+üc2
+ =
+ `_mm_üc32_u64
+(
+k2
+,
+k
+[3]);
+
+201
+üc3
+ =
+k2
+ >> 32;
+
+203
+üc0
+ =
+ `_mm_üc32_u64
+(üc0,
+üc1
+);
+
+204
+üc1
+ =
+ `_mm_üc32_u64
+(
+üc2
+,
+üc3
+);
+
+206
+üc0
+ ^ð
+üc1
+;
+
+208 \15
+üc0
+;
+
+209
+ }
+}
+
+211 \18
+\9al\9ae
+
+u\9at64_t
+
+
+212
+ $hash_üc_key40
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+214
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+215
+u\9at64_t
+
+k0
+,
+k2
+,
+üc0
+,
+üc1
+,
+üc2
+,
+üc3
+;
+
+217
+k0
+ =
+k
+[0];
+
+218
+k2
+ =
+k
+[2];
+
+220
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+221
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+223
+üc2
+ =
+ `_mm_üc32_u64
+(
+k2
+,
+k
+[3]);
+
+224
+üc3
+ =
+ `_mm_üc32_u64
+(
+k2
+ >> 32,
+k
+[4]);
+
+226
+üc0
+ =
+ `_mm_üc32_u64
+(üc0,
+üc1
+);
+
+227
+üc1
+ =
+ `_mm_üc32_u64
+(
+üc2
+,
+üc3
+);
+
+229
+üc0
+ ^ð
+üc1
+;
+
+231 \15
+üc0
+;
+
+232
+ }
+}
+
+234 \18
+\9al\9ae
+
+u\9at64_t
+
+
+235
+ $hash_üc_key48
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+237
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+238
+u\9at64_t
+
+k0
+,
+k2
+,
+k5
+,
+üc0
+,
+üc1
+,
+üc2
+,
+üc3
+;
+
+240
+k0
+ =
+k
+[0];
+
+241
+k2
+ =
+k
+[2];
+
+242
+k5
+ =
+k
+[5];
+
+244
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+245
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+247
+üc2
+ =
+ `_mm_üc32_u64
+(
+k2
+,
+k
+[3]);
+
+248
+üc3
+ =
+ `_mm_üc32_u64
+(
+k2
+ >> 32,
+k
+[4]);
+
+250
+üc0
+ =
+ `_mm_üc32_u64
+(üc0, (
+üc1
+ << 32è^
+üc2
+);
+
+251
+üc1
+ =
+ `_mm_üc32_u64
+(
+üc3
+,
+k5
+);
+
+253
+üc0
+ ^ð
+üc1
+;
+
+255 \15
+üc0
+;
+
+256
+ }
+}
+
+258 \18
+\9al\9ae
+
+u\9at64_t
+
+
+259
+ $hash_üc_key56
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+261
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+262
+u\9at64_t
+
+k0
+,
+k2
+,
+k5
+,
+üc0
+,
+üc1
+,
+üc2
+,
+üc3
+,
+üc4
+,
+üc5
+;
+
+264
+k0
+ =
+k
+[0];
+
+265
+k2
+ =
+k
+[2];
+
+266
+k5
+ =
+k
+[5];
+
+268
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+269
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+271
+üc2
+ =
+ `_mm_üc32_u64
+(
+k2
+,
+k
+[3]);
+
+272
+üc3
+ =
+ `_mm_üc32_u64
+(
+k2
+ >> 32,
+k
+[4]);
+
+274
+üc4
+ =
+ `_mm_üc32_u64
+(
+k5
+,
+k
+[6]);
+
+275
+üc5
+ =
+k5
+ >> 32;
+
+277
+üc0
+ =
+ `_mm_üc32_u64
+(üc0, (
+üc1
+ << 32è^
+üc2
+);
+
+278
+üc1
+ =
+ `_mm_üc32_u64
+(
+üc3
+, (
+üc4
+ << 32è^
+üc5
+);
+
+280
+üc0
+ ^ð
+üc1
+;
+
+282 \15
+üc0
+;
+
+283
+ }
+}
+
+285 \18
+\9al\9ae
+
+u\9at64_t
+
+
+286
+ $hash_üc_key64
+(\1e*
+key
+,
+__¹e_unu£d
+
+u\9at32_t
+
+key_size
+,
+u\9at64_t
+
+£ed
+)
+
+288
+u\9at64_t
+ *
+k
+ =
+key
+;
+
+289
+u\9at64_t
+
+k0
+,
+k2
+,
+k5
+,
+üc0
+,
+üc1
+,
+üc2
+,
+üc3
+,
+üc4
+,
+üc5
+;
+
+291
+k0
+ =
+k
+[0];
+
+292
+k2
+ =
+k
+[2];
+
+293
+k5
+ =
+k
+[5];
+
+295
+üc0
+ =
+ `_mm_üc32_u64
+(
+k0
+,
+£ed
+);
+
+296
+üc1
+ =
+ `_mm_üc32_u64
+(
+k0
+ >> 32,
+k
+[1]);
+
+298
+üc2
+ =
+ `_mm_üc32_u64
+(
+k2
+,
+k
+[3]);
+
+299
+üc3
+ =
+ `_mm_üc32_u64
+(
+k2
+ >> 32,
+k
+[4]);
+
+301
+üc4
+ =
+ `_mm_üc32_u64
+(
+k5
+,
+k
+[6]);
+
+302
+üc5
+ =
+ `_mm_üc32_u64
+(
+k5
+ >> 32,
+k
+[7]);
+
+304
+üc0
+ =
+ `_mm_üc32_u64
+(üc0, (
+üc1
+ << 32è^
+üc2
+);
+
+305
+üc1
+ =
+ `_mm_üc32_u64
+(
+üc3
+, (
+üc4
+ << 32è^
+üc5
+);
+
+307
+üc0
+ ^ð
+üc1
+;
+
+309 \15
+üc0
+;
+
+310
+ }
+}
+
+312 \ 1
+ #hash_deçuÉ_key8
+
+hash_üc_key8
+
+
+ )
+
+313 \ 1
+ #hash_deçuÉ_key16
+
+hash_üc_key16
+
+
+ )
+
+314 \ 1
+ #hash_deçuÉ_key24
+
+hash_üc_key24
+
+
+ )
+
+315 \ 1
+ #hash_deçuÉ_key32
+
+hash_üc_key32
+
+
+ )
+
+316 \ 1
+ #hash_deçuÉ_key40
+
+hash_üc_key40
+
+
+ )
+
+317 \ 1
+ #hash_deçuÉ_key48
+
+hash_üc_key48
+
+
+ )
+
+318 \ 1
+ #hash_deçuÉ_key56
+
+hash_üc_key56
+
+
+ )
+
+319 \ 1
+ #hash_deçuÉ_key64
+
+hash_üc_key64
+
+
+ )
+
+323 \ 1
+ #hash_deçuÉ_key8
+
+hash_xÜ_key8
+
+
+ )
+
+324 \ 1
+ #hash_deçuÉ_key16
+
+hash_xÜ_key16
+
+
+ )
+
+325 \ 1
+ #hash_deçuÉ_key24
+
+hash_xÜ_key24
+
+
+ )
+
+326 \ 1
+ #hash_deçuÉ_key32
+
+hash_xÜ_key32
+
+
+ )
+
+327 \ 1
+ #hash_deçuÉ_key40
+
+hash_xÜ_key40
+
+
+ )
+
+328 \ 1
+ #hash_deçuÉ_key48
+
+hash_xÜ_key48
+
+
+ )
+
+329 \ 1
+ #hash_deçuÉ_key56
+
+hash_xÜ_key56
+
+
+ )
+
+330 \ 1
+ #hash_deçuÉ_key64
+
+hash_xÜ_key64
+
+
+ )
+
+ @vnf_common/parser.h
+
+17 #iâdeà
+__INCLUDE_PARSER_H__
+
+
+18 \ 1
+ #__INCLUDE_PARSER_H__
+
+
+ )
+
+21
+·r£r_»ad_¬g_boÞ
+(cڡ \ 5*
+p
+);
+
+24
+·r£r_»ad_u\9at64
+(
+u\9at64_t
+ *
+v®ue
+, cڡ \ 5*
+p
+);
+
+27
+·r£r_»ad_u\9at32
+(
+u\9at32_t
+ *
+v®ue
+, cڡ \ 5*
+p
+);
+
+30
+·r£_hex_¡r\9ag
+(\ 5*
+¤c
+,
+u\9at8_t
+ *
+d¡
+,
+u\9at32_t
+ *
+size
+);
+
+ @vnf_common/pipeline.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_H__
+
+
+ )
+
+20 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+22 \ 2
+ ~"p\9d\96\9ae_be.h
+"
+
+28 \e\1e* (*
+ tp\9d\96\9ae_ã_Ý_\9a\99
+)(\19
+ tp\9d\96\9ae_·¿ms
+ *
+ t·¿ms
+, \1e*
+ t¬g
+);
+
+30 \e\12(*
+ tp\9d\96\9ae_ã_Ý_ä\93
+)(\1e*
+ tp\9d\96\9ae
+);
+
+32 \19
+ sp\9d\96\9ae_ã_Ýs
+ {
+
+33
+p\9d\96\9ae_ã_Ý_\9a\99
+
+f_\9a\99
+;
+
+34
+p\9d\96\9ae_ã_Ý_ä\93
+
+f_ä\93
+;
+
+35
+cmdl\9ae_·r£_ùx_t
+ *
+cmds
+;
+
+42 \19
+ sp\9d\96\9ae_ty³
+ {
+
+43 cڡ \ 5*
+Çme
+;
+
+46 \19
+p\9d\96\9ae_be_Ýs
+ *
+be_Ýs
+;
+
+49 \19
+p\9d\96\9ae_ã_Ýs
+ *
+ã_Ýs
+;
+
+52 \18
+\9al\9ae
+
+u\9at32_t
+
+
+53
+ $p\9d\96\9ae_ty³_cmds_couÁ
+(\19
+p\9d\96\9ae_ty³
+ *
+±y³
+)
+
+55
+cmdl\9ae_·r£_ùx_t
+ *
+cmds
+;
+
+56
+u\9at32_t
+
+n_cmds
+;
+
+58 ià(
+±y³
+->
+ã_Ýs
+ =ð
+NULL
+)
+
+61
+cmds
+ =
+±y³
+->
+ã_Ýs
+->cmds;
+
+62 ià(
+cmds
+ =ð
+NULL
+)
+
+65 \ f
+n_cmds
+ = 0;
+cmds
+[n_cmds];\82_cmds++);
+
+67 \15
+n_cmds
+;
+
+68
+ }
+}
+
+71
+·r£_p\9d\96\9ae_cÜe
+(
+u\9at32_t
+ *
+sock\91
+,
+
+72
+u\9at32_t
+ *
+cÜe
+,
+
+73
+u\9at32_t
+ *
+ht
+,
+
+74 cڡ \ 5*
+\92\8cy
+);
+
+ @vnf_common/pipeline_actions_common.h
+
+16 #iâdeà
+__INCLUDE_PIPELINE_ACTIONS_COMMON_H__
+
+
+17 \ 1
+ #__INCLUDE_PIPELINE_ACTIONS_COMMON_H__
+
+
+ )
+
+19 \ 2
+ ~<¡d\9at.h
+>
+
+21 \ 2
+ ~<¹e_commÚ.h
+>
+
+22 \ 2
+ ~<¹e_cyþes.h
+>
+
+23 \ 2
+ ~<¹e_mbuf.h
+>
+
+24 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+26 \ 1
+ #PIPELINE_PORT_IN_AH
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+28
+ `f_ah
+( \
+
+29
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+30 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+31
+u\9at32_t
+
+n_pkts
+, \
+
+32 \1e*
+¬g
+) \
+
+34
+u\9at32_t
+
+i
+; \
+
+36 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+37
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+],
+¬g
+); \
+
+39 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+40
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+],
+¬g
+); \
+
+43 }
+
+ )
+
+45 \ 1
+ #PIPELINE_PORT_IN_AH_HIJACK_ALL
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+47
+ `f_ah
+( \
+
+48 \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+49 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+50
+u\9at32_t
+
+n_pkts
+, \
+
+51 \1e*
+¬g
+) \
+
+53
+u\9at64_t
+
+pkt_mask
+ =
+ `RTE_LEN2MASK
+(
+n_pkts
+, uint64_t); \
+
+54
+u\9at32_t
+
+i
+; \
+
+56
+ `¹e_p\9d\96\9ae_ah_·ck\91_hijack
+(
+p
+,
+pkt_mask
+); \
+
+58 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+59
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+],
+¬g
+); \
+
+61 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+62
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+],
+¬g
+); \
+
+65 }
+
+ )
+
+67 \ 1
+ #PIPELINE_TABLE_AH_HIT
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+69
+ `f_ah
+( \
+
+70
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+71 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+72
+u\9at64_t
+
+pkts_\9a_mask
+, \
+
+73 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ **
+\92\8c\9bs
+, \
+
+74 \1e*
+¬g
+) \
+
+76 ià((
+pkts_\9a_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+77
+u\9at64_t
+
+n_pkts
+ =
+ `__bu\9et\9a_pÝcouÁÎ
+(
+pkts_\9a_mask
+); \
+
+78
+u\9at32_t
+
+i
+; \
+
+80 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+81
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], &
+\92\8c\9bs
+[i],
+¬g
+); \
+
+83 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+84
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+],
+\92\8c\9bs
+[i],
+¬g
+); \
+
+86 \ f ;
+pkts_\9a_mask
+; ) { \
+
+87
+u\9at32_t
+
+pos
+ =
+ `__bu\9et\9a_ùzÎ
+(
+pkts_\9a_mask
+); \
+
+88
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+; \
+
+90
+pkts_\9a_mask
+ &ð~
+pkt_mask
+; \
+
+91
+ `f_pkt_wÜk
+(
+pkts
+[
+pos
+],
+\92\8c\9bs
+[pos],
+¬g
+); \
+
+95 }
+
+ )
+
+97 \ 1
+ #PIPELINE_TABLE_AH_MISS
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+99
+ `f_ah
+( \
+
+100
+__¹e_unu£d
+ \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+101 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+102
+u\9at64_t
+
+pkts_\9a_mask
+, \
+
+103 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+\92\8cy
+, \
+
+104 \1e*
+¬g
+) \
+
+106 ià((
+pkts_\9a_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+107
+u\9at64_t
+
+n_pkts
+ =
+ `__bu\9et\9a_pÝcouÁÎ
+(
+pkts_\9a_mask
+); \
+
+108
+u\9at32_t
+
+i
+; \
+
+110 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) \
+
+111
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+],
+\92\8cy
+,
+¬g
+); \
+
+113 \ f ;
+i
+ <
+n_pkts
+; i++) \
+
+114
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+],
+\92\8cy
+,
+¬g
+); \
+
+116 \ f ;
+pkts_\9a_mask
+; ) { \
+
+117
+u\9at32_t
+
+pos
+ =
+ `__bu\9et\9a_ùzÎ
+(
+pkts_\9a_mask
+); \
+
+118
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+; \
+
+120
+pkts_\9a_mask
+ &ð~
+pkt_mask
+; \
+
+121
+ `f_pkt_wÜk
+(
+pkts
+[
+pos
+],
+\92\8cy
+,
+¬g
+); \
+
+125 }
+
+ )
+
+127 \ 1
+ #PIPELINE_TABLE_AH_HIT_DROP_TIME
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+129
+ `f_ah
+( \
+
+130 \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+131 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+132
+u\9at64_t
+
+pkts_mask
+, \
+
+133 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ **
+\92\8c\9bs
+, \
+
+134 \1e*
+¬g
+) \
+
+136
+u\9at64_t
+
+pkts_\9a_mask
+ =
+pkts_mask
+; \
+
+137
+u\9at64_t
+
+pkts_out_mask
+ =
+pkts_mask
+; \
+
+138
+u\9at64_t
+
+time
+ =
+ `¹e_rdtsc
+(); \
+
+140 ià((
+pkts_\9a_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+141
+u\9at64_t
+
+n_pkts
+ =
+ `__bu\9et\9a_pÝcouÁÎ
+(
+pkts_\9a_mask
+); \
+
+142
+u\9at32_t
+
+i
+; \
+
+144 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) { \
+
+145
+u\9at64_t
+
+mask
+ =
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], \
+
+146 &
+\92\8c\9bs
+[
+i
+],
+¬g
+,
+time
+); \
+
+147
+pkts_out_mask
+ ^ð
+mask
+ <<
+i
+; \
+
+150 \ f ;
+i
+ <
+n_pkts
+; i++) { \
+
+151
+u\9at64_t
+
+mask
+ =
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+], \
+
+152
+\92\8c\9bs
+[
+i
+],
+¬g
+,
+time
+); \
+
+153
+pkts_out_mask
+ ^ð
+mask
+ <<
+i
+; \
+
+156 \ f ;
+pkts_\9a_mask
+; ) { \
+
+157
+u\9at32_t
+
+pos
+ =
+ `__bu\9et\9a_ùzÎ
+(
+pkts_\9a_mask
+); \
+
+158
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+; \
+
+159
+u\9at64_t
+
+mask
+ =
+ `f_pkt_wÜk
+(
+pkts
+[
+pos
+], \
+
+160
+\92\8c\9bs
+[
+pos
+],
+¬g
+,
+time
+); \
+
+162
+pkts_\9a_mask
+ &ð~
+pkt_mask
+; \
+
+163
+pkts_out_mask
+ ^ð
+mask
+ <<
+pos
+; \
+
+166
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p
+,
+pkts_out_mask
+ ^
+pkts_mask
+); \
+
+169 }
+
+ )
+
+171 \ 1
+ #PIPELINE_TABLE_AH_MISS_DROP_TIME
+(
+f_ah
+,
+f_pkt_wÜk
+,
+f_pkt4_wÜk
+) \
+
+173
+ `f_ah
+( \
+
+174 \19
+¹e_p\9d\96\9ae
+ *
+p
+, \
+
+175 \19
+¹e_mbuf
+ **
+pkts
+, \
+
+176
+u\9at64_t
+
+pkts_mask
+, \
+
+177 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+\92\8cy
+, \
+
+178 \1e*
+¬g
+) \
+
+180
+u\9at64_t
+
+pkts_\9a_mask
+ =
+pkts_mask
+; \
+
+181
+u\9at64_t
+
+pkts_out_mask
+ =
+pkts_mask
+; \
+
+182
+u\9at64_t
+
+time
+ =
+ `¹e_rdtsc
+(); \
+
+184 ià((
+pkts_\9a_mask
+ & (pkts_in_mask + 1)) == 0) { \
+
+185
+u\9at64_t
+
+n_pkts
+ =
+ `__bu\9et\9a_pÝcouÁÎ
+(
+pkts_\9a_mask
+); \
+
+186
+u\9at32_t
+
+i
+; \
+
+188 \ f
+i
+ = 0; i < (
+n_pkts
+ & (~0x3LLU)); i += 4) { \
+
+189
+u\9at64_t
+
+mask
+ =
+ `f_pkt4_wÜk
+(&
+pkts
+[
+i
+], \
+
+190
+\92\8cy
+,
+¬g
+,
+time
+); \
+
+191
+pkts_out_mask
+ ^ð
+mask
+ <<
+i
+; \
+
+194 \ f ;
+i
+ <
+n_pkts
+; i++) { \
+
+195
+u\9at64_t
+
+mask
+ =
+ `f_pkt_wÜk
+(
+pkts
+[
+i
+],
+\92\8cy
+,
+¬g
+,
+time
+);\
+
+196
+pkts_out_mask
+ ^ð
+mask
+ <<
+i
+; \
+
+199 \ f ;
+pkts_\9a_mask
+; ) { \
+
+200
+u\9at32_t
+
+pos
+ =
+ `__bu\9et\9a_ùzÎ
+(
+pkts_\9a_mask
+); \
+
+201
+u\9at64_t
+
+pkt_mask
+ = 1LLU <<
+pos
+; \
+
+202
+u\9at64_t
+
+mask
+ =
+ `f_pkt_wÜk
+(
+pkts
+[
+pos
+], \
+
+203
+\92\8cy
+,
+¬g
+,
+time
+); \
+
+205
+pkts_\9a_mask
+ &ð~
+pkt_mask
+; \
+
+206
+pkts_out_mask
+ ^ð
+mask
+ <<
+pos
+; \
+
+209
+ `¹e_p\9d\96\9ae_ah_·ck\91_drÝ
+(
+p
+,
+pkts_out_mask
+ ^
+pkts_mask
+); \
+
+212 }
+
+ )
+
+ @vnf_common/pipeline_be.h
+
+17 #iâdeà
+__INCLUDE_PIPELINE_BE_H__
+
+
+18 \ 1
+ #__INCLUDE_PIPELINE_BE_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_pÜt_\91hdev.h
+>
+
+21 \ 2
+ ~<¹e_pÜt_r\9ag.h
+>
+
+22 \ 2
+ ~<¹e_pÜt_äag.h
+>
+
+23 \ 2
+ ~<¹e_pÜt_¿s.h
+>
+
+24 \ 2
+ ~<¹e_pÜt_sched.h
+>
+
+25 \ 2
+ ~<¹e_pÜt_sourû_s\9ak.h
+>
+
+26 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+28 \f
+ ep\9d\96\9ae_pÜt_\9a_ty³
+ {
+
+29
+ mPIPELINE_PORT_IN_ETHDEV_READER
+,
+
+30
+ mPIPELINE_PORT_IN_RING_READER
+,
+
+31
+ mPIPELINE_PORT_IN_RING_MULTI_READER
+,
+
+32
+ mPIPELINE_PORT_IN_RING_READER_IPV4_FRAG
+,
+
+33
+ mPIPELINE_PORT_IN_RING_READER_IPV6_FRAG
+,
+
+34
+ mPIPELINE_PORT_IN_SCHED_READER
+,
+
+35
+ mPIPELINE_PORT_IN_SOURCE
+,
+
+38 \19
+ sp\9d\96\9ae_pÜt_\9a_·¿ms
+ {
+
+39 \f
+p\9d\96\9ae_pÜt_\9a_ty³
+
+ mty³
+;
+
+41 \19
+¹e_pÜt_\91hdev_»ad\94_·¿ms
+
+ m\91hdev
+;
+
+42 \19
+¹e_pÜt_r\9ag_»ad\94_·¿ms
+
+ mr\9ag
+;
+
+43 \19
+¹e_pÜt_r\9ag_muÉi_»ad\94_·¿ms
+
+ mr\9ag_muÉi
+;
+
+44 \19
+¹e_pÜt_r\9ag_»ad\94_\9dv4_äag_·¿ms
+
+ mr\9ag_\9dv4_äag
+;
+
+45 \19
+¹e_pÜt_r\9ag_»ad\94_\9dv6_äag_·¿ms
+
+ mr\9ag_\9dv6_äag
+;
+
+46 \19
+¹e_pÜt_sched_»ad\94_·¿ms
+
+ msched
+;
+
+47 \19
+¹e_pÜt_sourû_·¿ms
+
+ msourû
+;
+
+48 }
+ m·¿ms
+;
+
+49
+u\9at32_t
+
+ mbur¡_size
+;
+
+52 \18
+\9al\9ae
+ \1e*
+
+53
+ $p\9d\96\9ae_pÜt_\9a_·¿ms_cÚv\94t
+(\19
+p\9d\96\9ae_pÜt_\9a_·¿ms
+ *
+p
+)
+
+55 \1a
+p
+->
+ty³
+) {
+
+56 \ 4
+PIPELINE_PORT_IN_ETHDEV_READER
+:
+
+57 \15 (\1e*è&
+p
+->
+·¿ms
+.
+\91hdev
+;
+
+58 \ 4
+PIPELINE_PORT_IN_RING_READER
+:
+
+59 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag
+;
+
+60 \ 4
+PIPELINE_PORT_IN_RING_MULTI_READER
+:
+
+61 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_muÉi
+;
+
+62 \ 4
+PIPELINE_PORT_IN_RING_READER_IPV4_FRAG
+:
+
+63 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_\9dv4_äag
+;
+
+64 \ 4
+PIPELINE_PORT_IN_RING_READER_IPV6_FRAG
+:
+
+65 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_\9dv6_äag
+;
+
+66 \ 4
+PIPELINE_PORT_IN_SCHED_READER
+:
+
+67 \15 (\1e*è&
+p
+->
+·¿ms
+.
+sched
+;
+
+68 \ 4
+PIPELINE_PORT_IN_SOURCE
+:
+
+69 \15 (\1e*è&
+p
+->
+·¿ms
+.
+sourû
+;
+
+71 \15
+NULL
+;
+
+73
+ }
+}
+
+75 \18
+\9al\9ae
+ \19
+¹e_pÜt_\9a_Ýs
+ *
+
+76
+ $p\9d\96\9ae_pÜt_\9a_·¿ms_g\91_Ýs
+(\19
+p\9d\96\9ae_pÜt_\9a_·¿ms
+ *
+p
+)
+
+78 \1a
+p
+->
+ty³
+) {
+
+79 \ 4
+PIPELINE_PORT_IN_ETHDEV_READER
+:
+
+80 \15 &
+¹e_pÜt_\91hdev_»ad\94_Ýs
+;
+
+81 \ 4
+PIPELINE_PORT_IN_RING_READER
+:
+
+82 \15 &
+¹e_pÜt_r\9ag_»ad\94_Ýs
+;
+
+83 \ 4
+PIPELINE_PORT_IN_RING_MULTI_READER
+:
+
+84 \15 &
+¹e_pÜt_r\9ag_muÉi_»ad\94_Ýs
+;
+
+85 \ 4
+PIPELINE_PORT_IN_RING_READER_IPV4_FRAG
+:
+
+86 \15 &
+¹e_pÜt_r\9ag_»ad\94_\9dv4_äag_Ýs
+;
+
+87 \ 4
+PIPELINE_PORT_IN_RING_READER_IPV6_FRAG
+:
+
+88 \15 &
+¹e_pÜt_r\9ag_»ad\94_\9dv6_äag_Ýs
+;
+
+89 \ 4
+PIPELINE_PORT_IN_SCHED_READER
+:
+
+90 \15 &
+¹e_pÜt_sched_»ad\94_Ýs
+;
+
+91 \ 4
+PIPELINE_PORT_IN_SOURCE
+:
+
+92 \15 &
+¹e_pÜt_sourû_Ýs
+;
+
+94 \15
+NULL
+;
+
+96
+ }
+}
+
+98 \f
+ ep\9d\96\9ae_pÜt_out_ty³
+ {
+
+99
+ mPIPELINE_PORT_OUT_ETHDEV_WRITER
+,
+
+100
+ mPIPELINE_PORT_OUT_ETHDEV_WRITER_NODROP
+,
+
+101
+ mPIPELINE_PORT_OUT_RING_WRITER
+,
+
+102
+ mPIPELINE_PORT_OUT_RING_MULTI_WRITER
+,
+
+103
+ mPIPELINE_PORT_OUT_RING_WRITER_NODROP
+,
+
+104
+ mPIPELINE_PORT_OUT_RING_MULTI_WRITER_NODROP
+,
+
+105
+ mPIPELINE_PORT_OUT_RING_WRITER_IPV4_RAS
+,
+
+106
+ mPIPELINE_PORT_OUT_RING_WRITER_IPV6_RAS
+,
+
+107
+ mPIPELINE_PORT_OUT_SCHED_WRITER
+,
+
+108
+ mPIPELINE_PORT_OUT_SINK
+,
+
+111 \19
+ sp\9d\96\9ae_pÜt_out_·¿ms
+ {
+
+112 \f
+p\9d\96\9ae_pÜt_out_ty³
+
+ mty³
+;
+
+114 \19
+¹e_pÜt_\91hdev_wr\99\94_·¿ms
+
+ m\91hdev
+;
+
+115 \19
+¹e_pÜt_\91hdev_wr\99\94_nodrÝ_·¿ms
+
+ m\91hdev_nodrÝ
+;
+
+116 \19
+¹e_pÜt_r\9ag_wr\99\94_·¿ms
+
+ mr\9ag
+;
+
+117 \19
+¹e_pÜt_r\9ag_muÉi_wr\99\94_·¿ms
+
+ mr\9ag_muÉi
+;
+
+118 \19
+¹e_pÜt_r\9ag_wr\99\94_nodrÝ_·¿ms
+
+ mr\9ag_nodrÝ
+;
+
+119 \19
+¹e_pÜt_r\9ag_muÉi_wr\99\94_nodrÝ_·¿ms
+
+ mr\9ag_muÉi_nodrÝ
+;
+
+120 \19
+¹e_pÜt_r\9ag_wr\99\94_\9dv4_¿s_·¿ms
+
+ mr\9ag_\9dv4_¿s
+;
+
+121 \19
+¹e_pÜt_r\9ag_wr\99\94_\9dv6_¿s_·¿ms
+
+ mr\9ag_\9dv6_¿s
+;
+
+122 \19
+¹e_pÜt_sched_wr\99\94_·¿ms
+
+ msched
+;
+
+123 \19
+¹e_pÜt_s\9ak_·¿ms
+
+ ms\9ak
+;
+
+124 }
+ m·¿ms
+;
+
+127 \18
+\9al\9ae
+ \1e*
+
+128
+ $p\9d\96\9ae_pÜt_out_·¿ms_cÚv\94t
+(\19
+p\9d\96\9ae_pÜt_out_·¿ms
+ *
+p
+)
+
+130 \1a
+p
+->
+ty³
+) {
+
+131 \ 4
+PIPELINE_PORT_OUT_ETHDEV_WRITER
+:
+
+132 \15 (\1e*è&
+p
+->
+·¿ms
+.
+\91hdev
+;
+
+133 \ 4
+PIPELINE_PORT_OUT_ETHDEV_WRITER_NODROP
+:
+
+134 \15 (\1e*è&
+p
+->
+·¿ms
+.
+\91hdev_nodrÝ
+;
+
+135 \ 4
+PIPELINE_PORT_OUT_RING_WRITER
+:
+
+136 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag
+;
+
+137 \ 4
+PIPELINE_PORT_OUT_RING_MULTI_WRITER
+:
+
+138 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_muÉi
+;
+
+139 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_NODROP
+:
+
+140 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_nodrÝ
+;
+
+141 \ 4
+PIPELINE_PORT_OUT_RING_MULTI_WRITER_NODROP
+:
+
+142 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_muÉi_nodrÝ
+;
+
+143 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_IPV4_RAS
+:
+
+144 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_\9dv4_¿s
+;
+
+145 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_IPV6_RAS
+:
+
+146 \15 (\1e*è&
+p
+->
+·¿ms
+.
+r\9ag_\9dv6_¿s
+;
+
+147 \ 4
+PIPELINE_PORT_OUT_SCHED_WRITER
+:
+
+148 \15 (\1e*è&
+p
+->
+·¿ms
+.
+sched
+;
+
+149 \ 4
+PIPELINE_PORT_OUT_SINK
+:
+
+150 \15 (\1e*è&
+p
+->
+·¿ms
+.
+s\9ak
+;
+
+152 \15
+NULL
+;
+
+154
+ }
+}
+
+156 \18
+\9al\9ae
+ \1e*
+
+157
+ $p\9d\96\9ae_pÜt_out_·¿ms_g\91_Ýs
+(\19
+p\9d\96\9ae_pÜt_out_·¿ms
+ *
+p
+)
+
+159 \1a
+p
+->
+ty³
+) {
+
+160 \ 4
+PIPELINE_PORT_OUT_ETHDEV_WRITER
+:
+
+161 \15 &
+¹e_pÜt_\91hdev_wr\99\94_Ýs
+;
+
+162 \ 4
+PIPELINE_PORT_OUT_ETHDEV_WRITER_NODROP
+:
+
+163 \15 &
+¹e_pÜt_\91hdev_wr\99\94_nodrÝ_Ýs
+;
+
+164 \ 4
+PIPELINE_PORT_OUT_RING_WRITER
+:
+
+165 \15 &
+¹e_pÜt_r\9ag_wr\99\94_Ýs
+;
+
+166 \ 4
+PIPELINE_PORT_OUT_RING_MULTI_WRITER
+:
+
+167 \15 &
+¹e_pÜt_r\9ag_muÉi_wr\99\94_Ýs
+;
+
+168 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_NODROP
+:
+
+169 \15 &
+¹e_pÜt_r\9ag_wr\99\94_nodrÝ_Ýs
+;
+
+170 \ 4
+PIPELINE_PORT_OUT_RING_MULTI_WRITER_NODROP
+:
+
+171 \15 &
+¹e_pÜt_r\9ag_muÉi_wr\99\94_nodrÝ_Ýs
+;
+
+172 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_IPV4_RAS
+:
+
+173 \15 &
+¹e_pÜt_r\9ag_wr\99\94_\9dv4_¿s_Ýs
+;
+
+174 \ 4
+PIPELINE_PORT_OUT_RING_WRITER_IPV6_RAS
+:
+
+175 \15 &
+¹e_pÜt_r\9ag_wr\99\94_\9dv6_¿s_Ýs
+;
+
+176 \ 4
+PIPELINE_PORT_OUT_SCHED_WRITER
+:
+
+177 \15 &
+¹e_pÜt_sched_wr\99\94_Ýs
+;
+
+178 \ 4
+PIPELINE_PORT_OUT_SINK
+:
+
+179 \15 &
+¹e_pÜt_s\9ak_Ýs
+;
+
+181 \15
+NULL
+;
+
+183
+ }
+}
+
+185 #iâdeà
+PIPELINE_NAME_SIZE
+
+
+186 \ 1
+ #PIPELINE_NAME_SIZE
+ 64
+
+ )
+
+189 #iâdeà
+PIPELINE_MAX_PORT_IN
+
+
+190 \ 1
+ #PIPELINE_MAX_PORT_IN
+ 64
+
+ )
+
+193 #iâdeà
+PIPELINE_MAX_PORT_OUT
+
+
+194 \ 1
+ #PIPELINE_MAX_PORT_OUT
+ 64
+
+ )
+
+197 #iâdeà
+PIPELINE_MAX_TABLES
+
+
+198 \ 1
+ #PIPELINE_MAX_TABLES
+ 64
+
+ )
+
+201 #iâdeà
+PIPELINE_MAX_MSGQ_IN
+
+
+202 \ 1
+ #PIPELINE_MAX_MSGQ_IN
+ 64
+
+ )
+
+205 #iâdeà
+PIPELINE_MAX_MSGQ_OUT
+
+
+206 \ 1
+ #PIPELINE_MAX_MSGQ_OUT
+ 64
+
+ )
+
+209 #iâdeà
+PIPELINE_MAX_ARGS
+
+
+210 \ 1
+ #PIPELINE_MAX_ARGS
+ 64
+
+ )
+
+213 \19
+ sp\9d\96\9ae_·¿ms
+ {
+
+214 \ 5
+ mÇme
+[
+PIPELINE_NAME_SIZE
+];
+
+216 \19
+p\9d\96\9ae_pÜt_\9a_·¿ms
+
+ mpÜt_\9a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+217 \19
+p\9d\96\9ae_pÜt_out_·¿ms
+
+ mpÜt_out
+[
+PIPELINE_MAX_PORT_OUT
+];
+
+218 \19
+¹e_r\9ag
+ *
+ mmsgq_\9a
+[
+PIPELINE_MAX_MSGQ_IN
+];
+
+219 \19
+¹e_r\9ag
+ *
+ mmsgq_out
+[
+PIPELINE_MAX_MSGQ_OUT
+];
+
+221
+u\9at32_t
+
+ mn_pÜts_\9a
+;
+
+222
+u\9at32_t
+
+ mn_pÜts_out
+;
+
+223
+u\9at32_t
+
+ mn_msgq
+;
+
+225 \12
+ msock\91_id
+;
+
+227 \ 5*
+ m¬gs_Çme
+[
+PIPELINE_MAX_ARGS
+];
+
+228 \ 5*
+ m¬gs_v®ue
+[
+PIPELINE_MAX_ARGS
+];
+
+229
+u\9at32_t
+
+ mn_¬gs
+;
+
+231
+u\9at32_t
+
+ mlog_Ëv\96
+;
+
+238 \e\1e* (*
+ tp\9d\96\9ae_be_Ý_\9a\99
+)(\19
+ tp\9d\96\9ae_·¿ms
+ *
+ t·¿ms
+,
+
+239 \1e*
+ t¬g
+);
+
+241 \e\12(*
+ tp\9d\96\9ae_be_Ý_ä\93
+)(\1e*
+ tp\9d\96\9ae
+);
+
+243 \e\12(*
+ tp\9d\96\9ae_be_Ý_run
+)(\1e*
+ tp\9d\96\9ae
+);
+
+245 \e\12(*
+ tp\9d\96\9ae_be_Ý_tim\94
+)(\1e*
+ tp\9d\96\9ae
+);
+
+247 \e\12(*
+ tp\9d\96\9ae_be_Ý_\8cack
+)(\1e*
+ tp\9d\96\9ae
+,
+
+248
+ tu\9at32_t
+
+ tpÜt_\9a
+,
+
+249
+ tu\9at32_t
+ *
+ tpÜt_out
+);
+
+251 \19
+ sp\9d\96\9ae_be_Ýs
+ {
+
+252
+p\9d\96\9ae_be_Ý_\9a\99
+
+f_\9a\99
+;
+
+253
+p\9d\96\9ae_be_Ý_ä\93
+
+f_ä\93
+;
+
+254
+p\9d\96\9ae_be_Ý_run
+
+f_run
+;
+
+255
+p\9d\96\9ae_be_Ý_tim\94
+
+f_tim\94
+;
+
+256
+p\9d\96\9ae_be_Ý_\8cack
+
+f_\8cack
+;
+
+260 \ 1
+ #PIPELINE_ARG_CHECK
+(
+exp
+,
+fmt
+, ...) \
+
+262 ià(!(
+exp
+)) { \
+
+263
+ `år\9atf
+(
+¡d\94r
+,
+fmt
+ "\n", ##
+__VA_ARGS__
+); \
+
+266
+ }
+} \1f0)
+
+ )
+
+268 \ 1
+ #PIPELINE_PARSE_ERR_INV_VAL
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+,
+v®
+) \
+
+269
+ `PIPELINE_ARG_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\":\83ntry \"%s\" " \
+
+270 "ha \9av®id v®u\90(\"%s\")",
+£ùiÚ
+,
+\92\8cy
+,
+v®
+)
+
+ )
+
+272 \ 1
+ #PIPELINE_PARSE_ERR_OUT_RNG
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+,
+v®
+) \
+
+273
+ `PIPELINE_ARG_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\":\83ntry \"%s\" " \
+
+274 "v®u\90i ou\88oà¿ng\90(\"%s\")",
+£ùiÚ
+,
+\92\8cy
+,
+v®
+)
+
+ )
+
+276 \ 1
+ #PIPELINE_PARSE_ERR_DUPLICATE
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+277
+ `PIPELINE_ARG_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\": duplicated " \
+
+278 "\92\8cy \"%s\"",
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+280 \ 1
+ #PIPELINE_PARSE_ERR_INV_ENT
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+281
+ `PIPELINE_ARG_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\": invalid\83ntry " \
+
+282 "\"%s\"",
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+284 \ 1
+ #PIPELINE_PARSE_ERR_MANDATORY
+(
+exp
+,
+£ùiÚ
+,
+\92\8cy
+) \
+
+285
+ `PIPELINE_ARG_CHECK
+(
+exp
+, "Parse\83rror in section \"%s\": mandatory " \
+
+286 "\92\8cy \"%s\" i miss\9ag",
+£ùiÚ
+,
+\92\8cy
+)
+
+ )
+
+ @vnf_common/thread.c
+
+17 \ 2
+ ~<¹e_commÚ.h
+>
+
+18 \ 2
+ ~<¹e_cyþes.h
+>
+
+19 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+21 \ 2
+ ~"p\9d\96\9ae_commÚ_be.h
+"
+
+22 \ 2
+ ~"p.h
+"
+
+23 \ 2
+ ~"th»ad.h
+"
+
+25 #ià
+APP_THREAD_HEADROOM_STATS_COLLECT
+
+
+27 \ 1
+ #PIPELINE_RUN_REGULAR
+(
+th»ad
+,
+p\9d\96\9ae
+) \
+
+29
+u\9at64_t
+
+t0
+ =
+ `¹e_rdtsc_´eci£
+(); \
+
+30 \12
+n_pkts
+ =
+ `¹e_p\9d\96\9ae_run
+(
+p\9d\96\9ae
+->
+p
+); \
+
+32 ià(
+n_pkts
+ == 0) { \
+
+33
+u\9at64_t
+
+t1
+ =
+ `¹e_rdtsc_´eci£
+(); \
+
+35
+th»ad
+->
+h\97droom_cyþes
+ +ð
+t1
+ -
+t0
+; \
+
+37 } \1f0)
+
+ )
+
+40 \ 1
+ #PIPELINE_RUN_CUSTOM
+(
+th»ad
+,
+d©a
+) \
+
+42
+u\9at64_t
+
+t0
+ =
+ `¹e_rdtsc_´eci£
+(); \
+
+43 \12
+n_pkts
+ =
+d©a
+->
+ `f_run
+(d©a->
+be
+); \
+
+45 ià(
+n_pkts
+ == 0) { \
+
+46
+u\9at64_t
+
+t1
+ =
+ `¹e_rdtsc_´eci£
+(); \
+
+48
+th»ad
+->
+h\97droom_cyþes
+ +ð
+t1
+ -
+t0
+; \
+
+50 } \1f0)
+
+ )
+
+54 \ 1
+ #PIPELINE_RUN_REGULAR
+(
+th»ad
+,
+p\9d\96\9ae
+) \
+
+55
+ `¹e_p\9d\96\9ae_run
+(
+p\9d\96\9ae
+->
+p
+)
+
+ )
+
+57 \ 1
+ #PIPELINE_RUN_CUSTOM
+(
+th»ad
+,
+d©a
+) \
+
+58
+d©a
+->
+ `f_run
+(d©a->
+be
+)
+
+ )
+
+62 \18
+\9al\9ae
+ \1e*
+
+63
+ $th»ad_msg_»cv
+(\19
+¹e_r\9ag
+ *
+r
+)
+
+65 \1e*
+msg
+;
+
+66 \12
+¡©us
+ =
+ `¹e_r\9ag_sc_dequeue
+(
+r
+, &
+msg
+);
+
+68 ià(
+¡©us
+ != 0)
+
+69 \15
+NULL
+;
+
+71 \15
+msg
+;
+
+72
+ }
+}
+
+74 \18
+\9al\9ae
+ \1e
+
+75
+ $th»ad_msg_£nd
+(\19
+¹e_r\9ag
+ *
+r
+,
+
+76 \1e*
+msg
+)
+
+78 \12
+¡©us
+;
+
+81
+¡©us
+ =
+ `¹e_r\9ag_¥_\92queue
+(
+r
+,
+msg
+);
+
+82 } \1f
+¡©us
+ =ð-
+ENOBUFS
+);
+
+83
+ }
+}
+
+86
+ $th»ad_p\9d\96\9ae_\92abË
+(\19
+p_th»ad_d©a
+ *
+t
+,
+
+87 \19
+th»ad_p\9d\96\9ae_\92abË_msg_»q
+ *
+»q
+)
+
+89 \19
+p_th»ad_p\9d\96\9ae_d©a
+ *
+p
+;
+
+91 ià(
+»q
+->
+f_run
+ =ð
+NULL
+) {
+
+92 ià(
+t
+->
+n_»guÏr
+ >ð
+APP_MAX_THREAD_PIPELINES
+)
+
+95 ià(
+t
+->
+n_cu¡om
+ >ð
+APP_MAX_THREAD_PIPELINES
+)
+
+99
+p
+ = (
+»q
+->
+f_run
+ =ð
+NULL
+) ?
+
+100 &
+t
+->
+»guÏr
+[t->
+n_»guÏr
+] :
+
+101 &
+t
+->
+cu¡om
+[t->
+n_cu¡om
+];
+
+103
+p
+->
+p\9d\96\9ae_id
+ =
+»q
+->pipeline_id;
+
+104
+p
+->
+be
+ =
+»q
+->be;
+
+105
+p
+->
+f_run
+ =
+»q
+->f_run;
+
+106
+p
+->
+f_tim\94
+ =
+»q
+->f_timer;
+
+107
+p
+->
+tim\94_³riod
+ =
+»q
+->timer_period;
+
+108
+p
+->
+d\97dl\9ae
+ = 0;
+
+110 ià(
+»q
+->
+f_run
+ =ð
+NULL
+)
+
+111
+t
+->
+n_»guÏr
+++;
+
+113
+t
+->
+n_cu¡om
+++;
+
+116
+ }
+}
+
+119
+ $th»ad_p\9d\96\9ae_di§bË
+(\19
+p_th»ad_d©a
+ *
+t
+,
+
+120 \19
+th»ad_p\9d\96\9ae_di§bË_msg_»q
+ *
+»q
+)
+
+122
+u\9at32_t
+
+n_»guÏr
+ =
+ `RTE_MIN
+(
+t
+->n_»guÏr,
+ `RTE_DIM
+Ñ->
+»guÏr
+));
+
+123
+u\9at32_t
+
+n_cu¡om
+ =
+ `RTE_MIN
+(
+t
+->n_cu¡om,
+ `RTE_DIM
+Ñ->
+cu¡om
+));
+
+124
+u\9at32_t
+
+i
+;
+
+127 \ f
+i
+ = 0; i <
+n_»guÏr
+; i++) {
+
+128 ià(
+t
+->
+»guÏr
+[
+i
+].
+p\9d\96\9ae_id
+ !ð
+»q
+->pipeline_id)
+
+131 ià(
+i
+ <
+n_»guÏr
+ - 1)
+
+132
+ `memýy
+(&
+t
+->
+»guÏr
+[
+i
+],
+
+133 &
+t
+->
+»guÏr
+[
+i
++1],
+
+134 (
+n_»guÏr
+ - 1 -
+i
+è* \17(\19
+p_th»ad_p\9d\96\9ae_d©a
+));
+
+136
+n_»guÏr
+--;
+
+137
+t
+->
+n_»guÏr
+ =\82_regular;
+
+143 \ f
+i
+ = 0; i <
+n_cu¡om
+; i++) {
+
+144 ià(
+t
+->
+cu¡om
+[
+i
+].
+p\9d\96\9ae_id
+ !ð
+»q
+->pipeline_id)
+
+147 ià(
+i
+ <
+n_cu¡om
+ - 1)
+
+148
+ `memýy
+(&
+t
+->
+cu¡om
+[
+i
+],
+
+149 &
+t
+->
+cu¡om
+[
+i
++1],
+
+150 (
+n_cu¡om
+ - 1 -
+i
+è* \17(\19
+p_th»ad_p\9d\96\9ae_d©a
+));
+
+152
+n_cu¡om
+--;
+
+153
+t
+->
+n_cu¡om
+ =\82_custom;
+
+160
+ }
+}
+
+163
+ $th»ad_msg_»q_hªdË
+(\19
+p_th»ad_d©a
+ *
+t
+)
+
+165 \1e*
+msg_±r
+;
+
+166 \19
+th»ad_msg_»q
+ *
+»q
+;
+
+167 \19
+th»ad_msg_r¥
+ *
+r¥
+;
+
+169
+msg_±r
+ =
+ `th»ad_msg_»cv
+(
+t
+->
+msgq_\9a
+);
+
+170
+»q
+ =
+msg_±r
+;
+
+171
+r¥
+ =
+msg_±r
+;
+
+173 ià(
+»q
+ !ð
+NULL
+)
+
+174 \1a
+»q
+->
+ty³
+) {
+
+175 \ 4
+THREAD_MSG_REQ_PIPELINE_ENABLE
+: {
+
+176
+r¥
+->
+¡©us
+ =
+ `th»ad_p\9d\96\9ae_\92abË
+(
+t
+,
+
+177 (\19
+th»ad_p\9d\96\9ae_\92abË_msg_»q
+ *è
+»q
+);
+
+178
+ `th»ad_msg_£nd
+(
+t
+->
+msgq_out
+,
+r¥
+);
+
+182 \ 4
+THREAD_MSG_REQ_PIPELINE_DISABLE
+: {
+
+183
+r¥
+->
+¡©us
+ =
+ `th»ad_p\9d\96\9ae_di§bË
+(
+t
+,
+
+184 (\19
+th»ad_p\9d\96\9ae_di§bË_msg_»q
+ *è
+»q
+);
+
+185
+ `th»ad_msg_£nd
+(
+t
+->
+msgq_out
+,
+r¥
+);
+
+189 \ 4
+THREAD_MSG_REQ_HEADROOM_READ
+: {
+
+190 \19
+th»ad_h\97droom_»ad_msg_r¥
+ *
+r¥
+ =
+
+191 (\19
+th»ad_h\97droom_»ad_msg_r¥
+ *)
+
+192
+»q
+;
+
+194
+r¥
+->
+h\97droom_¿tio
+ =
+t
+->headroom_ratio;
+
+195
+r¥
+->
+¡©us
+ = 0;
+
+196
+ `th»ad_msg_£nd
+(
+t
+->
+msgq_out
+,
+r¥
+);
+
+204
+ }
+}
+
+207
+ $th»ad_h\97droom_upd©e
+(\19
+p_th»ad_d©a
+ *
+t
+,
+u\9at64_t
+
+time
+)
+
+209
+u\9at64_t
+
+time_diff
+ =
+time
+ -
+t
+->
+h\97droom_time
+;
+
+211
+t
+->
+h\97droom_¿tio
+ =
+
+212 ((\bè
+t
+->
+h\97droom_cyþes
+è/ ((\bè
+time_diff
+);
+
+214
+t
+->
+h\97droom_cyþes
+ = 0;
+
+215
+t
+->
+h\97droom_time
+ =
+ `¹e_rdtsc_´eci£
+();
+
+216
+ }
+}
+
+219
+ $p_th»ad
+(\1e*
+¬g
+)
+
+221 \19
+p_·¿ms
+ *
+p
+ = (\19p_·¿m *è
+¬g
+;
+
+222
+u\9at32_t
+
+cÜe_id
+ =
+ `¹e_lcÜe_id
+(),
+i
+,
+j
+;
+
+223 \19
+p_th»ad_d©a
+ *
+t
+ = &
+p
+->
+th»ad_d©a
+[
+cÜe_id
+];
+
+225 \ f
+i
+ = 0; ; i++) {
+
+226
+u\9at32_t
+
+n_»guÏr
+ =
+ `RTE_MIN
+(
+t
+->n_»guÏr,
+ `RTE_DIM
+Ñ->
+»guÏr
+));
+
+227
+u\9at32_t
+
+n_cu¡om
+ =
+ `RTE_MIN
+(
+t
+->n_cu¡om,
+ `RTE_DIM
+Ñ->
+cu¡om
+));
+
+230 \ f
+j
+ = 0; j <
+n_»guÏr
+; j++) {
+
+231 \19
+p_th»ad_p\9d\96\9ae_d©a
+ *
+d©a
+ = &
+t
+->
+»guÏr
+[
+j
+];
+
+232 \19
+p\9d\96\9ae
+ *
+p
+ =
+d©a
+->
+be
+;
+
+234
+ `PIPELINE_RUN_REGULAR
+(
+t
+,
+p
+);
+
+238 \ f
+j
+ = 0; j <
+n_cu¡om
+; j++) {
+
+239 \19
+p_th»ad_p\9d\96\9ae_d©a
+ *
+d©a
+ = &
+t
+->
+cu¡om
+[
+j
+];
+
+241
+ `PIPELINE_RUN_CUSTOM
+(
+t
+,
+d©a
+);
+
+245 ià((
+i
+ & 0xF) == 0) {
+
+246
+u\9at64_t
+
+time
+ =
+ `¹e_g\91_tsc_cyþes
+();
+
+247
+u\9at64_t
+
+t_d\97dl\9ae
+ =
+UINT64_MAX
+;
+
+249 ià(
+time
+ <
+t
+->
+d\97dl\9ae
+)
+
+253 \ f
+j
+ = 0; j <
+n_»guÏr
+; j++) {
+
+254 \19
+p_th»ad_p\9d\96\9ae_d©a
+ *
+d©a
+ =
+
+255 &
+t
+->
+»guÏr
+[
+j
+];
+
+256
+u\9at64_t
+
+p_d\97dl\9ae
+ =
+d©a
+->
+d\97dl\9ae
+;
+
+258 ià(
+p_d\97dl\9ae
+ <ð
+time
+) {
+
+259
+d©a
+->
+ `f_tim\94
+(d©a->
+be
+);
+
+260
+p_d\97dl\9ae
+ =
+time
+ +
+d©a
+->
+tim\94_³riod
+;
+
+261
+d©a
+->
+d\97dl\9ae
+ =
+p_d\97dl\9ae
+;
+
+264 ià(
+p_d\97dl\9ae
+ <
+t_d\97dl\9ae
+)
+
+265
+t_d\97dl\9ae
+ =
+p_d\97dl\9ae
+;
+
+269 \ f
+j
+ = 0; j <
+n_cu¡om
+; j++) {
+
+270 \19
+p_th»ad_p\9d\96\9ae_d©a
+ *
+d©a
+ =
+
+271 &
+t
+->
+cu¡om
+[
+j
+];
+
+272
+u\9at64_t
+
+p_d\97dl\9ae
+ =
+d©a
+->
+d\97dl\9ae
+;
+
+274 ià(
+p_d\97dl\9ae
+ <ð
+time
+) {
+
+275
+d©a
+->
+ `f_tim\94
+(d©a->
+be
+);
+
+276
+p_d\97dl\9ae
+ =
+time
+ +
+d©a
+->
+tim\94_³riod
+;
+
+277
+d©a
+->
+d\97dl\9ae
+ =
+p_d\97dl\9ae
+;
+
+280 ià(
+p_d\97dl\9ae
+ <
+t_d\97dl\9ae
+)
+
+281
+t_d\97dl\9ae
+ =
+p_d\97dl\9ae
+;
+
+286
+u\9at64_t
+
+d\97dl\9ae
+ =
+t
+->
+th»ad_»q_d\97dl\9ae
+;
+
+288 ià(
+d\97dl\9ae
+ <ð
+time
+) {
+
+289
+ `th»ad_msg_»q_hªdË
+(
+t
+);
+
+290
+ `th»ad_h\97droom_upd©e
+(
+t
+,
+time
+);
+
+291
+d\97dl\9ae
+ =
+time
+ +
+t
+->
+tim\94_³riod
+;
+
+292
+t
+->
+th»ad_»q_d\97dl\9ae
+ =
+d\97dl\9ae
+;
+
+295 ià(
+d\97dl\9ae
+ <
+t_d\97dl\9ae
+)
+
+296
+t_d\97dl\9ae
+ =
+d\97dl\9ae
+;
+
+300
+t
+->
+d\97dl\9ae
+ =
+t_d\97dl\9ae
+;
+
+305
+ }
+}
+
+ @vnf_common/thread.h
+
+17 #iâdeà
+THREAD_H_
+
+
+18 \ 1
+ #THREAD_H_
+
+
+ )
+
+20 \ 2
+ ~"p.h
+"
+
+21 \ 2
+ ~"p\9d\96\9ae_be.h
+"
+
+23 \f
+ eth»ad_msg_»q_ty³
+ {
+
+24
+ mTHREAD_MSG_REQ_PIPELINE_ENABLE
+ = 0,
+
+25
+ mTHREAD_MSG_REQ_PIPELINE_DISABLE
+,
+
+26
+ mTHREAD_MSG_REQ_HEADROOM_READ
+,
+
+27
+ mTHREAD_MSG_REQS
+
+
+30 \19
+ sth»ad_msg_»q
+ {
+
+31 \f
+th»ad_msg_»q_ty³
+
+ mty³
+;
+
+34 \19
+ sth»ad_msg_r¥
+ {
+
+35 \12
+ m¡©us
+;
+
+41 \19
+ sth»ad_p\9d\96\9ae_\92abË_msg_»q
+ {
+
+42 \f
+th»ad_msg_»q_ty³
+
+ mty³
+;
+
+44
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+45 \1e*
+ mbe
+;
+
+46
+p\9d\96\9ae_be_Ý_run
+
+ mf_run
+;
+
+47
+p\9d\96\9ae_be_Ý_tim\94
+
+ mf_tim\94
+;
+
+48
+u\9at64_t
+
+ mtim\94_³riod
+;
+
+51 \19
+ sth»ad_p\9d\96\9ae_\92abË_msg_r¥
+ {
+
+52 \12
+ m¡©us
+;
+
+58 \19
+ sth»ad_p\9d\96\9ae_di§bË_msg_»q
+ {
+
+59 \f
+th»ad_msg_»q_ty³
+
+ mty³
+;
+
+61
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+64 \19
+ sth»ad_p\9d\96\9ae_di§bË_msg_r¥
+ {
+
+65 \12
+ m¡©us
+;
+
+71 \19
+ sth»ad_h\97droom_»ad_msg_»q
+ {
+
+72 \f
+th»ad_msg_»q_ty³
+
+ mty³
+;
+
+75 \19
+ sth»ad_h\97droom_»ad_msg_r¥
+ {
+
+76 \12
+ m¡©us
+;
+
+78 \b
+ mh\97droom_¿tio
+;
+
+ @vnf_common/thread_fe.c
+
+17 \ 2
+ ~<¹e_commÚ.h
+>
+
+18 \ 2
+ ~<¹e_r\9ag.h
+>
+
+19 \ 2
+ ~<¹e_m®loc.h
+>
+
+20 \ 2
+ ~<cmdl\9ae_rdl\9ae.h
+>
+
+21 \ 2
+ ~<cmdl\9ae_·r£.h
+>
+
+22 \ 2
+ ~<cmdl\9ae_·r£_num.h
+>
+
+23 \ 2
+ ~<cmdl\9ae_·r£_¡r\9ag.h
+>
+
+24 \ 2
+ ~<cmdl\9ae_·r£_\9daddr.h
+>
+
+25 \ 2
+ ~<cmdl\9ae_·r£_\91h\94addr.h
+>
+
+26 \ 2
+ ~<cmdl\9ae_sock\91.h
+>
+
+27 \ 2
+ ~<cmdl\9ae.h
+>
+
+29 \ 2
+ ~"th»ad.h
+"
+
+30 \ 2
+ ~"th»ad_ã.h
+"
+
+31 \ 2
+ ~"p\9d\96\9ae.h
+"
+
+32 \ 2
+ ~"p\9d\96\9ae_commÚ_ã.h
+"
+
+33 \ 2
+ ~"p.h
+"
+
+35 \18
+\9al\9ae
+ \1e*
+
+36
+ $th»ad_msg_£nd_»cv
+(\19
+p_·¿ms
+ *
+p
+,
+
+37
+u\9at32_t
+
+sock\91_id
+, u\9at32_\88
+cÜe_id
+, u\9at32_\88
+ht_id
+,
+
+38 \1e*
+msg
+,
+
+39
+u\9at32_t
+
+timeout_ms
+)
+
+41 \19
+¹e_r\9ag
+ *
+r_»q
+ =
+ `p_th»ad_msgq_\9a_g\91
+(
+p
+,
+
+42
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+);
+
+43 if(
+r_»q
+ =ð
+NULL
+)
+
+44 \15
+NULL
+;
+
+45 \19
+¹e_r\9ag
+ *
+r_r¥
+ =
+ `p_th»ad_msgq_out_g\91
+(
+p
+,
+
+46
+sock\91_id
+,
+cÜe_id
+,
+ht_id
+);
+
+47 if(
+r_r¥
+ =ð
+NULL
+)
+
+48 \15
+NULL
+;
+
+49
+u\9at64_t
+
+hz
+ =
+ `¹e_g\91_tsc_hz
+();
+
+50 \1e*
+msg_»cv
+;
+
+51
+u\9at64_t
+
+d\97dl\9ae
+;
+
+52 \12
+¡©us
+;
+
+56
+¡©us
+ =
+ `¹e_r\9ag_¥_\92queue
+(
+r_»q
+, (\1e*è
+msg
+);
+
+57 } \1f
+¡©us
+ =ð-
+ENOBUFS
+);
+
+60
+d\97dl\9ae
+ = (
+timeout_ms
+) ?
+
+61 (
+ `¹e_rdtsc
+(è+ ((
+hz
+ *
+timeout_ms
+) / 1000)) :
+
+62
+UINT64_MAX
+;
+
+65 ià(
+ `¹e_rdtsc
+(è>
+d\97dl\9ae
+)
+
+66 \15
+NULL
+;
+
+68
+¡©us
+ =
+ `¹e_r\9ag_sc_dequeue
+(
+r_r¥
+, &
+msg_»cv
+);
+
+69 } \1f
+¡©us
+ != 0);
+
+71 \15
+msg_»cv
+;
+
+72
+ }
+}
+
+75
+ $p_p\9d\96\9ae_\92abË
+(\19
+p_·¿ms
+ *
+p
+,
+
+76
+u\9at32_t
+
+sock\91_id
+,
+
+77
+u\9at32_t
+
+cÜe_id
+,
+
+78
+u\9at32_t
+
+hy³r_th_id
+,
+
+79
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+81 \19
+th»ad_p\9d\96\9ae_\92abË_msg_»q
+ *
+»q
+;
+
+82 \19
+th»ad_p\9d\96\9ae_\92abË_msg_r¥
+ *
+r¥
+;
+
+83 \12
+th»ad_id
+;
+
+84 \19
+p_p\9d\96\9ae_d©a
+ *
+p
+;
+
+85 \19
+p_p\9d\96\9ae_·¿ms
+ *
+p_·¿ms
+;
+
+86 \19
+p\9d\96\9ae_ty³
+ *
+p_ty³
+;
+
+87 \12
+¡©us
+;
+
+89 ià(
+p
+ =ð
+NULL
+)
+
+92
+th»ad_id
+ =
+ `ýu_cÜe_m_g\91_lcÜe_id
+(
+p
+->
+cÜe_m
+,
+
+93
+sock\91_id
+,
+
+94
+cÜe_id
+,
+
+95
+hy³r_th_id
+);
+
+97 ià((
+th»ad_id
+ < 0è|| !
+ `p_cÜe_is_\92abËd
+(
+p
+,\81hread_id))
+
+100 ià(
+ `p_p\9d\96\9ae_d©a
+(
+p
+,
+p\9d\96\9ae_id
+è=ð
+NULL
+)
+
+103
+p
+ = &
+p
+->
+p\9d\96\9ae_d©a
+[
+p\9d\96\9ae_id
+];
+
+104
+p_·¿ms
+ = &
+p
+->
+p\9d\96\9ae_·¿ms
+[
+p\9d\96\9ae_id
+];
+
+105
+p_ty³
+ =
+ `p_p\9d\96\9ae_ty³_f\9ad
+(
+p
+,
+p_·¿ms
+->
+ty³
+);
+
+106 ià(
+p_ty³
+ =ð
+NULL
+)
+
+109 ià(
+p
+->
+\92abËd
+ == 1)
+
+112
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+113 ià(
+»q
+ =ð
+NULL
+)
+
+116
+»q
+->
+ty³
+ =
+THREAD_MSG_REQ_PIPELINE_ENABLE
+;
+
+117
+»q
+->
+p\9d\96\9ae_id
+ =\85ipeline_id;
+
+118
+»q
+->
+be
+ =
+p
+->be;
+
+119
+»q
+->
+f_run
+ =
+p_ty³
+->
+be_Ýs
+->f_run;
+
+120
+»q
+->
+f_tim\94
+ =
+p_ty³
+->
+be_Ýs
+->f_timer;
+
+121
+»q
+->
+tim\94_³riod
+ =
+p
+->timer_period;
+
+123
+r¥
+ =
+ `th»ad_msg_£nd_»cv
+(
+p
+,
+
+124
+sock\91_id
+,
+cÜe_id
+,
+hy³r_th_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+125 ià(
+r¥
+ =ð
+NULL
+)
+
+128
+¡©us
+ =
+r¥
+->status;
+
+129
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+131 ià(
+¡©us
+ != 0)
+
+134
+p
+->
+\92abËd
+ = 1;
+
+136
+ }
+}
+
+139
+ $p_p\9d\96\9ae_di§bË
+(\19
+p_·¿ms
+ *
+p
+,
+
+140
+u\9at32_t
+
+sock\91_id
+,
+
+141
+u\9at32_t
+
+cÜe_id
+,
+
+142
+u\9at32_t
+
+hy³r_th_id
+,
+
+143
+u\9at32_t
+
+p\9d\96\9ae_id
+)
+
+145 \19
+th»ad_p\9d\96\9ae_di§bË_msg_»q
+ *
+»q
+;
+
+146 \19
+th»ad_p\9d\96\9ae_di§bË_msg_r¥
+ *
+r¥
+;
+
+147 \12
+th»ad_id
+;
+
+148 \19
+p_p\9d\96\9ae_d©a
+ *
+p
+;
+
+149 \12
+¡©us
+;
+
+151 ià(
+p
+ =ð
+NULL
+)
+
+154
+th»ad_id
+ =
+ `ýu_cÜe_m_g\91_lcÜe_id
+(
+p
+->
+cÜe_m
+,
+
+155
+sock\91_id
+,
+
+156
+cÜe_id
+,
+
+157
+hy³r_th_id
+);
+
+159 ià((
+th»ad_id
+ < 0è|| !
+ `p_cÜe_is_\92abËd
+(
+p
+,\81hread_id))
+
+162 ià(
+ `p_p\9d\96\9ae_d©a
+(
+p
+,
+p\9d\96\9ae_id
+è=ð
+NULL
+)
+
+165
+p
+ = &
+p
+->
+p\9d\96\9ae_d©a
+[
+p\9d\96\9ae_id
+];
+
+167 ià(
+p
+->
+\92abËd
+ == 0)
+
+170
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+171 ià(
+»q
+ =ð
+NULL
+)
+
+174
+»q
+->
+ty³
+ =
+THREAD_MSG_REQ_PIPELINE_DISABLE
+;
+
+175
+»q
+->
+p\9d\96\9ae_id
+ =\85ipeline_id;
+
+177
+r¥
+ =
+ `th»ad_msg_£nd_»cv
+(
+p
+,
+
+178
+sock\91_id
+,
+cÜe_id
+,
+hy³r_th_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+180 ià(
+r¥
+ =ð
+NULL
+)
+
+183
+¡©us
+ =
+r¥
+->status;
+
+184
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+186 ià(
+¡©us
+ != 0)
+
+189
+p
+->
+\92abËd
+ = 0;
+
+191
+ }
+}
+
+194
+ $p_th»ad_h\97droom
+(\19
+p_·¿ms
+ *
+p
+,
+
+195
+u\9at32_t
+
+sock\91_id
+,
+
+196
+u\9at32_t
+
+cÜe_id
+,
+
+197
+u\9at32_t
+
+hy³r_th_id
+)
+
+199 \19
+th»ad_h\97droom_»ad_msg_»q
+ *
+»q
+;
+
+200 \19
+th»ad_h\97droom_»ad_msg_r¥
+ *
+r¥
+;
+
+201 \12
+th»ad_id
+;
+
+202 \12
+¡©us
+;
+
+204 ià(
+p
+ =ð
+NULL
+)
+
+207
+th»ad_id
+ =
+ `ýu_cÜe_m_g\91_lcÜe_id
+(
+p
+->
+cÜe_m
+,
+
+208
+sock\91_id
+,
+
+209
+cÜe_id
+,
+
+210
+hy³r_th_id
+);
+
+212 ià((
+th»ad_id
+ < 0è|| !
+ `p_cÜe_is_\92abËd
+(
+p
+,\81hread_id))
+
+215
+»q
+ =
+ `p_msg_®loc
+(
+p
+);
+
+216 ià(
+»q
+ =ð
+NULL
+)
+
+219
+»q
+->
+ty³
+ =
+THREAD_MSG_REQ_HEADROOM_READ
+;
+
+221
+r¥
+ =
+ `th»ad_msg_£nd_»cv
+(
+p
+,
+
+222
+sock\91_id
+,
+cÜe_id
+,
+hy³r_th_id
+,
+»q
+,
+MSG_TIMEOUT_DEFAULT
+);
+
+224 ià(
+r¥
+ =ð
+NULL
+)
+
+227
+¡©us
+ =
+r¥
+->status;
+
+229 ià(
+¡©us
+ != 0)
+
+232
+ `´\9atf
+("%.3f%%\n",
+r¥
+->
+h\97droom_¿tio
+ * 100);
+
+235
+ `p_msg_ä\93
+(
+p
+,
+r¥
+);
+
+238
+ }
+}
+
+244 \19
+ scmd_p\9d\96\9ae_\92abË_»suÉ
+ {
+
+245
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_¡r\9ag
+;
+
+246
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_id_¡r\9ag
+;
+
+247
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp\9d\96\9ae_¡r\9ag
+;
+
+248
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+249
+cmdl\9ae_fixed_¡r\9ag_t
+
+ m\92abË_¡r\9ag
+;
+
+253
+ $cmd_p\9d\96\9ae_\92abË_·r£d
+(
+
+254 \1e*
+·r£d_»suÉ
+,
+
+255
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+256 \1e*
+d©a
+)
+
+258 \19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+259 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+260 \12
+¡©us
+;
+
+261
+u\9at32_t
+
+cÜe_id
+,
+sock\91_id
+,
+hy³r_th_id
+;
+
+263 ià(
+ `·r£_p\9d\96\9ae_cÜe
+(&
+sock\91_id
+,
+
+264 &
+cÜe_id
+,
+
+265 &
+hy³r_th_id
+,
+
+266
+·¿ms
+->
+t_id_¡r\9ag
+) != 0) {
+
+267
+ `´\9atf
+("Command failed\n");
+
+271
+¡©us
+ =
+ `p_p\9d\96\9ae_\92abË
+(
+p
+,
+
+272
+sock\91_id
+,
+
+273
+cÜe_id
+,
+
+274
+hy³r_th_id
+,
+
+275
+·¿ms
+->
+p\9d\96\9ae_id
+);
+
+277 ià(
+¡©us
+ != 0)
+
+278
+ `´\9atf
+("Command failed\n");
+
+279
+ }
+}
+
+281
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_\92abË_t_¡r\9ag
+ =
+
+282
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+,
+t_¡r\9ag
+, "t");
+
+284
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_\92abË_t_id_¡r\9ag
+ =
+
+285
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+,
+t_id_¡r\9ag
+,
+
+286
+NULL
+);
+
+288
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_\92abË_p\9d\96\9ae_¡r\9ag
+ =
+
+289
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+,
+p\9d\96\9ae_¡r\9ag
+,
+
+292
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_p\9d\96\9ae_\92abË_p\9d\96\9ae_id
+ =
+
+293
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+294
+UINT32
+);
+
+296
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_\92abË_\92abË_¡r\9ag
+ =
+
+297
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_\92abË_»suÉ
+,
+\92abË_¡r\9ag
+,
+
+300
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_p\9d\96\9ae_\92abË
+ = {
+
+301 .
+f
+ =
+cmd_p\9d\96\9ae_\92abË_·r£d
+,
+
+302 .
+ gd©a
+ =
+NULL
+,
+
+303 .
+ gh\96p_¡r
+ = "Enable\85ipeline on specified core",
+
+304 .
+ gtok\92s
+ = {
+
+305 (\1e*)&
+cmd_p\9d\96\9ae_\92abË_t_¡r\9ag
+,
+
+306 (\1e*)&
+cmd_p\9d\96\9ae_\92abË_t_id_¡r\9ag
+,
+
+307 (\1e*)&
+cmd_p\9d\96\9ae_\92abË_p\9d\96\9ae_¡r\9ag
+,
+
+308 (\1e*)&
+cmd_p\9d\96\9ae_\92abË_p\9d\96\9ae_id
+,
+
+309 (\1e*)&
+cmd_p\9d\96\9ae_\92abË_\92abË_¡r\9ag
+,
+
+310
+NULL
+,
+
+318 \19
+ scmd_p\9d\96\9ae_di§bË_»suÉ
+ {
+
+319
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_¡r\9ag
+;
+
+320
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_id_¡r\9ag
+;
+
+321
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mp\9d\96\9ae_¡r\9ag
+;
+
+322
+u\9at32_t
+
+ mp\9d\96\9ae_id
+;
+
+323
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mdi§bË_¡r\9ag
+;
+
+327
+ $cmd_p\9d\96\9ae_di§bË_·r£d
+(
+
+328 \1e*
+·r£d_»suÉ
+,
+
+329
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+330 \1e*
+d©a
+)
+
+332 \19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+333 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+334 \12
+¡©us
+;
+
+335
+u\9at32_t
+
+cÜe_id
+,
+sock\91_id
+,
+hy³r_th_id
+;
+
+337 ià(
+ `·r£_p\9d\96\9ae_cÜe
+(&
+sock\91_id
+,
+
+338 &
+cÜe_id
+,
+
+339 &
+hy³r_th_id
+,
+
+340
+·¿ms
+->
+t_id_¡r\9ag
+) != 0) {
+
+341
+ `´\9atf
+("Command failed\n");
+
+345
+¡©us
+ =
+ `p_p\9d\96\9ae_di§bË
+(
+p
+,
+
+346
+sock\91_id
+,
+
+347
+cÜe_id
+,
+
+348
+hy³r_th_id
+,
+
+349
+·¿ms
+->
+p\9d\96\9ae_id
+);
+
+351 ià(
+¡©us
+ != 0)
+
+352
+ `´\9atf
+("Command failed\n");
+
+353
+ }
+}
+
+355
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_di§bË_t_¡r\9ag
+ =
+
+356
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+,
+t_¡r\9ag
+, "t");
+
+358
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_di§bË_t_id_¡r\9ag
+ =
+
+359
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+,
+t_id_¡r\9ag
+,
+
+360
+NULL
+);
+
+362
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_di§bË_p\9d\96\9ae_¡r\9ag
+ =
+
+363
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+,
+
+364
+p\9d\96\9ae_¡r\9ag
+, "pipeline");
+
+366
+cmdl\9ae_·r£_tok\92_num_t
+
+ gcmd_p\9d\96\9ae_di§bË_p\9d\96\9ae_id
+ =
+
+367
+TOKEN_NUM_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+,
+p\9d\96\9ae_id
+,
+
+368
+UINT32
+);
+
+370
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_p\9d\96\9ae_di§bË_di§bË_¡r\9ag
+ =
+
+371
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_p\9d\96\9ae_di§bË_»suÉ
+,
+di§bË_¡r\9ag
+,
+
+374
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_p\9d\96\9ae_di§bË
+ = {
+
+375 .
+f
+ =
+cmd_p\9d\96\9ae_di§bË_·r£d
+,
+
+376 .
+ gd©a
+ =
+NULL
+,
+
+377 .
+ gh\96p_¡r
+ = "Disable\85ipeline on specified core",
+
+378 .
+ gtok\92s
+ = {
+
+379 (\1e*)&
+cmd_p\9d\96\9ae_di§bË_t_¡r\9ag
+,
+
+380 (\1e*)&
+cmd_p\9d\96\9ae_di§bË_t_id_¡r\9ag
+,
+
+381 (\1e*)&
+cmd_p\9d\96\9ae_di§bË_p\9d\96\9ae_¡r\9ag
+,
+
+382 (\1e*)&
+cmd_p\9d\96\9ae_di§bË_p\9d\96\9ae_id
+,
+
+383 (\1e*)&
+cmd_p\9d\96\9ae_di§bË_di§bË_¡r\9ag
+,
+
+384
+NULL
+,
+
+393 \19
+ scmd_th»ad_h\97droom_»suÉ
+ {
+
+394
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_¡r\9ag
+;
+
+395
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mt_id_¡r\9ag
+;
+
+396
+cmdl\9ae_fixed_¡r\9ag_t
+
+ mh\97droom_¡r\9ag
+;
+
+400
+ $cmd_th»ad_h\97droom_·r£d
+(
+
+401 \1e*
+·r£d_»suÉ
+,
+
+402
+__¹e_unu£d
+ \19
+cmdl\9ae
+ *
+þ
+,
+
+403 \1e*
+d©a
+)
+
+405 \19
+cmd_th»ad_h\97droom_»suÉ
+ *
+·¿ms
+ =
+·r£d_»suÉ
+;
+
+406 \19
+p_·¿ms
+ *
+p
+ =
+d©a
+;
+
+407 \12
+¡©us
+;
+
+408
+u\9at32_t
+
+cÜe_id
+,
+sock\91_id
+,
+hy³r_th_id
+;
+
+410 ià(
+ `·r£_p\9d\96\9ae_cÜe
+(&
+sock\91_id
+,
+
+411 &
+cÜe_id
+,
+
+412 &
+hy³r_th_id
+,
+
+413
+·¿ms
+->
+t_id_¡r\9ag
+) != 0) {
+
+414
+ `´\9atf
+("Command failed\n");
+
+418
+¡©us
+ =
+ `p_th»ad_h\97droom
+(
+p
+,
+
+419
+sock\91_id
+,
+
+420
+cÜe_id
+,
+
+421
+hy³r_th_id
+);
+
+423 ià(
+¡©us
+ != 0)
+
+424
+ `´\9atf
+("Command failed\n");
+
+425
+ }
+}
+
+427
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_th»ad_h\97droom_t_¡r\9ag
+ =
+
+428
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_th»ad_h\97droom_»suÉ
+,
+
+429
+t_¡r\9ag
+, "t");
+
+431
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_th»ad_h\97droom_t_id_¡r\9ag
+ =
+
+432
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_th»ad_h\97droom_»suÉ
+,
+
+433
+t_id_¡r\9ag
+,
+NULL
+);
+
+435
+cmdl\9ae_·r£_tok\92_¡r\9ag_t
+
+ gcmd_th»ad_h\97droom_h\97droom_¡r\9ag
+ =
+
+436
+TOKEN_STRING_INITIALIZER
+(\19
+cmd_th»ad_h\97droom_»suÉ
+,
+
+437
+h\97droom_¡r\9ag
+, "headroom");
+
+439
+cmdl\9ae_·r£_\9a¡_t
+
+ gcmd_th»ad_h\97droom
+ = {
+
+440 .
+f
+ =
+cmd_th»ad_h\97droom_·r£d
+,
+
+441 .
+ gd©a
+ =
+NULL
+,
+
+442 .
+ gh\96p_¡r
+ = "Display\81hread headroom",
+
+443 .
+ gtok\92s
+ = {
+
+444 (\1e*)&
+cmd_th»ad_h\97droom_t_¡r\9ag
+,
+
+445 (\1e*)&
+cmd_th»ad_h\97droom_t_id_¡r\9ag
+,
+
+446 (\1e*)&
+cmd_th»ad_h\97droom_h\97droom_¡r\9ag
+,
+
+447
+NULL
+,
+
+452 \18
+cmdl\9ae_·r£_ùx_t
+
+ gth»ad_cmds
+[] = {
+
+453 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_p\9d\96\9ae_\92abË
+,
+
+454 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_p\9d\96\9ae_di§bË
+,
+
+455 (
+cmdl\9ae_·r£_\9a¡_t
+ *è&
+cmd_th»ad_h\97droom
+,
+
+456
+NULL
+,
+
+460
+ $p_p\9d\96\9ae_th»ad_cmd_push
+(\19
+p_·¿ms
+ *
+p
+)
+
+462
+u\9at32_t
+
+n_cmds
+,
+i
+;
+
+465
+n_cmds
+ =
+ `RTE_DIM
+(
+th»ad_cmds
+) - 1;
+
+466 ià(
+n_cmds
+ >
+APP_MAX_CMDS
+ -
+p
+->n_cmds)
+
+467 \15 -
+ENOMEM
+;
+
+470
+ `memýy
+(&
+p
+->
+cmds
+[p->
+n_cmds
+],
+th»ad_cmds
+,
+
+471
+n_cmds
+ * \17(
+cmdl\9ae_·r£_ùx_t
+));
+
+473 \ f
+i
+ = 0; i <
+n_cmds
+; i++)
+
+474
+p
+->
+cmds
+[p->
+n_cmds
+ +
+i
+]->
+d©a
+ =\87pp;
+
+476
+p
+->
+n_cmds
+ +=\82_cmds;
+
+477
+p
+->
+cmds
+[p->
+n_cmds
+] =
+NULL
+;
+
+480
+ }
+}
+
+ @vnf_common/thread_fe.h
+
+17 #iâdeà
+THREAD_FE_H_
+
+
+18 \ 1
+ #THREAD_FE_H_
+
+
+ )
+
+20 \18
+\9al\9ae
+ \19
+¹e_r\9ag
+ *
+
+21
+ $p_th»ad_msgq_\9a_g\91
+(\19
+p_·¿ms
+ *
+p
+,
+
+22
+u\9at32_t
+
+sock\91_id
+, u\9at32_\88
+cÜe_id
+, u\9at32_\88
+ht_id
+)
+
+24 \ 5
+msgq_Çme
+[32];
+
+25
+ssize_t
+
+·¿m_idx
+;
+
+27
+ `¢´\9atf
+(
+msgq_Çme
+, \17(msgq_name),
+
+28 "MSGQ-REQ-CORE-s%"
+PRIu32
+ "c%" PRIu32 "%s",
+
+29
+sock\91_id
+,
+
+30
+cÜe_id
+,
+
+31 (
+ht_id
+) ? "h" : "");
+
+32
+·¿m_idx
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+msgq_·¿ms
+,
+msgq_Çme
+);
+
+34 ià(
+·¿m_idx
+ < 0)
+
+35 \15
+NULL
+;
+
+37 \15
+p
+->
+msgq
+[
+·¿m_idx
+];
+
+38
+ }
+}
+
+40 \18
+\9al\9ae
+ \19
+¹e_r\9ag
+ *
+
+41
+ $p_th»ad_msgq_out_g\91
+(\19
+p_·¿ms
+ *
+p
+,
+
+42
+u\9at32_t
+
+sock\91_id
+, u\9at32_\88
+cÜe_id
+, u\9at32_\88
+ht_id
+)
+
+44 \ 5
+msgq_Çme
+[32];
+
+45
+ssize_t
+
+·¿m_idx
+;
+
+47
+ `¢´\9atf
+(
+msgq_Çme
+, \17(msgq_name),
+
+48 "MSGQ-RSP-CORE-s%"
+PRIu32
+ "c%" PRIu32 "%s",
+
+49
+sock\91_id
+,
+
+50
+cÜe_id
+,
+
+51 (
+ht_id
+) ? "h" : "");
+
+52
+·¿m_idx
+ =
+ `APP_PARAM_FIND
+(
+p
+->
+msgq_·¿ms
+,
+msgq_Çme
+);
+
+54 ià(
+·¿m_idx
+ < 0)
+
+55 \15
+NULL
+;
+
+57 \15
+p
+->
+msgq
+[
+·¿m_idx
+];
+
+59
+ }
+}
+
+62
+p_p\9d\96\9ae_th»ad_cmd_push
+(\19
+p_·¿ms
+ *
+p
+);
+
+65
+p_p\9d\96\9ae_\92abË
+(\19
+p_·¿ms
+ *
+p
+,
+
+66
+u\9at32_t
+
+cÜe_id
+,
+
+67
+u\9at32_t
+
+sock\91_id
+,
+
+68
+u\9at32_t
+
+hy³r_th_id
+,
+
+69
+u\9at32_t
+
+p\9d\96\9ae_id
+);
+
+72
+p_p\9d\96\9ae_di§bË
+(\19
+p_·¿ms
+ *
+p
+,
+
+73
+u\9at32_t
+
+cÜe_id
+,
+
+74
+u\9at32_t
+
+sock\91_id
+,
+
+75
+u\9at32_t
+
+hy³r_th_id
+,
+
+76
+u\9at32_t
+
+p\9d\96\9ae_id
+);
+
+79
+p_th»ad_h\97droom
+(\19
+p_·¿ms
+ *
+p
+,
+
+80
+u\9at32_t
+
+cÜe_id
+,
+
+81
+u\9at32_t
+
+sock\91_id
+,
+
+82
+u\9at32_t
+
+hy³r_th_id
+);
+
+ @vnf_common/vnf_common.c
+
+17 \ 2
+ ~<¡d\9at.h
+>
+
+18 \ 2
+ ~<¡dio.h
+>
+
+19 \ 2
+ ~"vnf_commÚ.h
+"
+
+20 \ 2
+ ~"p\9d\96\9ae_¬picmp_be.h
+"
+
+21 #iâdeà
+VNF_ACL
+
+
+22 \ 2
+ ~"lib_¬p.h
+"
+
+25
+u\9at8_t
+
+ g\9a_pÜt_d\9c_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+26
+u\9at8_t
+
+ g´v_to_pub_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+27
+u\9at8_t
+
+ gpub_to_´v_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+28
+u\9at8_t
+
+ g´v_\9a_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+29
+u\9at8_t
+
+ g´v_que_pÜt_\9adex
+[
+PIPELINE_MAX_PORT_IN
+];
+
+30
+u\9at8_t
+
+ g\9a_pÜt_eg»ss_´v
+[
+PIPELINE_MAX_PORT_IN
+];
+
+32
+u\9at8_t
+
+ $g\91_\9a_pÜt_d\9c
+(
+u\9at8_t
+
+\9a_pÜt_id
+)
+
+34 \15
+\9a_pÜt_d\9c_a
+[
+\9a_pÜt_id
+];
+
+35
+ }
+}
+
+37
+u\9at8_t
+
+ $is_phy_pÜt_´iv\8b
+(
+u\9at16_t
+
+phy_pÜt
+)
+
+39 \15
+\9a_pÜt_d\9c_a
+[
+phy_pÜt
+];
+
+40
+ }
+}
+
+42
+u\9at8_t
+
+ $is_pÜt_\9adex_´iv\8b
+(
+u\9at16_t
+
+phy_pÜt
+)
+
+44 \15
+\9a_pÜt_eg»ss_´v
+[
+phy_pÜt
+];
+
+45
+ }
+}
+
+47
+u\9at32_t
+
+ $g\91_´v_to_pub_pÜt
+(
+u\9at32_t
+ *
+\9d_addr
+,
+u\9at8_t
+
+ty³
+)
+
+49
+u\9at32_t
+
+de¡_if
+ = 0xff;
+
+51 \1a
+ty³
+) {
+
+54
+u\9at32_t
+
+nh\9d
+;
+
+55
+nh\9d
+ =
+ `g\91_nh
+(
+\9d_addr
+[0], &
+de¡_if
+);
+
+57 ià(
+nh\9d
+)
+
+58 \15
+de¡_if
+;
+
+64
+u\9at8_t
+
+nh\9dv6
+[16];
+
+65
+ `g\91_nh_\9dv6
+((
+u\9at8_t
+ *)
+\9d_addr
+, &
+de¡_if
+, &
+nh\9dv6
+[0]);
+
+66 ià(
+de¡_if
+ != 0xff)
+
+67 \15
+de¡_if
+;
+
+73
+ }
+}
+
+75
+u\9at32_t
+
+ $g\91_pub_to_´v_pÜt
+(
+u\9at32_t
+ *
+\9d_addr
+,
+u\9at8_t
+
+ty³
+)
+
+77
+u\9at32_t
+
+de¡_if
+ = 0xff;
+
+79 \1a
+ty³
+) {
+
+82
+u\9at32_t
+
+nh\9d
+;
+
+83
+nh\9d
+ =
+ `g\91_nh
+(
+\9d_addr
+[0], &
+de¡_if
+);
+
+85 ià(
+nh\9d
+)
+
+86 \15
+de¡_if
+;
+
+92
+u\9at8_t
+
+nh\9dv6
+[16];
+
+93
+ `g\91_nh_\9dv6
+((
+u\9at8_t
+ *)
+\9d_addr
+, &
+de¡_if
+, &
+nh\9dv6
+[0]);
+
+94 ià(
+de¡_if
+ != 0xff)
+
+95 \15
+de¡_if
+;
+
+101
+ }
+}
+
+103 \1e
+ $show_pÜts_\9afo
+(\1e)
+
+105
+ `´\9atf
+("\n\9a_pÜt_d\9c_a: %d %d %d %d %d",
+\9a_pÜt_d\9c_a
+[0],
+
+106
+\9a_pÜt_d\9c_a
+[1], in_port_dir_a[2], in_port_dir_a[3],
+
+107
+\9a_pÜt_d\9c_a
+[4]);
+
+109
+u\9at8_t
+
+i
+ = 0,
+j
+ = 0;
+
+111
+ `´\9atf
+("\nprv_to_pub_map: ");
+
+112 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+113 ià(
+´v_to_pub_m
+[
+i
+] != 0xff)
+
+114
+ `´\9atf
+("(%d,%dè ",
+i
+,
+´v_to_pub_m
+[i]);
+
+117
+ `´\9atf
+("\npub_to_prv_map: ");
+
+118 \ f
+i
+ = 0; i <
+PIPELINE_MAX_PORT_IN
+; i++) {
+
+119 ià(
+pub_to_´v_m
+[
+i
+] != 0xff)
+
+120
+ `´\9atf
+("(%d,%dè ",
+i
+,
+pub_to_´v_m
+[i]);
+
+123
+ `´\9atf
+("\n%d\83Ár\9b \9a PÜt MAC Li¡\n",
+l\9ak_hw_addr_¬¿y_idx
+);
+
+124 \ f
+j
+ = 0; j <
+l\9ak_hw_addr_¬¿y_idx
+; j++) {
+
+125 \19
+\91h\94_addr
+ *
+l\9ak_hw_addr
+ =
+ `g\91_l\9ak_hw_addr
+(
+j
+);
+
+127 \ f
+i
+ = 0; i < 6; i++)
+
+128
+ `´\9atf
+(" %02x ", ((\19
+\91h\94_addr
+ *)
+l\9ak_hw_addr
+)->
+addr_by\8bs
+[
+i
+]);
+
+129
+ `´\9atf
+("\n");
+
+131
+ }
+}
+
+133 \1e
+ $\8cim
+(\ 5*
+\9aput
+)
+
+135 \12
+i
+,
+j
+ = 0;
+
+136 \12
+Ën
+ =
+ `¡¾\92
+(
+\9aput
+);
+
+137 \ 5
+»suÉ
+[
+Ën
+ + 1];
+
+139
+ `mem£t
+(
+»suÉ
+, 0, \17(result));
+
+140 \ f
+i
+ = 0;
+\9aput
+[i] != '\0'; i++) {
+
+141 ià(!
+ `is¥aû
+(
+\9aput
+[
+i
+]))
+
+142
+»suÉ
+[
+j
+++] =
+\9aput
+[
+i
+];
+
+145
+ `¡ºýy
+(
+\9aput
+,
+»suÉ
+,
+Ën
+);
+
+146
+ }
+}
+
+ @vnf_common/vnf_common.h
+
+17 #iâdeà
+__INCLUDE_VNF_COMMON_H__
+
+
+18 \ 1
+ #__INCLUDE_VNF_COMMON_H__
+
+
+ )
+
+20 \ 2
+ ~<¹e_p\9d\96\9ae.h
+>
+
+21 \ 2
+ ~<¹e_\91h\94.h
+>
+
+23 \ 1
+ #MBUF_HDR_ROOM
+ 256
+
+ )
+
+24 \ 1
+ #ETH_HDR_SIZE
+ 14
+
+ )
+
+25 \ 1
+ #IP_HDR_SRC_ADR_OFST
+ 12
+
+ )
+
+26 \ 1
+ #IP_HDR_DST_ADR_OFST
+ 16
+
+ )
+
+27 \ 1
+ #IP_HDR_PROTOCOL_OFST
+ 9
+
+ )
+
+28 \ 1
+ #IP_HDR_SIZE
+ 20
+
+ )
+
+29 \ 1
+ #IPV6_HDR_SRC_ADR_OFST
+ 8
+
+ )
+
+30 \ 1
+ #IPV6_HDR_DST_ADR_OFST
+ 24
+
+ )
+
+31 \ 1
+ #IPV6_HDR_PROTOCOL_OFST
+ 6
+
+ )
+
+32 \ 1
+ #IPV6_HDR_SIZE
+ 40
+
+ )
+
+34 \ 1
+ #ETH_TYPE_ARP
+ 0x0806
+
+ )
+
+35 \ 1
+ #ETH_TYPE_IPV4
+ 0x0800
+
+ )
+
+37 \ 1
+ #IP_PROTOCOL_ICMP
+ 1
+
+ )
+
+38 \ 1
+ #IP_PROTOCOL_TCP
+ 6
+
+ )
+
+39 \ 1
+ #IP_PROTOCOL_UDP
+ 17
+
+ )
+
+41 \ 1
+ #ETH_TYPE_IPV6
+ 0x86DD
+
+ )
+
+42 \ 1
+ #IP_PROTOCOL_ICMPV6
+ 58
+
+ )
+
+44 \ 1
+ #PKT_ING_DIR
+ 0
+
+ )
+
+45 \ 1
+ #PKT_EGR_DIR
+ 1
+
+ )
+
+47 #iâdeà
+PIPELINE_MAX_PORT_IN
+
+
+48 \ 1
+ #PIPELINE_MAX_PORT_IN
+ 16
+
+ )
+
+51 \ 1
+ #RTE_PIPELINE_MAX_NAME_SZ
+ 124
+
+ )
+
+53 \ 1
+ #INVALID_DESTIF
+ 255
+
+ )
+
+56
+ mVNF_PRV_PORT_ID
+,
+
+57
+ mVNF_PUB_PORT_ID
+,
+
+59 \1e
+show_pÜts_\9afo
+(\1e);
+
+60 \1e
+\8cim
+(\ 5*
+\9aput
+);
+
+61
+u\9at8_t
+
+g\91_\9a_pÜt_d\9c
+(u\9at8_\88
+\9a_pÜt_id
+);
+
+62
+u\9at8_t
+
+is_phy_pÜt_´iv\8b
+(
+u\9at16_t
+
+phy_pÜt
+);
+
+63
+u\9at32_t
+
+g\91_´v_to_pub_pÜt
+(u\9at32_\88*
+\9d_addr
+,
+u\9at8_t
+
+ty³
+);
+
+64
+u\9at32_t
+
+g\91_pub_to_´v_pÜt
+(u\9at32_\88*
+\9d_addr
+,
+u\9at8_t
+
+ty³
+);
+
+66 \18
+\9al\9ae
+ \1e
+ $drÝ_pkt
+(
+u\9at32_t
+
+pkt_num
+,
+u\9at64_t
+ *
+mask
+)
+
+68 *
+mask
+ ^ð1LLU <<
+pkt_num
+;
+
+69
+ }
+}
+
+71 \r
+u\9at8_t
+
+\9a_pÜt_d\9c_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+72 \r
+u\9at8_t
+
+´v_to_pub_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+73 \r
+u\9at8_t
+
+pub_to_´v_m
+[
+PIPELINE_MAX_PORT_IN
+];
+
+74 \r
+u\9at8_t
+
+´v_\9a_pÜt_a
+[
+PIPELINE_MAX_PORT_IN
+];
+
+76 \r
+u\9at32_t
+
+l\9ak_hw_addr_¬¿y_idx
+;
+
+78 \19
+ s¹e_pÜt_\9a
+ {
+
+80 \19
+¹e_pÜt_\9a_Ýs
+
+ mÝs
+;
+
+81
+¹e_p\9d\96\9ae_pÜt_\9a_aùiÚ_hªdËr
+
+ mf_aùiÚ
+;
+
+82 \1e*
+ m¬g_ah
+;
+
+83
+u\9at32_t
+
+ mbur¡_size
+;
+
+86
+u\9at32_t
+
+ m\8fbË_id
+;
+
+89 \1e*
+ mh_pÜt
+;
+
+92 \19
+¹e_pÜt_\9a
+ *
+ mÃxt
+;
+
+95
+u\9at64_t
+
+ mn_pkts_drݳd_by_ah
+;
+
+98 \19
+ s¹e_pÜt_out
+ {
+
+100 \19
+¹e_pÜt_out_Ýs
+
+ mÝs
+;
+
+101
+¹e_p\9d\96\9ae_pÜt_out_aùiÚ_hªdËr
+
+ mf_aùiÚ
+;
+
+102 \1e*
+ m¬g_ah
+;
+
+105 \1e*
+ mh_pÜt
+;
+
+108
+u\9at64_t
+
+ mn_pkts_drݳd_by_ah
+;
+
+111 \19
+ s¹e_\8fbË
+ {
+
+113 \19
+¹e_\8fbË_Ýs
+
+ mÝs
+;
+
+114
+¹e_p\9d\96\9ae_\8fbË_aùiÚ_hªdËr_h\99
+
+ mf_aùiÚ_h\99
+;
+
+115
+¹e_p\9d\96\9ae_\8fbË_aùiÚ_hªdËr_miss
+
+ mf_aùiÚ_miss
+;
+
+116 \1e*
+ m¬g_ah
+;
+
+117 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+ mdeçuÉ_\92\8cy
+;
+
+118
+u\9at32_t
+
+ m\92\8cy_size
+;
+
+120
+u\9at32_t
+
+ m\8fbË_Ãxt_id
+;
+
+121
+u\9at32_t
+
+ m\8fbË_Ãxt_id_v®id
+;
+
+124 \1e*
+ mh_\8fbË
+;
+
+127
+u\9at64_t
+
+ mn_pkts_drݳd_by_lkp_h\99_ah
+;
+
+128
+u\9at64_t
+
+ mn_pkts_drݳd_by_lkp_miss_ah
+;
+
+129
+u\9at64_t
+
+ mn_pkts_drݳd_lkp_h\99
+;
+
+130
+u\9at64_t
+
+ mn_pkts_drݳd_lkp_miss
+;
+
+134 \19
+ s¹e_p\9d\96\9ae
+ {
+
+136 \ 5
+ mÇme
+[
+RTE_PIPELINE_MAX_NAME_SZ
+];
+
+137 \12
+ msock\91_id
+;
+
+138
+u\9at32_t
+
+ moff£t_pÜt_id
+;
+
+141 \19
+¹e_pÜt_\9a
+
+ mpÜts_\9a
+[
+RTE_PIPELINE_PORT_IN_MAX
+];
+
+142 \19
+¹e_pÜt_out
+
+ mpÜts_out
+[
+RTE_PIPELINE_PORT_OUT_MAX
+];
+
+143 \19
+¹e_\8fbË
+
+ m\8fbËs
+[
+RTE_PIPELINE_TABLE_MAX
+];
+
+146
+u\9at32_t
+
+ mnum_pÜts_\9a
+;
+
+147
+u\9at32_t
+
+ mnum_pÜts_out
+;
+
+148
+u\9at32_t
+
+ mnum_\8fbËs
+;
+
+151
+u\9at64_t
+
+ m\92abËd_pÜt_\9a_mask
+;
+
+152 \19
+¹e_pÜt_\9a
+ *
+ mpÜt_\9a_Ãxt
+;
+
+155 \19
+¹e_mbuf
+ *
+ mpkts
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+156 \19
+¹e_p\9d\96\9ae_\8fbË_\92\8cy
+ *
+ m\92\8c\9bs
+[
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+157
+u\9at64_t
+
+ maùiÚ_mask0
+[
+RTE_PIPELINE_ACTIONS
+];
+
+158
+u\9at64_t
+
+ maùiÚ_mask1
+[
+RTE_PIPELINE_ACTIONS
+];
+
+159
+u\9at64_t
+
+ mpkts_mask
+;
+
+160
+u\9at64_t
+
+ mn_pkts_ah_drÝ
+;
+
+161
+u\9at64_t
+
+ mpkts_drÝ_mask
+;
+
+162 }
+ g__¹e_ÿche_®igÃd
+;
+
+165 \19
+ s¹e_pÜt_\91hdev_wr\99\94
+ {
+
+166 \19
+¹e_pÜt_out_¡©s
+
+ m¡©s
+;
+
+168 \19
+¹e_mbuf
+ *
+ mtx_buf
+[2 *
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+169
+u\9at32_t
+
+ mtx_bur¡_sz
+;
+
+170
+u\9at16_t
+
+ mtx_buf_couÁ
+;
+
+171
+u\9at64_t
+
+ mbsz_mask
+;
+
+172
+u\9at16_t
+
+ mqueue_id
+;
+
+173
+u\9at8_t
+
+ mpÜt_id
+;
+
+175 \19
+ s¹e_pÜt_\91hdev_»ad\94
+ {
+
+176 \19
+¹e_pÜt_\9a_¡©s
+
+ m¡©s
+;
+
+178
+u\9at16_t
+
+ mqueue_id
+;
+
+179
+u\9at8_t
+
+ mpÜt_id
+;
+
+181 \19
+ s¹e_pÜt_r\9ag_wr\99\94
+ {
+
+182 \19
+¹e_pÜt_out_¡©s
+
+ m¡©s
+;
+
+184 \19
+¹e_mbuf
+ *
+ mtx_buf
+[2 *
+RTE_PORT_IN_BURST_SIZE_MAX
+];
+
+185 \19
+¹e_r\9ag
+ *
+ mr\9ag
+;
+
+186
+u\9at32_t
+
+ mtx_bur¡_sz
+;
+
+187
+u\9at32_t
+
+ mtx_buf_couÁ
+;
+
+188
+u\9at64_t
+
+ mbsz_mask
+;
+
+189
+u\9at32_t
+
+ mis_muÉi
+;
+
+191 \19
+ s¹e_pÜt_r\9ag_»ad\94
+ {
+
+192 \19
+¹e_pÜt_\9a_¡©s
+
+ m¡©s
+;
+
+194 \19
+¹e_r\9ag
+ *
+ mr\9ag
+;
+
+197
+u\9at8_t
+
+g\91_\9a_pÜt_d\9c
+(u\9at8_\88
+\9a_pÜt_id
+);
+
+198
+u\9at8_t
+
+is_phy_pÜt_´iv\8b
+(
+u\9at16_t
+
+phy_pÜt
+);
+
+199
+u\9at8_t
+
+is_pÜt_\9adex_´iv\8b
+(
+u\9at16_t
+
+phy_pÜt
+);
+
+ @vnf_common/vnf_define.h
+
+17 #iâdeà
+__INCLUDE_VNF_DEFINE_H__
+
+
+18 \ 1
+ #__INCLUDE_VNF_DEFINE_H__
+
+
+ )
+
+19 \ 1
+ #DEBUG_LEVEL_4
+ 4
+
+ )
+
+20 \ 1
+ #PKT_BUFFER_SIZE
+ 64
+
+ )
+
+21 \ 1
+ #PVT_PUB_MAP
+ 2
+
+ )
+
+22 \ 1
+ #IPV6_ADD_SIZE
+ 16
+
+ )
+
+23 \ 1
+ #TWO_BYTE_PRINT
+ 3
+
+ )
+
+24 \ 1
+ #VERSION_NO_BYTE
+ 4
+
+ )
+
+25 \ 1
+ #BIT_CARRY
+ 16
+
+ )
+
+26 \ 1
+ #HW_ADDR_SIZE
+ 20
+
+ )
+
+27 \ 1
+ #IPV6_ADD_CMP_MULTI
+ 13
+
+ )
+
+28 \ 1
+ #DIV_CONV_HZ_SEC
+ 1000
+
+ )
+
+ @/usr/include/arpa/inet.h
+
+18 #iâdeà
+_ARPA_INET_H
+
+
+19 \ 1
+ #_ARPA_INET_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+22 \ 2
+ ~<Ãt\9a\91/\9a.h
+>
+
+25 #iâdeà
+__sockËn_t_def\9aed
+
+
+26 \e
+__sockËn_t
+
+ tsockËn_t
+;
+
+27 \ 1
+ #__sockËn_t_def\9aed
+
+
+ )
+
+30
+__BEGIN_DECLS
+
+
+34 \r
+\9a_addr_t
+
+ $\9a\91_addr
+ (cڡ \ 5*
+__ý
+è
+__THROW
+;
+
+37 \r
+\9a_addr_t
+
+ $\9a\91_Êaof
+ (\19
+\9a_addr
+
+__\9a
+è
+__THROW
+;
+
+41 \r\19
+\9a_addr
+
+ $\9a\91_mak\97ddr
+ (
+\9a_addr_t
+
+__Ãt
+, in_addr_\88
+__ho¡
+)
+
+42
+__THROW
+;
+
+45 \r
+\9a_addr_t
+
+ $\9a\91_Ãtof
+ (\19
+\9a_addr
+
+__\9a
+è
+__THROW
+;
+
+49 \r
+\9a_addr_t
+
+ $\9a\91_ÃtwÜk
+ (cڡ \ 5*
+__ý
+è
+__THROW
+;
+
+53 \r\ 5*
+ $\9a\91_Áß
+ (\19
+\9a_addr
+
+__\9a
+è
+__THROW
+;
+
+58 \r\12
+ $\9a\91_±Ú
+ (\12
+__af
+, cڡ \ 5*
+__»¡riù
+
+__ý
+,
+
+59 \1e*
+__»¡riù
+
+__buf
+è
+__THROW
+;
+
+64 \rcڡ \ 5*
+ $\9a\91_ÁÝ
+ (\12
+__af
+, cڡ \1e*
+__»¡riù
+
+__ý
+,
+
+65 \ 5*
+__»¡riù
+
+__buf
+,
+sockËn_t
+
+__Ën
+)
+
+66
+__THROW
+;
+
+70 #ifdeà
+__USE_MISC
+
+
+73 \r\12
+ $\9a\91_©Ú
+ (cڡ \ 5*
+__ý
+, \19
+\9a_addr
+ *
+__\9ap
+è
+__THROW
+;
+
+77 \r\ 5*
+ $\9a\91_Ã\8f
+ (
+\9a_addr_t
+
+__Ãt
+, \ 5*
+__buf
+,
+size_t
+
+__Ën
+è
+__THROW
+;
+
+82 \r\ 5*
+ $\9a\91_Ãt_ÁÝ
+ (\12
+__af
+, cڡ \1e*
+__ý
+, \12
+__b\99s
+,
+
+83 \ 5*
+__buf
+,
+size_t
+
+__Ën
+è
+__THROW
+;
+
+88 \r\12
+ $\9a\91_Ãt_±Ú
+ (\12
+__af
+, cڡ \ 5*
+__ý
+,
+
+89 \1e*
+__buf
+,
+size_t
+
+__Ën
+è
+__THROW
+;
+
+94 \r\1d\12
+ $\9a\91_n§p_addr
+ (cڡ \ 5*
+__ý
+,
+
+95 \1d\ 5*
+__buf
+, \12
+__Ën
+è
+__THROW
+;
+
+99 \r\ 5*
+ $\9a\91_n§p_Áß
+ (\12
+__Ën
+, cڡ \1d\ 5*
+__ý
+,
+
+100 \ 5*
+__buf
+è
+__THROW
+;
+
+103
+__END_DECLS
+
+
+ @/usr/include/ctype.h
+
+22 #iâdef
+_CTYPE_H
+
+
+23 \ 1
+ #_CTYPE_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+26 \ 2
+ ~<b\99s/ty³s.h
+>
+
+28
+ g__BEGIN_DECLS
+
+
+30 #iâdeà
+_ISb\99
+
+
+39 \ 2
+ ~<\92d\9fn.h
+>
+
+40 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+41 \ 1
+ #_ISb\99
+(
+b\99
+è(1 << (b\99))
+
+ )
+
+43 \ 1
+ #_ISb\99
+(
+b\99
+è((b\99è< 8 ? ((1 << (b\99)è<< 8è: ((1 << (b\99)è>> 8))
+
+ )
+
+48
+ m_ISuµ\94
+ =
+_ISb\99
+ (0),
+
+49
+ m_ISlow\94
+ =
+_ISb\99
+ (1),
+
+50
+ m_IS®pha
+ =
+_ISb\99
+ (2),
+
+51
+ m_ISdig\99
+ =
+_ISb\99
+ (3),
+
+52
+ m_ISxdig\99
+ =
+_ISb\99
+ (4),
+
+53
+ m_IS¥aû
+ =
+_ISb\99
+ (5),
+
+54
+ m_IS´\9at
+ =
+_ISb\99
+ (6),
+
+55
+ m_ISg¿ph
+ =
+_ISb\99
+ (7),
+
+56
+ m_ISbÏnk
+ =
+_ISb\99
+ (8),
+
+57
+ m_ISú\8cl
+ =
+_ISb\99
+ (9),
+
+58
+ m_ISpunù
+ =
+_ISb\99
+ (10),
+
+59
+ m_IS®num
+ =
+_ISb\99
+ (11)
+
+79 \rcڡ \1d\16\12**
+ $__ùy³_b_loc
+ (\1e)
+
+80
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+81 \rcڡ
+__\9at32_t
+ **
+ $__ùy³_tÞow\94_loc
+ (\1e)
+
+82
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+83 \rcڡ
+__\9at32_t
+ **
+ $__ùy³_touµ\94_loc
+ (\1e)
+
+84
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+87 #iâdeà
+__ýlu¥lus
+
+
+88 \ 1
+ #__isùy³
+(
+c
+,
+ty³
+) \
+
+89 ((*
+ `__ùy³_b_loc
+ ())[(\12è(
+c
+)] & (\1d\16\12è
+ty³
+)
+
+ )
+
+90 #\96ià
+def\9aed
+
+__USE_EXTERN_INLINES
+
+
+91 \ 1
+ #__isùy³_f
+(
+ty³
+) \
+
+92
+__ex\8bº_\9al\9ae
+ \12\
+
+93
+is
+##
+ `ty³
+ (\12
+__c
+è
+__THROW
+ \
+
+95 \15 (*
+ `__ùy³_b_loc
+ ())[(\12è(
+__c
+)] & (\1d\16\12è
+_IS
+##
+ty³
+; \
+
+96
+ }
+
+ )
+}
+
+99 \ 1
+ #__i§scii
+(
+c
+è(((cè& ~0x7fè=ð0è
+
+ )
+
+100 \ 1
+ #__tßscii
+(
+c
+è((cè& 0x7fè
+
+ )
+
+102 \ 1
+ #__exùy³
+(
+Çme
+è\r\12
+ `Çme
+ (\12è
+__THROW
+
+
+ )
+
+104
+__BEGIN_NAMESPACE_STD
+
+
+110
+__exùy³
+ (
+i§Êum
+);
+
+111
+__exùy³
+ (
+i§Íha
+);
+
+112
+__exùy³
+ (
+isú\8cl
+);
+
+113
+__exùy³
+ (
+isdig\99
+);
+
+114
+__exùy³
+ (
+i¦ow\94
+);
+
+115
+__exùy³
+ (
+isg¿ph
+);
+
+116
+__exùy³
+ (
+i¥r\9at
+);
+
+117
+__exùy³
+ (
+i¥unù
+);
+
+118
+__exùy³
+ (
+is¥aû
+);
+
+119
+__exùy³
+ (
+isuµ\94
+);
+
+120
+__exùy³
+ (
+isxdig\99
+);
+
+124 \r\12
+ $tÞow\94
+ (\12
+__c
+è
+__THROW
+;
+
+127 \r\12
+ $touµ\94
+ (\12
+__c
+è
+__THROW
+;
+
+129
+__END_NAMESPACE_STD
+
+
+133 #ifdef
+__USE_ISOC99
+
+
+134
+__BEGIN_NAMESPACE_C99
+
+
+136
+ `__exùy³
+ (
+isbÏnk
+);
+
+138
+__END_NAMESPACE_C99
+
+
+141 #ifdeà
+__USE_GNU
+
+
+143 \r\12
+ $isùy³
+ (\12
+__c
+, \12
+__mask
+è
+__THROW
+;
+
+146 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+150 \r\12
+ $i§scii
+ (\12
+__c
+è
+__THROW
+;
+
+154 \r\12
+ $tßscii
+ (\12
+__c
+è
+__THROW
+;
+
+158
+ `__exùy³
+ (
+_touµ\94
+);
+
+159
+ `__exùy³
+ (
+_tÞow\94
+);
+
+163 \ 1
+ #__tobody
+(
+c
+,
+f
+,
+a
+,
+¬gs
+) \
+
+164 (
+__ex\8bnsiÚ__
+ \
+
+165 ({ \12
+__»s
+; \
+
+166 ià(\17 (
+c
+) > 1) \
+
+168 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+)) \
+
+170 \12
+__c
+ = (
+c
+); \
+
+171
+__»s
+ =
+__c
+ < -128 || __ø> 255 ? __ø: (
+a
+)[__c]; \
+
+174
+__»s
+ =
+f
+
+¬gs
+; \
+
+177
+__»s
+ = (
+a
+)[(\12è(
+c
+)]; \
+
+178
+__»s
+;
+ }
+}))
+
+ )
+
+180 #ià!
+def\9aed
+
+__NO_CTYPE
+
+
+181 #ifdeà
+__isùy³_f
+
+
+182
+ $__isùy³_f
+ (
+®num
+)
+
+183
+ $__isùy³_f
+ (
+®pha
+)
+
+184
+ $__isùy³_f
+ (
+ú\8cl
+)
+
+185
+ $__isùy³_f
+ (
+dig\99
+)
+
+186
+ $__isùy³_f
+ (
+low\94
+)
+
+187
+ $__isùy³_f
+ (
+g¿ph
+)
+
+188
+ $__isùy³_f
+ (
+´\9at
+)
+
+189
+ $__isùy³_f
+ (
+punù
+)
+
+190
+ $__isùy³_f
+ (
+¥aû
+)
+
+191
+ $__isùy³_f
+ (
+uµ\94
+)
+
+192
+ $__isùy³_f
+ (
+xdig\99
+)
+
+193 #ifdeà
+__USE_ISOC99
+
+
+194
+ $__isùy³_f
+ (
+bÏnk
+)
+
+196 #\96ià
+def\9aed
+
+__isùy³
+
+
+197 \ 1
+ #i§Êum
+(
+c
+è
+ `__isùy³
+((c),
+_IS®num
+)
+
+ )
+
+198 \ 1
+ #i§Íha
+(
+c
+è
+ `__isùy³
+((c),
+_IS®pha
+)
+
+ )
+
+199 \ 1
+ #isú\8cl
+(
+c
+è
+ `__isùy³
+((c),
+_ISú\8cl
+)
+
+ )
+
+200 \ 1
+ #isdig\99
+(
+c
+è
+ `__isùy³
+((c),
+_ISdig\99
+)
+
+ )
+
+201 \ 1
+ #i¦ow\94
+(
+c
+è
+ `__isùy³
+((c),
+_ISlow\94
+)
+
+ )
+
+202 \ 1
+ #isg¿ph
+(
+c
+è
+ `__isùy³
+((c),
+_ISg¿ph
+)
+
+ )
+
+203 \ 1
+ #i¥r\9at
+(
+c
+è
+ `__isùy³
+((c),
+_IS´\9at
+)
+
+ )
+
+204 \ 1
+ #i¥unù
+(
+c
+è
+ `__isùy³
+((c),
+_ISpunù
+)
+
+ )
+
+205 \ 1
+ #is¥aû
+(
+c
+è
+ `__isùy³
+((c),
+_IS¥aû
+)
+
+ )
+
+206 \ 1
+ #isuµ\94
+(
+c
+è
+ `__isùy³
+((c),
+_ISuµ\94
+)
+
+ )
+
+207 \ 1
+ #isxdig\99
+(
+c
+è
+ `__isùy³
+((c),
+_ISxdig\99
+)
+
+ )
+
+208 #ifdeà
+__USE_ISOC99
+
+
+209 \ 1
+ #isbÏnk
+(
+c
+è
+ `__isùy³
+((c),
+_ISbÏnk
+)
+
+ )
+
+213 #ifdeà
+__USE_EXTERN_INLINES
+
+
+214
+__ex\8bº_\9al\9ae
+ \12
+
+215
+ `__NTH
+ (
+ $tÞow\94
+ (\12
+__c
+))
+
+217 \15
+__c
+ >ð-128 && __ø< 256 ? (*
+ `__ùy³_tÞow\94_loc
+ ())[__c] : __c;
+
+218
+ }
+}
+
+220
+__ex\8bº_\9al\9ae
+ \12
+
+221
+__NTH
+ (
+ $touµ\94
+ (\12
+__c
+))
+
+223 \15
+__c
+ >ð-128 && __ø< 256 ? (*
+ `__ùy³_touµ\94_loc
+ ())[__c] : __c;
+
+224
+ }
+}
+
+227 #ià
+__GNUC__
+ >ð2 &&
+def\9aed
+
+__OPTIMIZE__
+ && !def\9aed
+__ýlu¥lus
+
+
+228 \ 1
+ #tÞow\94
+(
+c
+è
+ `__tobody
+ (c,
+tÞow\94
+, *
+ `__ùy³_tÞow\94_loc
+ (), (c))
+
+ )
+
+229 \ 1
+ #touµ\94
+(
+c
+è
+ `__tobody
+ (c,
+touµ\94
+, *
+ `__ùy³_touµ\94_loc
+ (), (c))
+
+ )
+
+232 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+233 \ 1
+ #i§scii
+(
+c
+è
+ `__i§scii
+ (c)
+
+ )
+
+234 \ 1
+ #tßscii
+(
+c
+è
+ `__tßscii
+ (c)
+
+ )
+
+236 \ 1
+ #_tÞow\94
+(
+c
+è((\12è(*
+ `__ùy³_tÞow\94_loc
+ ())[(\12è(c)])
+
+ )
+
+237 \ 1
+ #_touµ\94
+(
+c
+è((\12è(*
+ `__ùy³_touµ\94_loc
+ ())[(\12è(c)])
+
+ )
+
+243 #ifdeà
+__USE_XOPEN2K8
+
+
+257 \ 2
+ ~<xloÿË.h
+>
+
+261 \ 1
+ #__isùy³_l
+(
+c
+,
+ty³
+,
+loÿË
+) \
+
+262 ((
+loÿË
+)->
+__ùy³_b
+[(\12è(
+c
+)] & (\1d\16\12è
+ty³
+)
+
+ )
+
+264 \ 1
+ #__exùy³_l
+(
+Çme
+) \
+
+265 \r\12
+ `Çme
+ (\12,
+__loÿË_t
+è
+__THROW
+
+
+ )
+
+271
+__exùy³_l
+ (
+i§Êum_l
+);
+
+272
+__exùy³_l
+ (
+i§Íha_l
+);
+
+273
+__exùy³_l
+ (
+isú\8cl_l
+);
+
+274
+__exùy³_l
+ (
+isdig\99_l
+);
+
+275
+__exùy³_l
+ (
+i¦ow\94_l
+);
+
+276
+__exùy³_l
+ (
+isg¿ph_l
+);
+
+277
+__exùy³_l
+ (
+i¥r\9at_l
+);
+
+278
+__exùy³_l
+ (
+i¥unù_l
+);
+
+279
+__exùy³_l
+ (
+is¥aû_l
+);
+
+280
+__exùy³_l
+ (
+isuµ\94_l
+);
+
+281
+__exùy³_l
+ (
+isxdig\99_l
+);
+
+283
+__exùy³_l
+ (
+isbÏnk_l
+);
+
+287 \r\12
+ $__tÞow\94_l
+ (\12
+__c
+,
+__loÿË_t
+
+__l
+è
+__THROW
+;
+
+288 \r\12
+ $tÞow\94_l
+ (\12
+__c
+,
+__loÿË_t
+
+__l
+è
+__THROW
+;
+
+291 \r\12
+ $__touµ\94_l
+ (\12
+__c
+,
+__loÿË_t
+
+__l
+è
+__THROW
+;
+
+292 \r\12
+ $touµ\94_l
+ (\12
+__c
+,
+__loÿË_t
+
+__l
+è
+__THROW
+;
+
+294 #ià
+__GNUC__
+ >ð2 &&
+def\9aed
+
+__OPTIMIZE__
+ && !def\9aed
+__ýlu¥lus
+
+
+295 \ 1
+ #__tÞow\94_l
+(
+c
+,
+loÿË
+) \
+
+296
+ `__tobody
+ (
+c
+,
+__tÞow\94_l
+, (
+loÿË
+)->
+__ùy³_tÞow\94
+, (c,\86oÿË))
+
+ )
+
+297 \ 1
+ #__touµ\94_l
+(
+c
+,
+loÿË
+) \
+
+298
+ `__tobody
+ (
+c
+,
+__touµ\94_l
+, (
+loÿË
+)->
+__ùy³_touµ\94
+, (c,\86oÿË))
+
+ )
+
+299 \ 1
+ #tÞow\94_l
+(
+c
+,
+loÿË
+è
+ `__tÞow\94_l
+ ((c), (loÿË))
+
+ )
+
+300 \ 1
+ #touµ\94_l
+(
+c
+,
+loÿË
+è
+ `__touµ\94_l
+ ((c), (loÿË))
+
+ )
+
+304 #iâdeà
+__NO_CTYPE
+
+
+305 \ 1
+ #__i§Êum_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_IS®num
+, (l))
+
+ )
+
+306 \ 1
+ #__i§Íha_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_IS®pha
+, (l))
+
+ )
+
+307 \ 1
+ #__isú\8cl_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISú\8cl
+, (l))
+
+ )
+
+308 \ 1
+ #__isdig\99_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISdig\99
+, (l))
+
+ )
+
+309 \ 1
+ #__i¦ow\94_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISlow\94
+, (l))
+
+ )
+
+310 \ 1
+ #__isg¿ph_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISg¿ph
+, (l))
+
+ )
+
+311 \ 1
+ #__i¥r\9at_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_IS´\9at
+, (l))
+
+ )
+
+312 \ 1
+ #__i¥unù_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISpunù
+, (l))
+
+ )
+
+313 \ 1
+ #__is¥aû_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_IS¥aû
+, (l))
+
+ )
+
+314 \ 1
+ #__isuµ\94_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISuµ\94
+, (l))
+
+ )
+
+315 \ 1
+ #__isxdig\99_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISxdig\99
+, (l))
+
+ )
+
+317 \ 1
+ #__isbÏnk_l
+(
+c
+,
+l
+è
+ `__isùy³_l
+((c),
+_ISbÏnk
+, (l))
+
+ )
+
+319 #ifdeà
+__USE_MISC
+
+
+320 \ 1
+ #__i§scii_l
+(
+c
+,
+l
+è(Ö),
+ `__i§scii
+ (c))
+
+ )
+
+321 \ 1
+ #__tßscii_l
+(
+c
+,
+l
+è(Ö),
+ `__tßscii
+ (c))
+
+ )
+
+324 \ 1
+ #i§Êum_l
+(
+c
+,
+l
+è
+ `__i§Êum_l
+ ((c), (l))
+
+ )
+
+325 \ 1
+ #i§Íha_l
+(
+c
+,
+l
+è
+ `__i§Íha_l
+ ((c), (l))
+
+ )
+
+326 \ 1
+ #isú\8cl_l
+(
+c
+,
+l
+è
+ `__isú\8cl_l
+ ((c), (l))
+
+ )
+
+327 \ 1
+ #isdig\99_l
+(
+c
+,
+l
+è
+ `__isdig\99_l
+ ((c), (l))
+
+ )
+
+328 \ 1
+ #i¦ow\94_l
+(
+c
+,
+l
+è
+ `__i¦ow\94_l
+ ((c), (l))
+
+ )
+
+329 \ 1
+ #isg¿ph_l
+(
+c
+,
+l
+è
+ `__isg¿ph_l
+ ((c), (l))
+
+ )
+
+330 \ 1
+ #i¥r\9at_l
+(
+c
+,
+l
+è
+ `__i¥r\9at_l
+ ((c), (l))
+
+ )
+
+331 \ 1
+ #i¥unù_l
+(
+c
+,
+l
+è
+ `__i¥unù_l
+ ((c), (l))
+
+ )
+
+332 \ 1
+ #is¥aû_l
+(
+c
+,
+l
+è
+ `__is¥aû_l
+ ((c), (l))
+
+ )
+
+333 \ 1
+ #isuµ\94_l
+(
+c
+,
+l
+è
+ `__isuµ\94_l
+ ((c), (l))
+
+ )
+
+334 \ 1
+ #isxdig\99_l
+(
+c
+,
+l
+è
+ `__isxdig\99_l
+ ((c), (l))
+
+ )
+
+336 \ 1
+ #isbÏnk_l
+(
+c
+,
+l
+è
+ `__isbÏnk_l
+ ((c), (l))
+
+ )
+
+338 #ifdeà
+__USE_MISC
+
+
+339 \ 1
+ #i§scii_l
+(
+c
+,
+l
+è
+ `__i§scii_l
+ ((c), (l))
+
+ )
+
+340 \ 1
+ #tßscii_l
+(
+c
+,
+l
+è
+ `__tßscii_l
+ ((c), (l))
+
+ )
+
+347
+__END_DECLS
+
+
+ @/usr/include/errno.h
+
+22 #iâdef
+_ERRNO_H
+
+
+26 #iâdef
+__Ãed_Em©h
+
+
+27 \ 1
+ #_ERRNO_H
+ 1
+
+ )
+
+28 \ 2
+ ~<ã©u»s.h
+>
+
+31
+ g__BEGIN_DECLS
+
+
+35 \ 2
+ ~<b\99s/\94ºo.h
+>
+
+36 #undeà
+__Ãed_Em©h
+
+
+38 #ifdef
+_ERRNO_H
+
+
+45 #iâdef
+\94ºo
+
+
+46 \r\12
+\94ºo
+;
+
+49 #ifdeà
+__USE_GNU
+
+
+54 \r\ 5*
+´og¿m_\9avoÿtiÚ_Çme
+, *
+´og¿m_\9avoÿtiÚ_shÜt_Çme
+;
+
+58
+ g__END_DECLS
+
+
+66 #ià
+def\9aed
+
+__USE_GNU
+ || def\9aed
+__Ãed_\94rÜ_t
+
+
+67 #iâdeà
+__\94rÜ_t_def\9aed
+
+
+68 \e\12
+ t\94rÜ_t
+;
+
+69 \ 1
+ #__\94rÜ_t_def\9aed
+ 1
+
+ )
+
+71 #undeà
+__Ãed_\94rÜ_t
+
+
+ @/usr/include/execinfo.h
+
+18 #iâdeà
+_EXECINFO_H
+
+
+19 \ 1
+ #_EXECINFO_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+23
+__BEGIN_DECLS
+
+
+27 \r\12
+ $back\8caû
+ (\1e**
+__¬¿y
+, \12
+__size
+è
+ `__nÚnuÎ
+ ((1));
+
+32 \r\ 5**
+ $back\8caû_symbÞs
+ (\1e*cڡ *
+__¬¿y
+, \12
+__size
+)
+
+33
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+38 \r\1e
+ $back\8caû_symbÞs_fd
+ (\1e*cڡ *
+__¬¿y
+, \12
+__size
+, \12
+__fd
+)
+
+39
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+41
+__END_DECLS
+
+
+ @/usr/include/fcntl.h
+
+22 #iâdef
+_FCNTL_H
+
+
+23 \ 1
+ #_FCNTL_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+28
+ g__BEGIN_DECLS
+
+
+31 \ 2
+ ~<b\99s/ty³s.h
+>
+
+35 \ 2
+ ~<b\99s/fú\8e.h
+>
+
+39 #ifdeà
+__O_TMPFILE
+
+
+40 \ 1
+ #__OPEN_NEEDS_MODE
+(
+oæag
+) \
+
+41 (((
+oæag
+è&
+O_CREAT
+è!ð0 || ((oæagè&
+__O_TMPFILE
+è=ð__O_TMPFILE)
+
+ )
+
+43 \ 1
+ #__OPEN_NEEDS_MODE
+(
+oæag
+è(((oæagè&
+O_CREAT
+è!ð0)
+
+ )
+
+49 #iâdeà
+__mode_t_def\9aed
+
+
+50 \e
+__mode_t
+
+ tmode_t
+;
+
+51 \ 1
+ #__mode_t_def\9aed
+
+
+ )
+
+54 #iâdeà
+__off_t_def\9aed
+
+
+55 #iâdeà
+__USE_FILE_OFFSET64
+
+
+56 \e
+__off_t
+
+ toff_t
+;
+
+58 \e
+__off64_t
+
+ toff_t
+;
+
+60 \ 1
+ #__off_t_def\9aed
+
+
+ )
+
+63 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ && !def\9aed
+__off64_t_def\9aed
+
+
+64 \e
+__off64_t
+
+ toff64_t
+;
+
+65 \ 1
+ #__off64_t_def\9aed
+
+
+ )
+
+68 #iâdeà
+__pid_t_def\9aed
+
+
+69 \e
+__pid_t
+
+ tpid_t
+;
+
+70 \ 1
+ #__pid_t_def\9aed
+
+
+ )
+
+74 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+75 \ 1
+ #__Ãed_time¥ec
+
+
+ )
+
+76 \ 2
+ ~<time.h
+>
+
+77 \ 2
+ ~<b\99s/¡©.h
+>
+
+79 \ 1
+ #S_IFMT
+
+__S_IFMT
+
+
+ )
+
+80 \ 1
+ #S_IFDIR
+
+__S_IFDIR
+
+
+ )
+
+81 \ 1
+ #S_IFCHR
+
+__S_IFCHR
+
+
+ )
+
+82 \ 1
+ #S_IFBLK
+
+__S_IFBLK
+
+
+ )
+
+83 \ 1
+ #S_IFREG
+
+__S_IFREG
+
+
+ )
+
+84 #ifdeà
+__S_IFIFO
+
+
+85 \ 1
+ #S_IFIFO
+
+__S_IFIFO
+
+
+ )
+
+87 #ifdeà
+__S_IFLNK
+
+
+88 \ 1
+ #S_IFLNK
+
+__S_IFLNK
+
+
+ )
+
+90 #ià(
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K8
+è&& def\9aed
+__S_IFSOCK
+
+
+91 \ 1
+ #S_IFSOCK
+
+__S_IFSOCK
+
+
+ )
+
+96 \ 1
+ #S_ISUID
+
+__S_ISUID
+
+
+ )
+
+97 \ 1
+ #S_ISGID
+
+__S_ISGID
+
+
+ )
+
+99 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+101 \ 1
+ #S_ISVTX
+
+__S_ISVTX
+
+
+ )
+
+104 \ 1
+ #S_IRUSR
+
+__S_IREAD
+
+
+ )
+
+105 \ 1
+ #S_IWUSR
+
+__S_IWRITE
+
+
+ )
+
+106 \ 1
+ #S_IXUSR
+
+__S_IEXEC
+
+
+ )
+
+108 \ 1
+ #S_IRWXU
+ (
+__S_IREAD
+|
+__S_IWRITE
+|
+__S_IEXEC
+)
+
+ )
+
+110 \ 1
+ #S_IRGRP
+ (
+S_IRUSR
+ >> 3è
+
+ )
+
+111 \ 1
+ #S_IWGRP
+ (
+S_IWUSR
+ >> 3è
+
+ )
+
+112 \ 1
+ #S_IXGRP
+ (
+S_IXUSR
+ >> 3è
+
+ )
+
+114 \ 1
+ #S_IRWXG
+ (
+S_IRWXU
+ >> 3)
+
+ )
+
+116 \ 1
+ #S_IROTH
+ (
+S_IRGRP
+ >> 3è
+
+ )
+
+117 \ 1
+ #S_IWOTH
+ (
+S_IWGRP
+ >> 3è
+
+ )
+
+118 \ 1
+ #S_IXOTH
+ (
+S_IXGRP
+ >> 3è
+
+ )
+
+120 \ 1
+ #S_IRWXO
+ (
+S_IRWXG
+ >> 3)
+
+ )
+
+123 #ifdef
+__USE_MISC
+
+
+124 #iâdeà
+R_OK
+
+
+127 \ 1
+ #R_OK
+ 4
+
+ )
+
+128 \ 1
+ #W_OK
+ 2
+
+ )
+
+129 \ 1
+ #X_OK
+ 1
+
+ )
+
+130 \ 1
+ #F_OK
+ 0
+
+ )
+
+135 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+136 \ 1
+ #SEEK_SET
+ 0
+
+ )
+
+137 \ 1
+ #SEEK_CUR
+ 1
+
+ )
+
+138 \ 1
+ #SEEK_END
+ 2
+
+ )
+
+146 \r\12
+fú\8e
+ (\12
+__fd
+, \12
+__cmd
+, ...);
+
+155 #iâdeà
+__USE_FILE_OFFSET64
+
+
+156 \r\12
+ $ݒ
+ (cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+, ...è
+ `__nÚnuÎ
+ ((1));
+
+158 #ifdeà
+__REDIRECT
+
+
+159 \r\12
+ `__REDIRECT
+ (
+ݒ
+, (cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+, ...),
+ݒ64
+)
+
+160
+ `__nÚnuÎ
+ ((1));
+
+162 \ 1
+ #ݒ
+
+ݒ64
+
+
+ )
+
+165 #ifdeà
+__USE_LARGEFILE64
+
+
+166 \r\12
+ $ݒ64
+ (cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+, ...è
+ `__nÚnuÎ
+ ((1));
+
+169 #ifdeà
+__USE_ATFILE
+
+
+179 #iâdeà
+__USE_FILE_OFFSET64
+
+
+180 \r\12
+ $Ý\92©
+ (\12
+__fd
+, cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+, ...)
+
+181
+ `__nÚnuÎ
+ ((2));
+
+183 #ifdeà
+__REDIRECT
+
+
+184 \r\12
+ `__REDIRECT
+ (
+Ý\92©
+, (\12
+__fd
+, cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+,
+
+185 ...),
+Ý\92©64
+è
+ `__nÚnuÎ
+ ((2));
+
+187 \ 1
+ #Ý\92©
+
+Ý\92©64
+
+
+ )
+
+190 #ifdeà
+__USE_LARGEFILE64
+
+
+191 \r\12
+ $Ý\92©64
+ (\12
+__fd
+, cڡ \ 5*
+__f\9ee
+, \12
+__oæag
+, ...)
+
+192
+ `__nÚnuÎ
+ ((2));
+
+201 #iâdeà
+__USE_FILE_OFFSET64
+
+
+202 \r\12
+ $ü\97t
+ (cڡ \ 5*
+__f\9ee
+,
+mode_t
+
+__mode
+è
+ `__nÚnuÎ
+ ((1));
+
+204 #ifdeà
+__REDIRECT
+
+
+205 \r\12
+ `__REDIRECT
+ (
+ü\97t
+, (cڡ \ 5*
+__f\9ee
+,
+mode_t
+
+__mode
+),
+
+206
+ü\97t64
+è
+ `__nÚnuÎ
+ ((1));
+
+208 \ 1
+ #ü\97t
+
+ü\97t64
+
+
+ )
+
+211 #ifdeà
+__USE_LARGEFILE64
+
+
+212 \r\12
+ $ü\97t64
+ (cڡ \ 5*
+__f\9ee
+,
+mode_t
+
+__mode
+è
+ `__nÚnuÎ
+ ((1));
+
+215 #ià!
+def\9aed
+
+F_LOCK
+ && (def\9aed
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN_EXTENDED
+ \
+
+216 && !
+def\9aed
+
+__USE_POSIX
+))
+
+225 \ 1
+ #F_ULOCK
+ 0
+
+ )
+
+226 \ 1
+ #F_LOCK
+ 1
+
+ )
+
+227 \ 1
+ #F_TLOCK
+ 2
+
+ )
+
+228 \ 1
+ #F_TEST
+ 3
+
+ )
+
+230 #iâdeà
+__USE_FILE_OFFSET64
+
+
+231 \r\12
+ `lockf
+ (\12
+__fd
+, \12
+__cmd
+,
+off_t
+
+__Ën
+);
+
+233 #ifdeà
+__REDIRECT
+
+
+234 \r\12
+ `__REDIRECT
+ (
+lockf
+, (\12
+__fd
+, \12
+__cmd
+,
+__off64_t
+
+__Ën
+),
+lockf64
+);
+
+236 \ 1
+ #lockf
+
+lockf64
+
+
+ )
+
+239 #ifdeà
+__USE_LARGEFILE64
+
+
+240 \r\12
+ `lockf64
+ (\12
+__fd
+, \12
+__cmd
+,
+off64_t
+
+__Ën
+);
+
+244 #ifdeà
+__USE_XOPEN2K
+
+
+247 #iâdeà
+__USE_FILE_OFFSET64
+
+
+248 \r\12
+ $posix_çdvi£
+ (\12
+__fd
+,
+off_t
+
+__off£t
+, off_\88
+__Ën
+,
+
+249 \12
+__advi£
+è
+__THROW
+;
+
+251 #ifdeà
+__REDIRECT_NTH
+
+
+252 \r\12
+ `__REDIRECT_NTH
+ (
+posix_çdvi£
+, (\12
+__fd
+,
+__off64_t
+
+__off£t
+,
+
+253
+__off64_t
+
+__Ën
+, \12
+__advi£
+),
+
+254
+posix_çdvi£64
+);
+
+256 \ 1
+ #posix_çdvi£
+
+posix_çdvi£64
+
+
+ )
+
+259 #ifdeà
+__USE_LARGEFILE64
+
+
+260 \r\12
+ $posix_çdvi£64
+ (\12
+__fd
+,
+off64_t
+
+__off£t
+, off64_\88
+__Ën
+,
+
+261 \12
+__advi£
+è
+__THROW
+;
+
+269 #iâdeà
+__USE_FILE_OFFSET64
+
+
+270 \r\12
+ `posix_çÎoÿ\8b
+ (\12
+__fd
+,
+off_t
+
+__off£t
+, off_\88
+__Ën
+);
+
+272 #ifdeà
+__REDIRECT
+
+
+273 \r\12
+ `__REDIRECT
+ (
+posix_çÎoÿ\8b
+, (\12
+__fd
+,
+__off64_t
+
+__off£t
+,
+
+274
+__off64_t
+
+__Ën
+),
+
+275
+posix_çÎoÿ\8b64
+);
+
+277 \ 1
+ #posix_çÎoÿ\8b
+
+posix_çÎoÿ\8b64
+
+
+ )
+
+280 #ifdeà
+__USE_LARGEFILE64
+
+
+281 \r\12
+ `posix_çÎoÿ\8b64
+ (\12
+__fd
+,
+off64_t
+
+__off£t
+, off64_\88
+__Ën
+);
+
+287 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+ \
+
+288 &&
+def\9aed
+
+__va_¬g_·ck_Ën
+
+
+289 \ 2
+ ~<b\99s/fú\8e2.h
+>
+
+292
+__END_DECLS
+
+
+ @/usr/include/getopt.h
+
+19 #iâdeà
+_GETOPT_H
+
+
+21 #iâdeà
+__Ãed_g\91Ýt
+
+
+22 \ 1
+ #_GETOPT_H
+ 1
+
+ )
+
+32 #ià!
+def\9aed
+
+__GNU_LIBRARY__
+
+
+33 \ 2
+ ~<ùy³.h
+>
+
+36 #iâdeà
+__THROW
+
+
+37 #iâdeà
+__GNUC_PREREQ
+
+
+38 \ 1
+ #__GNUC_PREREQ
+(
+maj
+,
+m\9a
+è(0)
+
+ )
+
+40 #ià
+def\9aed
+
+__ýlu¥lus
+ &&
+__GNUC_PREREQ
+ (2,8)
+
+41 \ 1
+ #__THROW
+
+ `throw
+ ()
+
+ )
+
+43 \ 1
+ #__THROW
+
+
+ )
+
+47 #ifdef
+__ýlu¥lus
+
+
+57 \r\ 5*
+ݏrg
+;
+
+71 \r\12
+Ýt\9ad
+;
+
+76 \r\12
+Ý\8b¼
+;
+
+80 \r\12
+ÝtÝt
+;
+
+82 #iâdeà
+__Ãed_g\91Ýt
+
+
+104 \19
+ sÝtiÚ
+
+
+106 cڡ \ 5*
+ gÇme
+;
+
+109 \12
+ ghas_¬g
+;
+
+110 \12*
+ gæag
+;
+
+111 \12
+ gv®
+;
+
+116 \ 1
+ #no_¬gum\92t
+ 0
+
+ )
+
+117 \ 1
+ #»qu\9ced_¬gum\92t
+ 1
+
+ )
+
+118 \ 1
+ #ÝtiÚ®_¬gum\92t
+ 2
+
+ )
+
+146 #ifdeà
+__GNU_LIBRARY__
+
+
+150 \r\12
+g\91Ýt
+ (\12
+___¬gc
+, \ 5*cڡ *
+___¬gv
+, cڡ \ 5*
+__shÜtÝts
+)
+
+151
+__THROW
+;
+
+153 #ià
+def\9aed
+
+__Ãed_g\91Ýt
+ && def\9aed
+__USE_POSIX2
+ \
+
+154 && !
+def\9aed
+
+ g__USE_POSIX_IMPLICITLY
+ && !def\9aed
+ g__USE_GNU
+
+
+158 #ifdeà
+__REDIRECT
+
+
+159 \r\12
+__REDIRECT_NTH
+ (
+g\91Ýt
+, (\12
+___¬gc
+, \ 5*cڡ *
+___¬gv
+,
+
+160 cڡ \ 5*
+__shÜtÝts
+),
+
+161
+__posix_g\91Ýt
+);
+
+163 \r\12
+__posix_g\91Ýt
+ (\12
+___¬gc
+, \ 5*cڡ *
+___¬gv
+,
+
+164 cڡ \ 5*
+__shÜtÝts
+è
+__THROW
+;
+
+165 \ 1
+ #g\91Ýt
+
+__posix_g\91Ýt
+
+
+ )
+
+169 \r\12
+g\91Ýt
+ ();
+
+172 #iâdeà
+__Ãed_g\91Ýt
+
+
+173 \r\12
+g\91Ýt_lÚg
+ (\12
+___¬gc
+, \ 5*cڡ *
+___¬gv
+,
+
+174 cڡ \ 5*
+__shÜtÝts
+,
+
+175 cڡ \19
+ÝtiÚ
+ *
+__lÚgÝts
+, \12*
+__lÚg\9ad
+)
+
+176
+__THROW
+;
+
+177 \r\12
+g\91Ýt_lÚg_Úly
+ (\12
+___¬gc
+, \ 5*cڡ *
+___¬gv
+,
+
+178 cڡ \ 5*
+__shÜtÝts
+,
+
+179 cڡ \19
+ÝtiÚ
+ *
+__lÚgÝts
+, \12*
+__lÚg\9ad
+)
+
+180
+__THROW
+;
+
+184 #ifdef
+__ýlu¥lus
+
+
+189 #undeà
+__Ãed_g\91Ýt
+
+
+ @/usr/include/inttypes.h
+
+22 #iâdeà
+_INTTYPES_H
+
+
+23 \ 1
+ #_INTTYPES_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27 \ 2
+ ~<¡d\9at.h
+>
+
+30 #iâdeà
+____gwch¬_t_def\9aed
+
+
+31 #ifdeà
+__ýlu¥lus
+
+
+32 \ 1
+ #__gwch¬_t
+
+wch¬_t
+
+
+ )
+
+33 #\96ià
+def\9aed
+
+__WCHAR_TYPE__
+
+
+34 \e
+__WCHAR_TYPE__
+
+ t__gwch¬_t
+;
+
+36 \ 1
+ #__Ãed_wch¬_t
+
+
+ )
+
+37 \ 2
+ ~<¡ddef.h
+>
+
+38 \e
+wch¬_t
+
+ t__gwch¬_t
+;
+
+40 \ 1
+ #____gwch¬_t_def\9aed
+ 1
+
+ )
+
+43 #ià
+__WORDSIZE
+ == 64
+
+44 \ 1
+ #__PRI64_PREFIX
+ "l"
+
+ )
+
+45 \ 1
+ #__PRIPTR_PREFIX
+ "l"
+
+ )
+
+47 \ 1
+ #__PRI64_PREFIX
+ "Î"
+
+ )
+
+48 \ 1
+ #__PRIPTR_PREFIX
+
+
+ )
+
+54 \ 1
+ #PRId8
+ "d"
+
+ )
+
+55 \ 1
+ #PRId16
+ "d"
+
+ )
+
+56 \ 1
+ #PRId32
+ "d"
+
+ )
+
+57 \ 1
+ #PRId64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+59 \ 1
+ #PRIdLEAST8
+ "d"
+
+ )
+
+60 \ 1
+ #PRIdLEAST16
+ "d"
+
+ )
+
+61 \ 1
+ #PRIdLEAST32
+ "d"
+
+ )
+
+62 \ 1
+ #PRIdLEAST64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+64 \ 1
+ #PRIdFAST8
+ "d"
+
+ )
+
+65 \ 1
+ #PRIdFAST16
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+66 \ 1
+ #PRIdFAST32
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+67 \ 1
+ #PRIdFAST64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+70 \ 1
+ #PRIi8
+ "i"
+
+ )
+
+71 \ 1
+ #PRIi16
+ "i"
+
+ )
+
+72 \ 1
+ #PRIi32
+ "i"
+
+ )
+
+73 \ 1
+ #PRIi64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+75 \ 1
+ #PRIiLEAST8
+ "i"
+
+ )
+
+76 \ 1
+ #PRIiLEAST16
+ "i"
+
+ )
+
+77 \ 1
+ #PRIiLEAST32
+ "i"
+
+ )
+
+78 \ 1
+ #PRIiLEAST64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+80 \ 1
+ #PRIiFAST8
+ "i"
+
+ )
+
+81 \ 1
+ #PRIiFAST16
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+82 \ 1
+ #PRIiFAST32
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+83 \ 1
+ #PRIiFAST64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+86 \ 1
+ #PRIo8
+ "o"
+
+ )
+
+87 \ 1
+ #PRIo16
+ "o"
+
+ )
+
+88 \ 1
+ #PRIo32
+ "o"
+
+ )
+
+89 \ 1
+ #PRIo64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+91 \ 1
+ #PRIoLEAST8
+ "o"
+
+ )
+
+92 \ 1
+ #PRIoLEAST16
+ "o"
+
+ )
+
+93 \ 1
+ #PRIoLEAST32
+ "o"
+
+ )
+
+94 \ 1
+ #PRIoLEAST64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+96 \ 1
+ #PRIoFAST8
+ "o"
+
+ )
+
+97 \ 1
+ #PRIoFAST16
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+98 \ 1
+ #PRIoFAST32
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+99 \ 1
+ #PRIoFAST64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+102 \ 1
+ #PRIu8
+ "u"
+
+ )
+
+103 \ 1
+ #PRIu16
+ "u"
+
+ )
+
+104 \ 1
+ #PRIu32
+ "u"
+
+ )
+
+105 \ 1
+ #PRIu64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+107 \ 1
+ #PRIuLEAST8
+ "u"
+
+ )
+
+108 \ 1
+ #PRIuLEAST16
+ "u"
+
+ )
+
+109 \ 1
+ #PRIuLEAST32
+ "u"
+
+ )
+
+110 \ 1
+ #PRIuLEAST64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+112 \ 1
+ #PRIuFAST8
+ "u"
+
+ )
+
+113 \ 1
+ #PRIuFAST16
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+114 \ 1
+ #PRIuFAST32
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+115 \ 1
+ #PRIuFAST64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+118 \ 1
+ #PRIx8
+ "x"
+
+ )
+
+119 \ 1
+ #PRIx16
+ "x"
+
+ )
+
+120 \ 1
+ #PRIx32
+ "x"
+
+ )
+
+121 \ 1
+ #PRIx64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+123 \ 1
+ #PRIxLEAST8
+ "x"
+
+ )
+
+124 \ 1
+ #PRIxLEAST16
+ "x"
+
+ )
+
+125 \ 1
+ #PRIxLEAST32
+ "x"
+
+ )
+
+126 \ 1
+ #PRIxLEAST64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+128 \ 1
+ #PRIxFAST8
+ "x"
+
+ )
+
+129 \ 1
+ #PRIxFAST16
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+130 \ 1
+ #PRIxFAST32
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+131 \ 1
+ #PRIxFAST64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+134 \ 1
+ #PRIX8
+ "X"
+
+ )
+
+135 \ 1
+ #PRIX16
+ "X"
+
+ )
+
+136 \ 1
+ #PRIX32
+ "X"
+
+ )
+
+137 \ 1
+ #PRIX64
+
+__PRI64_PREFIX
+ "X"
+
+ )
+
+139 \ 1
+ #PRIXLEAST8
+ "X"
+
+ )
+
+140 \ 1
+ #PRIXLEAST16
+ "X"
+
+ )
+
+141 \ 1
+ #PRIXLEAST32
+ "X"
+
+ )
+
+142 \ 1
+ #PRIXLEAST64
+
+__PRI64_PREFIX
+ "X"
+
+ )
+
+144 \ 1
+ #PRIXFAST8
+ "X"
+
+ )
+
+145 \ 1
+ #PRIXFAST16
+
+__PRIPTR_PREFIX
+ "X"
+
+ )
+
+146 \ 1
+ #PRIXFAST32
+
+__PRIPTR_PREFIX
+ "X"
+
+ )
+
+147 \ 1
+ #PRIXFAST64
+
+__PRI64_PREFIX
+ "X"
+
+ )
+
+151 \ 1
+ #PRIdMAX
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+152 \ 1
+ #PRIiMAX
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+153 \ 1
+ #PRIoMAX
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+154 \ 1
+ #PRIuMAX
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+155 \ 1
+ #PRIxMAX
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+156 \ 1
+ #PRIXMAX
+
+__PRI64_PREFIX
+ "X"
+
+ )
+
+160 \ 1
+ #PRIdPTR
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+161 \ 1
+ #PRIiPTR
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+162 \ 1
+ #PRIoPTR
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+163 \ 1
+ #PRIuPTR
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+164 \ 1
+ #PRIxPTR
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+165 \ 1
+ #PRIXPTR
+
+__PRIPTR_PREFIX
+ "X"
+
+ )
+
+171 \ 1
+ #SCNd8
+ "hhd"
+
+ )
+
+172 \ 1
+ #SCNd16
+ "hd"
+
+ )
+
+173 \ 1
+ #SCNd32
+ "d"
+
+ )
+
+174 \ 1
+ #SCNd64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+176 \ 1
+ #SCNdLEAST8
+ "hhd"
+
+ )
+
+177 \ 1
+ #SCNdLEAST16
+ "hd"
+
+ )
+
+178 \ 1
+ #SCNdLEAST32
+ "d"
+
+ )
+
+179 \ 1
+ #SCNdLEAST64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+181 \ 1
+ #SCNdFAST8
+ "hhd"
+
+ )
+
+182 \ 1
+ #SCNdFAST16
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+183 \ 1
+ #SCNdFAST32
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+184 \ 1
+ #SCNdFAST64
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+187 \ 1
+ #SCNi8
+ "hhi"
+
+ )
+
+188 \ 1
+ #SCNi16
+ "hi"
+
+ )
+
+189 \ 1
+ #SCNi32
+ "i"
+
+ )
+
+190 \ 1
+ #SCNi64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+192 \ 1
+ #SCNiLEAST8
+ "hhi"
+
+ )
+
+193 \ 1
+ #SCNiLEAST16
+ "hi"
+
+ )
+
+194 \ 1
+ #SCNiLEAST32
+ "i"
+
+ )
+
+195 \ 1
+ #SCNiLEAST64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+197 \ 1
+ #SCNiFAST8
+ "hhi"
+
+ )
+
+198 \ 1
+ #SCNiFAST16
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+199 \ 1
+ #SCNiFAST32
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+200 \ 1
+ #SCNiFAST64
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+203 \ 1
+ #SCNu8
+ "hhu"
+
+ )
+
+204 \ 1
+ #SCNu16
+ "hu"
+
+ )
+
+205 \ 1
+ #SCNu32
+ "u"
+
+ )
+
+206 \ 1
+ #SCNu64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+208 \ 1
+ #SCNuLEAST8
+ "hhu"
+
+ )
+
+209 \ 1
+ #SCNuLEAST16
+ "hu"
+
+ )
+
+210 \ 1
+ #SCNuLEAST32
+ "u"
+
+ )
+
+211 \ 1
+ #SCNuLEAST64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+213 \ 1
+ #SCNuFAST8
+ "hhu"
+
+ )
+
+214 \ 1
+ #SCNuFAST16
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+215 \ 1
+ #SCNuFAST32
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+216 \ 1
+ #SCNuFAST64
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+219 \ 1
+ #SCNo8
+ "hho"
+
+ )
+
+220 \ 1
+ #SCNo16
+ "ho"
+
+ )
+
+221 \ 1
+ #SCNo32
+ "o"
+
+ )
+
+222 \ 1
+ #SCNo64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+224 \ 1
+ #SCNoLEAST8
+ "hho"
+
+ )
+
+225 \ 1
+ #SCNoLEAST16
+ "ho"
+
+ )
+
+226 \ 1
+ #SCNoLEAST32
+ "o"
+
+ )
+
+227 \ 1
+ #SCNoLEAST64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+229 \ 1
+ #SCNoFAST8
+ "hho"
+
+ )
+
+230 \ 1
+ #SCNoFAST16
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+231 \ 1
+ #SCNoFAST32
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+232 \ 1
+ #SCNoFAST64
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+235 \ 1
+ #SCNx8
+ "hhx"
+
+ )
+
+236 \ 1
+ #SCNx16
+ "hx"
+
+ )
+
+237 \ 1
+ #SCNx32
+ "x"
+
+ )
+
+238 \ 1
+ #SCNx64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+240 \ 1
+ #SCNxLEAST8
+ "hhx"
+
+ )
+
+241 \ 1
+ #SCNxLEAST16
+ "hx"
+
+ )
+
+242 \ 1
+ #SCNxLEAST32
+ "x"
+
+ )
+
+243 \ 1
+ #SCNxLEAST64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+245 \ 1
+ #SCNxFAST8
+ "hhx"
+
+ )
+
+246 \ 1
+ #SCNxFAST16
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+247 \ 1
+ #SCNxFAST32
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+248 \ 1
+ #SCNxFAST64
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+252 \ 1
+ #SCNdMAX
+
+__PRI64_PREFIX
+ "d"
+
+ )
+
+253 \ 1
+ #SCNiMAX
+
+__PRI64_PREFIX
+ "i"
+
+ )
+
+254 \ 1
+ #SCNoMAX
+
+__PRI64_PREFIX
+ "o"
+
+ )
+
+255 \ 1
+ #SCNuMAX
+
+__PRI64_PREFIX
+ "u"
+
+ )
+
+256 \ 1
+ #SCNxMAX
+
+__PRI64_PREFIX
+ "x"
+
+ )
+
+259 \ 1
+ #SCNdPTR
+
+__PRIPTR_PREFIX
+ "d"
+
+ )
+
+260 \ 1
+ #SCNiPTR
+
+__PRIPTR_PREFIX
+ "i"
+
+ )
+
+261 \ 1
+ #SCNoPTR
+
+__PRIPTR_PREFIX
+ "o"
+
+ )
+
+262 \ 1
+ #SCNuPTR
+
+__PRIPTR_PREFIX
+ "u"
+
+ )
+
+263 \ 1
+ #SCNxPTR
+
+__PRIPTR_PREFIX
+ "x"
+
+ )
+
+266
+ g__BEGIN_DECLS
+
+
+268 #ià
+__WORDSIZE
+ == 64
+
+273 \13\12
+ mquÙ
+;
+
+274 \13\12
+ m»m
+;
+
+275 }
+ timaxdiv_t
+;
+
+282
+__ex\8bnsiÚ__
+ \13\13\12
+ mquÙ
+;
+
+283
+__ex\8bnsiÚ__
+ \13\13\12
+ m»m
+;
+
+284 }
+ timaxdiv_t
+;
+
+290 \r
+\9atmax_t
+
+ $imaxabs
+ (
+\9atmax_t
+
+__n
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+293 \r
+imaxdiv_t
+
+ $imaxdiv
+ (
+\9atmax_t
+
+__num\94
+, iÁmax_\88
+__d\92om
+)
+
+294
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+297 \r
+\9atmax_t
+
+ $¡¹oimax
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+298 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+è
+__THROW
+;
+
+301 \r
+u\9atmax_t
+
+ $¡¹oumax
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+302 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+è
+__THROW
+;
+
+305 \r
+\9atmax_t
+
+ $wc¡oimax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+306
+__gwch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+307
+__THROW
+;
+
+310 \r
+u\9atmax_t
+
+ $wc¡oumax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+311
+__gwch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+312
+__THROW
+;
+
+314 #ifdeà
+__USE_EXTERN_INLINES
+
+
+316 #ià
+__WORDSIZE
+ == 64
+
+318 \r\13\12
+ $__¡¹Þ_\9a\8bº®
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+319 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+320 \12
+__ba£
+, \12
+__group
+)
+
+321
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+323
+__ex\8bº_\9al\9ae
+
+\9atmax_t
+
+
+324
+ `__NTH
+ (
+ $¡¹oimax
+ (cڡ \ 5*
+__»¡riù
+
+Ō
+, \ 5**__»¡riù
+\92d±r
+,
+
+325 \12
+ba£
+))
+
+327 \15
+ `__¡¹Þ_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+328
+ }
+}
+
+330 \r\1d\13\12
+ $__¡¹oul_\9a\8bº®
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+331 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+332 \12
+__ba£
+, \12
+__group
+)
+
+333
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+335
+__ex\8bº_\9al\9ae
+
+u\9atmax_t
+
+
+336
+ `__NTH
+ (
+ $¡¹oumax
+ (cڡ \ 5*
+__»¡riù
+
+Ō
+, \ 5**__»¡riù
+\92d±r
+,
+
+337 \12
+ba£
+))
+
+339 \15
+ `__¡¹oul_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+340
+ }
+}
+
+342 \r\13\12
+ $__wc¡Þ_\9a\8bº®
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+343
+__gwch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+344 \12
+__ba£
+, \12
+__group
+)
+
+345
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+347
+__ex\8bº_\9al\9ae
+
+\9atmax_t
+
+
+348
+ `__NTH
+ (
+ $wc¡oimax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+Ō
+,
+
+349
+__gwch¬_t
+ **
+__»¡riù
+
+\92d±r
+, \12
+ba£
+))
+
+351 \15
+ `__wc¡Þ_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+352
+ }
+}
+
+354 \r\1d\13\12
+ $__wc¡oul_\9a\8bº®
+ (cڡ
+__gwch¬_t
+ *
+
+355
+__»¡riù
+
+__Ō
+,
+
+356
+__gwch¬_t
+ **
+
+357
+__»¡riù
+
+__\92d±r
+,
+
+358 \12
+__ba£
+, \12
+__group
+)
+
+359
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+361
+__ex\8bº_\9al\9ae
+
+u\9atmax_t
+
+
+362
+ `__NTH
+ (
+ $wc¡oumax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+Ō
+,
+
+363
+__gwch¬_t
+ **
+__»¡riù
+
+\92d±r
+, \12
+ba£
+))
+
+365 \15
+ `__wc¡oul_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+366
+ }
+}
+
+370
+__ex\8bnsiÚ__
+
+
+371 \r\13\13\12
+ $__¡¹Þl_\9a\8bº®
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+372 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+373 \12
+__ba£
+, \12
+__group
+)
+
+374
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+376
+__ex\8bº_\9al\9ae
+
+\9atmax_t
+
+
+377
+ `__NTH
+ (
+ $¡¹oimax
+ (cڡ \ 5*
+__»¡riù
+
+Ō
+, \ 5**__»¡riù
+\92d±r
+,
+
+378 \12
+ba£
+))
+
+380 \15
+ `__¡¹Þl_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+381
+ }
+}
+
+383
+__ex\8bnsiÚ__
+
+
+384 \r\1d\13\13\12
+ $__¡¹ouÎ_\9a\8bº®
+ (const \ 5*
+
+385
+__»¡riù
+
+__Ō
+,
+
+387
+__»¡riù
+
+__\92d±r
+,
+
+388 \12
+__ba£
+,
+
+389 \12
+__group
+)
+
+390
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+392
+__ex\8bº_\9al\9ae
+
+u\9atmax_t
+
+
+393
+ `__NTH
+ (
+ $¡¹oumax
+ (cڡ \ 5*
+__»¡riù
+
+Ō
+, \ 5**__»¡riù
+\92d±r
+,
+
+394 \12
+ba£
+))
+
+396 \15
+ `__¡¹ouÎ_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+397
+ }
+}
+
+399
+__ex\8bnsiÚ__
+
+
+400 \r\13\13\12
+ $__wc¡Þl_\9a\8bº®
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+401
+__gwch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+402 \12
+__ba£
+, \12
+__group
+)
+
+403
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+405
+__ex\8bº_\9al\9ae
+
+\9atmax_t
+
+
+406
+ `__NTH
+ (
+ $wc¡oimax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+Ō
+,
+
+407
+__gwch¬_t
+ **
+__»¡riù
+
+\92d±r
+, \12
+ba£
+))
+
+409 \15
+ `__wc¡Þl_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+410
+ }
+}
+
+413
+__ex\8bnsiÚ__
+
+
+414 \r\1d\13\13\12
+ $__wc¡ouÎ_\9a\8bº®
+ (cڡ
+__gwch¬_t
+ *
+
+415
+__»¡riù
+
+__Ō
+,
+
+416
+__gwch¬_t
+ **
+
+417
+__»¡riù
+
+__\92d±r
+,
+
+418 \12
+__ba£
+,
+
+419 \12
+__group
+)
+
+420
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+422
+__ex\8bº_\9al\9ae
+
+u\9atmax_t
+
+
+423
+ `__NTH
+ (
+ $wc¡oumax
+ (cڡ
+__gwch¬_t
+ *
+__»¡riù
+
+Ō
+,
+
+424
+__gwch¬_t
+ **
+__»¡riù
+
+\92d±r
+, \12
+ba£
+))
+
+426 \15
+ `__wc¡ouÎ_\9a\8bº®
+ (
+Ō
+,
+\92d±r
+,
+ba£
+, 0);
+
+427
+ }
+}
+
+432
+ g__END_DECLS
+
+
+ @/usr/include/libgen.h
+
+18 #iâdeà
+_LIBGEN_H
+
+
+19 \ 1
+ #_LIBGEN_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+23
+__BEGIN_DECLS
+
+
+26 \r\ 5*
+ $d\9cÇme
+ (\ 5*
+__·th
+è
+__THROW
+;
+
+34 \r\ 5*
+ $__xpg_ba£Çme
+ (\ 5*
+__·th
+è
+__THROW
+;
+
+35 \ 1
+ #ba£Çme
+
+__xpg_ba£Çme
+
+
+ )
+
+37
+__END_DECLS
+
+
+ @/usr/include/math.h
+
+23 #iâdef
+_MATH_H
+
+
+24 \ 1
+ #_MATH_H
+ 1
+
+ )
+
+26 \ 2
+ ~<ã©u»s.h
+>
+
+28
+ g__BEGIN_DECLS
+
+
+31 \ 2
+ ~<b\99s/m©h-veùÜ.h
+>
+
+35 \ 2
+ ~<b\99s/huge_v®.h
+>
+
+36 #ifdeà
+__USE_ISOC99
+
+
+37 \ 2
+ ~<b\99s/huge_v®f.h
+>
+
+38 \ 2
+ ~<b\99s/huge_v®l.h
+>
+
+41 \ 2
+ ~<b\99s/\9af.h
+>
+
+44 \ 2
+ ~<b\99s/Çn.h
+>
+
+48 \ 2
+ ~<b\99s/m©hdef.h
+>
+
+55 \ 1
+ #__SIMD_DECL
+(
+funùiÚ
+è
+ `__CONCAT
+ (
+__DECL_SIMD_
+, funùiÚ)
+
+ )
+
+57 \ 1
+ #__MATHCALL_VEC
+(
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+58
+ `__SIMD_DECL
+ (
+ `__MATH_PRECNAME
+ (
+funùiÚ
+,
+suffix
+)) \
+
+59
+ `__MATHCALL
+ (
+funùiÚ
+,
+suffix
+,
+¬gs
+)
+
+ )
+
+61 \ 1
+ #__MATHDECL_VEC
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+62
+ `__SIMD_DECL
+ (
+ `__MATH_PRECNAME
+ (
+funùiÚ
+,
+suffix
+)) \
+
+63
+ `__MATHDECL
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+)
+
+ )
+
+65 \ 1
+ #__MATHCALL
+(
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+66
+ `__MATHDECL
+ (
+_MdoubË_
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+)
+
+ )
+
+67 \ 1
+ #__MATHDECL
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+68
+ `__MATHDECL_1
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+); \
+
+69
+ `__MATHDECL_1
+(
+ty³
+,
+ `__CONCAT
+(
+__
+,
+funùiÚ
+),
+suffix
+,
+¬gs
+)
+
+ )
+
+70 \ 1
+ #__MATHCALLX
+(
+funùiÚ
+,
+suffix
+,
+¬gs
+,
+©\8cib
+) \
+
+71
+ `__MATHDECLX
+ (
+_MdoubË_
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+,
+©\8cib
+)
+
+ )
+
+72 \ 1
+ #__MATHDECLX
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+,
+©\8cib
+) \
+
+73
+ `__MATHDECL_1
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+è
+ `__©\8cibu\8b__
+ (
+©\8cib
+); \
+
+74
+ `__MATHDECL_1
+(
+ty³
+,
+ `__CONCAT
+(
+__
+,
+funùiÚ
+),
+suffix
+,
+¬gs
+è
+ `__©\8cibu\8b__
+ (
+©\8cib
+)
+
+ )
+
+75 \ 1
+ #__MATHDECL_1
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+76 \r
+ty³
+
+ `__MATH_PRECNAME
+(
+funùiÚ
+,
+suffix
+è
+¬gs
+
+__THROW
+
+
+ )
+
+78 \ 1
+ #_MdoubË_
+ \b
+
+ )
+
+79 \ 1
+ #__MATH_PRECNAME
+(
+Çme
+,
+r
+è
+ `__CONCAT
+Òame,r)
+
+ )
+
+80 \ 1
+ #__MATH_DECLARING_DOUBLE
+ 1
+
+ )
+
+81 \ 1
+ #_MdoubË_BEGIN_NAMESPACE
+
+__BEGIN_NAMESPACE_STD
+
+
+ )
+
+82 \ 1
+ #_MdoubË_END_NAMESPACE
+
+__END_NAMESPACE_STD
+
+
+ )
+
+83 \ 2
+ ~<b\99s/m©hÿÎs.h
+>
+
+84 #undeà
+_MdoubË_
+
+
+85 #undeà
+_MdoubË_BEGIN_NAMESPACE
+
+
+86 #undeà
+_MdoubË_END_NAMESPACE
+
+
+87 #undeà
+__MATH_PRECNAME
+
+
+88 #undeà
+__MATH_DECLARING_DOUBLE
+
+
+90 #ifdeà
+__USE_ISOC99
+
+
+96 #iâdeà
+_Mæßt_
+
+
+97 \ 1
+ #_Mæßt_
+ \ e
+
+ )
+
+99 \ 1
+ #_MdoubË_
+
+_Mæßt_
+
+
+ )
+
+100 \ 1
+ #__MATH_PRECNAME
+(
+Çme
+,
+r
+èÇme##
+f
+##
+ )
+r
+
+101 \ 1
+ #__MATH_DECLARING_DOUBLE
+ 0
+
+ )
+
+102 \ 1
+ #_MdoubË_BEGIN_NAMESPACE
+
+__BEGIN_NAMESPACE_C99
+
+
+ )
+
+103 \ 1
+ #_MdoubË_END_NAMESPACE
+
+__END_NAMESPACE_C99
+
+
+ )
+
+104 \ 2
+ ~<b\99s/m©hÿÎs.h
+>
+
+105 #undeà
+_MdoubË_
+
+
+106 #undeà
+_MdoubË_BEGIN_NAMESPACE
+
+
+107 #undeà
+_MdoubË_END_NAMESPACE
+
+
+108 #undeà
+__MATH_PRECNAME
+
+
+109 #undeà
+__MATH_DECLARING_DOUBLE
+
+
+111 #ià!(
+def\9aed
+
+__NO_LONG_DOUBLE_MATH
+ && def\9aed
+_LIBC
+) \
+
+112 ||
+def\9aed
+
+__LDBL_COMPAT
+ \
+
+113 ||
+def\9aed
+
+_LIBC_TEST
+
+
+114 #ifdeà
+__LDBL_COMPAT
+
+
+116 #ifdeà
+__USE_ISOC99
+
+
+117 \r\ e
+ $__Ædbl_Ãx\89ow¬df
+ (\ e
+__x
+, \13\b
+__y
+)
+
+118
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+119 #ifdeà
+__REDIRECT_NTH
+
+
+120 \r\ e
+ `__REDIRECT_NTH
+ (
+Ãx\89ow¬df
+, (\ e
+__x
+, \13\b
+__y
+),
+
+121
+__Ædbl_Ãx\89ow¬df
+)
+
+122
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+123 \r\b
+ `__REDIRECT_NTH
+ (
+Ãx\89ow¬d
+, (\b
+__x
+, \13\b
+__y
+),
+
+124
+Ãx\8fá\94
+è
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+125 \r\13\b
+ `__REDIRECT_NTH
+ (
+Ãx\89ow¬dl
+,
+
+126 (\13\b
+__x
+, \13\b
+__y
+),
+
+127
+Ãx\8fá\94
+è
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+131 #undeà
+__MATHDECL_1
+
+
+132 \ 1
+ #__MATHDECL_2
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+,
+®\9fs
+) \
+
+133 \r
+ty³
+
+ `__REDIRECT_NTH
+(
+ `__MATH_PRECNAME
+(
+funùiÚ
+,
+suffix
+), \
+
+134
+¬gs
+,
+®\9fs
+)
+
+ )
+
+135 \ 1
+ #__MATHDECL_1
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+) \
+
+136
+ `__MATHDECL_2
+(
+ty³
+,
+funùiÚ
+,
+suffix
+,
+¬gs
+,
+ `__CONCAT
+(funùiÚ,suffix))
+
+ )
+
+142 #iâdeà
+_MlÚg_doubË_
+
+
+143 \ 1
+ #_MlÚg_doubË_
+ \13\b
+
+ )
+
+145 \ 1
+ #_MdoubË_
+
+_MlÚg_doubË_
+
+
+ )
+
+146 \ 1
+ #__MATH_PRECNAME
+(
+Çme
+,
+r
+èÇme##
+l
+##
+ )
+r
+
+147 \ 1
+ #__MATH_DECLARING_DOUBLE
+ 0
+
+ )
+
+148 \ 1
+ #_MdoubË_BEGIN_NAMESPACE
+
+__BEGIN_NAMESPACE_C99
+
+
+ )
+
+149 \ 1
+ #_MdoubË_END_NAMESPACE
+
+__END_NAMESPACE_C99
+
+
+ )
+
+150 \ 1
+ #__MATH_DECLARE_LDOUBLE
+ 1
+
+ )
+
+151 \ 2
+ ~<b\99s/m©hÿÎs.h
+>
+
+152 #undeà
+_MdoubË_
+
+
+153 #undeà
+_MdoubË_BEGIN_NAMESPACE
+
+
+154 #undeà
+_MdoubË_END_NAMESPACE
+
+
+155 #undeà
+__MATH_PRECNAME
+
+
+156 #undeà
+__MATH_DECLARING_DOUBLE
+
+
+161 #undeà
+__MATHDECL_1
+
+
+162 #undeà
+__MATHDECL
+
+
+163 #undeà
+__MATHCALL
+
+
+166 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+168 \r\12
+signgam
+;
+
+173 #ifdeà
+__USE_ISOC99
+
+
+211
+FP_NAN
+ =
+
+212 \ 1
+ #FP_NAN
+ 0
+
+ )
+
+213
+FP_NAN
+,
+
+214
+FP_INFINITE
+ =
+
+215 \ 1
+ #FP_INFINITE
+ 1
+
+ )
+
+216
+FP_INFINITE
+,
+
+217
+FP_ZERO
+ =
+
+218 \ 1
+ #FP_ZERO
+ 2
+
+ )
+
+219
+FP_ZERO
+,
+
+220
+FP_SUBNORMAL
+ =
+
+221 \ 1
+ #FP_SUBNORMAL
+ 3
+
+ )
+
+222
+FP_SUBNORMAL
+,
+
+223
+FP_NORMAL
+ =
+
+224 \ 1
+ #FP_NORMAL
+ 4
+
+ )
+
+225
+FP_NORMAL
+
+
+233 #ià
+ `__GNUC_PREREQ
+ (4,4è&& !
+def\9aed
+
+__SUPPORT_SNAN__
+ \
+
+234 && !
+def\9aed
+
+__OPTIMIZE_SIZE__
+
+
+235 \ 1
+ #åþassify
+(
+x
+è
+ `__bu\9et\9a_åþassify
+ (
+FP_NAN
+,
+FP_INFINITE
+, \
+
+236
+FP_NORMAL
+,
+FP_SUBNORMAL
+,
+FP_ZERO
+,
+x
+)
+
+ )
+
+237 #\96ià
+def\9aed
+
+__NO_LONG_DOUBLE_MATH
+
+
+238 \ 1
+ #åþassify
+(
+x
+) \
+
+239 (\17 (
+x
+è=ð\17 (\ eè?
+ `__åþassifyf
+ (xè:
+ `__åþassify
+ (x))
+
+ )
+
+241 \ 1
+ #åþassify
+(
+x
+) \
+
+242 (\17 (
+x
+) == \17 (\ e) \
+
+243 ?
+ `__åþassifyf
+ (
+x
+) \
+
+244 : \17 (
+x
+) == \17 (\b) \
+
+245 ?
+ `__åþassify
+ (
+x
+è:
+ `__åþassifyl
+ (x))
+
+ )
+
+249 #ià
+ `__GNUC_PREREQ
+ (4,0)
+
+250 \ 1
+ #signb\99
+(
+x
+) \
+
+251 (\17 (
+x
+) == \17 (\ e) \
+
+252 ?
+ `__bu\9et\9a_signb\99f
+ (
+x
+) \
+
+253 : \17 (
+x
+) == \17 (\b) \
+
+254 ?
+ `__bu\9et\9a_signb\99
+ (
+x
+è:
+ `__bu\9et\9a_signb\99l
+ (x))
+
+ )
+
+256 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+257 \ 1
+ #signb\99
+(
+x
+) \
+
+258 (\17 (
+x
+è=ð\17 (\ eè?
+ `__signb\99f
+ (xè:
+ `__signb\99
+ (x))
+
+ )
+
+260 \ 1
+ #signb\99
+(
+x
+) \
+
+261 (\17 (
+x
+) == \17 (\ e) \
+
+262 ?
+ `__signb\99f
+ (
+x
+) \
+
+263 : \17 (
+x
+) == \17 (\b) \
+
+264 ?
+ `__signb\99
+ (
+x
+è:
+ `__signb\99l
+ (x))
+
+ )
+
+269 #ià
+ `__GNUC_PREREQ
+ (4,4è&& !
+def\9aed
+
+__SUPPORT_SNAN__
+
+
+270 \ 1
+ #isf\9a\99e
+(
+x
+è
+ `__bu\9et\9a_isf\9a\99e
+ (x)
+
+ )
+
+271 #\96ià
+def\9aed
+
+__NO_LONG_DOUBLE_MATH
+
+
+272 \ 1
+ #isf\9a\99e
+(
+x
+) \
+
+273 (\17 (
+x
+è=ð\17 (\ eè?
+ `__f\9a\99ef
+ (xè:
+ `__f\9a\99e
+ (x))
+
+ )
+
+275 \ 1
+ #isf\9a\99e
+(
+x
+) \
+
+276 (\17 (
+x
+) == \17 (\ e) \
+
+277 ?
+ `__f\9a\99ef
+ (
+x
+) \
+
+278 : \17 (
+x
+) == \17 (\b) \
+
+279 ?
+ `__f\9a\99e
+ (
+x
+è:
+ `__f\9a\99\96
+ (x))
+
+ )
+
+283 #ià
+ `__GNUC_PREREQ
+ (4,4è&& !
+def\9aed
+
+__SUPPORT_SNAN__
+
+
+284 \ 1
+ #i¢Üm®
+(
+x
+è
+ `__bu\9et\9a_i¢Üm®
+ (x)
+
+ )
+
+286 \ 1
+ #i¢Üm®
+(
+x
+è(
+ `åþassify
+ (xè=ð
+FP_NORMAL
+)
+
+ )
+
+291 #ià
+ `__GNUC_PREREQ
+ (4,4è&& !
+def\9aed
+
+__SUPPORT_SNAN__
+
+
+292 \ 1
+ #i¢ª
+(
+x
+è
+ `__bu\9et\9a_i¢ª
+ (x)
+
+ )
+
+293 #\96ià
+def\9aed
+
+__NO_LONG_DOUBLE_MATH
+
+
+294 \ 1
+ #i¢ª
+(
+x
+) \
+
+295 (\17 (
+x
+è=ð\17 (\ eè?
+ `__i¢ªf
+ (xè:
+ `__i¢ª
+ (x))
+
+ )
+
+297 \ 1
+ #i¢ª
+(
+x
+) \
+
+298 (\17 (
+x
+) == \17 (\ e) \
+
+299 ?
+ `__i¢ªf
+ (
+x
+) \
+
+300 : \17 (
+x
+) == \17 (\b) \
+
+301 ?
+ `__i¢ª
+ (
+x
+è:
+ `__i¢ªl
+ (x))
+
+ )
+
+305 #ià
+ `__GNUC_PREREQ
+ (4,4è&& !
+def\9aed
+
+__SUPPORT_SNAN__
+
+
+306 \ 1
+ #is\9af
+(
+x
+è
+ `__bu\9et\9a_is\9af_sign
+ (x)
+
+ )
+
+307 #\96ià
+def\9aed
+
+__NO_LONG_DOUBLE_MATH
+
+
+308 \ 1
+ #is\9af
+(
+x
+) \
+
+309 (\17 (
+x
+è=ð\17 (\ eè?
+ `__is\9aff
+ (xè:
+ `__is\9af
+ (x))
+
+ )
+
+311 \ 1
+ #is\9af
+(
+x
+) \
+
+312 (\17 (
+x
+) == \17 (\ e) \
+
+313 ?
+ `__is\9aff
+ (
+x
+) \
+
+314 : \17 (
+x
+) == \17 (\b) \
+
+315 ?
+ `__is\9af
+ (
+x
+è:
+ `__is\9aæ
+ (x))
+
+ )
+
+319 \ 1
+ #MATH_ERRNO
+ 1
+
+ )
+
+320 \ 1
+ #MATH_ERREXCEPT
+ 2
+
+ )
+
+325 #iâdeà
+__FAST_MATH__
+
+
+326 \ 1
+ #m©h_\94rhªdl\9ag
+ (
+MATH_ERRNO
+ |
+MATH_ERREXCEPT
+)
+
+ )
+
+331 #ifdeà
+__USE_GNU
+
+
+333 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+334 \ 1
+ #issigÇl\9ag
+(
+x
+) \
+
+335 (\17 (
+x
+è=ð\17 (\ eè?
+ `__issigÇl\9agf
+ (xè:
+ `__issigÇl\9ag
+ (x))
+
+ )
+
+337 \ 1
+ #issigÇl\9ag
+(
+x
+) \
+
+338 (\17 (
+x
+) == \17 (\ e) \
+
+339 ?
+ `__issigÇl\9agf
+ (
+x
+) \
+
+340 : \17 (
+x
+) == \17 (\b) \
+
+341 ?
+ `__issigÇl\9ag
+ (
+x
+è:
+ `__issigÇl\9agl
+ (x))
+
+ )
+
+345 #ifdef
+__USE_MISC
+
+
+349
+_IEEE_
+ = -1,
+
+350
+_SVID_
+,
+
+351
+_XOPEN_
+,
+
+352
+_POSIX_
+,
+
+353
+_ISOC_
+
+
+354 }
+ t_LIB_VERSION_TYPE
+;
+
+359 \r
+_LIB_VERSION_TYPE
+
+_LIB_VERSION
+;
+
+363 #ifdeà
+__USE_MISC
+
+
+369 #ifdeà
+__ýlu¥lus
+
+
+370 \19
+__exû±iÚ
+
+
+372 \19
+exû±iÚ
+
+
+375 \12
+ty³
+;
+
+376 \ 5*
+Çme
+;
+
+377 \b
+¬g1
+;
+
+378 \b
+¬g2
+;
+
+379 \b
+»tv®
+;
+
+380
+ }
+};
+
+382 #ifdeà
+__ýlu¥lus
+
+
+383 \r\12
+ $m©h\94r
+ (\19
+__exû±iÚ
+ *
+__exc
+è
+ `throw
+ ();
+
+385 \r\12
+ `m©h\94r
+ (\19
+exû±iÚ
+ *
+__exc
+);
+
+388 \ 1
+ #X_TLOSS
+ 1.41484755040568800000e+16
+
+ )
+
+391 \ 1
+ #DOMAIN
+ 1
+
+ )
+
+392 \ 1
+ #SING
+ 2
+
+ )
+
+393 \ 1
+ #OVERFLOW
+ 3
+
+ )
+
+394 \ 1
+ #UNDERFLOW
+ 4
+
+ )
+
+395 \ 1
+ #TLOSS
+ 5
+
+ )
+
+396 \ 1
+ #PLOSS
+ 6
+
+ )
+
+399 \ 1
+ #HUGE
+ 3.40282347e+38F
+
+ )
+
+403 #ifdeà
+__USE_XOPEN
+
+
+405 \ 1
+ #MAXFLOAT
+ 3.40282347e+38F
+
+ )
+
+412 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+413 \ 1
+ #M_E
+ 2.7182818284590452354
+
+ )
+
+414 \ 1
+ #M_LOG2E
+ 1.4426950408889634074
+
+ )
+
+415 \ 1
+ #M_LOG10E
+ 0.43429448190325182765
+
+ )
+
+416 \ 1
+ #M_LN2
+ 0.69314718055994530942
+
+ )
+
+417 \ 1
+ #M_LN10
+ 2.30258509299404568402
+
+ )
+
+418 \ 1
+ #M_PI
+ 3.14159265358979323846
+
+ )
+
+419 \ 1
+ #M_PI_2
+ 1.57079632679489661923
+
+ )
+
+420 \ 1
+ #M_PI_4
+ 0.78539816339744830962
+
+ )
+
+421 \ 1
+ #M_1_PI
+ 0.31830988618379067154
+
+ )
+
+422 \ 1
+ #M_2_PI
+ 0.63661977236758134308
+
+ )
+
+423 \ 1
+ #M_2_SQRTPI
+ 1.12837916709551257390
+
+ )
+
+424 \ 1
+ #M_SQRT2
+ 1.41421356237309504880
+
+ )
+
+425 \ 1
+ #M_SQRT1_2
+ 0.70710678118654752440
+
+ )
+
+431 #ifdeà
+__USE_GNU
+
+
+432 \ 1
+ #M_El
+ 2.718281828459045235360287471352662498L
+
+ )
+
+433 \ 1
+ #M_LOG2El
+ 1.442695040888963407359924681001892137L
+
+ )
+
+434 \ 1
+ #M_LOG10El
+ 0.434294481903251827651128918916605082L
+
+ )
+
+435 \ 1
+ #M_LN2l
+ 0.693147180559945309417232121458176568L
+
+ )
+
+436 \ 1
+ #M_LN10l
+ 2.302585092994045684017991454684364208L
+
+ )
+
+437 \ 1
+ #M_PIl
+ 3.141592653589793238462643383279502884L
+
+ )
+
+438 \ 1
+ #M_PI_2l
+ 1.570796326794896619231321691639751442L
+
+ )
+
+439 \ 1
+ #M_PI_4l
+ 0.785398163397448309615660845819875721L
+
+ )
+
+440 \ 1
+ #M_1_PIl
+ 0.318309886183790671537767526745028724L
+
+ )
+
+441 \ 1
+ #M_2_PIl
+ 0.636619772367581343075535053490057448L
+
+ )
+
+442 \ 1
+ #M_2_SQRTPIl
+ 1.128379167095512573896158903121545172L
+
+ )
+
+443 \ 1
+ #M_SQRT2l
+ 1.414213562373095048801688724209698079L
+
+ )
+
+444 \ 1
+ #M_SQRT1_2l
+ 0.707106781186547524400844362104849039L
+
+ )
+
+451 #ià
+def\9aed
+
+__STRICT_ANSI__
+ && !def\9aed
+__NO_MATH_INLINES
+
+
+452 \ 1
+ #__NO_MATH_INLINES
+ 1
+
+ )
+
+455 #ià
+def\9aed
+
+__USE_ISOC99
+ &&
+ `__GNUC_PREREQ
+(2,97)
+
+462 \ 1
+ #isg»©\94
+(
+x
+,
+y
+è
+ `__bu\9et\9a_isg»©\94
+(x, y)
+
+ )
+
+463 \ 1
+ #isg»©\94equ®
+(
+x
+,
+y
+è
+ `__bu\9et\9a_isg»©\94equ®
+(x, y)
+
+ )
+
+464 \ 1
+ #i¦ess
+(
+x
+,
+y
+è
+ `__bu\9et\9a_i¦ess
+(x, y)
+
+ )
+
+465 \ 1
+ #i¦es£qu®
+(
+x
+,
+y
+è
+ `__bu\9et\9a_i¦es£qu®
+(x, y)
+
+ )
+
+466 \ 1
+ #i¦essg»©\94
+(
+x
+,
+y
+è
+ `__bu\9et\9a_i¦essg»©\94
+(x, y)
+
+ )
+
+467 \ 1
+ #isunÜd\94ed
+(
+u
+,
+v
+è
+ `__bu\9et\9a_isunÜd\94ed
+(u, v)
+
+ )
+
+471 #ifdeà
+__USE_EXTERN_INLINES
+
+
+472 \ 2
+ ~<b\99s/m©h\9al\9ae.h
+>
+
+477 #ià
+def\9aed
+
+__FINITE_MATH_ONLY__
+ && __FINITE_MATH_ONLY__ > 0
+
+478 \ 2
+ ~<b\99s/m©h-f\9a\99e.h
+>
+
+481 #ifdeà
+__USE_ISOC99
+
+
+485 #iâdeà
+isg»©\94
+
+
+486 \ 1
+ #isg»©\94
+(
+x
+,
+y
+) \
+
+487 (
+__ex\8bnsiÚ__
+ \
+
+488 ({
+ `__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+489 !
+ `isunÜd\94ed
+ (
+__x
+,
+__y
+è&& __x > __y;
+ }
+}))
+
+ )
+
+493 #iâdeà
+isg»©\94equ®
+
+
+494 \ 1
+ #isg»©\94equ®
+(
+x
+,
+y
+) \
+
+495 (
+__ex\8bnsiÚ__
+ \
+
+496 ({
+ `__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+497 !
+ `isunÜd\94ed
+ (
+__x
+,
+__y
+è&& __x >ð__y; }))
+
+ )
+
+501 #iâdeà
+i¦ess
+
+
+502 \ 1
+ #i¦ess
+(
+x
+,
+y
+) \
+
+503 (
+__ex\8bnsiÚ__
+ \
+
+504 ({
+ `__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+505 !
+ `isunÜd\94ed
+ (
+__x
+,
+__y
+è&& __x < __y; }))
+
+ )
+
+509 #iâdeà
+i¦es£qu®
+
+
+510 \ 1
+ #i¦es£qu®
+(
+x
+,
+y
+) \
+
+511 (
+__ex\8bnsiÚ__
+ \
+
+512 ({
+ `__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+513 !
+ `isunÜd\94ed
+ (
+__x
+,
+__y
+è&& __x <ð__y; }))
+
+ )
+
+517 #iâdeà
+i¦essg»©\94
+
+
+518 \ 1
+ #i¦essg»©\94
+(
+x
+,
+y
+) \
+
+519 (
+__ex\8bnsiÚ__
+ \
+
+520 ({
+ `__ty³of__
+(
+x
+è
+__x
+ = (x); __ty³of__(
+y
+è
+__y
+ = (y); \
+
+521 !
+ `isunÜd\94ed
+ (
+__x
+,
+__y
+è&& (__x < __y || __y < __x); }))
+
+ )
+
+525 #iâdeà
+isunÜd\94ed
+
+
+526 \ 1
+ #isunÜd\94ed
+(
+u
+,
+v
+) \
+
+527 (
+__ex\8bnsiÚ__
+ \
+
+528 ({
+ `__ty³of__
+(
+u
+è
+__u
+ = (u); __ty³of__(
+v
+è
+__v
+ = (v); \
+
+529
+ `åþassify
+ (
+__u
+è=ð
+FP_NAN
+ || fpþassify (
+__v
+è=ðFP_NAN; }))
+
+ )
+
+534
+ g__END_DECLS
+
+
+ @/usr/include/netinet/in.h
+
+18 #iâdef
+_NETINET_IN_H
+
+
+19 \ 1
+ #_NETINET_IN_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+22 \ 2
+ ~<¡d\9at.h
+>
+
+23 \ 2
+ ~<sys/sock\91.h
+>
+
+24 \ 2
+ ~<b\99s/ty³s.h
+>
+
+27
+__BEGIN_DECLS
+
+
+30 \e
+u\9at32_t
+
+ t\9a_addr_t
+;
+
+31 \19
+ s\9a_addr
+
+
+33
+\9a_addr_t
+
+ ms_addr
+;
+
+37 \ 2
+ ~<b\99s/\9a.h
+>
+
+42
+ mIPPROTO_IP
+ = 0,
+
+43 \ 1
+ #IPPROTO_IP
+
+IPPROTO_IP
+
+
+ )
+
+44
+ mIPPROTO_ICMP
+ = 1,
+
+45 \ 1
+ #IPPROTO_ICMP
+
+IPPROTO_ICMP
+
+
+ )
+
+46
+ mIPPROTO_IGMP
+ = 2,
+
+47 \ 1
+ #IPPROTO_IGMP
+
+IPPROTO_IGMP
+
+
+ )
+
+48
+ mIPPROTO_IPIP
+ = 4,
+
+49 \ 1
+ #IPPROTO_IPIP
+
+IPPROTO_IPIP
+
+
+ )
+
+50
+ mIPPROTO_TCP
+ = 6,
+
+51 \ 1
+ #IPPROTO_TCP
+
+IPPROTO_TCP
+
+
+ )
+
+52
+ mIPPROTO_EGP
+ = 8,
+
+53 \ 1
+ #IPPROTO_EGP
+
+IPPROTO_EGP
+
+
+ )
+
+54
+ mIPPROTO_PUP
+ = 12,
+
+55 \ 1
+ #IPPROTO_PUP
+
+IPPROTO_PUP
+
+
+ )
+
+56
+ mIPPROTO_UDP
+ = 17,
+
+57 \ 1
+ #IPPROTO_UDP
+
+IPPROTO_UDP
+
+
+ )
+
+58
+ mIPPROTO_IDP
+ = 22,
+
+59 \ 1
+ #IPPROTO_IDP
+
+IPPROTO_IDP
+
+
+ )
+
+60
+ mIPPROTO_TP
+ = 29,
+
+61 \ 1
+ #IPPROTO_TP
+
+IPPROTO_TP
+
+
+ )
+
+62
+ mIPPROTO_DCCP
+ = 33,
+
+63 \ 1
+ #IPPROTO_DCCP
+
+IPPROTO_DCCP
+
+
+ )
+
+64
+ mIPPROTO_IPV6
+ = 41,
+
+65 \ 1
+ #IPPROTO_IPV6
+
+IPPROTO_IPV6
+
+
+ )
+
+66
+ mIPPROTO_RSVP
+ = 46,
+
+67 \ 1
+ #IPPROTO_RSVP
+
+IPPROTO_RSVP
+
+
+ )
+
+68
+ mIPPROTO_GRE
+ = 47,
+
+69 \ 1
+ #IPPROTO_GRE
+
+IPPROTO_GRE
+
+
+ )
+
+70
+ mIPPROTO_ESP
+ = 50,
+
+71 \ 1
+ #IPPROTO_ESP
+
+IPPROTO_ESP
+
+
+ )
+
+72
+ mIPPROTO_AH
+ = 51,
+
+73 \ 1
+ #IPPROTO_AH
+
+IPPROTO_AH
+
+
+ )
+
+74
+ mIPPROTO_MTP
+ = 92,
+
+75 \ 1
+ #IPPROTO_MTP
+
+IPPROTO_MTP
+
+
+ )
+
+76
+ mIPPROTO_BEETPH
+ = 94,
+
+77 \ 1
+ #IPPROTO_BEETPH
+
+IPPROTO_BEETPH
+
+
+ )
+
+78
+ mIPPROTO_ENCAP
+ = 98,
+
+79 \ 1
+ #IPPROTO_ENCAP
+
+IPPROTO_ENCAP
+
+
+ )
+
+80
+ mIPPROTO_PIM
+ = 103,
+
+81 \ 1
+ #IPPROTO_PIM
+
+IPPROTO_PIM
+
+
+ )
+
+82
+ mIPPROTO_COMP
+ = 108,
+
+83 \ 1
+ #IPPROTO_COMP
+
+IPPROTO_COMP
+
+
+ )
+
+84
+ mIPPROTO_SCTP
+ = 132,
+
+85 \ 1
+ #IPPROTO_SCTP
+
+IPPROTO_SCTP
+
+
+ )
+
+86
+ mIPPROTO_UDPLITE
+ = 136,
+
+87 \ 1
+ #IPPROTO_UDPLITE
+
+IPPROTO_UDPLITE
+
+
+ )
+
+88
+ mIPPROTO_MPLS
+ = 137,
+
+89 \ 1
+ #IPPROTO_MPLS
+
+IPPROTO_MPLS
+
+
+ )
+
+90
+ mIPPROTO_RAW
+ = 255,
+
+91 \ 1
+ #IPPROTO_RAW
+
+IPPROTO_RAW
+
+
+ )
+
+92
+ mIPPROTO_MAX
+
+
+98 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+101
+ mIPPROTO_HOPOPTS
+ = 0,
+
+102 \ 1
+ #IPPROTO_HOPOPTS
+
+IPPROTO_HOPOPTS
+
+
+ )
+
+103
+ mIPPROTO_ROUTING
+ = 43,
+
+104 \ 1
+ #IPPROTO_ROUTING
+
+IPPROTO_ROUTING
+
+
+ )
+
+105
+ mIPPROTO_FRAGMENT
+ = 44,
+
+106 \ 1
+ #IPPROTO_FRAGMENT
+
+IPPROTO_FRAGMENT
+
+
+ )
+
+107
+ mIPPROTO_ICMPV6
+ = 58,
+
+108 \ 1
+ #IPPROTO_ICMPV6
+
+IPPROTO_ICMPV6
+
+
+ )
+
+109
+ mIPPROTO_NONE
+ = 59,
+
+110 \ 1
+ #IPPROTO_NONE
+
+IPPROTO_NONE
+
+
+ )
+
+111
+ mIPPROTO_DSTOPTS
+ = 60,
+
+112 \ 1
+ #IPPROTO_DSTOPTS
+
+IPPROTO_DSTOPTS
+
+
+ )
+
+113
+ mIPPROTO_MH
+ = 135
+
+114 \ 1
+ #IPPROTO_MH
+
+IPPROTO_MH
+
+
+ )
+
+119 \e
+u\9at16_t
+
+ t\9a_pÜt_t
+;
+
+124
+ mIPPORT_ECHO
+ = 7,
+
+125
+ mIPPORT_DISCARD
+ = 9,
+
+126
+ mIPPORT_SYSTAT
+ = 11,
+
+127
+ mIPPORT_DAYTIME
+ = 13,
+
+128
+ mIPPORT_NETSTAT
+ = 15,
+
+129
+ mIPPORT_FTP
+ = 21,
+
+130
+ mIPPORT_TELNET
+ = 23,
+
+131
+ mIPPORT_SMTP
+ = 25,
+
+132
+ mIPPORT_TIMESERVER
+ = 37,
+
+133
+ mIPPORT_NAMESERVER
+ = 42,
+
+134
+ mIPPORT_WHOIS
+ = 43,
+
+135
+ mIPPORT_MTP
+ = 57,
+
+137
+ mIPPORT_TFTP
+ = 69,
+
+138
+ mIPPORT_RJE
+ = 77,
+
+139
+ mIPPORT_FINGER
+ = 79,
+
+140
+ mIPPORT_TTYLINK
+ = 87,
+
+141
+ mIPPORT_SUPDUP
+ = 95,
+
+144
+ mIPPORT_EXECSERVER
+ = 512,
+
+145
+ mIPPORT_LOGINSERVER
+ = 513,
+
+146
+ mIPPORT_CMDSERVER
+ = 514,
+
+147
+ mIPPORT_EFSSERVER
+ = 520,
+
+150
+ mIPPORT_BIFFUDP
+ = 512,
+
+151
+ mIPPORT_WHOSERVER
+ = 513,
+
+152
+ mIPPORT_ROUTESERVER
+ = 520,
+
+155
+ mIPPORT_RESERVED
+ = 1024,
+
+158
+ mIPPORT_USERRESERVED
+ = 5000
+
+166 \ 1
+ #IN_CLASSA
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0x80000000è=ð0)
+
+ )
+
+167 \ 1
+ #IN_CLASSA_NET
+ 0xff000000
+
+ )
+
+168 \ 1
+ #IN_CLASSA_NSHIFT
+ 24
+
+ )
+
+169 \ 1
+ #IN_CLASSA_HOST
+ (0xfffffffà& ~
+IN_CLASSA_NET
+)
+
+ )
+
+170 \ 1
+ #IN_CLASSA_MAX
+ 128
+
+ )
+
+172 \ 1
+ #IN_CLASSB
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0xc0000000è=ð0x80000000)
+
+ )
+
+173 \ 1
+ #IN_CLASSB_NET
+ 0xffff0000
+
+ )
+
+174 \ 1
+ #IN_CLASSB_NSHIFT
+ 16
+
+ )
+
+175 \ 1
+ #IN_CLASSB_HOST
+ (0xfffffffà& ~
+IN_CLASSB_NET
+)
+
+ )
+
+176 \ 1
+ #IN_CLASSB_MAX
+ 65536
+
+ )
+
+178 \ 1
+ #IN_CLASSC
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0xe0000000è=ð0xc0000000)
+
+ )
+
+179 \ 1
+ #IN_CLASSC_NET
+ 0xffffff00
+
+ )
+
+180 \ 1
+ #IN_CLASSC_NSHIFT
+ 8
+
+ )
+
+181 \ 1
+ #IN_CLASSC_HOST
+ (0xfffffffà& ~
+IN_CLASSC_NET
+)
+
+ )
+
+183 \ 1
+ #IN_CLASSD
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0xf0000000è=ð0xe0000000)
+
+ )
+
+184 \ 1
+ #IN_MULTICAST
+(
+a
+è
+ `IN_CLASSD
+×)
+
+ )
+
+186 \ 1
+ #IN_EXPERIMENTAL
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0xe0000000è=ð0xe0000000)
+
+ )
+
+187 \ 1
+ #IN_BADCLASS
+(
+a
+è((((
+\9a_addr_t
+)×)è& 0xf0000000è=ð0xf0000000)
+
+ )
+
+190 \ 1
+ #INADDR_ANY
+ ((
+\9a_addr_t
+è0x00000000)
+
+ )
+
+192 \ 1
+ #INADDR_BROADCAST
+ ((
+\9a_addr_t
+è0xffffffff)
+
+ )
+
+194 \ 1
+ #INADDR_NONE
+ ((
+\9a_addr_t
+è0xffffffff)
+
+ )
+
+197 \ 1
+ #IN_LOOPBACKNET
+ 127
+
+ )
+
+199 #iâdeà
+INADDR_LOOPBACK
+
+
+200 \ 1
+ #INADDR_LOOPBACK
+ ((
+\9a_addr_t
+è0x7f000001è
+
+ )
+
+204 \ 1
+ #INADDR_UNSPEC_GROUP
+ ((
+\9a_addr_t
+è0xe0000000è
+
+ )
+
+205 \ 1
+ #INADDR_ALLHOSTS_GROUP
+ ((
+\9a_addr_t
+è0xe0000001è
+
+ )
+
+206 \ 1
+ #INADDR_ALLRTRS_GROUP
+ ((
+\9a_addr_t
+è0xe0000002è
+
+ )
+
+207 \ 1
+ #INADDR_MAX_LOCAL_GROUP
+ ((
+\9a_addr_t
+è0xe00000ffè
+
+ )
+
+209 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+211 \19
+ s\9a6_addr
+
+
+215
+u\9at8_t
+
+ m__u6_addr8
+[16];
+
+216 #ifdeà
+__USE_MISC
+
+
+217
+u\9at16_t
+
+ m__u6_addr16
+[8];
+
+218
+u\9at32_t
+
+ m__u6_addr32
+[4];
+
+220 }
+ m__\9a6_u
+;
+
+221 \ 1
+ #s6_addr
+
+__\9a6_u
+.
+__u6_addr8
+
+
+ )
+
+222 #ifdeà
+__USE_MISC
+
+
+223 \ 1
+ #s6_addr16
+
+__\9a6_u
+.
+__u6_addr16
+
+
+ )
+
+224 \ 1
+ #s6_addr32
+
+__\9a6_u
+.
+__u6_addr32
+
+
+ )
+
+229 \rcڡ \19
+\9a6_addr
+
+\9a6addr_ªy
+;
+
+230 \rcڡ \19
+\9a6_addr
+
+\9a6addr_loÝback
+;
+
+231 \ 1
+ #IN6ADDR_ANY_INIT
+ { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
+
+ )
+
+232 \ 1
+ #IN6ADDR_LOOPBACK_INIT
+ { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
+
+ )
+
+234 \ 1
+ #INET_ADDRSTRLEN
+ 16
+
+ )
+
+235 \ 1
+ #INET6_ADDRSTRLEN
+ 46
+
+ )
+
+239 \19
+ ssockaddr_\9a
+
+
+241
+__SOCKADDR_COMMON
+ (
+s\9a_
+);
+
+242
+\9a_pÜt_t
+
+ ms\9a_pÜt
+;
+
+243 \19
+\9a_addr
+
+ ms\9a_addr
+;
+
+246 \1d\ 5
+ ms\9a_z\94o
+[\17 (\19
+sockaddr
+) -
+
+247
+__SOCKADDR_COMMON_SIZE
+ -
+
+248 \17 (
+\9a_pÜt_t
+) -
+
+249 \17 (\19
+\9a_addr
+)];
+
+252 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+254 \19
+ ssockaddr_\9a6
+
+
+256
+__SOCKADDR_COMMON
+ (
+s\9a6_
+);
+
+257
+\9a_pÜt_t
+
+ ms\9a6_pÜt
+;
+
+258
+u\9at32_t
+
+ ms\9a6_æow\9afo
+;
+
+259 \19
+\9a6_addr
+
+ ms\9a6_addr
+;
+
+260
+u\9at32_t
+
+ ms\9a6_scÝe_id
+;
+
+264 #ifdeà
+__USE_MISC
+
+
+266 \19
+ s\9d_m»q
+
+
+269 \19
+\9a_addr
+
+ mimr_muɟddr
+;
+
+272 \19
+\9a_addr
+
+ mimr_\9a\8brçû
+;
+
+275 \19
+ s\9d_m»q_sourû
+
+
+278 \19
+\9a_addr
+
+ mimr_muɟddr
+;
+
+281 \19
+\9a_addr
+
+ mimr_\9a\8brçû
+;
+
+284 \19
+\9a_addr
+
+ mimr_sourûaddr
+;
+
+288 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+290 \19
+ s\9dv6_m»q
+
+
+293 \19
+\9a6_addr
+
+ m\9dv6mr_muÉ\9fddr
+;
+
+296 \1d\12
+ m\9dv6mr_\9a\8brçû
+;
+
+300 #ifdeà
+__USE_MISC
+
+
+302 \19
+ sgroup_»q
+
+
+305
+u\9at32_t
+
+ mgr_\9a\8brçû
+;
+
+308 \19
+sockaddr_¡Üage
+
+ mgr_group
+;
+
+311 \19
+ sgroup_sourû_»q
+
+
+314
+u\9at32_t
+
+ mg¤_\9a\8brçû
+;
+
+317 \19
+sockaddr_¡Üage
+
+ mg¤_group
+;
+
+320 \19
+sockaddr_¡Üage
+
+ mg¤_sourû
+;
+
+325 \19
+ s\9d_msf\9e\8br
+
+
+328 \19
+\9a_addr
+
+ mimsf_muɟddr
+;
+
+331 \19
+\9a_addr
+
+ mimsf_\9a\8brçû
+;
+
+334
+u\9at32_t
+
+ mimsf_fmode
+;
+
+337
+u\9at32_t
+
+ mimsf_num¤c
+;
+
+339 \19
+\9a_addr
+
+ mimsf_¦i¡
+[1];
+
+342 \ 1
+ #IP_MSFILTER_SIZE
+(
+num¤c
+è(\17 (\19
+\9d_msf\9e\8br
+) \
+
+343 - \17 (\19
+\9a_addr
+) \
+
+344 + (
+num¤c
+è* \17 (\19
+\9a_addr
+))
+
+ )
+
+346 \19
+ sgroup_f\9e\8br
+
+
+349
+u\9at32_t
+
+ mgf_\9a\8brçû
+;
+
+352 \19
+sockaddr_¡Üage
+
+ mgf_group
+;
+
+355
+u\9at32_t
+
+ mgf_fmode
+;
+
+358
+u\9at32_t
+
+ mgf_num¤c
+;
+
+360 \19
+sockaddr_¡Üage
+
+ mgf_¦i¡
+[1];
+
+363 \ 1
+ #GROUP_FILTER_SIZE
+(
+num¤c
+è(\17 (\19
+group_f\9e\8br
+) \
+
+364 - \17 (\19
+sockaddr_¡Üage
+) \
+
+365 + ((
+num¤c
+) \
+
+366 * \17 (\19
+sockaddr_¡Üage
+)))
+
+ )
+
+376 \r
+u\9at32_t
+
+ $Áohl
+ (
+u\9at32_t
+
+__Ã\8eÚg
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+377 \r
+u\9at16_t
+
+ $Áohs
+ (
+u\9at16_t
+
+__ÃtshÜt
+)
+
+378
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+379 \r
+u\9at32_t
+
+ $htÚl
+ (
+u\9at32_t
+
+__ho¡lÚg
+)
+
+380
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+381 \r
+u\9at16_t
+
+ $htÚs
+ (
+u\9at16_t
+
+__ho¡shÜt
+)
+
+382
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+384 \ 2
+ ~<\92d\9fn.h
+>
+
+387 \ 2
+ ~<b\99s/by\8bsw.h
+>
+
+389 #ifdeà
+__OPTIMIZE__
+
+
+393 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+396 \ 1
+ #Áohl
+(
+x
+è(x)
+
+ )
+
+397 \ 1
+ #Áohs
+(
+x
+è(x)
+
+ )
+
+398 \ 1
+ #htÚl
+(
+x
+è(x)
+
+ )
+
+399 \ 1
+ #htÚs
+(
+x
+è(x)
+
+ )
+
+401 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+402 \ 1
+ #Áohl
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+403 \ 1
+ #Áohs
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+404 \ 1
+ #htÚl
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+405 \ 1
+ #htÚs
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+410 #ifdeà
+__GNUC__
+
+
+411 \ 1
+ #IN6_IS_ADDR_UNSPECIFIED
+(
+a
+) \
+
+412 (
+__ex\8bnsiÚ__
+ \
+
+413 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+414
+__a
+->
+s6_addr32
+[0] == 0 \
+
+415 &&
+__a
+->
+s6_addr32
+[1] == 0 \
+
+416 &&
+__a
+->
+s6_addr32
+[2] == 0 \
+
+417 &&
+__a
+->
+s6_addr32
+[3] =ð0;
+ }
+}))
+
+ )
+
+419 \ 1
+ #IN6_IS_ADDR_LOOPBACK
+(
+a
+) \
+
+420 (
+__ex\8bnsiÚ__
+ \
+
+421 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+422
+__a
+->
+s6_addr32
+[0] == 0 \
+
+423 &&
+__a
+->
+s6_addr32
+[1] == 0 \
+
+424 &&
+__a
+->
+s6_addr32
+[2] == 0 \
+
+425 &&
+__a
+->
+s6_addr32
+[3] =ð
+ `htÚl
+ (1); }))
+
+ )
+
+427 \ 1
+ #IN6_IS_ADDR_LINKLOCAL
+(
+a
+) \
+
+428 (
+__ex\8bnsiÚ__
+ \
+
+429 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+430 (
+__a
+->
+s6_addr32
+[0] &
+ `htÚl
+ (0xffc00000)è=ðhtÚÈ(0xã800000); }))
+
+ )
+
+432 \ 1
+ #IN6_IS_ADDR_SITELOCAL
+(
+a
+) \
+
+433 (
+__ex\8bnsiÚ__
+ \
+
+434 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+435 (
+__a
+->
+s6_addr32
+[0] &
+ `htÚl
+ (0xffc00000)è=ðhtÚÈ(0xãc00000); }))
+
+ )
+
+437 \ 1
+ #IN6_IS_ADDR_V4MAPPED
+(
+a
+) \
+
+438 (
+__ex\8bnsiÚ__
+ \
+
+439 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+440
+__a
+->
+s6_addr32
+[0] == 0 \
+
+441 &&
+__a
+->
+s6_addr32
+[1] == 0 \
+
+442 &&
+__a
+->
+s6_addr32
+[2] =ð
+ `htÚl
+ (0xffff); }))
+
+ )
+
+444 \ 1
+ #IN6_IS_ADDR_V4COMPAT
+(
+a
+) \
+
+445 (
+__ex\8bnsiÚ__
+ \
+
+446 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+447
+__a
+->
+s6_addr32
+[0] == 0 \
+
+448 &&
+__a
+->
+s6_addr32
+[1] == 0 \
+
+449 &&
+__a
+->
+s6_addr32
+[2] == 0 \
+
+450 &&
+ `Áohl
+ (
+__a
+->
+s6_addr32
+[3]è> 1; }))
+
+ )
+
+452 \ 1
+ #IN6_ARE_ADDR_EQUAL
+(
+a
+,
+b
+) \
+
+453 (
+__ex\8bnsiÚ__
+ \
+
+454 ({ cڡ \19
+\9a6_addr
+ *
+__a
+ = (cÚ¡ \19\9a6_add¸*è(
+a
+); \
+
+455 cڡ \19
+\9a6_addr
+ *
+__b
+ = (cÚ¡ \19\9a6_add¸*è(
+b
+); \
+
+456
+__a
+->
+s6_addr32
+[0] =ð
+__b
+->s6_addr32[0] \
+
+457 &&
+__a
+->
+s6_addr32
+[1] =ð
+__b
+->s6_addr32[1] \
+
+458 &&
+__a
+->
+s6_addr32
+[2] =ð
+__b
+->s6_addr32[2] \
+
+459 &&
+__a
+->
+s6_addr32
+[3] =ð
+__b
+->s6_addr32[3]; }))
+
+ )
+
+461 \ 1
+ #IN6_IS_ADDR_UNSPECIFIED
+(
+a
+) \
+
+462 (((cڡ
+u\9at32_t
+ *è(
+a
+))[0] == 0 \
+
+463 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[1] == 0 \
+
+464 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[2] == 0 \
+
+465 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[3] =ð0)
+
+ )
+
+467 \ 1
+ #IN6_IS_ADDR_LOOPBACK
+(
+a
+) \
+
+468 (((cڡ
+u\9at32_t
+ *è(
+a
+))[0] == 0 \
+
+469 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[1] == 0 \
+
+470 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[2] == 0 \
+
+471 && ((cڡ
+u\9at32_t
+ *è(
+a
+))[3] =ð
+ `htÚl
+ (1))
+
+ )
+
+473 \ 1
+ #IN6_IS_ADDR_LINKLOCAL
+(
+a
+) \
+
+474 ((((cڡ
+u\9at32_t
+ *è(
+a
+))[0] &
+ `htÚl
+ (0xffc00000)) \
+
+475 =ð
+ `htÚl
+ (0xã800000))
+
+ )
+
+477 \ 1
+ #IN6_IS_ADDR_SITELOCAL
+(
+a
+) \
+
+478 ((((cڡ
+u\9at32_t
+ *è(
+a
+))[0] &
+ `htÚl
+ (0xffc00000)) \
+
+479 =ð
+ `htÚl
+ (0xãc00000))
+
+ )
+
+481 \ 1
+ #IN6_IS_ADDR_V4MAPPED
+(
+a
+) \
+
+482 ((((cڡ
+u\9at32_t
+ *è(
+a
+))[0] == 0) \
+
+483 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[1] == 0) \
+
+484 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[2] =ð
+ `htÚl
+ (0xffff)))
+
+ )
+
+486 \ 1
+ #IN6_IS_ADDR_V4COMPAT
+(
+a
+) \
+
+487 ((((cڡ
+u\9at32_t
+ *è(
+a
+))[0] == 0) \
+
+488 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[1] == 0) \
+
+489 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[2] == 0) \
+
+490 && (
+ `Áohl
+ (((cڡ
+u\9at32_t
+ *è(
+a
+))[3]è> 1))
+
+ )
+
+492 \ 1
+ #IN6_ARE_ADDR_EQUAL
+(
+a
+,
+b
+) \
+
+493 ((((cڡ
+u\9at32_t
+ *è(
+a
+))[0] =ð((cÚ¡ u\9at32_\88*è(
+b
+))[0]) \
+
+494 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[1] =ð((cÚ¡ u\9at32_\88*è(
+b
+))[1]) \
+
+495 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[2] =ð((cÚ¡ u\9at32_\88*è(
+b
+))[2]) \
+
+496 && (((cڡ
+u\9at32_t
+ *è(
+a
+))[3] =ð((cÚ¡ u\9at32_\88*è(
+b
+))[3]))
+
+ )
+
+499 \ 1
+ #IN6_IS_ADDR_MULTICAST
+(
+a
+è(((cÚ¡
+u\9at8_t
+ *è×))[0] =ð0xff)
+
+ )
+
+501 #ifdeà
+__USE_MISC
+
+
+503 \r\12
+ $b\9ad»svpÜt
+ (\12
+__sockfd
+, \19
+sockaddr_\9a
+ *
+__sock_\9a
+è
+__THROW
+;
+
+506 \r\12
+ $b\9ad»svpÜt6
+ (\12
+__sockfd
+, \19
+sockaddr_\9a6
+ *
+__sock_\9a
+)
+
+507
+__THROW
+;
+
+511 \ 1
+ #IN6_IS_ADDR_MC_NODELOCAL
+(
+a
+) \
+
+512 (
+ `IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+513 && ((((cڡ
+u\9at8_t
+ *è(
+a
+))[1] & 0xfè=ð0x1))
+
+ )
+
+515 \ 1
+ #IN6_IS_ADDR_MC_LINKLOCAL
+(
+a
+) \
+
+516 (
+ `IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+517 && ((((cڡ
+u\9at8_t
+ *è(
+a
+))[1] & 0xfè=ð0x2))
+
+ )
+
+519 \ 1
+ #IN6_IS_ADDR_MC_SITELOCAL
+(
+a
+) \
+
+520 (
+ `IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+521 && ((((cڡ
+u\9at8_t
+ *è(
+a
+))[1] & 0xfè=ð0x5))
+
+ )
+
+523 \ 1
+ #IN6_IS_ADDR_MC_ORGLOCAL
+(
+a
+) \
+
+524 (
+ `IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+525 && ((((cڡ
+u\9at8_t
+ *è(
+a
+))[1] & 0xfè=ð0x8))
+
+ )
+
+527 \ 1
+ #IN6_IS_ADDR_MC_GLOBAL
+(
+a
+) \
+
+528 (
+ `IN6_IS_ADDR_MULTICAST
+(
+a
+) \
+
+529 && ((((cڡ
+u\9at8_t
+ *è(
+a
+))[1] & 0xfè=ð0xe))
+
+ )
+
+532 #ifdeà
+__USE_GNU
+
+
+533 \19
+cmsghdr
+;
+
+535 #iâdeà
+__USE_KERNEL_IPV6_DEFS
+
+
+537 \19
+ s\9a6_pkt\9afo
+
+
+539 \19
+\9a6_addr
+
+\9di6_addr
+;
+
+540 \1d\12
+\9di6_if\9adex
+;
+
+544 \19
+ s\9d6_mtu\9afo
+
+
+546 \19
+sockaddr_\9a6
+
+\9d6m_addr
+;
+
+547
+u\9at32_t
+
+\9d6m_mtu
+;
+
+552 \r\12
+ $\9a\916_ÝtiÚ_¥aû
+ (\12
+__nby\8bs
+)
+
+553
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+554 \r\12
+ $\9a\916_ÝtiÚ_\9a\99
+ (\1e*
+__bp
+, \19
+cmsghdr
+ **
+__cmsgp
+,
+
+555 \12
+__ty³
+è
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+556 \r\12
+ $\9a\916_ÝtiÚ_³nd
+ (\19
+cmsghdr
+ *
+__cmsg
+,
+
+557 cڡ
+u\9at8_t
+ *
+__ty³p
+, \12
+__muÉx
+,
+
+558 \12
+__¶usy
+è
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+559 \r
+u\9at8_t
+ *
+ $\9a\916_ÝtiÚ_®loc
+ (\19
+cmsghdr
+ *
+__cmsg
+, \12
+__d©®\92
+,
+
+560 \12
+__muÉx
+, \12
+__¶usy
+)
+
+561
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+562 \r\12
+ $\9a\916_ÝtiÚ_Ãxt
+ (cڡ \19
+cmsghdr
+ *
+__cmsg
+,
+
+563
+u\9at8_t
+ **
+__\8d\8cp
+)
+
+564
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+565 \r\12
+ $\9a\916_ÝtiÚ_f\9ad
+ (cڡ \19
+cmsghdr
+ *
+__cmsg
+,
+
+566
+u\9at8_t
+ **
+__\8d\8cp
+, \12
+__ty³
+)
+
+567
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+571 \r\12
+ $\9a\916_Ýt_\9a\99
+ (\1e*
+__extbuf
+,
+sockËn_t
+
+__ex\8e\92
+è
+__THROW
+;
+
+572 \r\12
+ $\9a\916_Ýt_³nd
+ (\1e*
+__extbuf
+,
+sockËn_t
+
+__ex\8e\92
+, \12
+__off£t
+,
+
+573
+u\9at8_t
+
+__ty³
+,
+sockËn_t
+
+__Ën
+, u\9at8_\88
+__®ign
+,
+
+574 \1e**
+__d©abuå
+è
+__THROW
+;
+
+575 \r\12
+ $\9a\916_Ýt_f\9aish
+ (\1e*
+__extbuf
+,
+sockËn_t
+
+__ex\8e\92
+, \12
+__off£t
+)
+
+576
+__THROW
+;
+
+577 \r\12
+ $\9a\916_Ýt_£t_v®
+ (\1e*
+__d©abuf
+, \12
+__off£t
+, \1e*
+__v®
+,
+
+578
+sockËn_t
+
+__v®Ën
+è
+__THROW
+;
+
+579 \r\12
+ $\9a\916_Ýt_Ãxt
+ (\1e*
+__extbuf
+,
+sockËn_t
+
+__ex\8e\92
+, \12
+__off£t
+,
+
+580
+u\9at8_t
+ *
+__ty³p
+,
+sockËn_t
+ *
+__ËÅ
+,
+
+581 \1e**
+__d©abuå
+è
+__THROW
+;
+
+582 \r\12
+ $\9a\916_Ýt_f\9ad
+ (\1e*
+__extbuf
+,
+sockËn_t
+
+__ex\8e\92
+, \12
+__off£t
+,
+
+583
+u\9at8_t
+
+__ty³
+,
+sockËn_t
+ *
+__ËÅ
+,
+
+584 \1e**
+__d©abuå
+è
+__THROW
+;
+
+585 \r\12
+ $\9a\916_Ýt_g\91_v®
+ (\1e*
+__d©abuf
+, \12
+__off£t
+, \1e*
+__v®
+,
+
+586
+sockËn_t
+
+__v®Ën
+è
+__THROW
+;
+
+590 \r
+sockËn_t
+
+ $\9a\916_¹h_¥aû
+ (\12
+__ty³
+, \12
+__£gm\92ts
+è
+__THROW
+;
+
+591 \r\1e*
+ $\9a\916_¹h_\9a\99
+ (\1e*
+__bp
+,
+sockËn_t
+
+__bp_Ën
+, \12
+__ty³
+,
+
+592 \12
+__£gm\92ts
+è
+__THROW
+;
+
+593 \r\12
+ $\9a\916_¹h_add
+ (\1e*
+__bp
+, cڡ \19
+\9a6_addr
+ *
+__addr
+è
+__THROW
+;
+
+594 \r\12
+ $\9a\916_¹h_»v\94£
+ (cڡ \1e*
+__\9a
+, \1e*
+__out
+è
+__THROW
+;
+
+595 \r\12
+ $\9a\916_¹h_£gm\92ts
+ (cڡ \1e*
+__bp
+è
+__THROW
+;
+
+596 \r\19
+\9a6_addr
+ *
+ $\9a\916_¹h_g\91addr
+ (cڡ \1e*
+__bp
+, \12
+__\9adex
+)
+
+597
+__THROW
+;
+
+603 \r\12
+ $g\91\9dv4sourûf\9e\8br
+ (\12
+__s
+, \19
+\9a_addr
+
+__\9a\8brçû_addr
+,
+
+604 \19
+\9a_addr
+
+__group
+,
+u\9at32_t
+ *
+__fmode
+,
+
+605
+u\9at32_t
+ *
+__num¤c
+, \19
+\9a_addr
+ *
+__¦i¡
+)
+
+606
+__THROW
+;
+
+609 \r\12
+ $£t\9dv4sourûf\9e\8br
+ (\12
+__s
+, \19
+\9a_addr
+
+__\9a\8brçû_addr
+,
+
+610 \19
+\9a_addr
+
+__group
+,
+u\9at32_t
+
+__fmode
+,
+
+611
+u\9at32_t
+
+__num¤c
+,
+
+612 cڡ \19
+\9a_addr
+ *
+__¦i¡
+)
+
+613
+__THROW
+;
+
+617 \r\12
+ $g\91sourûf\9e\8br
+ (\12
+__s
+,
+u\9at32_t
+
+__\9a\8brçû_addr
+,
+
+618 cڡ \19
+sockaddr
+ *
+__group
+,
+
+619
+sockËn_t
+
+__grou¶\92
+,
+u\9at32_t
+ *
+__fmode
+,
+
+620
+u\9at32_t
+ *
+__num¤c
+,
+
+621 \19
+sockaddr_¡Üage
+ *
+__¦i¡
+è
+__THROW
+;
+
+624 \r\12
+ $£tsourûf\9e\8br
+ (\12
+__s
+,
+u\9at32_t
+
+__\9a\8brçû_addr
+,
+
+625 cڡ \19
+sockaddr
+ *
+__group
+,
+
+626
+sockËn_t
+
+__grou¶\92
+,
+u\9at32_t
+
+__fmode
+,
+
+627
+u\9at32_t
+
+__num¤c
+,
+
+628 cڡ \19
+sockaddr_¡Üage
+ *
+__¦i¡
+è
+__THROW
+;
+
+631
+__END_DECLS
+
+
+ @/usr/include/setjmp.h
+
+22 #iâdef
+_SETJMP_H
+
+
+23 \ 1
+ #_SETJMP_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27
+ g__BEGIN_DECLS
+
+
+29 \ 2
+ ~<b\99s/£tjmp.h
+>
+
+30 \ 2
+ ~<b\99s/sig£t.h
+>
+
+34 \19
+ s__jmp_buf_\8fg
+
+
+40
+__jmp_buf
+
+ m__jmpbuf
+;
+
+41 \12
+ m__mask_was_§ved
+;
+
+42
+__sig£t_t
+
+ m__§ved_mask
+;
+
+46
+__BEGIN_NAMESPACE_STD
+
+
+48 \e\19
+__jmp_buf_\8fg
+
+ tjmp_buf
+[1];
+
+52 \r\12
+ $£tjmp
+ (
+jmp_buf
+
+__\92v
+è
+__THROWNL
+;
+
+54
+__END_NAMESPACE_STD
+
+
+59 \r\12
+ $__sig£tjmp
+ (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__§vemask
+è
+__THROWNL
+;
+
+63 \r\12
+ $_£tjmp
+ (\19
+__jmp_buf_\8fg
+
+__\92v
+[1]è
+__THROWNL
+;
+
+67 \ 1
+ #£tjmp
+(
+\92v
+è
+ `_£tjmp
+ (\92v)
+
+ )
+
+70
+__BEGIN_NAMESPACE_STD
+
+
+74 \r\1e
+ $lÚgjmp
+ (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+)
+
+75
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+77
+__END_NAMESPACE_STD
+
+
+79 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+83 \r\1e
+ $_lÚgjmp
+ (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+)
+
+84
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+88 #ifdef
+__USE_POSIX
+
+
+92 \e\19
+__jmp_buf_\8fg
+
+ tsigjmp_buf
+[1];
+
+96 \ 1
+ #sig£tjmp
+(
+\92v
+,
+§vemask
+è
+ `__sig£tjmp
+ (\92v, savemask)
+
+ )
+
+102 \r\1e
+ $siglÚgjmp
+ (
+sigjmp_buf
+
+__\92v
+, \12
+__v®
+)
+
+103
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+108 #ià
+__USE_FORTIFY_LEVEL
+ > 0
+
+109 \ 2
+ ~<b\99s/£tjmp2.h
+>
+
+112
+__END_DECLS
+
+
+ @/usr/include/signal.h
+
+22 #iâdef
+_SIGNAL_H
+
+
+24 #ià!
+def\9aed
+
+__Ãed_sig_©omic_t
+ && !def\9aed
+__Ãed_sig£t_t
+
+
+25 \ 1
+ #_SIGNAL_H
+
+
+ )
+
+28 \ 2
+ ~<ã©u»s.h
+>
+
+30
+ g__BEGIN_DECLS
+
+
+32 \ 2
+ ~<b\99s/sig£t.h
+>
+
+36 #ià
+def\9aed
+
+__Ãed_sig_©omic_t
+ || def\9aed
+_SIGNAL_H
+
+
+37 #iâdeà
+__sig_©omic_t_def\9aed
+
+
+38 \ 1
+ #__sig_©omic_t_def\9aed
+
+
+ )
+
+39
+__BEGIN_NAMESPACE_STD
+
+
+40 \e
+__sig_©omic_t
+
+ tsig_©omic_t
+;
+
+41
+ g__END_NAMESPACE_STD
+
+
+43 #undeà
+__Ãed_sig_©omic_t
+
+
+46 #ià
+def\9aed
+
+__Ãed_sig£t_t
+ || (def\9aed
+_SIGNAL_H
+ && def\9aed
+__USE_POSIX
+)
+
+47 #iâdeà
+__sig£t_t_def\9aed
+
+
+48 \ 1
+ #__sig£t_t_def\9aed
+
+
+ )
+
+49 \e
+__sig£t_t
+
+ tsig£t_t
+;
+
+51 #undeà
+__Ãed_sig£t_t
+
+
+54 #ifdeà
+_SIGNAL_H
+
+
+56 \ 2
+ ~<b\99s/ty³s.h
+>
+
+57 \ 2
+ ~<b\99s/signum.h
+>
+
+59 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K
+
+
+60 #iâdeà
+__pid_t_def\9aed
+
+
+61 \e
+__pid_t
+
+ tpid_t
+;
+
+62 \ 1
+ #__pid_t_def\9aed
+
+
+ )
+
+64 #ifdeà
+__USE_XOPEN
+
+
+66 #iâdeà
+__uid_t_def\9aed
+
+
+67 \e
+__uid_t
+
+ tuid_t
+;
+
+68 \ 1
+ #__uid_t_def\9aed
+
+
+ )
+
+72 #ifdeà
+__USE_POSIX199309
+
+
+74 \ 1
+ #__Ãed_time¥ec
+
+
+ )
+
+75 \ 2
+ ~<time.h
+>
+
+78 #ià
+def\9aed
+
+__USE_POSIX199309
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+80 \ 2
+ ~<b\99s/sig\9afo.h
+>
+
+85 \e\1e(*
+ t__sighªdËr_t
+) (\12);
+
+90 \r
+__sighªdËr_t
+
+ $__sysv_sigÇl
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+)
+
+91
+__THROW
+;
+
+92 #ifdeà
+__USE_GNU
+
+
+93 \r
+__sighªdËr_t
+
+ $sysv_sigÇl
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+)
+
+94
+__THROW
+;
+
+100
+__BEGIN_NAMESPACE_STD
+
+
+101 #ifdeà
+__USE_MISC
+
+
+102 \r
+__sighªdËr_t
+
+ $sigÇl
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+)
+
+103
+__THROW
+;
+
+106 #ifdeà
+__REDIRECT_NTH
+
+
+107 \r
+__sighªdËr_t
+
+ `__REDIRECT_NTH
+ (
+sigÇl
+,
+
+108 (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+),
+
+109
+__sysv_sigÇl
+);
+
+111 \ 1
+ #sigÇl
+
+__sysv_sigÇl
+
+
+ )
+
+114
+__END_NAMESPACE_STD
+
+
+116 #ifdeà
+__USE_XOPEN
+
+
+119 \r
+__sighªdËr_t
+
+ $bsd_sigÇl
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+)
+
+120
+__THROW
+;
+
+126 #ifdeà
+__USE_POSIX
+
+
+127 \r\12
+ $k\9el
+ (
+__pid_t
+
+__pid
+, \12
+__sig
+è
+__THROW
+;
+
+130 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+134 \r\12
+ $k\9eÍg
+ (
+__pid_t
+
+__pg½
+, \12
+__sig
+è
+__THROW
+;
+
+137
+__BEGIN_NAMESPACE_STD
+
+
+139 \r\12
+ $¿i£
+ (\12
+__sig
+è
+__THROW
+;
+
+140
+__END_NAMESPACE_STD
+
+
+142 #ifdeà
+__USE_MISC
+
+
+144 \r
+__sighªdËr_t
+
+ $ssigÇl
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__hªdËr
+)
+
+145
+__THROW
+;
+
+146 \r\12
+ $gsigÇl
+ (\12
+__sig
+è
+__THROW
+;
+
+149 #ifdeà
+__USE_XOPEN2K8
+
+
+151 \r\1e
+ `psigÇl
+ (\12
+__sig
+, cڡ \ 5*
+__s
+);
+
+154 \r\1e
+ `psig\9afo
+ (cڡ
+sig\9afo_t
+ *
+__p\9afo
+, cڡ \ 5*
+__s
+);
+
+166 #ifdeà
+__USE_XOPEN
+
+
+167 #ifdeà
+__GNUC__
+
+
+168 \r\12
+ $sig·u£
+ (\12
+__sig
+è
+ `__asm__
+ ("__xpg_sigpause");
+
+170 \r\12
+ `__sig·u£
+ (\12
+__sig_Ü_mask
+, \12
+__is_sig
+);
+
+172 \ 1
+ #sig·u£
+(
+sig
+è
+ `__sig·u£
+ ((sig), 1)
+
+ )
+
+177 #ifdeà
+__USE_MISC
+
+
+184 \ 1
+ #sigmask
+(
+sig
+è
+ `__sigmask
+(sig)
+
+ )
+
+187 \r\12
+ $sigblock
+ (\12
+__mask
+è
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+190 \r\12
+ $sig£tmask
+ (\12
+__mask
+è
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+193 \r\12
+ $sigg\91mask
+ (\1eè
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+197 #ifdeà
+__USE_MISC
+
+
+198 \ 1
+ #NSIG
+
+_NSIG
+
+
+ )
+
+201 #ifdeà
+__USE_GNU
+
+
+202 \e
+__sighªdËr_t
+
+ tsighªdËr_t
+;
+
+206 #ifdeà
+__USE_MISC
+
+
+207 \e
+__sighªdËr_t
+
+ tsig_t
+;
+
+210 #ifdeà
+__USE_POSIX
+
+
+213 \r\12
+ $sigem±y£t
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+216 \r\12
+ $sigf\9el£t
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+219 \r\12
+ $sigadd£t
+ (
+sig£t_t
+ *
+__£t
+, \12
+__signo
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+222 \r\12
+ $sigd\96£t
+ (
+sig£t_t
+ *
+__£t
+, \12
+__signo
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+225 \r\12
+ $sigismemb\94
+ (cڡ
+sig£t_t
+ *
+__£t
+, \12
+__signo
+)
+
+226
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+228 #ifdeà
+__USE_GNU
+
+
+230 \r\12
+ $sigi£m±y£t
+ (cڡ
+sig£t_t
+ *
+__£t
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+233 \r\12
+ $sigªd£t
+ (
+sig£t_t
+ *
+__£t
+, cÚ¡ sig£t_\88*
+__Ëá
+,
+
+234 cڡ
+sig£t_t
+ *
+__right
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2, 3));
+
+237 \r\12
+ $sigܣt
+ (
+sig£t_t
+ *
+__£t
+, cÚ¡ sig£t_\88*
+__Ëá
+,
+
+238 cڡ
+sig£t_t
+ *
+__right
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2, 3));
+
+243 \ 2
+ ~<b\99s/sigaùiÚ.h
+>
+
+246 \r\12
+ $sig´ocmask
+ (\12
+__how
+, cڡ
+sig£t_t
+ *
+__»¡riù
+
+__£t
+,
+
+247
+sig£t_t
+ *
+__»¡riù
+
+__o£t
+è
+__THROW
+;
+
+254 \r\12
+ $sigsu¥\92d
+ (cڡ
+sig£t_t
+ *
+__£t
+è
+ `__nÚnuÎ
+ ((1));
+
+257 \r\12
+ $sigaùiÚ
+ (\12
+__sig
+, cڡ \19
+sigaùiÚ
+ *
+__»¡riù
+
+__aù
+,
+
+258 \19
+sigaùiÚ
+ *
+__»¡riù
+
+__ßù
+è
+__THROW
+;
+
+261 \r\12
+ $sig³nd\9ag
+ (
+sig£t_t
+ *
+__£t
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+268 \r\12
+ $sigwa\99
+ (cڡ
+sig£t_t
+ *
+__»¡riù
+
+__£t
+, \12*__»¡riù
+__sig
+)
+
+269
+ `__nÚnuÎ
+ ((1, 2));
+
+271 #ifdeà
+__USE_POSIX199309
+
+
+276 \r\12
+ $sigwa\99\9afo
+ (cڡ
+sig£t_t
+ *
+__»¡riù
+
+__£t
+,
+
+277
+sig\9afo_t
+ *
+__»¡riù
+
+__\9afo
+è
+ `__nÚnuÎ
+ ((1));
+
+284 \r\12
+ $sigtimedwa\99
+ (cڡ
+sig£t_t
+ *
+__»¡riù
+
+__£t
+,
+
+285
+sig\9afo_t
+ *
+__»¡riù
+
+__\9afo
+,
+
+286 cڡ \19
+time¥ec
+ *
+__»¡riù
+
+__timeout
+)
+
+287
+ `__nÚnuÎ
+ ((1));
+
+291 \r\12
+ $sigqueue
+ (
+__pid_t
+
+__pid
+, \12
+__sig
+, cڡ \1c
+sigv®
+
+__v®
+)
+
+292
+__THROW
+;
+
+297 #ifdeà
+__USE_MISC
+
+
+301 \rcڡ \ 5*cڡ
+_sys_sigli¡
+[
+_NSIG
+];
+
+302 \rcڡ \ 5*cڡ
+sys_sigli¡
+[
+_NSIG
+];
+
+306 \ 2
+ ~<b\99s/sigcÚ\8bxt.h
+>
+
+309 \r\12
+ $sig»tuº
+ (\19
+sigcڋxt
+ *
+__sý
+è
+__THROW
+;
+
+314 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+315 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+316 \ 2
+ ~<¡ddef.h
+>
+
+321 \r\12
+ $sig\9a\8b¼u±
+ (\12
+__sig
+, \12
+__\9a\8b¼u±
+è
+__THROW
+;
+
+323 \ 2
+ ~<b\99s/sig¡ack.h
+>
+
+324 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+326 \ 2
+ ~<sys/ucڋxt.h
+>
+
+332 \r\12
+ $sig¡ack
+ (\19
+sig¡ack
+ *
+__ss
+, \19sig¡ack *
+__oss
+)
+
+333
+__THROW
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+337 \r\12
+ $sig®t¡ack
+ (cڡ \19
+sig®t¡ack
+ *
+__»¡riù
+
+__ss
+,
+
+338 \19
+sig®t¡ack
+ *
+__»¡riù
+
+__oss
+è
+__THROW
+;
+
+342 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+346 \r\12
+ $sighÞd
+ (\12
+__sig
+è
+__THROW
+;
+
+349 \r\12
+ $sig»l£
+ (\12
+__sig
+è
+__THROW
+;
+
+352 \r\12
+ $sigignÜe
+ (\12
+__sig
+è
+__THROW
+;
+
+355 \r
+__sighªdËr_t
+
+ $sig£t
+ (\12
+__sig
+,
+__sighªdËr_t
+
+__di¥
+è
+__THROW
+;
+
+358 #ià
+def\9aed
+
+__USE_POSIX199506
+ || def\9aed
+__USE_UNIX98
+
+
+361 \ 2
+ ~<b\99s/±h»adty³s.h
+>
+
+362 \ 2
+ ~<b\99s/sigth»ad.h
+>
+
+369 \r\12
+ $__libc_cu¼\92t_sig¹m\9a
+ (\1eè
+__THROW
+;
+
+371 \r\12
+ $__libc_cu¼\92t_sig¹max
+ (\1eè
+__THROW
+;
+
+375
+__END_DECLS
+
+
+ @/usr/include/stdint.h
+
+22 #iâdeà
+_STDINT_H
+
+
+23 \ 1
+ #_STDINT_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+26 \ 2
+ ~<b\99s/wch¬.h
+>
+
+27 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+34 #iâdeà
+__\9at8_t_def\9aed
+
+
+35 \ 1
+ #__\9at8_t_def\9aed
+
+
+ )
+
+36 \esigÃd \ 5
+ t\9at8_t
+;
+
+37 \e\16\12
+ t\9at16_t
+;
+
+38 \e\12
+ t\9at32_t
+;
+
+39 #ià
+__WORDSIZE
+ == 64
+
+40 \e\13\12
+ t\9at64_t
+;
+
+42
+__ex\8bnsiÚ__
+
+
+43 \e\13\13\12
+ t\9at64_t
+;
+
+48 \e\1d\ 5
+ tu\9at8_t
+;
+
+49 \e\1d\16\12
+ tu\9at16_t
+;
+
+50 #iâdeà
+__u\9at32_t_def\9aed
+
+
+51 \e\1d\12
+ tu\9at32_t
+;
+
+52 \ 1
+ #__u\9at32_t_def\9aed
+
+
+ )
+
+54 #ià
+__WORDSIZE
+ == 64
+
+55 \e\1d\13\12
+ tu\9at64_t
+;
+
+57
+__ex\8bnsiÚ__
+
+
+58 \e\1d\13\13\12
+ tu\9at64_t
+;
+
+65 \esigÃd \ 5
+ t\9at_Ëa¡8_t
+;
+
+66 \e\16\12
+ t\9at_Ëa¡16_t
+;
+
+67 \e\12
+ t\9at_Ëa¡32_t
+;
+
+68 #ià
+__WORDSIZE
+ == 64
+
+69 \e\13\12
+ t\9at_Ëa¡64_t
+;
+
+71
+__ex\8bnsiÚ__
+
+
+72 \e\13\13\12
+ t\9at_Ëa¡64_t
+;
+
+76 \e\1d\ 5
+ tu\9at_Ëa¡8_t
+;
+
+77 \e\1d\16\12
+ tu\9at_Ëa¡16_t
+;
+
+78 \e\1d\12
+ tu\9at_Ëa¡32_t
+;
+
+79 #ià
+__WORDSIZE
+ == 64
+
+80 \e\1d\13\12
+ tu\9at_Ëa¡64_t
+;
+
+82
+__ex\8bnsiÚ__
+
+
+83 \e\1d\13\13\12
+ tu\9at_Ëa¡64_t
+;
+
+90 \esigÃd \ 5
+ t\9at_ç¡8_t
+;
+
+91 #ià
+__WORDSIZE
+ == 64
+
+92 \e\13\12
+ t\9at_ç¡16_t
+;
+
+93 \e\13\12
+ t\9at_ç¡32_t
+;
+
+94 \e\13\12
+ t\9at_ç¡64_t
+;
+
+96 \e\12
+ t\9at_ç¡16_t
+;
+
+97 \e\12
+ t\9at_ç¡32_t
+;
+
+98
+__ex\8bnsiÚ__
+
+
+99 \e\13\13\12
+ t\9at_ç¡64_t
+;
+
+103 \e\1d\ 5
+ tu\9at_ç¡8_t
+;
+
+104 #ià
+__WORDSIZE
+ == 64
+
+105 \e\1d\13\12
+ tu\9at_ç¡16_t
+;
+
+106 \e\1d\13\12
+ tu\9at_ç¡32_t
+;
+
+107 \e\1d\13\12
+ tu\9at_ç¡64_t
+;
+
+109 \e\1d\12
+ tu\9at_ç¡16_t
+;
+
+110 \e\1d\12
+ tu\9at_ç¡32_t
+;
+
+111
+__ex\8bnsiÚ__
+
+
+112 \e\1d\13\13\12
+ tu\9at_ç¡64_t
+;
+
+117 #ià
+__WORDSIZE
+ == 64
+
+118 #iâdeà
+__\9a\8d\8c_t_def\9aed
+
+
+119 \e\13\12
+ t\9a\8d\8c_t
+;
+
+120 \ 1
+ #__\9a\8d\8c_t_def\9aed
+
+
+ )
+
+122 \e\1d\13\12
+ tu\9a\8d\8c_t
+;
+
+124 #iâdeà
+__\9a\8d\8c_t_def\9aed
+
+
+125 \e\12
+ t\9a\8d\8c_t
+;
+
+126 \ 1
+ #__\9a\8d\8c_t_def\9aed
+
+
+ )
+
+128 \e\1d\12
+ tu\9a\8d\8c_t
+;
+
+133 #ià
+__WORDSIZE
+ == 64
+
+134 \e\13\12
+ t\9atmax_t
+;
+
+135 \e\1d\13\12
+ tu\9atmax_t
+;
+
+137
+__ex\8bnsiÚ__
+
+
+138 \e\13\13\12
+ t\9atmax_t
+;
+
+139
+__ex\8bnsiÚ__
+
+
+140 \e\1d\13\13\12
+ tu\9atmax_t
+;
+
+144 #ià
+__WORDSIZE
+ == 64
+
+145 \ 1
+ #__INT64_C
+(
+c
+èø##
+L
+
+
+ )
+
+146 \ 1
+ #__UINT64_C
+(
+c
+èø##
+UL
+
+
+ )
+
+148 \ 1
+ #__INT64_C
+(
+c
+èø##
+LL
+
+
+ )
+
+149 \ 1
+ #__UINT64_C
+(
+c
+èø##
+ULL
+
+
+ )
+
+155 \ 1
+ #INT8_MIN
+ (-128)
+
+ )
+
+156 \ 1
+ #INT16_MIN
+ (-32767-1)
+
+ )
+
+157 \ 1
+ #INT32_MIN
+ (-2147483647-1)
+
+ )
+
+158 \ 1
+ #INT64_MIN
+ (-
+ `__INT64_C
+(9223372036854775807)-1)
+
+ )
+
+160 \ 1
+ #INT8_MAX
+ (127)
+
+ )
+
+161 \ 1
+ #INT16_MAX
+ (32767)
+
+ )
+
+162 \ 1
+ #INT32_MAX
+ (2147483647)
+
+ )
+
+163 \ 1
+ #INT64_MAX
+ (
+ `__INT64_C
+(9223372036854775807))
+
+ )
+
+166 \ 1
+ #UINT8_MAX
+ (255)
+
+ )
+
+167 \ 1
+ #UINT16_MAX
+ (65535)
+
+ )
+
+168 \ 1
+ #UINT32_MAX
+ (4294967295U)
+
+ )
+
+169 \ 1
+ #UINT64_MAX
+ (
+ `__UINT64_C
+(18446744073709551615))
+
+ )
+
+173 \ 1
+ #INT_LEAST8_MIN
+ (-128)
+
+ )
+
+174 \ 1
+ #INT_LEAST16_MIN
+ (-32767-1)
+
+ )
+
+175 \ 1
+ #INT_LEAST32_MIN
+ (-2147483647-1)
+
+ )
+
+176 \ 1
+ #INT_LEAST64_MIN
+ (-
+ `__INT64_C
+(9223372036854775807)-1)
+
+ )
+
+178 \ 1
+ #INT_LEAST8_MAX
+ (127)
+
+ )
+
+179 \ 1
+ #INT_LEAST16_MAX
+ (32767)
+
+ )
+
+180 \ 1
+ #INT_LEAST32_MAX
+ (2147483647)
+
+ )
+
+181 \ 1
+ #INT_LEAST64_MAX
+ (
+ `__INT64_C
+(9223372036854775807))
+
+ )
+
+184 \ 1
+ #UINT_LEAST8_MAX
+ (255)
+
+ )
+
+185 \ 1
+ #UINT_LEAST16_MAX
+ (65535)
+
+ )
+
+186 \ 1
+ #UINT_LEAST32_MAX
+ (4294967295U)
+
+ )
+
+187 \ 1
+ #UINT_LEAST64_MAX
+ (
+ `__UINT64_C
+(18446744073709551615))
+
+ )
+
+191 \ 1
+ #INT_FAST8_MIN
+ (-128)
+
+ )
+
+192 #ià
+__WORDSIZE
+ == 64
+
+193 \ 1
+ #INT_FAST16_MIN
+ (-9223372036854775807L-1)
+
+ )
+
+194 \ 1
+ #INT_FAST32_MIN
+ (-9223372036854775807L-1)
+
+ )
+
+196 \ 1
+ #INT_FAST16_MIN
+ (-2147483647-1)
+
+ )
+
+197 \ 1
+ #INT_FAST32_MIN
+ (-2147483647-1)
+
+ )
+
+199 \ 1
+ #INT_FAST64_MIN
+ (-
+ `__INT64_C
+(9223372036854775807)-1)
+
+ )
+
+201 \ 1
+ #INT_FAST8_MAX
+ (127)
+
+ )
+
+202 #ià
+__WORDSIZE
+ == 64
+
+203 \ 1
+ #INT_FAST16_MAX
+ (9223372036854775807L)
+
+ )
+
+204 \ 1
+ #INT_FAST32_MAX
+ (9223372036854775807L)
+
+ )
+
+206 \ 1
+ #INT_FAST16_MAX
+ (2147483647)
+
+ )
+
+207 \ 1
+ #INT_FAST32_MAX
+ (2147483647)
+
+ )
+
+209 \ 1
+ #INT_FAST64_MAX
+ (
+ `__INT64_C
+(9223372036854775807))
+
+ )
+
+212 \ 1
+ #UINT_FAST8_MAX
+ (255)
+
+ )
+
+213 #ià
+__WORDSIZE
+ == 64
+
+214 \ 1
+ #UINT_FAST16_MAX
+ (18446744073709551615UL)
+
+ )
+
+215 \ 1
+ #UINT_FAST32_MAX
+ (18446744073709551615UL)
+
+ )
+
+217 \ 1
+ #UINT_FAST16_MAX
+ (4294967295U)
+
+ )
+
+218 \ 1
+ #UINT_FAST32_MAX
+ (4294967295U)
+
+ )
+
+220 \ 1
+ #UINT_FAST64_MAX
+ (
+ `__UINT64_C
+(18446744073709551615))
+
+ )
+
+224 #ià
+__WORDSIZE
+ == 64
+
+225 \ 1
+ #INTPTR_MIN
+ (-9223372036854775807L-1)
+
+ )
+
+226 \ 1
+ #INTPTR_MAX
+ (9223372036854775807L)
+
+ )
+
+227 \ 1
+ #UINTPTR_MAX
+ (18446744073709551615UL)
+
+ )
+
+229 \ 1
+ #INTPTR_MIN
+ (-2147483647-1)
+
+ )
+
+230 \ 1
+ #INTPTR_MAX
+ (2147483647)
+
+ )
+
+231 \ 1
+ #UINTPTR_MAX
+ (4294967295U)
+
+ )
+
+236 \ 1
+ #INTMAX_MIN
+ (-
+ `__INT64_C
+(9223372036854775807)-1)
+
+ )
+
+238 \ 1
+ #INTMAX_MAX
+ (
+ `__INT64_C
+(9223372036854775807))
+
+ )
+
+241 \ 1
+ #UINTMAX_MAX
+ (
+ `__UINT64_C
+(18446744073709551615))
+
+ )
+
+247 #ià
+__WORDSIZE
+ == 64
+
+248 \ 1
+ #PTRDIFF_MIN
+ (-9223372036854775807L-1)
+
+ )
+
+249 \ 1
+ #PTRDIFF_MAX
+ (9223372036854775807L)
+
+ )
+
+251 \ 1
+ #PTRDIFF_MIN
+ (-2147483647-1)
+
+ )
+
+252 \ 1
+ #PTRDIFF_MAX
+ (2147483647)
+
+ )
+
+256 \ 1
+ #SIG_ATOMIC_MIN
+ (-2147483647-1)
+
+ )
+
+257 \ 1
+ #SIG_ATOMIC_MAX
+ (2147483647)
+
+ )
+
+260 #ià
+__WORDSIZE
+ == 64
+
+261 \ 1
+ #SIZE_MAX
+ (18446744073709551615UL)
+
+ )
+
+263 #ifdeà
+__WORDSIZE32_SIZE_ULONG
+
+
+264 \ 1
+ #SIZE_MAX
+ (4294967295UL)
+
+ )
+
+266 \ 1
+ #SIZE_MAX
+ (4294967295U)
+
+ )
+
+271 #iâdeà
+WCHAR_MIN
+
+
+273 \ 1
+ #WCHAR_MIN
+
+__WCHAR_MIN
+
+
+ )
+
+274 \ 1
+ #WCHAR_MAX
+
+__WCHAR_MAX
+
+
+ )
+
+278 \ 1
+ #WINT_MIN
+ (0u)
+
+ )
+
+279 \ 1
+ #WINT_MAX
+ (4294967295u)
+
+ )
+
+282 \ 1
+ #INT8_C
+(
+c
+è
+ )
+c
+
+283 \ 1
+ #INT16_C
+(
+c
+è
+ )
+c
+
+284 \ 1
+ #INT32_C
+(
+c
+è
+ )
+c
+
+285 #ià
+__WORDSIZE
+ == 64
+
+286 \ 1
+ #INT64_C
+(
+c
+èø##
+L
+
+
+ )
+
+288 \ 1
+ #INT64_C
+(
+c
+èø##
+LL
+
+
+ )
+
+292 \ 1
+ #UINT8_C
+(
+c
+è
+ )
+c
+
+293 \ 1
+ #UINT16_C
+(
+c
+è
+ )
+c
+
+294 \ 1
+ #UINT32_C
+(
+c
+èø##
+U
+
+
+ )
+
+295 #ià
+__WORDSIZE
+ == 64
+
+296 \ 1
+ #UINT64_C
+(
+c
+èø##
+UL
+
+
+ )
+
+298 \ 1
+ #UINT64_C
+(
+c
+èø##
+ULL
+
+
+ )
+
+302 #ià
+__WORDSIZE
+ == 64
+
+303 \ 1
+ #INTMAX_C
+(
+c
+èø##
+L
+
+
+ )
+
+304 \ 1
+ #UINTMAX_C
+(
+c
+èø##
+UL
+
+
+ )
+
+306 \ 1
+ #INTMAX_C
+(
+c
+èø##
+LL
+
+
+ )
+
+307 \ 1
+ #UINTMAX_C
+(
+c
+èø##
+ULL
+
+
+ )
+
+ @/usr/include/stdio.h
+
+23 #iâdeà
+_STDIO_H
+
+
+25 #ià!
+def\9aed
+
+__Ãed_FILE
+ && !def\9aed
+__Ãed___FILE
+
+
+26 \ 1
+ #_STDIO_H
+ 1
+
+ )
+
+27 \ 2
+ ~<ã©u»s.h
+>
+
+29
+ g__BEGIN_DECLS
+
+
+31 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+32 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+33 \ 2
+ ~<¡ddef.h
+>
+
+35 \ 2
+ ~<b\99s/ty³s.h
+>
+
+36 \ 1
+ #__Ãed_FILE
+
+
+ )
+
+37 \ 1
+ #__Ãed___FILE
+
+
+ )
+
+41 #ià!
+def\9aed
+
+__FILE_def\9aed
+ && def\9aed
+__Ãed_FILE
+
+
+44 \19
+ g_IO_FILE
+;
+
+46
+__BEGIN_NAMESPACE_STD
+
+
+48 \e\19
+_IO_FILE
+
+ tFILE
+;
+
+49
+ g__END_NAMESPACE_STD
+
+
+50 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ || def\9aed
+__USE_POSIX
+ \
+
+51 ||
+def\9aed
+
+ g__USE_ISOC99
+ || def\9aed
+ g__USE_XOPEN
+ \
+
+52 ||
+def\9aed
+
+__USE_POSIX2
+
+
+53
+ $__USING_NAMESPACE_STD
+(
+FILE
+)
+
+56 \ 1
+ #__FILE_def\9aed
+ 1
+
+ )
+
+58 #undeà
+__Ãed_FILE
+
+
+61 #ià!
+def\9aed
+
+____FILE_def\9aed
+ && def\9aed
+__Ãed___FILE
+
+
+64 \e\19
+_IO_FILE
+
+ t__FILE
+;
+
+66 \ 1
+ #____FILE_def\9aed
+ 1
+
+ )
+
+68 #undeà
+__Ãed___FILE
+
+
+71 #ifdef
+_STDIO_H
+
+
+72 \ 1
+ #_STDIO_USES_IOSTREAM
+
+
+ )
+
+74 \ 2
+ ~<libio.h
+>
+
+76 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+77 #ifdeà
+__GNUC__
+
+
+78 #iâdeà
+_VA_LIST_DEFINED
+
+
+79 \e
+_G_va_li¡
+
+ tva_li¡
+;
+
+80 \ 1
+ #_VA_LIST_DEFINED
+
+
+ )
+
+83 \ 2
+ ~<¡d¬g.h
+>
+
+87 #ifdeà
+__USE_XOPEN2K8
+
+
+88 #iâdeà
+__off_t_def\9aed
+
+
+89 #iâdeà
+__USE_FILE_OFFSET64
+
+
+90 \e
+__off_t
+
+ toff_t
+;
+
+92 \e
+__off64_t
+
+ toff_t
+;
+
+94 \ 1
+ #__off_t_def\9aed
+
+
+ )
+
+96 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ && !def\9aed
+__off64_t_def\9aed
+
+
+97 \e
+__off64_t
+
+ toff64_t
+;
+
+98 \ 1
+ #__off64_t_def\9aed
+
+
+ )
+
+101 #iâdeà
+__ssize_t_def\9aed
+
+
+102 \e
+__ssize_t
+
+ tssize_t
+;
+
+103 \ 1
+ #__ssize_t_def\9aed
+
+
+ )
+
+108
+__BEGIN_NAMESPACE_STD
+
+
+109 #iâdeà
+__USE_FILE_OFFSET64
+
+
+110 \e
+_G_åos_t
+
+ tåos_t
+;
+
+112 \e
+_G_åos64_t
+
+ tåos_t
+;
+
+114
+__END_NAMESPACE_STD
+
+
+115 #ifdeà
+__USE_LARGEFILE64
+
+
+116 \e
+_G_åos64_t
+
+ tåos64_t
+;
+
+120 \ 1
+ #_IOFBF
+ 0
+
+ )
+
+121 \ 1
+ #_IOLBF
+ 1
+
+ )
+
+122 \ 1
+ #_IONBF
+ 2
+
+ )
+
+126 #iâdeà
+BUFSIZ
+
+
+127 \ 1
+ #BUFSIZ
+
+_IO_BUFSIZ
+
+
+ )
+
+133 #iâdeà
+EOF
+
+
+134 \ 1
+ #EOF
+ (-1)
+
+ )
+
+140 \ 1
+ #SEEK_SET
+ 0
+
+ )
+
+141 \ 1
+ #SEEK_CUR
+ 1
+
+ )
+
+142 \ 1
+ #SEEK_END
+ 2
+
+ )
+
+143 #ifdeà
+__USE_GNU
+
+
+144 \ 1
+ #SEEK_DATA
+ 3
+
+ )
+
+145 \ 1
+ #SEEK_HOLE
+ 4
+
+ )
+
+149 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+151 \ 1
+ #P_tmpd\9c
+ "/tmp"
+
+ )
+
+164 \ 2
+ ~<b\99s/¡dio_lim.h
+>
+
+168 \r\19
+_IO_FILE
+ *
+¡d\9a
+;
+
+169 \r\19
+_IO_FILE
+ *
+¡dout
+;
+
+170 \r\19
+_IO_FILE
+ *
+¡d\94r
+;
+
+172 \ 1
+ #¡d\9a
+
+¡d\9a
+
+
+ )
+
+173 \ 1
+ #¡dout
+
+¡dout
+
+
+ )
+
+174 \ 1
+ #¡d\94r
+
+¡d\94r
+
+
+ )
+
+176
+__BEGIN_NAMESPACE_STD
+
+
+178 \r\12
+ $»move
+ (cڡ \ 5*
+__f\9e\92ame
+è
+__THROW
+;
+
+180 \r\12
+ $Ȃme
+ (cڡ \ 5*
+__Þd
+, cڡ \ 5*
+__Ãw
+è
+__THROW
+;
+
+181
+__END_NAMESPACE_STD
+
+
+183 #ifdeà
+__USE_ATFILE
+
+
+185 \r\12
+ $Ȃm\97t
+ (\12
+__Þdfd
+, cڡ \ 5*
+__Þd
+, \12
+__Ãwfd
+,
+
+186 cڡ \ 5*
+__Ãw
+è
+__THROW
+;
+
+189
+__BEGIN_NAMESPACE_STD
+
+
+194 #iâdeà
+__USE_FILE_OFFSET64
+
+
+195 \r
+FILE
+ *
+ $tmpf\9ee
+ (\1eè
+__wur
+;
+
+197 #ifdeà
+__REDIRECT
+
+
+198 \r
+FILE
+ *
+ `__REDIRECT
+ (
+tmpf\9ee
+, (\1e),
+tmpf\9ee64
+è
+__wur
+;
+
+200 \ 1
+ #tmpf\9ee
+
+tmpf\9ee64
+
+
+ )
+
+204 #ifdeà
+__USE_LARGEFILE64
+
+
+205 \r
+FILE
+ *
+ $tmpf\9ee64
+ (\1eè
+__wur
+;
+
+209 \r\ 5*
+ $tm²am
+ (\ 5*
+__s
+è
+__THROW
+
+__wur
+;
+
+210
+__END_NAMESPACE_STD
+
+
+212 #ifdeà
+__USE_MISC
+
+
+215 \r\ 5*
+ $tm²am_r
+ (\ 5*
+__s
+è
+__THROW
+
+__wur
+;
+
+219 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+227 \r\ 5*
+ $\8bm²am
+ (cڡ \ 5*
+__d\9c
+, cڡ \ 5*
+__pfx
+)
+
+228
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+__wur
+;
+
+232
+__BEGIN_NAMESPACE_STD
+
+
+237 \r\12
+ `fþo£
+ (
+FILE
+ *
+__¡»am
+);
+
+242 \r\12
+ `fæush
+ (
+FILE
+ *
+__¡»am
+);
+
+243
+__END_NAMESPACE_STD
+
+
+245 #ifdeà
+__USE_MISC
+
+
+252 \r\12
+ `fæush_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+255 #ifdeà
+__USE_GNU
+
+
+262 \r\12
+ `fþo£®l
+ (\1e);
+
+266
+__BEGIN_NAMESPACE_STD
+
+
+267 #iâdeà
+__USE_FILE_OFFSET64
+
+
+272 \r
+FILE
+ *
+ $fݒ
+ (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+273 cڡ \ 5*
+__»¡riù
+
+__modes
+è
+__wur
+;
+
+278 \r
+FILE
+ *
+ $äeÝ\92
+ (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+279 cڡ \ 5*
+__»¡riù
+
+__modes
+,
+
+280
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+282 #ifdeà
+__REDIRECT
+
+
+283 \r
+FILE
+ *
+ `__REDIRECT
+ (
+fݒ
+, (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+284 cڡ \ 5*
+__»¡riù
+
+__modes
+),
+fݒ64
+)
+
+285
+__wur
+;
+
+286 \r
+FILE
+ *
+ `__REDIRECT
+ (
+äeÝ\92
+, (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+287 cڡ \ 5*
+__»¡riù
+
+__modes
+,
+
+288
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+äeÝ\9264
+)
+
+289
+__wur
+;
+
+291 \ 1
+ #fݒ
+
+fݒ64
+
+
+ )
+
+292 \ 1
+ #äeÝ\92
+
+äeÝ\9264
+
+
+ )
+
+295
+__END_NAMESPACE_STD
+
+
+296 #ifdeà
+__USE_LARGEFILE64
+
+
+297 \r
+FILE
+ *
+ $fݒ64
+ (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+298 cڡ \ 5*
+__»¡riù
+
+__modes
+è
+__wur
+;
+
+299 \r
+FILE
+ *
+ $äeÝ\9264
+ (cڡ \ 5*
+__»¡riù
+
+__f\9e\92ame
+,
+
+300 cڡ \ 5*
+__»¡riù
+
+__modes
+,
+
+301
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+304 #ifdef
+__USE_POSIX
+
+
+306 \r
+FILE
+ *
+ $fdݒ
+ (\12
+__fd
+, cڡ \ 5*
+__modes
+è
+__THROW
+
+__wur
+;
+
+309 #ifdef
+__USE_GNU
+
+
+312 \r
+FILE
+ *
+ $fÝ\92cook\9b
+ (\1e*
+__»¡riù
+
+__magic_cook\9b
+,
+
+313 cڡ \ 5*
+__»¡riù
+
+__modes
+,
+
+314
+_IO_cook\9b_io_funùiÚs_t
+
+__io_funcs
+è
+__THROW
+
+__wur
+;
+
+317 #ifdeà
+__USE_XOPEN2K8
+
+
+319 \r
+FILE
+ *
+ $fmemݒ
+ (\1e*
+__s
+,
+size_t
+
+__Ën
+, cڡ \ 5*
+__modes
+)
+
+320
+__THROW
+
+__wur
+;
+
+325 \r
+FILE
+ *
+ $Ý\92_mem¡»am
+ (\ 5**
+__buæoc
+,
+size_t
+ *
+__siz\96oc
+è
+__THROW
+
+__wur
+;
+
+329
+__BEGIN_NAMESPACE_STD
+
+
+332 \r\1e
+ $£tbuf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, \ 5*__»¡riù
+__buf
+è
+__THROW
+;
+
+336 \r\12
+ $£tvbuf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, \ 5*__»¡riù
+__buf
+,
+
+337 \12
+__modes
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+338
+__END_NAMESPACE_STD
+
+
+340 #ifdef
+__USE_MISC
+
+
+343 \r\1e
+ $£tbufãr
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, \ 5*__»¡riù
+__buf
+,
+
+344
+size_t
+
+__size
+è
+__THROW
+;
+
+347 \r\1e
+ $£\8e\9aebuf
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+351
+__BEGIN_NAMESPACE_STD
+
+
+356 \r\12
+ `år\9atf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+357 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...);
+
+362 \r\12
+ `´\9atf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...);
+
+364 \r\12
+ $¥r\9atf
+ (\ 5*
+__»¡riù
+
+__s
+,
+
+365 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__THROWNL
+;
+
+371 \r\12
+ `vår\9atf
+ (
+FILE
+ *
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__fÜm©
+,
+
+372
+_G_va_li¡
+
+__¬g
+);
+
+377 \r\12
+ `v´\9atf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__¬g
+);
+
+379 \r\12
+ $v¥r\9atf
+ (\ 5*
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__fÜm©
+,
+
+380
+_G_va_li¡
+
+__¬g
+è
+__THROWNL
+;
+
+381
+__END_NAMESPACE_STD
+
+
+383 #ià
+def\9aed
+
+__USE_ISOC99
+ || def\9aed
+__USE_UNIX98
+
+
+384
+__BEGIN_NAMESPACE_C99
+
+
+386 \r\12
+ $¢´\9atf
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__maxËn
+,
+
+387 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...)
+
+388
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 4)));
+
+390 \r\12
+ $v¢´\9atf
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__maxËn
+,
+
+391 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__¬g
+)
+
+392
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 0)));
+
+393
+__END_NAMESPACE_C99
+
+
+396 #ifdeà
+__USE_GNU
+
+
+399 \r\12
+ $va¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+, cÚ¡ \ 5*__»¡riù
+__f
+,
+
+400
+_G_va_li¡
+
+__¬g
+)
+
+401
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__´\9atf__
+, 2, 0))è
+__wur
+;
+
+402 \r\12
+ $__a¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+,
+
+403 cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+404
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__´\9atf__
+, 2, 3))è
+__wur
+;
+
+405 \r\12
+ $a¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+,
+
+406 cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+407
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__´\9atf__
+, 2, 3))è
+__wur
+;
+
+410 #ifdeà
+__USE_XOPEN2K8
+
+
+412 \r\12
+ $vd´\9atf
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+
+413
+_G_va_li¡
+
+__¬g
+)
+
+414
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 2, 0)));
+
+415 \r\12
+ $d´\9atf
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+416
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 2, 3)));
+
+420
+__BEGIN_NAMESPACE_STD
+
+
+425 \r\12
+ $fsÿnf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+426 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__wur
+;
+
+431 \r\12
+ $sÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__wur
+;
+
+433 \r\12
+ $ssÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+434 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__THROW
+;
+
+436 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__USE_GNU
+ \
+
+437 && (!
+def\9aed
+
+__LDBL_COMPAT
+ || !def\9aed
+__REDIRECT
+) \
+
+438 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+439 #ifdeà
+__REDIRECT
+
+
+443 \r\12
+ `__REDIRECT
+ (
+fsÿnf
+, (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+444 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...),
+
+445
+__isoc99_fsÿnf
+è
+__wur
+;
+
+446 \r\12
+ `__REDIRECT
+ (
+sÿnf
+, (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...),
+
+447
+__isoc99_sÿnf
+è
+__wur
+;
+
+448 \r\12
+ `__REDIRECT_NTH
+ (
+ssÿnf
+, (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+449 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...),
+
+450
+__isoc99_ssÿnf
+);
+
+452 \r\12
+ $__isoc99_fsÿnf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+453 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__wur
+;
+
+454 \r\12
+ $__isoc99_sÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__wur
+;
+
+455 \r\12
+ $__isoc99_ssÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+456 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__THROW
+;
+
+457 \ 1
+ #fsÿnf
+
+__isoc99_fsÿnf
+
+
+ )
+
+458 \ 1
+ #sÿnf
+
+__isoc99_sÿnf
+
+
+ )
+
+459 \ 1
+ #ssÿnf
+
+__isoc99_ssÿnf
+
+
+ )
+
+463
+__END_NAMESPACE_STD
+
+
+465 #ifdef
+__USE_ISOC99
+
+
+466
+__BEGIN_NAMESPACE_C99
+
+
+471 \r\12
+ $vfsÿnf
+ (
+FILE
+ *
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__fÜm©
+,
+
+472
+_G_va_li¡
+
+__¬g
+)
+
+473
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__sÿnf__
+, 2, 0))è
+__wur
+;
+
+479 \r\12
+ $vsÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__¬g
+)
+
+480
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__sÿnf__
+, 1, 0))è
+__wur
+;
+
+483 \r\12
+ $vssÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+484 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__¬g
+)
+
+485
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__sÿnf__
+, 2, 0)));
+
+487 #ià!
+def\9aed
+
+__USE_GNU
+ \
+
+488 && (!
+def\9aed
+
+__LDBL_COMPAT
+ || !def\9aed
+__REDIRECT
+) \
+
+489 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+490 #ifdeà
+__REDIRECT
+
+
+494 \r\12
+ `__REDIRECT
+ (
+vfsÿnf
+,
+
+495 (
+FILE
+ *
+__»¡riù
+
+__s
+,
+
+496 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__¬g
+),
+
+497
+__isoc99_vfsÿnf
+)
+
+498
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__sÿnf__
+, 2, 0))è
+__wur
+;
+
+499 \r\12
+ `__REDIRECT
+ (
+vsÿnf
+, (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+500
+_G_va_li¡
+
+__¬g
+),
+__isoc99_vsÿnf
+)
+
+501
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__sÿnf__
+, 1, 0))è
+__wur
+;
+
+502 \r\12
+ `__REDIRECT_NTH
+ (
+vssÿnf
+,
+
+503 (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+504 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+505
+_G_va_li¡
+
+__¬g
+),
+__isoc99_vssÿnf
+)
+
+506
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__sÿnf__
+, 2, 0)));
+
+508 \r\12
+ $__isoc99_vfsÿnf
+ (
+FILE
+ *
+__»¡riù
+
+__s
+,
+
+509 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+510
+_G_va_li¡
+
+__¬g
+è
+__wur
+;
+
+511 \r\12
+ $__isoc99_vsÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+512
+_G_va_li¡
+
+__¬g
+è
+__wur
+;
+
+513 \r\12
+ $__isoc99_vssÿnf
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+514 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+515
+_G_va_li¡
+
+__¬g
+è
+__THROW
+;
+
+516 \ 1
+ #vfsÿnf
+
+__isoc99_vfsÿnf
+
+
+ )
+
+517 \ 1
+ #vsÿnf
+
+__isoc99_vsÿnf
+
+
+ )
+
+518 \ 1
+ #vssÿnf
+
+__isoc99_vssÿnf
+
+
+ )
+
+522
+__END_NAMESPACE_C99
+
+
+526
+__BEGIN_NAMESPACE_STD
+
+
+531 \r\12
+ `fg\91c
+ (
+FILE
+ *
+__¡»am
+);
+
+532 \r\12
+ `g\91c
+ (
+FILE
+ *
+__¡»am
+);
+
+538 \r\12
+ `g\91ch¬
+ (\1e);
+
+539
+__END_NAMESPACE_STD
+
+
+543 \ 1
+ #g\91c
+(
+_å
+è
+ `_IO_g\91c
+ (_å)
+
+ )
+
+545 #ifdeà
+__USE_POSIX
+
+
+550 \r\12
+ `g\91c_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+551 \r\12
+ `g\91ch¬_uÆocked
+ (\1e);
+
+554 #ifdeà
+__USE_MISC
+
+
+561 \r\12
+ `fg\91c_uÆocked
+ (
+FILE
+ *
+__¡»am
+);
+
+565
+__BEGIN_NAMESPACE_STD
+
+
+573 \r\12
+ `åutc
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+);
+
+574 \r\12
+ `putc
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+);
+
+580 \r\12
+ `putch¬
+ (\12
+__c
+);
+
+581
+__END_NAMESPACE_STD
+
+
+585 \ 1
+ #putc
+(
+_ch
+,
+_å
+è
+ `_IO_putc
+ (_ch, _å)
+
+ )
+
+587 #ifdeà
+__USE_MISC
+
+
+594 \r\12
+ `åutc_uÆocked
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+);
+
+597 #ifdeà
+__USE_POSIX
+
+
+602 \r\12
+ `putc_uÆocked
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+);
+
+603 \r\12
+ `putch¬_uÆocked
+ (\12
+__c
+);
+
+607 #ià
+def\9aed
+
+__USE_MISC
+ \
+
+608 || (
+def\9aed
+
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+)
+
+610 \r\12
+ `g\91w
+ (
+FILE
+ *
+__¡»am
+);
+
+613 \r\12
+ `putw
+ (\12
+__w
+,
+FILE
+ *
+__¡»am
+);
+
+617
+__BEGIN_NAMESPACE_STD
+
+
+622 \r\ 5*
+ $fg\91s
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+FILE
+ *__»¡riù
+__¡»am
+)
+
+623
+__wur
+;
+
+625 #ià!
+def\9aed
+
+__USE_ISOC11
+ \
+
+626 || (
+def\9aed
+
+__ýlu¥lus
+ && __cplusplus <= 201103L)
+
+638 \r\ 5*
+ $g\91s
+ (\ 5*
+__s
+è
+__wur
+
+__©\8cibu\8b_d\95»ÿ\8bd__
+;
+
+640
+__END_NAMESPACE_STD
+
+
+642 #ifdeà
+__USE_GNU
+
+
+649 \r\ 5*
+ $fg\91s_uÆocked
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+
+650
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+654 #ifdef
+__USE_XOPEN2K8
+
+
+665 \r
+_IO_ssize_t
+
+ $__g\91d\96im
+ (\ 5**
+__»¡riù
+
+__l\9a\95\8c
+,
+
+666
+size_t
+ *
+__»¡riù
+
+__n
+, \12
+__d\96im\99\94
+,
+
+667
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+668 \r
+_IO_ssize_t
+
+ $g\91d\96im
+ (\ 5**
+__»¡riù
+
+__l\9a\95\8c
+,
+
+669
+size_t
+ *
+__»¡riù
+
+__n
+, \12
+__d\96im\99\94
+,
+
+670
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+678 \r
+_IO_ssize_t
+
+ $g\91l\9ae
+ (\ 5**
+__»¡riù
+
+__l\9a\95\8c
+,
+
+679
+size_t
+ *
+__»¡riù
+
+__n
+,
+
+680
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+684
+__BEGIN_NAMESPACE_STD
+
+
+689 \r\12
+ `åuts
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+FILE
+ *__»¡riù
+__¡»am
+);
+
+695 \r\12
+ `puts
+ (cڡ \ 5*
+__s
+);
+
+702 \r\12
+ `ung\91c
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+);
+
+709 \r
+size_t
+
+ $ä\97d
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+,
+
+710
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+715 \r
+size_t
+
+ `fwr\99e
+ (cڡ \1e*
+__»¡riù
+
+__±r
+, size_\88
+__size
+,
+
+716
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__s
+);
+
+717
+__END_NAMESPACE_STD
+
+
+719 #ifdeà
+__USE_GNU
+
+
+726 \r\12
+ `åuts_uÆocked
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+727
+FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+730 #ifdeà
+__USE_MISC
+
+
+737 \r
+size_t
+
+ $ä\97d_uÆocked
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+,
+
+738
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+739 \r
+size_t
+
+ `fwr\99e_uÆocked
+ (cڡ \1e*
+__»¡riù
+
+__±r
+, size_\88
+__size
+,
+
+740
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+744
+__BEGIN_NAMESPACE_STD
+
+
+749 \r\12
+ `f£ek
+ (
+FILE
+ *
+__¡»am
+, \13\12
+__off
+, \12
+__wh\92û
+);
+
+754 \r\13\12
+ $á\96l
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+759 \r\1e
+ `»w\9ad
+ (
+FILE
+ *
+__¡»am
+);
+
+760
+__END_NAMESPACE_STD
+
+
+767 #ià
+def\9aed
+
+__USE_LARGEFILE
+ || def\9aed
+__USE_XOPEN2K
+
+
+768 #iâdeà
+__USE_FILE_OFFSET64
+
+
+773 \r\12
+ `f£eko
+ (
+FILE
+ *
+__¡»am
+,
+__off_t
+
+__off
+, \12
+__wh\92û
+);
+
+778 \r
+__off_t
+
+ $á\96lo
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+780 #ifdeà
+__REDIRECT
+
+
+781 \r\12
+ `__REDIRECT
+ (
+f£eko
+,
+
+782 (
+FILE
+ *
+__¡»am
+,
+__off64_t
+
+__off
+, \12
+__wh\92û
+),
+
+783
+f£eko64
+);
+
+784 \r
+__off64_t
+
+ `__REDIRECT
+ (
+á\96lo
+, (
+FILE
+ *
+__¡»am
+),
+á\96lo64
+);
+
+786 \ 1
+ #f£eko
+
+f£eko64
+
+
+ )
+
+787 \ 1
+ #á\96lo
+
+á\96lo64
+
+
+ )
+
+792
+__BEGIN_NAMESPACE_STD
+
+
+793 #iâdeà
+__USE_FILE_OFFSET64
+
+
+798 \r\12
+ `fg\91pos
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+åos_t
+ *__»¡riù
+__pos
+);
+
+803 \r\12
+ `f£\8dos
+ (
+FILE
+ *
+__¡»am
+, cڡ
+åos_t
+ *
+__pos
+);
+
+805 #ifdeà
+__REDIRECT
+
+
+806 \r\12
+ `__REDIRECT
+ (
+fg\91pos
+, (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+807
+åos_t
+ *
+__»¡riù
+
+__pos
+),
+fg\91pos64
+);
+
+808 \r\12
+ `__REDIRECT
+ (
+f£\8dos
+,
+
+809 (
+FILE
+ *
+__¡»am
+, cڡ
+åos_t
+ *
+__pos
+),
+f£\8dos64
+);
+
+811 \ 1
+ #fg\91pos
+
+fg\91pos64
+
+
+ )
+
+812 \ 1
+ #f£\8dos
+
+f£\8dos64
+
+
+ )
+
+815
+__END_NAMESPACE_STD
+
+
+817 #ifdeà
+__USE_LARGEFILE64
+
+
+818 \r\12
+ `f£eko64
+ (
+FILE
+ *
+__¡»am
+,
+__off64_t
+
+__off
+, \12
+__wh\92û
+);
+
+819 \r
+__off64_t
+
+ $á\96lo64
+ (
+FILE
+ *
+__¡»am
+è
+__wur
+;
+
+820 \r\12
+ `fg\91pos64
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+åos64_t
+ *__»¡riù
+__pos
+);
+
+821 \r\12
+ `f£\8dos64
+ (
+FILE
+ *
+__¡»am
+, cڡ
+åos64_t
+ *
+__pos
+);
+
+824
+__BEGIN_NAMESPACE_STD
+
+
+826 \r\1e
+ $þ\97»¼
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+828 \r\12
+ $ãof
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+830 \r\12
+ $ã¼Ü
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+831
+__END_NAMESPACE_STD
+
+
+833 #ifdeà
+__USE_MISC
+
+
+835 \r\1e
+ $þ\97»¼_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+836 \r\12
+ $ãof_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+837 \r\12
+ $ã¼Ü_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+841
+__BEGIN_NAMESPACE_STD
+
+
+846 \r\1e
+ `³¼Ü
+ (cڡ \ 5*
+__s
+);
+
+847
+__END_NAMESPACE_STD
+
+
+853 \ 2
+ ~<b\99s/sys_\94¾i¡.h
+>
+
+856 #ifdef
+__USE_POSIX
+
+
+858 \r\12
+ $f\9e\92o
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+861 #ifdeà
+__USE_MISC
+
+
+863 \r\12
+ $f\9e\92o_uÆocked
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+867 #ifdeà
+__USE_POSIX2
+
+
+872 \r
+FILE
+ *
+ $pݒ
+ (cڡ \ 5*
+__commªd
+, cڡ \ 5*
+__modes
+è
+__wur
+;
+
+878 \r\12
+ `pþo£
+ (
+FILE
+ *
+__¡»am
+);
+
+882 #ifdef
+__USE_POSIX
+
+
+884 \r\ 5*
+ $ù\94mid
+ (\ 5*
+__s
+è
+__THROW
+;
+
+888 #ifdeà
+__USE_XOPEN
+
+
+890 \r\ 5*
+ `cu£rid
+ (\ 5*
+__s
+);
+
+894 #ifdef
+__USE_GNU
+
+
+895 \19
+ob¡ack
+;
+
+898 \r\12
+ $ob¡ack_´\9atf
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+899 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...)
+
+900
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 2, 3)));
+
+901 \r\12
+ $ob¡ack_v´\9atf
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+902 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+903
+_G_va_li¡
+
+__¬gs
+)
+
+904
+__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 2, 0)));
+
+908 #ifdeà
+__USE_POSIX
+
+
+912 \r\1e
+ $æockf\9ee
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+916 \r\12
+ $árylockf\9ee
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+
+__wur
+;
+
+919 \r\1e
+ $fuÆockf\9ee
+ (
+FILE
+ *
+__¡»am
+è
+__THROW
+;
+
+922 #ià
+def\9aed
+
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+ && !def\9aed
+__USE_GNU
+
+
+926 \ 1
+ #__Ãed_g\91Ýt
+
+
+ )
+
+927 \ 2
+ ~<g\91Ýt.h
+>
+
+932 #ifdeà
+__USE_EXTERN_INLINES
+
+
+933 \ 2
+ ~<b\99s/¡dio.h
+>
+
+935 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+936 \ 2
+ ~<b\99s/¡dio2.h
+>
+
+938 #ifdeà
+__LDBL_COMPAT
+
+
+939 \ 2
+ ~<b\99s/¡dio-ldbl.h
+>
+
+942
+__END_DECLS
+
+
+ @/usr/include/stdlib.h
+
+22 #iâdef
+_STDLIB_H
+
+
+24 \ 2
+ ~<ã©u»s.h
+>
+
+27 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+28 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+29 \ 1
+ #__Ãed_wch¬_t
+
+
+ )
+
+30 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+32 \ 2
+ ~<¡ddef.h
+>
+
+34
+ g__BEGIN_DECLS
+
+
+36 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+37 \ 1
+ #_STDLIB_H
+ 1
+
+ )
+
+39 #ià(
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+è&& !def\9aed
+_SYS_WAIT_H
+
+
+41 \ 2
+ ~<b\99s/wa\99æags.h
+>
+
+42 \ 2
+ ~<b\99s/wa\99¡©us.h
+>
+
+44 #ifdeà
+__USE_MISC
+
+
+49 #ià
+def\9aed
+
+__GNUC__
+ && !def\9aed
+__ýlu¥lus
+
+
+50 \ 1
+ #__WAIT_INT
+(
+¡©us
+) \
+
+51 (
+ `__ex\8bnsiÚ__
+ (((uniÚ {
+ `__ty³of
+(
+¡©us
+è
+__\9a
+; \12
+__i
+; }) \
+
+52 { .
+__\9a
+ = (
+¡©us
+è}).
+__i
+))
+
+ )
+
+54 \ 1
+ #__WAIT_INT
+(
+¡©us
+è(*(\12*è&(¡©us))
+
+ )
+
+62 #ià!
+def\9aed
+
+__GNUC__
+ || __GNUC__ < 2 || def\9aed
+__ýlu¥lus
+
+
+63 \ 1
+ #__WAIT_STATUS
+ \1e*
+
+ )
+
+64 \ 1
+ #__WAIT_STATUS_DEFN
+ \1e*
+
+ )
+
+69 \1c
+wa\99
+ *
+ m__u±r
+;
+
+70 \12*
+ m__\9d\8c
+;
+
+71 }
+ t__WAIT_STATUS
+
+ t__©\8cibu\8b__
+ ((
+ t__\8cª¥¬\92t_uniÚ__
+));
+
+72 \ 1
+ #__WAIT_STATUS_DEFN
+ \12*
+
+ )
+
+77 \ 1
+ #__WAIT_INT
+(
+¡©us
+è(¡©us)
+
+ )
+
+78 \ 1
+ #__WAIT_STATUS
+ \12*
+
+ )
+
+79 \ 1
+ #__WAIT_STATUS_DEFN
+ \12*
+
+ )
+
+84 \ 1
+ #WEXITSTATUS
+(
+¡©us
+è
+ `__WEXITSTATUS
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+85 \ 1
+ #WTERMSIG
+(
+¡©us
+è
+ `__WTERMSIG
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+86 \ 1
+ #WSTOPSIG
+(
+¡©us
+è
+ `__WSTOPSIG
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+87 \ 1
+ #WIFEXITED
+(
+¡©us
+è
+ `__WIFEXITED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+88 \ 1
+ #WIFSIGNALED
+(
+¡©us
+è
+ `__WIFSIGNALED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+89 \ 1
+ #WIFSTOPPED
+(
+¡©us
+è
+ `__WIFSTOPPED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+90 #ifdeà
+__WIFCONTINUED
+
+
+91 \ 1
+ #WIFCONTINUED
+(
+¡©us
+è
+ `__WIFCONTINUED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+95
+__BEGIN_NAMESPACE_STD
+
+
+99 \12
+ mquÙ
+;
+
+100 \12
+ m»m
+;
+
+101 }
+ tdiv_t
+;
+
+104 #iâdeà
+__ldiv_t_def\9aed
+
+
+107 \13\12
+ mquÙ
+;
+
+108 \13\12
+ m»m
+;
+
+109 }
+ tldiv_t
+;
+
+110 \ 1
+ #__ldiv_t_def\9aed
+ 1
+
+ )
+
+112
+ g__END_NAMESPACE_STD
+
+
+114 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__Îdiv_t_def\9aed
+
+
+115
+__BEGIN_NAMESPACE_C99
+
+
+117
+__ex\8bnsiÚ__
+ \estruct
+
+119 \13\13\12
+ mquÙ
+;
+
+120 \13\13\12
+ m»m
+;
+
+121 }
+ tÎdiv_t
+;
+
+122 \ 1
+ #__Îdiv_t_def\9aed
+ 1
+
+ )
+
+123
+ g__END_NAMESPACE_C99
+
+
+128 \ 1
+ #RAND_MAX
+ 2147483647
+
+ )
+
+133 \ 1
+ #EXIT_FAILURE
+ 1
+
+ )
+
+134 \ 1
+ #EXIT_SUCCESS
+ 0
+
+ )
+
+138 \ 1
+ #MB_CUR_MAX
+ (
+ `__ùy³_g\91_mb_cur_max
+ ())
+
+ )
+
+139 \r
+size_t
+
+ $__ùy³_g\91_mb_cur_max
+ (\1eè
+__THROW
+
+__wur
+;
+
+142
+__BEGIN_NAMESPACE_STD
+
+
+144 \r\b
+ $©of
+ (cڡ \ 5*
+__Ō
+)
+
+145
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+147 \r\12
+ $©oi
+ (cڡ \ 5*
+__Ō
+)
+
+148
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+150 \r\13\12
+ $©Þ
+ (cڡ \ 5*
+__Ō
+)
+
+151
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+152
+__END_NAMESPACE_STD
+
+
+154 #ifdeà
+__USE_ISOC99
+
+
+155
+__BEGIN_NAMESPACE_C99
+
+
+157
+__ex\8bnsiÚ__
+ \r\13\13\12
+ $©Þl
+ (cڡ \ 5*
+__Ō
+)
+
+158
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+159
+__END_NAMESPACE_C99
+
+
+162
+__BEGIN_NAMESPACE_STD
+
+
+164 \r\b
+ $¡¹od
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+165 \ 5**
+__»¡riù
+
+__\92d±r
+)
+
+166
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+167
+__END_NAMESPACE_STD
+
+
+169 #ifdef
+__USE_ISOC99
+
+
+170
+__BEGIN_NAMESPACE_C99
+
+
+172 \r\ e
+ $¡¹of
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+173 \ 5**
+__»¡riù
+
+__\92d±r
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+175 \r\13\b
+ $¡¹Þd
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+176 \ 5**
+__»¡riù
+
+__\92d±r
+)
+
+177
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+178
+__END_NAMESPACE_C99
+
+
+181
+__BEGIN_NAMESPACE_STD
+
+
+183 \r\13\12
+ $¡¹Þ
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+184 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+185
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+187 \r\1d\13\12
+ $¡¹oul
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+188 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+189
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+190
+__END_NAMESPACE_STD
+
+
+192 #ifdeà
+__USE_MISC
+
+
+194
+__ex\8bnsiÚ__
+
+
+195 \r\13\13\12
+ $¡¹oq
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+196 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+197
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+199
+__ex\8bnsiÚ__
+
+
+200 \r\1d\13\13\12
+ $¡¹ouq
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+201 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+202
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+205 #ifdeà
+__USE_ISOC99
+
+
+206
+__BEGIN_NAMESPACE_C99
+
+
+208
+__ex\8bnsiÚ__
+
+
+209 \r\13\13\12
+ $¡¹Þl
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+210 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+211
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+213
+__ex\8bnsiÚ__
+
+
+214 \r\1d\13\13\12
+ $¡¹ouÎ
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+215 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+216
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+217
+__END_NAMESPACE_C99
+
+
+221 #ifdeà
+__USE_GNU
+
+
+235 \ 2
+ ~<xloÿË.h
+>
+
+239 \r\13\12
+ $¡¹Þ_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+240 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+,
+
+241
+__loÿË_t
+
+__loc
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 4));
+
+243 \r\1d\13\12
+ $¡¹oul_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+244 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+245 \12
+__ba£
+,
+__loÿË_t
+
+__loc
+)
+
+246
+__THROW
+
+ `__nÚnuÎ
+ ((1, 4));
+
+248
+__ex\8bnsiÚ__
+
+
+249 \r\13\13\12
+ $¡¹Þl_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+250 \ 5**
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+,
+
+251
+__loÿË_t
+
+__loc
+)
+
+252
+__THROW
+
+ `__nÚnuÎ
+ ((1, 4));
+
+254
+__ex\8bnsiÚ__
+
+
+255 \r\1d\13\13\12
+ $¡¹ouÎ_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+256 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+257 \12
+__ba£
+,
+__loÿË_t
+
+__loc
+)
+
+258
+__THROW
+
+ `__nÚnuÎ
+ ((1, 4));
+
+260 \r\b
+ $¡¹od_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+261 \ 5**
+__»¡riù
+
+__\92d±r
+,
+__loÿË_t
+
+__loc
+)
+
+262
+__THROW
+
+ `__nÚnuÎ
+ ((1, 3));
+
+264 \r\ e
+ $¡¹of_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+265 \ 5**
+__»¡riù
+
+__\92d±r
+,
+__loÿË_t
+
+__loc
+)
+
+266
+__THROW
+
+ `__nÚnuÎ
+ ((1, 3));
+
+268 \r\13\b
+ $¡¹Þd_l
+ (cڡ \ 5*
+__»¡riù
+
+__Ō
+,
+
+269 \ 5**
+__»¡riù
+
+__\92d±r
+,
+
+270
+__loÿË_t
+
+__loc
+)
+
+271
+__THROW
+
+ `__nÚnuÎ
+ ((1, 3));
+
+275 #ifdeà
+__USE_EXTERN_INLINES
+
+
+276
+__BEGIN_NAMESPACE_STD
+
+
+277
+__ex\8bº_\9al\9ae
+ \12
+
+278
+ `__NTH
+ (
+ $©oi
+ (cڡ \ 5*
+__Ō
+))
+
+280 \15 (\12è
+ `¡¹Þ
+ (
+__Ō
+, (\ 5**è
+NULL
+, 10);
+
+281
+ }
+}
+
+282
+__ex\8bº_\9al\9ae
+ \13\12
+
+283
+__NTH
+ (
+ $©Þ
+ (cڡ \ 5*
+__Ō
+))
+
+285 \15
+ `¡¹Þ
+ (
+__Ō
+, (\ 5**è
+NULL
+, 10);
+
+286
+ }
+}
+
+287
+ g__END_NAMESPACE_STD
+
+
+289 #ifdeà
+__USE_ISOC99
+
+
+290
+__BEGIN_NAMESPACE_C99
+
+
+291
+__ex\8bnsiÚ__
+
+__ex\8bº_\9al\9ae
+ \13\13\12
+
+292
+__NTH
+ (
+ $©Þl
+ (cڡ \ 5*
+__Ō
+))
+
+294 \15
+ `¡¹Þl
+ (
+__Ō
+, (\ 5**è
+NULL
+, 10);
+
+295
+ }
+}
+
+296
+ g__END_NAMESPACE_C99
+
+
+301 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+305 \r\ 5*
+ $l64a
+ (\13\12
+__n
+è
+__THROW
+
+__wur
+;
+
+308 \r\13\12
+ $a64l
+ (cڡ \ 5*
+__s
+)
+
+309
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+313 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+314 \ 2
+ ~<sys/ty³s.h
+>
+
+321 \r\13\12
+ $¿ndom
+ (\1eè
+__THROW
+;
+
+324 \r\1e
+ $¤ªdom
+ (\1d\12
+__£ed
+è
+__THROW
+;
+
+330 \r\ 5*
+ $\9a\99¡©e
+ (\1d\12
+__£ed
+, \ 5*
+__¡©ebuf
+,
+
+331
+size_t
+
+__¡©\96\92
+è
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+335 \r\ 5*
+ $£t¡©e
+ (\ 5*
+__¡©ebuf
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+338 #ifdeà
+__USE_MISC
+
+
+343 \19
+ s¿ndom_d©a
+
+
+345
+\9at32_t
+ *
+å\8c
+;
+
+346
+\9at32_t
+ *
+½\8c
+;
+
+347
+\9at32_t
+ *
+¡©e
+;
+
+348 \12
+¿nd_ty³
+;
+
+349 \12
+¿nd_deg
+;
+
+350 \12
+¿nd_£p
+;
+
+351
+\9at32_t
+ *
+\92d_±r
+;
+
+354 \r\12
+ $¿ndom_r
+ (\19
+¿ndom_d©a
+ *
+__»¡riù
+
+__buf
+,
+
+355
+\9at32_t
+ *
+__»¡riù
+
+__»suÉ
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+357 \r\12
+ $¤ªdom_r
+ (\1d\12
+__£ed
+, \19
+¿ndom_d©a
+ *
+__buf
+)
+
+358
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+360 \r\12
+ $\9a\99¡©e_r
+ (\1d\12
+__£ed
+, \ 5*
+__»¡riù
+
+__¡©ebuf
+,
+
+361
+size_t
+
+__¡©\96\92
+,
+
+362 \19
+¿ndom_d©a
+ *
+__»¡riù
+
+__buf
+)
+
+363
+__THROW
+
+ `__nÚnuÎ
+ ((2, 4));
+
+365 \r\12
+ $£t¡©e_r
+ (\ 5*
+__»¡riù
+
+__¡©ebuf
+,
+
+366 \19
+¿ndom_d©a
+ *
+__»¡riù
+
+__buf
+)
+
+367
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+372
+__BEGIN_NAMESPACE_STD
+
+
+374 \r\12
+ $¿nd
+ (\1eè
+__THROW
+;
+
+376 \r\1e
+ $¤ªd
+ (\1d\12
+__£ed
+è
+__THROW
+;
+
+377
+__END_NAMESPACE_STD
+
+
+379 #ifdeà
+__USE_POSIX
+
+
+381 \r\12
+ $¿nd_r
+ (\1d\12*
+__£ed
+è
+__THROW
+;
+
+385 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+389 \r\b
+ $d¿nd48
+ (\1eè
+__THROW
+;
+
+390 \r\b
+ $\94ªd48
+ (\1d\16\12
+__xsubi
+[3]è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+393 \r\13\12
+ $̪d48
+ (\1eè
+__THROW
+;
+
+394 \r\13\12
+ $Īd48
+ (\1d\16\12
+__xsubi
+[3])
+
+395
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+398 \r\13\12
+ $m¿nd48
+ (\1eè
+__THROW
+;
+
+399 \r\13\12
+ $j¿nd48
+ (\1d\16\12
+__xsubi
+[3])
+
+400
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+403 \r\1e
+ $¤ªd48
+ (\13\12
+__£edv®
+è
+__THROW
+;
+
+404 \r\1d\16\12*
+ $£ed48
+ (\1d\16\12
+__£ed16v
+[3])
+
+405
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+406 \r\1e
+ $lcÚg48
+ (\1d\16\12
+__·¿m
+[7]è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+408 #ifdeà
+__USE_MISC
+
+
+412 \19
+ sd¿nd48_d©a
+
+
+414 \1d\16\12
+__x
+[3];
+
+415 \1d\16\12
+__Þd_x
+[3];
+
+416 \1d\16\12
+__c
+;
+
+417 \1d\16\12
+__\9a\99
+;
+
+418
+__ex\8bnsiÚ__
+ \1d\13\13\12
+__a
+;
+
+423 \r\12
+ $d¿nd48_r
+ (\19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+424 \b*
+__»¡riù
+
+__»suÉ
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+425 \r\12
+ $\94ªd48_r
+ (\1d\16\12
+__xsubi
+[3],
+
+426 \19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+427 \b*
+__»¡riù
+
+__»suÉ
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+430 \r\12
+ $̪d48_r
+ (\19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+431 \13\12*
+__»¡riù
+
+__»suÉ
+)
+
+432
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+433 \r\12
+ $Īd48_r
+ (\1d\16\12
+__xsubi
+[3],
+
+434 \19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+435 \13\12*
+__»¡riù
+
+__»suÉ
+)
+
+436
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+439 \r\12
+ $m¿nd48_r
+ (\19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+440 \13\12*
+__»¡riù
+
+__»suÉ
+)
+
+441
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+442 \r\12
+ $j¿nd48_r
+ (\1d\16\12
+__xsubi
+[3],
+
+443 \19
+d¿nd48_d©a
+ *
+__»¡riù
+
+__bufãr
+,
+
+444 \13\12*
+__»¡riù
+
+__»suÉ
+)
+
+445
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+448 \r\12
+ $¤ªd48_r
+ (\13\12
+__£edv®
+, \19
+d¿nd48_d©a
+ *
+__bufãr
+)
+
+449
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+451 \r\12
+ $£ed48_r
+ (\1d\16\12
+__£ed16v
+[3],
+
+452 \19
+d¿nd48_d©a
+ *
+__bufãr
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+454 \r\12
+ $lcÚg48_r
+ (\1d\16\12
+__·¿m
+[7],
+
+455 \19
+d¿nd48_d©a
+ *
+__bufãr
+)
+
+456
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+462 #iâdeà
+__m®loc_ªd_ÿÎoc_def\9aed
+
+
+463 \ 1
+ #__m®loc_ªd_ÿÎoc_def\9aed
+
+
+ )
+
+464
+__BEGIN_NAMESPACE_STD
+
+
+466 \r\1e*
+ $m®loc
+ (
+size_t
+
+__size
+è
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+__wur
+;
+
+468 \r\1e*
+ $ÿÎoc
+ (
+size_t
+
+__nmemb
+, size_\88
+__size
+)
+
+469
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+__wur
+;
+
+470
+__END_NAMESPACE_STD
+
+
+473 #iâdeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+474
+__BEGIN_NAMESPACE_STD
+
+
+480 \r\1e*
+ $»®loc
+ (\1e*
+__±r
+,
+size_t
+
+__size
+)
+
+481
+__THROW
+
+__©\8cibu\8b_w¬n_unu£d_»suÉ__
+;
+
+483 \r\1e
+ $ä\93
+ (\1e*
+__±r
+è
+__THROW
+;
+
+484
+__END_NAMESPACE_STD
+
+
+486 #ifdef
+__USE_MISC
+
+
+488 \r\1e
+ $cä\93
+ (\1e*
+__±r
+è
+__THROW
+;
+
+491 #ifdeà
+__USE_MISC
+
+
+492 \ 2
+ ~<®loÿ.h
+>
+
+495 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K
+) \
+
+496 ||
+def\9aed
+
+__USE_MISC
+
+
+498 \r\1e*
+ $v®loc
+ (
+size_t
+
+__size
+è
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+__wur
+;
+
+501 #ifdeà
+__USE_XOPEN2K
+
+
+503 \r\12
+ $posix_mem®ign
+ (\1e**
+__mem±r
+,
+size_t
+
+__®ignm\92t
+, size_\88
+__size
+)
+
+504
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+507 #ifdeà
+__USE_ISOC11
+
+
+509 \r\1e*
+ $®igÃd_®loc
+ (
+size_t
+
+__®ignm\92t
+, size_\88
+__size
+)
+
+510
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+ `__©\8cibu\8b_®loc_size__
+ ((2)è
+__wur
+;
+
+513
+__BEGIN_NAMESPACE_STD
+
+
+515 \r\1e
+ $abÜt
+ (\1eè
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+519 \r\12
+ $©ex\99
+ (\1e(*
+__func
+è(\1e)è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+521 #ià
+def\9aed
+
+__USE_ISOC11
+ || def\9aed
+__USE_ISOCXX11
+
+
+523 #ifdeà
+__ýlu¥lus
+
+
+524 \r"C++" \12
+ $©_quick_ex\99
+ (\1e(*
+__func
+) (\1e))
+
+525
+__THROW
+
+ `__asm
+ ("©_quick_ex\99"è
+ `__nÚnuÎ
+ ((1));
+
+527 \r\12
+ $©_quick_ex\99
+ (\1e(*
+__func
+è(\1e)è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+530
+__END_NAMESPACE_STD
+
+
+532 #ifdef
+__USE_MISC
+
+
+535 \r\12
+ $Ú_ex\99
+ (\1e(*
+__func
+è(\12
+__¡©us
+, \1e*
+__¬g
+), \1e*__arg)
+
+536
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+539
+__BEGIN_NAMESPACE_STD
+
+
+543 \r\1e
+ $ex\99
+ (\12
+__¡©us
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+545 #ià
+def\9aed
+
+__USE_ISOC11
+ || def\9aed
+__USE_ISOCXX11
+
+
+549 \r\1e
+ $quick_ex\99
+ (\12
+__¡©us
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+551
+__END_NAMESPACE_STD
+
+
+553 #ifdeà
+__USE_ISOC99
+
+
+554
+__BEGIN_NAMESPACE_C99
+
+
+557 \r\1e
+ $_Ex\99
+ (\12
+__¡©us
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+558
+__END_NAMESPACE_C99
+
+
+562
+__BEGIN_NAMESPACE_STD
+
+
+564 \r\ 5*
+ $g\91\92v
+ (cڡ \ 5*
+__Çme
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+565
+__END_NAMESPACE_STD
+
+
+567 #ifdeà
+__USE_GNU
+
+
+570 \r\ 5*
+ $£cu»_g\91\92v
+ (cڡ \ 5*
+__Çme
+)
+
+571
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+574 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+578 \r\12
+ $pu\8bnv
+ (\ 5*
+__¡r\9ag
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+581 #ifdeà
+__USE_XOPEN2K
+
+
+584 \r\12
+ $£\8bnv
+ (cڡ \ 5*
+__Çme
+, cڡ \ 5*
+__v®ue
+, \12
+__»¶aû
+)
+
+585
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+588 \r\12
+ $un£\8bnv
+ (cڡ \ 5*
+__Çme
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+591 #ifdef
+__USE_MISC
+
+
+595 \r\12
+ $þ\97»nv
+ (\1eè
+__THROW
+;
+
+599 #ià
+def\9aed
+
+__USE_MISC
+ \
+
+600 || (
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K8
+)
+
+606 \r\ 5*
+ $mk\8bmp
+ (\ 5*
+__\8bm¶©e
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+609 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+618 #iâdeà
+__USE_FILE_OFFSET64
+
+
+619 \r\12
+ $mk¡emp
+ (\ 5*
+__\8bm¶©e
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+621 #ifdeà
+__REDIRECT
+
+
+622 \r\12
+ `__REDIRECT
+ (
+mk¡emp
+, (\ 5*
+__\8bm¶©e
+),
+mk¡emp64
+)
+
+623
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+625 \ 1
+ #mk¡emp
+
+mk¡emp64
+
+
+ )
+
+628 #ifdeà
+__USE_LARGEFILE64
+
+
+629 \r\12
+ $mk¡emp64
+ (\ 5*
+__\8bm¶©e
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+633 #ifdeà
+__USE_MISC
+
+
+640 #iâdeà
+__USE_FILE_OFFSET64
+
+
+641 \r\12
+ $mk¡emps
+ (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+643 #ifdeà
+__REDIRECT
+
+
+644 \r\12
+ `__REDIRECT
+ (
+mk¡emps
+, (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+),
+
+645
+mk¡emps64
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+647 \ 1
+ #mk¡emps
+
+mk¡emps64
+
+
+ )
+
+650 #ifdeà
+__USE_LARGEFILE64
+
+
+651 \r\12
+ $mk¡emps64
+ (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+)
+
+652
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+656 #ifdeà
+__USE_XOPEN2K8
+
+
+662 \r\ 5*
+ $mkd\8bmp
+ (\ 5*
+__\8bm¶©e
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+665 #ifdeà
+__USE_GNU
+
+
+672 #iâdeà
+__USE_FILE_OFFSET64
+
+
+673 \r\12
+ $mko¡emp
+ (\ 5*
+__\8bm¶©e
+, \12
+__æags
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+675 #ifdeà
+__REDIRECT
+
+
+676 \r\12
+ `__REDIRECT
+ (
+mko¡emp
+, (\ 5*
+__\8bm¶©e
+, \12
+__æags
+),
+mko¡emp64
+)
+
+677
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+679 \ 1
+ #mko¡emp
+
+mko¡emp64
+
+
+ )
+
+682 #ifdeà
+__USE_LARGEFILE64
+
+
+683 \r\12
+ $mko¡emp64
+ (\ 5*
+__\8bm¶©e
+, \12
+__æags
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+692 #iâdeà
+__USE_FILE_OFFSET64
+
+
+693 \r\12
+ $mko¡emps
+ (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+, \12
+__æags
+)
+
+694
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+696 #ifdeà
+__REDIRECT
+
+
+697 \r\12
+ `__REDIRECT
+ (
+mko¡emps
+, (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+,
+
+698 \12
+__æags
+),
+mko¡emps64
+)
+
+699
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+701 \ 1
+ #mko¡emps
+
+mko¡emps64
+
+
+ )
+
+704 #ifdeà
+__USE_LARGEFILE64
+
+
+705 \r\12
+ $mko¡emps64
+ (\ 5*
+__\8bm¶©e
+, \12
+__suffixËn
+, \12
+__æags
+)
+
+706
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+711
+__BEGIN_NAMESPACE_STD
+
+
+716 \r\12
+ $sy¡em
+ (cڡ \ 5*
+__commªd
+è
+__wur
+;
+
+717
+__END_NAMESPACE_STD
+
+
+720 #ifdef
+__USE_GNU
+
+
+723 \r\ 5*
+ $ÿnÚiÿlize_f\9ee_Çme
+ (cڡ \ 5*
+__Çme
+)
+
+724
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+727 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+733 \r\ 5*
+ $»®·th
+ (cڡ \ 5*
+__»¡riù
+
+__Çme
+,
+
+734 \ 5*
+__»¡riù
+
+__»sÞved
+è
+__THROW
+
+__wur
+;
+
+739 #iâdeà
+__COMPAR_FN_T
+
+
+740 \ 1
+ #__COMPAR_FN_T
+
+
+ )
+
+741 \e\12(*
+ t__com·r_â_t
+) (const \1e*, const \1e*);
+
+743 #ifdef
+__USE_GNU
+
+
+744 \e
+__com·r_â_t
+
+ tcom·risÚ_â_t
+;
+
+747 #ifdeà
+__USE_GNU
+
+
+748 \e\12(*
+ t__com·r_d_â_t
+) (const \1e*, const \1e*, \1e*);
+
+751
+__BEGIN_NAMESPACE_STD
+
+
+754 \r\1e*
+ $b£¬ch
+ (cڡ \1e*
+__key
+, cڡ \1e*
+__ba£
+,
+
+755
+size_t
+
+__nmemb
+, size_\88
+__size
+,
+__com·r_â_t
+
+__com·r
+)
+
+756
+ `__nÚnuÎ
+ ((1, 2, 5)è
+__wur
+;
+
+758 #ifdeà
+__USE_EXTERN_INLINES
+
+
+759 \ 2
+ ~<b\99s/¡dlib-b£¬ch.h
+>
+
+764 \r\1e
+ $qsÜt
+ (\1e*
+__ba£
+,
+size_t
+
+__nmemb
+, size_\88
+__size
+,
+
+765
+__com·r_â_t
+
+__com·r
+è
+ `__nÚnuÎ
+ ((1, 4));
+
+766 #ifdeà
+__USE_GNU
+
+
+767 \r\1e
+ $qsÜt_r
+ (\1e*
+__ba£
+,
+size_t
+
+__nmemb
+, size_\88
+__size
+,
+
+768
+__com·r_d_â_t
+
+__com·r
+, \1e*
+__¬g
+)
+
+769
+ `__nÚnuÎ
+ ((1, 4));
+
+774 \r\12
+ $abs
+ (\12
+__x
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+775 \r\13\12
+ $Ïbs
+ (\13\12
+__x
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+776
+__END_NAMESPACE_STD
+
+
+778 #ifdeà
+__USE_ISOC99
+
+
+779
+__ex\8bnsiÚ__
+ \r\13\13\12
+ $Îabs
+ (\13\13\12
+__x
+)
+
+780
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+784
+__BEGIN_NAMESPACE_STD
+
+
+788 \r
+div_t
+
+ $div
+ (\12
+__num\94
+, \12
+__d\92om
+)
+
+789
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+790 \r
+ldiv_t
+
+ $ldiv
+ (\13\12
+__num\94
+, \13\12
+__d\92om
+)
+
+791
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+792
+__END_NAMESPACE_STD
+
+
+794 #ifdeà
+__USE_ISOC99
+
+
+795
+__BEGIN_NAMESPACE_C99
+
+
+796
+__ex\8bnsiÚ__
+ \r
+Îdiv_t
+
+ $Îdiv
+ (\13\13\12
+__num\94
+,
+
+797 \13\13\12
+__d\92om
+)
+
+798
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+)è
+__wur
+;
+
+799
+__END_NAMESPACE_C99
+
+
+803 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K8
+) \
+
+804 ||
+def\9aed
+
+__USE_MISC
+
+
+811 \r\ 5*
+ $ecvt
+ (\b
+__v®ue
+, \12
+__ndig\99
+, \12*
+__»¡riù
+
+__deýt
+,
+
+812 \12*
+__»¡riù
+
+__sign
+è
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+817 \r\ 5*
+ $fcvt
+ (\b
+__v®ue
+, \12
+__ndig\99
+, \12*
+__»¡riù
+
+__deýt
+,
+
+818 \12*
+__»¡riù
+
+__sign
+è
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+823 \r\ 5*
+ $gcvt
+ (\b
+__v®ue
+, \12
+__ndig\99
+, \ 5*
+__buf
+)
+
+824
+__THROW
+
+ `__nÚnuÎ
+ ((3)è
+__wur
+;
+
+827 #ifdeà
+__USE_MISC
+
+
+829 \r\ 5*
+ $qecvt
+ (\13\b
+__v®ue
+, \12
+__ndig\99
+,
+
+830 \12*
+__»¡riù
+
+__deýt
+, \12*__»¡riù
+__sign
+)
+
+831
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+832 \r\ 5*
+ $qfcvt
+ (\13\b
+__v®ue
+, \12
+__ndig\99
+,
+
+833 \12*
+__»¡riù
+
+__deýt
+, \12*__»¡riù
+__sign
+)
+
+834
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4)è
+__wur
+;
+
+835 \r\ 5*
+ $qgcvt
+ (\13\b
+__v®ue
+, \12
+__ndig\99
+, \ 5*
+__buf
+)
+
+836
+__THROW
+
+ `__nÚnuÎ
+ ((3)è
+__wur
+;
+
+841 \r\12
+ $ecvt_r
+ (\b
+__v®ue
+, \12
+__ndig\99
+, \12*
+__»¡riù
+
+__deýt
+,
+
+842 \12*
+__»¡riù
+
+__sign
+, \ 5*__»¡riù
+__buf
+,
+
+843
+size_t
+
+__Ën
+è
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4, 5));
+
+844 \r\12
+ $fcvt_r
+ (\b
+__v®ue
+, \12
+__ndig\99
+, \12*
+__»¡riù
+
+__deýt
+,
+
+845 \12*
+__»¡riù
+
+__sign
+, \ 5*__»¡riù
+__buf
+,
+
+846
+size_t
+
+__Ën
+è
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4, 5));
+
+848 \r\12
+ $qecvt_r
+ (\13\b
+__v®ue
+, \12
+__ndig\99
+,
+
+849 \12*
+__»¡riù
+
+__deýt
+, \12*__»¡riù
+__sign
+,
+
+850 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+)
+
+851
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4, 5));
+
+852 \r\12
+ $qfcvt_r
+ (\13\b
+__v®ue
+, \12
+__ndig\99
+,
+
+853 \12*
+__»¡riù
+
+__deýt
+, \12*__»¡riù
+__sign
+,
+
+854 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+)
+
+855
+__THROW
+
+ `__nÚnuÎ
+ ((3, 4, 5));
+
+859
+__BEGIN_NAMESPACE_STD
+
+
+862 \r\12
+ $mbËn
+ (cڡ \ 5*
+__s
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+865 \r\12
+ $mbtowc
+ (
+wch¬_t
+ *
+__»¡riù
+
+__pwc
+,
+
+866 cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+869 \r\12
+ $wùomb
+ (\ 5*
+__s
+,
+wch¬_t
+
+__wch¬
+è
+__THROW
+;
+
+873 \r
+size_t
+
+ $mb¡owcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__pwcs
+,
+
+874 cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+876 \r
+size_t
+
+ $wc¡ombs
+ (\ 5*
+__»¡riù
+
+__s
+,
+
+877 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__pwcs
+,
+size_t
+
+__n
+)
+
+878
+__THROW
+;
+
+879
+__END_NAMESPACE_STD
+
+
+882 #ifdeà
+__USE_MISC
+
+
+887 \r\12
+ $½m©ch
+ (cڡ \ 5*
+__»¥Ú£
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+891 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+898 \r\12
+ $g\91subÝt
+ (\ 5**
+__»¡riù
+
+__ÝtiÚp
+,
+
+899 \ 5*cڡ *
+__»¡riù
+
+__tok\92s
+,
+
+900 \ 5**
+__»¡riù
+
+__v®u\95
+)
+
+901
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2, 3)è
+__wur
+;
+
+905 #ifdeà
+__USE_XOPEN
+
+
+907 \r\1e
+ $£tkey
+ (cڡ \ 5*
+__key
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+913 #ifdeà
+__USE_XOPEN2KXSI
+
+
+915 \r\12
+ $posix_Ý\92±
+ (\12
+__oæag
+è
+__wur
+;
+
+918 #ifdeà
+__USE_XOPEN
+
+
+923 \r\12
+ $g¿Á±
+ (\12
+__fd
+è
+__THROW
+;
+
+927 \r\12
+ $uÆock±
+ (\12
+__fd
+è
+__THROW
+;
+
+932 \r\ 5*
+ $±¢ame
+ (\12
+__fd
+è
+__THROW
+
+__wur
+;
+
+935 #ifdeà
+__USE_GNU
+
+
+939 \r\12
+ $±¢ame_r
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+)
+
+940
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+943 \r\12
+ `g\91±
+ (\1e);
+
+946 #ifdeà
+__USE_MISC
+
+
+950 \r\12
+ $g\91lßdavg
+ (\b
+__lßdavg
+[], \12
+__ÃËm
+)
+
+951
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+954 \ 2
+ ~<b\99s/¡dlib-æßt.h
+>
+
+957 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+958 \ 2
+ ~<b\99s/¡dlib.h
+>
+
+960 #ifdeà
+__LDBL_COMPAT
+
+
+961 \ 2
+ ~<b\99s/¡dlib-ldbl.h
+>
+
+965 #undeà
+__Ãed_m®loc_ªd_ÿÎoc
+
+
+967
+__END_DECLS
+
+
+ @/usr/include/string.h
+
+22 #iâdef
+_STRING_H
+
+
+23 \ 1
+ #_STRING_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27
+ g__BEGIN_DECLS
+
+
+30 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+31 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+32 \ 2
+ ~<¡ddef.h
+>
+
+35 #ià
+def\9aed
+
+__ýlu¥lus
+ &&
+__GNUC_PREREQ
+ (4, 4)
+
+36 \ 1
+ #__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+ )
+
+40
+__BEGIN_NAMESPACE_STD
+
+
+42 \r\1e*
+ $memýy
+ (\1e*
+__»¡riù
+
+__de¡
+, cÚ¡ \1e*__»¡riù
+__¤c
+,
+
+43
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+46 \r\1e*
+ $memmove
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+)
+
+47
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+48
+__END_NAMESPACE_STD
+
+
+53 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+54 \r\1e*
+ $memcýy
+ (\1e*
+__»¡riù
+
+__de¡
+, cÚ¡ \1e*__»¡riù
+__¤c
+,
+
+55 \12
+__c
+,
+size_t
+
+__n
+)
+
+56
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+60
+__BEGIN_NAMESPACE_STD
+
+
+62 \r\1e*
+ $mem£t
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+65 \r\12
+ $memcmp
+ (cڡ \1e*
+__s1
+, cڡ \1e*
+__s2
+,
+size_t
+
+__n
+)
+
+66
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+69 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+72 \r\1e*
+ `memchr
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+73
+__THROW
+
+ `__asm
+ ("memchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+74 \rcڡ \1e*
+ `memchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+75
+__THROW
+
+ `__asm
+ ("memchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+77 #ifdeà
+__OPTIMIZE__
+
+
+78
+__ex\8bº_®ways_\9al\9ae
+ \1e*
+
+79
+ `memchr
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+è
+__THROW
+
+
+81 \15
+ `__bu\9et\9a_memchr
+ (
+__s
+,
+__c
+,
+__n
+);
+
+84
+__ex\8bº_®ways_\9al\9ae
+ const \1e*
+
+85
+ `memchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+è
+__THROW
+
+
+87 \15
+ `__bu\9et\9a_memchr
+ (
+__s
+,
+__c
+,
+__n
+);
+
+90
+ }
+}
+
+92 \r\1e*
+ $memchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+93
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+95
+__END_NAMESPACE_STD
+
+
+97 #ifdeà
+__USE_GNU
+
+
+100 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+101 \r"C++" \1e*
+ $¿wmemchr
+ (\1e*
+__s
+, \12
+__c
+)
+
+102
+__THROW
+
+ `__asm
+ ("¿wmemchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+103 \r"C++" cڡ \1e*
+ $¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+)
+
+104
+__THROW
+
+ `__asm
+ ("¿wmemchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+106 \r\1e*
+ $¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+)
+
+107
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+111 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+112 \r"C++" \1e*
+ $memrchr
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+113
+__THROW
+
+ `__asm
+ ("memrchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+114 \r"C++" cڡ \1e*
+ $memrchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+115
+__THROW
+
+ `__asm
+ ("memrchr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+117 \r\1e*
+ $memrchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+118
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+123
+__BEGIN_NAMESPACE_STD
+
+
+125 \r\ 5*
+ $¡rýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+)
+
+126
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+128 \r\ 5*
+ $¡ºýy
+ (\ 5*
+__»¡riù
+
+__de¡
+,
+
+129 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+130
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+133 \r\ 5*
+ $¡rÿt
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+)
+
+134
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+136 \r\ 5*
+ $¡ºÿt
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+,
+
+137
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+140 \r\12
+ $¡rcmp
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+)
+
+141
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+143 \r\12
+ $¡ºcmp
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+size_t
+
+__n
+)
+
+144
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+147 \r\12
+ $¡rcÞl
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+)
+
+148
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+150 \r
+size_t
+
+ $¡rxäm
+ (\ 5*
+__»¡riù
+
+__de¡
+,
+
+151 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+152
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+153
+__END_NAMESPACE_STD
+
+
+155 #ifdeà
+__USE_XOPEN2K8
+
+
+159 \ 2
+ ~<xloÿË.h
+>
+
+162 \r\12
+ $¡rcÞl_l
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+__loÿË_t
+
+__l
+)
+
+163
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2, 3));
+
+165 \r
+size_t
+
+ $¡rxäm_l
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__n
+,
+
+166
+__loÿË_t
+
+__l
+è
+__THROW
+
+ `__nÚnuÎ
+ ((2, 4));
+
+169 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+171 \r\ 5*
+ $¡rdup
+ (cڡ \ 5*
+__s
+)
+
+172
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+ `__nÚnuÎ
+ ((1));
+
+178 #ià
+def\9aed
+
+__USE_XOPEN2K8
+
+
+179 \r\ 5*
+ $¡ºdup
+ (cڡ \ 5*
+__¡r\9ag
+,
+size_t
+
+__n
+)
+
+180
+__THROW
+
+__©\8cibu\8b_m®loc__
+
+ `__nÚnuÎ
+ ((1));
+
+183 #ià
+def\9aed
+
+__USE_GNU
+ && def\9aed
+__GNUC__
+
+
+185 \ 1
+ #¡rdu·
+(
+s
+) \
+
+186 (
+__ex\8bnsiÚ__
+ \
+
+188 cڡ \ 5*
+__Þd
+ = (
+s
+); \
+
+189
+size_t
+
+__Ën
+ =
+ `¡¾\92
+ (
+__Þd
+) + 1; \
+
+190 \ 5*
+__Ãw
+ = (\ 5*è
+ `__bu\9et\9a_®loÿ
+ (
+__Ën
+); \
+
+191 (\ 5*è
+ `memýy
+ (
+__Ãw
+,
+__Þd
+,
+__Ën
+); \
+
+192
+ }
+}))
+
+ )
+
+195 \ 1
+ #¡ºdu·
+(
+s
+,
+n
+) \
+
+196 (
+__ex\8bnsiÚ__
+ \
+
+198 cڡ \ 5*
+__Þd
+ = (
+s
+); \
+
+199
+size_t
+
+__Ën
+ =
+ `¡ºËn
+ (
+__Þd
+, (
+n
+)); \
+
+200 \ 5*
+__Ãw
+ = (\ 5*è
+ `__bu\9et\9a_®loÿ
+ (
+__Ën
+ + 1); \
+
+201
+__Ãw
+[
+__Ën
+] = '\0'; \
+
+202 (\ 5*è
+ `memýy
+ (
+__Ãw
+,
+__Þd
+,
+__Ën
+); \
+
+203 }))
+
+ )
+
+206
+ g__BEGIN_NAMESPACE_STD
+
+
+208 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+211 \r\ 5*
+¡rchr
+ (\ 5*
+__s
+, \12
+__c
+)
+
+212
+__THROW
+
+__asm
+ ("¡rchr"è
+__©\8cibu\8b_pu»__
+
+__nÚnuÎ
+ ((1));
+
+213 \rcڡ \ 5*
+¡rchr
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+214
+__THROW
+
+__asm
+ ("¡rchr"è
+__©\8cibu\8b_pu»__
+
+__nÚnuÎ
+ ((1));
+
+216 #ifdeà
+__OPTIMIZE__
+
+
+217
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+218
+¡rchr
+ (\ 5*
+__s
+, \12
+__c
+è
+ g__THROW
+
+
+220 \15
+__bu\9et\9a_¡rchr
+ (
+__s
+,
+__c
+);
+
+223
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+224
+¡rchr
+ (cڡ \ 5*
+__s
+, \12
+__c
+è
+ g__THROW
+
+
+226 \15
+__bu\9et\9a_¡rchr
+ (
+__s
+,
+__c
+);
+
+231 \r\ 5*
+ $¡rchr
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+232
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+235 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+238 \r\ 5*
+ `¡¼chr
+ (\ 5*
+__s
+, \12
+__c
+)
+
+239
+__THROW
+
+ `__asm
+ ("¡¼chr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+240 \rcڡ \ 5*
+ `¡¼chr
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+241
+__THROW
+
+ `__asm
+ ("¡¼chr"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+243 #ifdeà
+__OPTIMIZE__
+
+
+244
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+245
+ `¡¼chr
+ (\ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+247 \15
+ `__bu\9et\9a_¡¼chr
+ (
+__s
+,
+__c
+);
+
+250
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+251
+ `¡¼chr
+ (cڡ \ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+253 \15
+ `__bu\9et\9a_¡¼chr
+ (
+__s
+,
+__c
+);
+
+256
+ }
+}
+
+258 \r\ 5*
+ $¡¼chr
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+259
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+261
+__END_NAMESPACE_STD
+
+
+263 #ifdeà
+__USE_GNU
+
+
+266 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+267 \r"C++" \ 5*
+ $¡rchºul
+ (\ 5*
+__s
+, \12
+__c
+)
+
+268
+__THROW
+
+ `__asm
+ ("¡rchºul"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+269 \r"C++" cڡ \ 5*
+ $¡rchºul
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+270
+__THROW
+
+ `__asm
+ ("¡rchºul"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+272 \r\ 5*
+ $¡rchºul
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+273
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+277
+__BEGIN_NAMESPACE_STD
+
+
+280 \r
+size_t
+
+ $¡rc¥n
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__»jeù
+)
+
+281
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+284 \r
+size_t
+
+ $¡r¥n
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+285
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+287 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+290 \r\ 5*
+ `¡½brk
+ (\ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+291
+__THROW
+
+ `__asm
+ ("¡½brk"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+292 \rcڡ \ 5*
+ `¡½brk
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+293
+__THROW
+
+ `__asm
+ ("¡½brk"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+295 #ifdeà
+__OPTIMIZE__
+
+
+296
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+297
+ `¡½brk
+ (\ 5*
+__s
+, cڡ \ 5*
+__acû±
+è
+__THROW
+
+
+299 \15
+ `__bu\9et\9a_¡½brk
+ (
+__s
+,
+__acû±
+);
+
+302
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+303
+ `¡½brk
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+è
+__THROW
+
+
+305 \15
+ `__bu\9et\9a_¡½brk
+ (
+__s
+,
+__acû±
+);
+
+308
+ }
+}
+
+310 \r\ 5*
+ $¡½brk
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+311
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+314 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+317 \r\ 5*
+ `¡r¡r
+ (\ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+318
+__THROW
+
+ `__asm
+ ("¡r¡r"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+319 \rcڡ \ 5*
+ `¡r¡r
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+320
+__THROW
+
+ `__asm
+ ("¡r¡r"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+322 #ifdeà
+__OPTIMIZE__
+
+
+323
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+324
+ `¡r¡r
+ (\ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+è
+__THROW
+
+
+326 \15
+ `__bu\9et\9a_¡r¡r
+ (
+__hay¡ack
+,
+__ÃedË
+);
+
+329
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+330
+ `¡r¡r
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+è
+__THROW
+
+
+332 \15
+ `__bu\9et\9a_¡r¡r
+ (
+__hay¡ack
+,
+__ÃedË
+);
+
+335
+ }
+}
+
+337 \r\ 5*
+ $¡r¡r
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+338
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+343 \r\ 5*
+ $¡¹ok
+ (\ 5*
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__d\96im
+)
+
+344
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+345
+__END_NAMESPACE_STD
+
+
+349 \r\ 5*
+ $__¡¹ok_r
+ (\ 5*
+__»¡riù
+
+__s
+,
+
+350 cڡ \ 5*
+__»¡riù
+
+__d\96im
+,
+
+351 \ 5**
+__»¡riù
+
+__§ve_±r
+)
+
+352
+__THROW
+
+ `__nÚnuÎ
+ ((2, 3));
+
+353 #ifdeà
+__USE_POSIX
+
+
+354 \r\ 5*
+ $¡¹ok_r
+ (\ 5*
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__d\96im
+,
+
+355 \ 5**
+__»¡riù
+
+__§ve_±r
+)
+
+356
+__THROW
+
+ `__nÚnuÎ
+ ((2, 3));
+
+359 #ifdeà
+__USE_GNU
+
+
+361 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+362 \r"C++" \ 5*
+ $¡rÿ£¡r
+ (\ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+363
+__THROW
+
+ `__asm
+ ("¡rÿ£¡r"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+364 \r"C++" cڡ \ 5*
+ $¡rÿ£¡r
+ (cڡ \ 5*
+__hay¡ack
+,
+
+365 cڡ \ 5*
+__ÃedË
+)
+
+366
+__THROW
+
+ `__asm
+ ("¡rÿ£¡r"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+368 \r\ 5*
+ $¡rÿ£¡r
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+369
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+373 #ifdeà
+__USE_GNU
+
+
+377 \r\1e*
+ $memmem
+ (cڡ \1e*
+__hay¡ack
+,
+size_t
+
+__hay¡ackËn
+,
+
+378 cڡ \1e*
+__ÃedË
+,
+size_t
+
+__ÃedËËn
+)
+
+379
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 3));
+
+383 \r\1e*
+ $__mempýy
+ (\1e*
+__»¡riù
+
+__de¡
+,
+
+384 cڡ \1e*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+385
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+386 \r\1e*
+ $mempýy
+ (\1e*
+__»¡riù
+
+__de¡
+,
+
+387 cڡ \1e*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+388
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+392
+__BEGIN_NAMESPACE_STD
+
+
+394 \r
+size_t
+
+ $¡¾\92
+ (cڡ \ 5*
+__s
+)
+
+395
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+396
+__END_NAMESPACE_STD
+
+
+398 #ifdef
+__USE_XOPEN2K8
+
+
+401 \r
+size_t
+
+ $¡ºËn
+ (cڡ \ 5*
+__¡r\9ag
+,
+size_t
+
+__maxËn
+)
+
+402
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+406
+__BEGIN_NAMESPACE_STD
+
+
+408 \r\ 5*
+ $¡»¼Ü
+ (\12
+__\94ºum
+è
+__THROW
+;
+
+409
+__END_NAMESPACE_STD
+
+
+410 #ifdeà
+__USE_XOPEN2K
+
+
+418 #ià
+def\9aed
+
+__USE_XOPEN2K
+ && !def\9aed
+__USE_GNU
+
+
+421 #ifdeà
+__REDIRECT_NTH
+
+
+422 \r\12
+ `__REDIRECT_NTH
+ (
+¡»¼Ü_r
+,
+
+423 (\12
+__\94ºum
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+),
+
+424
+__xpg_¡»¼Ü_r
+è
+ `__nÚnuÎ
+ ((2));
+
+426 \r\12
+ $__xpg_¡»¼Ü_r
+ (\12
+__\94ºum
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+)
+
+427
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+428 \ 1
+ #¡»¼Ü_r
+
+__xpg_¡»¼Ü_r
+
+
+ )
+
+433 \r\ 5*
+ $¡»¼Ü_r
+ (\12
+__\94ºum
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+)
+
+434
+__THROW
+
+ `__nÚnuÎ
+ ((2)è
+__wur
+;
+
+438 #ifdeà
+__USE_XOPEN2K8
+
+
+440 \r\ 5*
+ $¡»¼Ü_l
+ (\12
+__\94ºum
+,
+__loÿË_t
+
+__l
+è
+__THROW
+;
+
+446 \r\1e
+ $__bz\94o
+ (\1e*
+__s
+,
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+448 #ifdeà
+__USE_MISC
+
+
+450 \r\1e
+ $bcÝy
+ (cڡ \1e*
+__¤c
+, \1e*
+__de¡
+,
+size_t
+
+__n
+)
+
+451
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+454 \r\1e
+ $bz\94o
+ (\1e*
+__s
+,
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+457 \r\12
+ $bcmp
+ (cڡ \1e*
+__s1
+, cڡ \1e*
+__s2
+,
+size_t
+
+__n
+)
+
+458
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+461 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+464 \r\ 5*
+ `\9adex
+ (\ 5*
+__s
+, \12
+__c
+)
+
+465
+__THROW
+
+ `__asm
+ ("\9adex"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+466 \rcڡ \ 5*
+ `\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+467
+__THROW
+
+ `__asm
+ ("\9adex"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+469 #ià
+def\9aed
+
+__OPTIMIZE__
+ && !def\9aed
+__CORRECT_ISO_CPP_STRINGS_H_PROTO
+
+
+470
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+471
+ `\9adex
+ (\ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+473 \15
+ `__bu\9et\9a_\9adex
+ (
+__s
+,
+__c
+);
+
+476
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+477
+ `\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+479 \15
+ `__bu\9et\9a_\9adex
+ (
+__s
+,
+__c
+);
+
+482
+ }
+}
+
+484 \r\ 5*
+ $\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+485
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+489 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+492 \r\ 5*
+ `r\9adex
+ (\ 5*
+__s
+, \12
+__c
+)
+
+493
+__THROW
+
+ `__asm
+ ("r\9adex"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+494 \rcڡ \ 5*
+ `r\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+495
+__THROW
+
+ `__asm
+ ("r\9adex"è
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+497 #ià
+def\9aed
+
+__OPTIMIZE__
+ && !def\9aed
+__CORRECT_ISO_CPP_STRINGS_H_PROTO
+
+
+498
+__ex\8bº_®ways_\9al\9ae
+ \ 5*
+
+499
+ `r\9adex
+ (\ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+501 \15
+ `__bu\9et\9a_r\9adex
+ (
+__s
+,
+__c
+);
+
+504
+__ex\8bº_®ways_\9al\9ae
+ const \ 5*
+
+505
+ `r\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+è
+__THROW
+
+
+507 \15
+ `__bu\9et\9a_r\9adex
+ (
+__s
+,
+__c
+);
+
+510
+ }
+}
+
+512 \r\ 5*
+ $r\9adex
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+513
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1));
+
+518 \r\12
+ $ffs
+ (\12
+__i
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+522 #ifdef
+__USE_GNU
+
+
+523 \r\12
+ $ff¦
+ (\13\12
+__l
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+524
+__ex\8bnsiÚ__
+ \r\12
+ $ff¦l
+ (\13\13\12
+__Î
+)
+
+525
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+529 \r\12
+ $¡rÿ£cmp
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+)
+
+530
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+533 \r\12
+ $¡ºÿ£cmp
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+size_t
+
+__n
+)
+
+534
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+537 #ifdef
+__USE_GNU
+
+
+540 \r\12
+ $¡rÿ£cmp_l
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+
+541
+__loÿË_t
+
+__loc
+)
+
+542
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2, 3));
+
+544 \r\12
+ $¡ºÿ£cmp_l
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+
+545
+size_t
+
+__n
+,
+__loÿË_t
+
+__loc
+)
+
+546
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2, 4));
+
+549 #ifdef
+__USE_MISC
+
+
+552 \r\ 5*
+ $¡r£p
+ (\ 5**
+__»¡riù
+
+__¡r\9agp
+,
+
+553 cڡ \ 5*
+__»¡riù
+
+__d\96im
+)
+
+554
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+557 #ifdef
+__USE_XOPEN2K8
+
+
+559 \r\ 5*
+ $¡rsigÇl
+ (\12
+__sig
+è
+__THROW
+;
+
+562 \r\ 5*
+ $__¡pýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+)
+
+563
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+564 \r\ 5*
+ $¡pýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+)
+
+565
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+569 \r\ 5*
+ $__¡²ýy
+ (\ 5*
+__»¡riù
+
+__de¡
+,
+
+570 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+571
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+572 \r\ 5*
+ $¡²ýy
+ (\ 5*
+__»¡riù
+
+__de¡
+,
+
+573 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+574
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+577 #ifdef
+__USE_GNU
+
+
+579 \r\12
+ $¡rv\94scmp
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+)
+
+580
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+583 \r\ 5*
+ $¡räy
+ (\ 5*
+__¡r\9ag
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+586 \r\1e*
+ $memäob
+ (\1e*
+__s
+,
+size_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+588 #iâdeà
+ba£Çme
+
+
+593 #ifdeà
+__CORRECT_ISO_CPP_STRING_H_PROTO
+
+
+594 \r"C++" \ 5*
+ $ba£Çme
+ (\ 5*
+__f\9e\92ame
+)
+
+595
+__THROW
+
+ `__asm
+ ("ba£Çme"è
+ `__nÚnuÎ
+ ((1));
+
+596 \r"C++" cڡ \ 5*
+ $ba£Çme
+ (cڡ \ 5*
+__f\9e\92ame
+)
+
+597
+__THROW
+
+ `__asm
+ ("ba£Çme"è
+ `__nÚnuÎ
+ ((1));
+
+599 \r\ 5*
+ $ba£Çme
+ (cڡ \ 5*
+__f\9e\92ame
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+605 #ià
+def\9aed
+
+__GNUC__
+ && __GNUC__ >= 2
+
+606 #ià
+def\9aed
+
+__OPTIMIZE__
+ && !def\9aed
+__OPTIMIZE_SIZE__
+ \
+
+607 && !
+def\9aed
+
+__NO_INLINE__
+ && !def\9aed
+__ýlu¥lus
+
+
+627 \ 2
+ ~<b\99s/¡r\9ag.h
+>
+
+630 \ 2
+ ~<b\99s/¡r\9ag2.h
+>
+
+633 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+635 \ 2
+ ~<b\99s/¡r\9ag3.h
+>
+
+639 #ià
+def\9aed
+
+__USE_GNU
+ && def\9aed
+__OPTIMIZE__
+ \
+
+640 &&
+def\9aed
+
+__ex\8bº_®ways_\9al\9ae
+ &&
+ $__GNUC_PREREQ
+ (3,2)
+
+641 #ià!
+def\9aed
+
+_FORCE_INLINES
+ && !def\9aed
+_HAVE_STRING_ARCH_mempýy
+
+
+643 #undeà
+mempýy
+
+
+644 #undeà
+__mempýy
+
+
+645 \ 1
+ #mempýy
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__mempýy_\9al\9ae
+ (de¡, src,\82)
+
+ )
+
+646 \ 1
+ #__mempýy
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__mempýy_\9al\9ae
+ (de¡, src,\82)
+
+ )
+
+648
+__ex\8bº_®ways_\9al\9ae
+ \1e*
+
+649
+ $__mempýy_\9al\9ae
+ (\1e*
+__»¡riù
+
+__de¡
+,
+
+650 cڡ \1e*
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+652 \15 (\ 5*è
+ `memýy
+ (
+__de¡
+,
+__¤c
+,
+__n
+) + __n;
+
+653
+ }
+}
+
+658
+ g__END_DECLS
+
+
+ @/usr/include/sys/param.h
+
+19 #iâdeà
+_SYS_PARAM_H
+
+
+20 \ 1
+ #_SYS_PARAM_H
+ 1
+
+ )
+
+22 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+23 \ 2
+ ~<¡ddef.h
+>
+
+25 \ 2
+ ~<sys/ty³s.h
+>
+
+26 \ 2
+ ~<lim\99s.h
+>
+
+27 \ 2
+ ~<\92d\9fn.h
+>
+
+28 \ 2
+ ~<sigÇl.h
+>
+
+31 \ 2
+ ~<b\99s/·¿m.h
+>
+
+36 \ 1
+ #NBBY
+
+CHAR_BIT
+
+
+ )
+
+38 #ià!
+def\9aed
+
+NGROUPS
+ && def\9aed
+NGROUPS_MAX
+
+
+39 \ 1
+ #NGROUPS
+
+NGROUPS_MAX
+
+
+ )
+
+41 #ià!
+def\9aed
+
+MAXSYMLINKS
+ && def\9aed
+SYMLOOP_MAX
+
+
+42 \ 1
+ #MAXSYMLINKS
+
+SYMLOOP_MAX
+
+
+ )
+
+44 #ià!
+def\9aed
+
+CANBSIZ
+ && def\9aed
+MAX_CANON
+
+
+45 \ 1
+ #CANBSIZ
+
+MAX_CANON
+
+
+ )
+
+47 #ià!
+def\9aed
+
+MAXPATHLEN
+ && def\9aed
+PATH_MAX
+
+
+48 \ 1
+ #MAXPATHLEN
+
+PATH_MAX
+
+
+ )
+
+50 #ià!
+def\9aed
+
+NOFILE
+ && def\9aed
+OPEN_MAX
+
+
+51 \ 1
+ #NOFILE
+
+OPEN_MAX
+
+
+ )
+
+53 #ià!
+def\9aed
+
+MAXHOSTNAMELEN
+ && def\9aed
+HOST_NAME_MAX
+
+
+54 \ 1
+ #MAXHOSTNAMELEN
+
+HOST_NAME_MAX
+
+
+ )
+
+56 #iâdeà
+NCARGS
+
+
+57 #ifdeà
+ARG_MAX
+
+
+58 \ 1
+ #NCARGS
+
+ARG_MAX
+
+
+ )
+
+62 \ 1
+ #NCARGS
+
+INT_MAX
+
+
+ )
+
+68 #iâdeà
+NOGROUP
+
+
+69 \ 1
+ #NOGROUP
+ 65535
+
+ )
+
+71 #iâdeà
+NODEV
+
+
+72 \ 1
+ #NODEV
+ ((
+dev_t
+è-1è
+
+ )
+
+77 #iâdeà
+DEV_BSIZE
+
+
+78 \ 1
+ #DEV_BSIZE
+ 512
+
+ )
+
+83 \ 1
+ #£tb\99
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] |ð1<<((i)%NBBY))
+
+ )
+
+84 \ 1
+ #þrb\99
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] &ð~(1<<((i)%NBBY)))
+
+ )
+
+85 \ 1
+ #is£t
+(
+a
+,
+i
+è(×)[(i)/
+NBBY
+] & (1<<((i)%NBBY)))
+
+ )
+
+86 \ 1
+ #isþr
+(
+a
+,
+i
+è((×)[(i)/
+NBBY
+] & (1<<((i)%NBBY))è=ð0)
+
+ )
+
+89 #iâdeà
+howmªy
+
+
+90 \ 1
+ #howmªy
+(
+x
+,
+y
+è(((xè+ ((yè- 1)è/ (y))
+
+ )
+
+92 #ifdeà
+__GNUC__
+
+
+93 \ 1
+ #roundup
+(
+x
+,
+y
+è(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (yè&&
+ `pow\94of2
+ (y) \
+
+94 ? (((
+x
+è+ (
+y
+) - 1) & ~((y) - 1)) \
+
+95 : ((((
+x
+è+ ((
+y
+è- 1)è/ (y)è* (y)))
+
+ )
+
+97 \ 1
+ #roundup
+(
+x
+,
+y
+è((((xè+ ((yè- 1)è/ (y)è* (y))
+
+ )
+
+99 \ 1
+ #pow\94of2
+(
+x
+è((((xè- 1è& (x)è=ð0)
+
+ )
+
+102 \ 1
+ #MIN
+(
+a
+,
+b
+è((×)<(b))?×):(b))
+
+ )
+
+103 \ 1
+ #MAX
+(
+a
+,
+b
+è((×)>(b))?×):(b))
+
+ )
+
+ @/usr/include/sys/queue.h
+
+32 #iâdef
+_SYS_QUEUE_H_
+
+
+33 \ 1
+ #_SYS_QUEUE_H_
+
+
+ )
+
+84 \ 1
+ #LIST_HEAD
+(
+Çme
+,
+ty³
+) \
+
+85 \19
+ sÇme
+ { \
+
+86 \19
+ty³
+ *
+lh_f\9c¡
+; \
+
+87 }
+
+ )
+
+89 \ 1
+ #LIST_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+90 {
+NULL
+ }
+
+ )
+
+92 \ 1
+ #LIST_ENTRY
+(
+ty³
+) \
+
+94 \19
+ty³
+ *
+Ë_Ãxt
+; \
+
+95 \19
+ty³
+ **
+Ë_´ev
+; \
+
+96 }
+
+ )
+
+101 \ 1
+ #LIST_INIT
+(
+h\97d
+) do { \
+
+102 (
+h\97d
+)->
+lh_f\9c¡
+ =
+NULL
+; \
+
+103 } \1f 0)
+
+ )
+
+105 \ 1
+ #LIST_INSERT_AFTER
+(
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+106 ià(((
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+ = (
+li¡\96m
+)->f\9bld.Ë_Ãxtè!ð
+NULL
+) \
+
+107 (
+li¡\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+->f\9bld.
+Ë_´ev
+ = \
+
+108 &(
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+; \
+
+109 (
+li¡\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+ = (
+\96m
+); \
+
+110 (
+\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = &(
+li¡\96m
+)->f\9bld.
+Ë_Ãxt
+; \
+
+111 } \1f 0)
+
+ )
+
+113 \ 1
+ #LIST_INSERT_BEFORE
+(
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+114 (
+\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = (
+li¡\96m
+)->field.le_prev; \
+
+115 (
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+ = (
+li¡\96m
+); \
+
+116 *(
+li¡\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = (
+\96m
+); \
+
+117 (
+li¡\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = &(
+\96m
+)->f\9bld.
+Ë_Ãxt
+; \
+
+118 } \1f 0)
+
+ )
+
+120 \ 1
+ #LIST_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+121 ià(((
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+ = (
+h\97d
+)->
+lh_f\9c¡
+è!ð
+NULL
+) \
+
+122 (
+h\97d
+)->
+lh_f\9c¡
+->
+f\9bld
+.
+Ë_´ev
+ = &(
+\96m
+)->f\9bld.
+Ë_Ãxt
+;\
+
+123 (
+h\97d
+)->
+lh_f\9c¡
+ = (
+\96m
+); \
+
+124 (
+\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = &(
+h\97d
+)->
+lh_f\9c¡
+; \
+
+125 } \1f 0)
+
+ )
+
+127 \ 1
+ #LIST_REMOVE
+(
+\96m
+,
+f\9bld
+) do { \
+
+128 ià((
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+ !ð
+NULL
+) \
+
+129 (
+\96m
+)->
+f\9bld
+.
+Ë_Ãxt
+->f\9bld.
+Ë_´ev
+ = \
+
+130 (
+\96m
+)->
+f\9bld
+.
+Ë_´ev
+; \
+
+131 *(
+\96m
+)->
+f\9bld
+.
+Ë_´ev
+ = (\96m)->f\9bld.
+Ë_Ãxt
+; \
+
+132 } \1f 0)
+
+ )
+
+134 \ 1
+ #LIST_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+135 \ f(
+v¬
+èð((
+h\97d
+)->
+lh_f\9c¡
+); \
+
+136 (
+v¬
+); \
+
+137 (
+v¬
+èð((v¬)->
+f\9bld
+.
+Ë_Ãxt
+))
+
+ )
+
+142 \ 1
+ #LIST_EMPTY
+(
+h\97d
+è((h\97d)->
+lh_f\9c¡
+ =ð
+NULL
+)
+
+ )
+
+143 \ 1
+ #LIST_FIRST
+(
+h\97d
+è((h\97d)->
+lh_f\9c¡
+)
+
+ )
+
+144 \ 1
+ #LIST_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+Ë_Ãxt
+)
+
+ )
+
+150 \ 1
+ #SLIST_HEAD
+(
+Çme
+,
+ty³
+) \
+
+151 \19
+ sÇme
+ { \
+
+152 \19
+ty³
+ *
+¦h_f\9c¡
+; \
+
+153 }
+
+ )
+
+155 \ 1
+ #SLIST_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+156 {
+NULL
+ }
+
+ )
+
+158 \ 1
+ #SLIST_ENTRY
+(
+ty³
+) \
+
+160 \19
+ty³
+ *
+¦e_Ãxt
+; \
+
+161 }
+
+ )
+
+166 \ 1
+ #SLIST_INIT
+(
+h\97d
+) do { \
+
+167 (
+h\97d
+)->
+¦h_f\9c¡
+ =
+NULL
+; \
+
+168 } \1f 0)
+
+ )
+
+170 \ 1
+ #SLIST_INSERT_AFTER
+(
+¦i¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+171 (
+\96m
+)->
+f\9bld
+.
+¦e_Ãxt
+ = (
+¦i¡\96m
+)->field.sle_next; \
+
+172 (
+¦i¡\96m
+)->
+f\9bld
+.
+¦e_Ãxt
+ = (
+\96m
+); \
+
+173 } \1f 0)
+
+ )
+
+175 \ 1
+ #SLIST_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+176 (
+\96m
+)->
+f\9bld
+.
+¦e_Ãxt
+ = (
+h\97d
+)->
+¦h_f\9c¡
+; \
+
+177 (
+h\97d
+)->
+¦h_f\9c¡
+ = (
+\96m
+); \
+
+178 } \1f 0)
+
+ )
+
+180 \ 1
+ #SLIST_REMOVE_HEAD
+(
+h\97d
+,
+f\9bld
+) do { \
+
+181 (
+h\97d
+)->
+¦h_f\9c¡
+ = (h\97d)->¦h_f\9c¡->
+f\9bld
+.
+¦e_Ãxt
+; \
+
+182 } \1f 0)
+
+ )
+
+184 \ 1
+ #SLIST_REMOVE
+(
+h\97d
+,
+\96m
+,
+ty³
+,
+f\9bld
+) do { \
+
+185 ià((
+h\97d
+)->
+¦h_f\9c¡
+ =ð(
+\96m
+)) { \
+
+186
+ `SLIST_REMOVE_HEAD
+((
+h\97d
+),
+f\9bld
+); \
+
+189 \19
+ty³
+ *
+cu»lm
+ = (
+h\97d
+)->
+¦h_f\9c¡
+; \
+
+190 \1f
+cu»lm
+->
+f\9bld
+.
+¦e_Ãxt
+ !ð(
+\96m
+)) \
+
+191
+cu»lm
+ = cu»lm->
+f\9bld
+.
+¦e_Ãxt
+; \
+
+192
+cu»lm
+->
+f\9bld
+.
+¦e_Ãxt
+ = \
+
+193
+cu»lm
+->
+f\9bld
+.
+¦e_Ãxt
+->field.sle_next; \
+
+195 } \1f 0)
+
+ )
+
+197 \ 1
+ #SLIST_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+198 \ f(
+v¬
+èð(
+h\97d
+)->
+¦h_f\9c¡
+; (v¬); (v¬èð(v¬)->
+f\9bld
+.
+¦e_Ãxt
+)
+
+ )
+
+203 \ 1
+ #SLIST_EMPTY
+(
+h\97d
+è((h\97d)->
+¦h_f\9c¡
+ =ð
+NULL
+)
+
+ )
+
+204 \ 1
+ #SLIST_FIRST
+(
+h\97d
+è((h\97d)->
+¦h_f\9c¡
+)
+
+ )
+
+205 \ 1
+ #SLIST_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+¦e_Ãxt
+)
+
+ )
+
+211 \ 1
+ #STAILQ_HEAD
+(
+Çme
+,
+ty³
+) \
+
+212 \19
+ sÇme
+ { \
+
+213 \19
+ty³
+ *
+¡qh_f\9c¡
+; \
+
+214 \19
+ty³
+ **
+¡qh_Ï¡
+; \
+
+215 }
+
+ )
+
+217 \ 1
+ #STAILQ_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+218 {
+NULL
+, &(
+h\97d
+).
+¡qh_f\9c¡
+ }
+
+ )
+
+220 \ 1
+ #STAILQ_ENTRY
+(
+ty³
+) \
+
+222 \19
+ty³
+ *
+¡qe_Ãxt
+; \
+
+223 }
+
+ )
+
+228 \ 1
+ #STAILQ_INIT
+(
+h\97d
+) do { \
+
+229 (
+h\97d
+)->
+¡qh_f\9c¡
+ =
+NULL
+; \
+
+230 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(h\97d)->
+¡qh_f\9c¡
+; \
+
+231 } \1f 0)
+
+ )
+
+233 \ 1
+ #STAILQ_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+234 ià(((
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+ = (
+h\97d
+)->
+¡qh_f\9c¡
+è=ð
+NULL
+) \
+
+235 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+; \
+
+236 (
+h\97d
+)->
+¡qh_f\9c¡
+ = (
+\96m
+); \
+
+237 } \1f 0)
+
+ )
+
+239 \ 1
+ #STAILQ_INSERT_TAIL
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+240 (
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+ =
+NULL
+; \
+
+241 *(
+h\97d
+)->
+¡qh_Ï¡
+ = (
+\96m
+); \
+
+242 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+; \
+
+243 } \1f 0)
+
+ )
+
+245 \ 1
+ #STAILQ_INSERT_AFTER
+(
+h\97d
+,
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+246 ià(((
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+ = (
+li¡\96m
+)->f\9bld.¡qe_Ãxtè=ð
+NULL
+)\
+
+247 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(
+\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+; \
+
+248 (
+li¡\96m
+)->
+f\9bld
+.
+¡qe_Ãxt
+ = (
+\96m
+); \
+
+249 } \1f 0)
+
+ )
+
+251 \ 1
+ #STAILQ_REMOVE_HEAD
+(
+h\97d
+,
+f\9bld
+) do { \
+
+252 ià(((
+h\97d
+)->
+¡qh_f\9c¡
+ = (h\97d)->¡qh_f\9c¡->
+f\9bld
+.
+¡qe_Ãxt
+è=ð
+NULL
+) \
+
+253 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(h\97d)->
+¡qh_f\9c¡
+; \
+
+254 } \1f 0)
+
+ )
+
+256 \ 1
+ #STAILQ_REMOVE
+(
+h\97d
+,
+\96m
+,
+ty³
+,
+f\9bld
+) do { \
+
+257 ià((
+h\97d
+)->
+¡qh_f\9c¡
+ =ð(
+\96m
+)) { \
+
+258
+ `STAILQ_REMOVE_HEAD
+((
+h\97d
+),
+f\9bld
+); \
+
+260 \19
+ty³
+ *
+cu»lm
+ = (
+h\97d
+)->
+¡qh_f\9c¡
+; \
+
+261 \1f
+cu»lm
+->
+f\9bld
+.
+¡qe_Ãxt
+ !ð(
+\96m
+)) \
+
+262
+cu»lm
+ = cu»lm->
+f\9bld
+.
+¡qe_Ãxt
+; \
+
+263 ià((
+cu»lm
+->
+f\9bld
+.
+¡qe_Ãxt
+ = \
+
+264
+cu»lm
+->
+f\9bld
+.
+¡qe_Ãxt
+->f\9bld.¡qe_Ãxtè=ð
+NULL
+) \
+
+265 (
+h\97d
+)->
+¡qh_Ï¡
+ = &(
+cu»lm
+)->
+f\9bld
+.
+¡qe_Ãxt
+; \
+
+267 } \1f 0)
+
+ )
+
+269 \ 1
+ #STAILQ_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+270 \ f(
+v¬
+èð((
+h\97d
+)->
+¡qh_f\9c¡
+); \
+
+271 (
+v¬
+); \
+
+272 (
+v¬
+èð((v¬)->
+f\9bld
+.
+¡qe_Ãxt
+))
+
+ )
+
+274 \ 1
+ #STAILQ_CONCAT
+(
+h\97d1
+,
+h\97d2
+) do { \
+
+275 ià(!
+ `STAILQ_EMPTY
+((
+h\97d2
+))) { \
+
+276 *(
+h\97d1
+)->
+¡qh_Ï¡
+ = (
+h\97d2
+)->
+¡qh_f\9c¡
+; \
+
+277 (
+h\97d1
+)->
+¡qh_Ï¡
+ = (
+h\97d2
+)->stqh_last; \
+
+278
+ `STAILQ_INIT
+((
+h\97d2
+)); \
+
+280 } \1f 0)
+
+ )
+
+285 \ 1
+ #STAILQ_EMPTY
+(
+h\97d
+è((h\97d)->
+¡qh_f\9c¡
+ =ð
+NULL
+)
+
+ )
+
+286 \ 1
+ #STAILQ_FIRST
+(
+h\97d
+è((h\97d)->
+¡qh_f\9c¡
+)
+
+ )
+
+287 \ 1
+ #STAILQ_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+¡qe_Ãxt
+)
+
+ )
+
+293 \ 1
+ #SIMPLEQ_HEAD
+(
+Çme
+,
+ty³
+) \
+
+294 \19
+ sÇme
+ { \
+
+295 \19
+ty³
+ *
+sqh_f\9c¡
+; \
+
+296 \19
+ty³
+ **
+sqh_ϡ
+; \
+
+297 }
+
+ )
+
+299 \ 1
+ #SIMPLEQ_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+300 {
+NULL
+, &(
+h\97d
+).
+sqh_f\9c¡
+ }
+
+ )
+
+302 \ 1
+ #SIMPLEQ_ENTRY
+(
+ty³
+) \
+
+304 \19
+ty³
+ *
+sqe_Ãxt
+; \
+
+305 }
+
+ )
+
+310 \ 1
+ #SIMPLEQ_INIT
+(
+h\97d
+) do { \
+
+311 (
+h\97d
+)->
+sqh_f\9c¡
+ =
+NULL
+; \
+
+312 (
+h\97d
+)->
+sqh_ϡ
+ = &(h\97d)->
+sqh_f\9c¡
+; \
+
+313 } \1f 0)
+
+ )
+
+315 \ 1
+ #SIMPLEQ_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+316 ià(((
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+ = (
+h\97d
+)->
+sqh_f\9c¡
+è=ð
+NULL
+) \
+
+317 (
+h\97d
+)->
+sqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+; \
+
+318 (
+h\97d
+)->
+sqh_f\9c¡
+ = (
+\96m
+); \
+
+319 } \1f 0)
+
+ )
+
+321 \ 1
+ #SIMPLEQ_INSERT_TAIL
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+322 (
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+ =
+NULL
+; \
+
+323 *(
+h\97d
+)->
+sqh_ϡ
+ = (
+\96m
+); \
+
+324 (
+h\97d
+)->
+sqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+; \
+
+325 } \1f 0)
+
+ )
+
+327 \ 1
+ #SIMPLEQ_INSERT_AFTER
+(
+h\97d
+,
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+328 ià(((
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+ = (
+li¡\96m
+)->f\9bld.sqe_Ãxtè=ð
+NULL
+)\
+
+329 (
+h\97d
+)->
+sqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+; \
+
+330 (
+li¡\96m
+)->
+f\9bld
+.
+sqe_Ãxt
+ = (
+\96m
+); \
+
+331 } \1f 0)
+
+ )
+
+333 \ 1
+ #SIMPLEQ_REMOVE_HEAD
+(
+h\97d
+,
+f\9bld
+) do { \
+
+334 ià(((
+h\97d
+)->
+sqh_f\9c¡
+ = (h\97d)->sqh_f\9c¡->
+f\9bld
+.
+sqe_Ãxt
+è=ð
+NULL
+) \
+
+335 (
+h\97d
+)->
+sqh_ϡ
+ = &(h\97d)->
+sqh_f\9c¡
+; \
+
+336 } \1f 0)
+
+ )
+
+338 \ 1
+ #SIMPLEQ_REMOVE
+(
+h\97d
+,
+\96m
+,
+ty³
+,
+f\9bld
+) do { \
+
+339 ià((
+h\97d
+)->
+sqh_f\9c¡
+ =ð(
+\96m
+)) { \
+
+340
+ `SIMPLEQ_REMOVE_HEAD
+((
+h\97d
+),
+f\9bld
+); \
+
+342 \19
+ty³
+ *
+cu»lm
+ = (
+h\97d
+)->
+sqh_f\9c¡
+; \
+
+343 \1f
+cu»lm
+->
+f\9bld
+.
+sqe_Ãxt
+ !ð(
+\96m
+)) \
+
+344
+cu»lm
+ = cu»lm->
+f\9bld
+.
+sqe_Ãxt
+; \
+
+345 ià((
+cu»lm
+->
+f\9bld
+.
+sqe_Ãxt
+ = \
+
+346
+cu»lm
+->
+f\9bld
+.
+sqe_Ãxt
+->f\9bld.sqe_Ãxtè=ð
+NULL
+) \
+
+347 (
+h\97d
+)->
+sqh_ϡ
+ = &(
+cu»lm
+)->
+f\9bld
+.
+sqe_Ãxt
+; \
+
+349 } \1f 0)
+
+ )
+
+351 \ 1
+ #SIMPLEQ_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+352 \ f(
+v¬
+èð((
+h\97d
+)->
+sqh_f\9c¡
+); \
+
+353 (
+v¬
+); \
+
+354 (
+v¬
+èð((v¬)->
+f\9bld
+.
+sqe_Ãxt
+))
+
+ )
+
+359 \ 1
+ #SIMPLEQ_EMPTY
+(
+h\97d
+è((h\97d)->
+sqh_f\9c¡
+ =ð
+NULL
+)
+
+ )
+
+360 \ 1
+ #SIMPLEQ_FIRST
+(
+h\97d
+è((h\97d)->
+sqh_f\9c¡
+)
+
+ )
+
+361 \ 1
+ #SIMPLEQ_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+sqe_Ãxt
+)
+
+ )
+
+367 \ 1
+ #_TAILQ_HEAD
+(
+Çme
+,
+ty³
+,
+qu®
+) \
+
+368 \19
+ sÇme
+ { \
+
+369
+qu®
+
+ty³
+ *
+tqh_f\9c¡
+; \
+
+370
+qu®
+
+ty³
+ *qu® *
+tqh_ϡ
+; \
+
+371 }
+
+ )
+
+372 \ 1
+ #TAILQ_HEAD
+(
+Çme
+,
+ty³
+è
+ `_TAILQ_HEAD
+Òame, \19ty³,)
+
+ )
+
+374 \ 1
+ #TAILQ_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+375 {
+NULL
+, &(
+h\97d
+).
+tqh_f\9c¡
+ }
+
+ )
+
+377 \ 1
+ #_TAILQ_ENTRY
+(
+ty³
+,
+qu®
+) \
+
+379
+qu®
+
+ty³
+ *
+tqe_Ãxt
+; \
+
+380
+qu®
+
+ty³
+ *qu® *
+tqe_´ev
+; \
+
+381 }
+
+ )
+
+382 \ 1
+ #TAILQ_ENTRY
+(
+ty³
+è
+ `_TAILQ_ENTRY
+(\19ty³,)
+
+ )
+
+387 \ 1
+ #TAILQ_INIT
+(
+h\97d
+) do { \
+
+388 (
+h\97d
+)->
+tqh_f\9c¡
+ =
+NULL
+; \
+
+389 (
+h\97d
+)->
+tqh_ϡ
+ = &(h\97d)->
+tqh_f\9c¡
+; \
+
+390 } \1f 0)
+
+ )
+
+392 \ 1
+ #TAILQ_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+393 ià(((
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+ = (
+h\97d
+)->
+tqh_f\9c¡
+è!ð
+NULL
+) \
+
+394 (
+h\97d
+)->
+tqh_f\9c¡
+->
+f\9bld
+.
+tqe_´ev
+ = \
+
+395 &(
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+; \
+
+397 (
+h\97d
+)->
+tqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+; \
+
+398 (
+h\97d
+)->
+tqh_f\9c¡
+ = (
+\96m
+); \
+
+399 (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = &(
+h\97d
+)->
+tqh_f\9c¡
+; \
+
+400 } \1f 0)
+
+ )
+
+402 \ 1
+ #TAILQ_INSERT_TAIL
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+403 (
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+ =
+NULL
+; \
+
+404 (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = (
+h\97d
+)->
+tqh_ϡ
+; \
+
+405 *(
+h\97d
+)->
+tqh_ϡ
+ = (
+\96m
+); \
+
+406 (
+h\97d
+)->
+tqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+; \
+
+407 } \1f 0)
+
+ )
+
+409 \ 1
+ #TAILQ_INSERT_AFTER
+(
+h\97d
+,
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+410 ià(((
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+ = (
+li¡\96m
+)->f\9bld.tqe_Ãxtè!ð
+NULL
+)\
+
+411 (
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+->f\9bld.
+tqe_´ev
+ = \
+
+412 &(
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+; \
+
+414 (
+h\97d
+)->
+tqh_ϡ
+ = &(
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+; \
+
+415 (
+li¡\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+ = (
+\96m
+); \
+
+416 (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = &(
+li¡\96m
+)->f\9bld.
+tqe_Ãxt
+; \
+
+417 } \1f 0)
+
+ )
+
+419 \ 1
+ #TAILQ_INSERT_BEFORE
+(
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+420 (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = (
+li¡\96m
+)->field.tqe_prev; \
+
+421 (
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+ = (
+li¡\96m
+); \
+
+422 *(
+li¡\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = (
+\96m
+); \
+
+423 (
+li¡\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = &(
+\96m
+)->f\9bld.
+tqe_Ãxt
+; \
+
+424 } \1f 0)
+
+ )
+
+426 \ 1
+ #TAILQ_REMOVE
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+427 ià(((
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+è!ð
+NULL
+) \
+
+428 (
+\96m
+)->
+f\9bld
+.
+tqe_Ãxt
+->f\9bld.
+tqe_´ev
+ = \
+
+429 (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+; \
+
+431 (
+h\97d
+)->
+tqh_ϡ
+ = (
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+; \
+
+432 *(
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+ = (\96m)->f\9bld.
+tqe_Ãxt
+; \
+
+433 } \1f 0)
+
+ )
+
+435 \ 1
+ #TAILQ_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+436 \ f(
+v¬
+èð((
+h\97d
+)->
+tqh_f\9c¡
+); \
+
+437 (
+v¬
+); \
+
+438 (
+v¬
+èð((v¬)->
+f\9bld
+.
+tqe_Ãxt
+))
+
+ )
+
+440 \ 1
+ #TAILQ_FOREACH_REVERSE
+(
+v¬
+,
+h\97d
+,
+h\97dÇme
+,
+f\9bld
+) \
+
+441 \ f(
+v¬
+èð(*(((\19
+h\97dÇme
+ *)((
+h\97d
+)->
+tqh_ϡ
+))->tqh_last)); \
+
+442 (
+v¬
+); \
+
+443 (
+v¬
+èð(*(((\19
+h\97dÇme
+ *)((v¬)->
+f\9bld
+.
+tqe_´ev
+))->
+tqh_ϡ
+)))
+
+ )
+
+445 \ 1
+ #TAILQ_CONCAT
+(
+h\97d1
+,
+h\97d2
+,
+f\9bld
+) do { \
+
+446 ià(!
+ `TAILQ_EMPTY
+(
+h\97d2
+)) { \
+
+447 *(
+h\97d1
+)->
+tqh_ϡ
+ = (
+h\97d2
+)->
+tqh_f\9c¡
+; \
+
+448 (
+h\97d2
+)->
+tqh_f\9c¡
+->
+f\9bld
+.
+tqe_´ev
+ = (
+h\97d1
+)->
+tqh_ϡ
+; \
+
+449 (
+h\97d1
+)->
+tqh_ϡ
+ = (
+h\97d2
+)->tqh_last; \
+
+450
+ `TAILQ_INIT
+((
+h\97d2
+)); \
+
+452 } \1f 0)
+
+ )
+
+457 \ 1
+ #TAILQ_EMPTY
+(
+h\97d
+è((h\97d)->
+tqh_f\9c¡
+ =ð
+NULL
+)
+
+ )
+
+458 \ 1
+ #TAILQ_FIRST
+(
+h\97d
+è((h\97d)->
+tqh_f\9c¡
+)
+
+ )
+
+459 \ 1
+ #TAILQ_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+tqe_Ãxt
+)
+
+ )
+
+461 \ 1
+ #TAILQ_LAST
+(
+h\97d
+,
+h\97dÇme
+) \
+
+462 (*(((\19
+h\97dÇme
+ *)((
+h\97d
+)->
+tqh_ϡ
+))->tqh_ϡ))
+
+ )
+
+463 \ 1
+ #TAILQ_PREV
+(
+\96m
+,
+h\97dÇme
+,
+f\9bld
+) \
+
+464 (*(((\19
+h\97dÇme
+ *)((
+\96m
+)->
+f\9bld
+.
+tqe_´ev
+))->
+tqh_ϡ
+))
+
+ )
+
+470 \ 1
+ #CIRCLEQ_HEAD
+(
+Çme
+,
+ty³
+) \
+
+471 \19
+ sÇme
+ { \
+
+472 \19
+ty³
+ *
+cqh_f\9c¡
+; \
+
+473 \19
+ty³
+ *
+cqh_ϡ
+; \
+
+474 }
+
+ )
+
+476 \ 1
+ #CIRCLEQ_HEAD_INITIALIZER
+(
+h\97d
+) \
+
+477 { (\1e*)&
+h\97d
+, (\1e*)&h\97d }
+
+ )
+
+479 \ 1
+ #CIRCLEQ_ENTRY
+(
+ty³
+) \
+
+481 \19
+ty³
+ *
+cqe_Ãxt
+; \
+
+482 \19
+ty³
+ *
+cqe_´ev
+; \
+
+483 }
+
+ )
+
+488 \ 1
+ #CIRCLEQ_INIT
+(
+h\97d
+) do { \
+
+489 (
+h\97d
+)->
+cqh_f\9c¡
+ = (\1e*)(head); \
+
+490 (
+h\97d
+)->
+cqh_ϡ
+ = (\1e*)(head); \
+
+491 } \1f 0)
+
+ )
+
+493 \ 1
+ #CIRCLEQ_INSERT_AFTER
+(
+h\97d
+,
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+494 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ = (
+li¡\96m
+)->field.cqe_next; \
+
+495 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ = (
+li¡\96m
+); \
+
+496 ià((
+li¡\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ =ð(\1e*)(
+h\97d
+)) \
+
+497 (
+h\97d
+)->
+cqh_ϡ
+ = (
+\96m
+); \
+
+499 (
+li¡\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+->f\9bld.
+cqe_´ev
+ = (
+\96m
+); \
+
+500 (
+li¡\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ = (
+\96m
+); \
+
+501 } \1f 0)
+
+ )
+
+503 \ 1
+ #CIRCLEQ_INSERT_BEFORE
+(
+h\97d
+,
+li¡\96m
+,
+\96m
+,
+f\9bld
+) do { \
+
+504 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ = (
+li¡\96m
+); \
+
+505 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ = (
+li¡\96m
+)->field.cqe_prev; \
+
+506 ià((
+li¡\96m
+)->
+f\9bld
+.
+cqe_´ev
+ =ð(\1e*)(
+h\97d
+)) \
+
+507 (
+h\97d
+)->
+cqh_f\9c¡
+ = (
+\96m
+); \
+
+509 (
+li¡\96m
+)->
+f\9bld
+.
+cqe_´ev
+->f\9bld.
+cqe_Ãxt
+ = (
+\96m
+); \
+
+510 (
+li¡\96m
+)->
+f\9bld
+.
+cqe_´ev
+ = (
+\96m
+); \
+
+511 } \1f 0)
+
+ )
+
+513 \ 1
+ #CIRCLEQ_INSERT_HEAD
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+514 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ = (
+h\97d
+)->
+cqh_f\9c¡
+; \
+
+515 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ = (\1e*)(
+h\97d
+); \
+
+516 ià((
+h\97d
+)->
+cqh_ϡ
+ == (\1e*)(head)) \
+
+517 (
+h\97d
+)->
+cqh_ϡ
+ = (
+\96m
+); \
+
+519 (
+h\97d
+)->
+cqh_f\9c¡
+->
+f\9bld
+.
+cqe_´ev
+ = (
+\96m
+); \
+
+520 (
+h\97d
+)->
+cqh_f\9c¡
+ = (
+\96m
+); \
+
+521 } \1f 0)
+
+ )
+
+523 \ 1
+ #CIRCLEQ_INSERT_TAIL
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+524 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ = (\1e*)(
+h\97d
+); \
+
+525 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ = (
+h\97d
+)->
+cqh_ϡ
+; \
+
+526 ià((
+h\97d
+)->
+cqh_f\9c¡
+ == (\1e*)(head)) \
+
+527 (
+h\97d
+)->
+cqh_f\9c¡
+ = (
+\96m
+); \
+
+529 (
+h\97d
+)->
+cqh_ϡ
+->
+f\9bld
+.
+cqe_Ãxt
+ = (
+\96m
+); \
+
+530 (
+h\97d
+)->
+cqh_ϡ
+ = (
+\96m
+); \
+
+531 } \1f 0)
+
+ )
+
+533 \ 1
+ #CIRCLEQ_REMOVE
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) do { \
+
+534 ià((
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ =ð(\1e*)(
+h\97d
+)) \
+
+535 (
+h\97d
+)->
+cqh_ϡ
+ = (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+; \
+
+537 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+->f\9bld.
+cqe_´ev
+ = \
+
+538 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+; \
+
+539 ià((
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ =ð(\1e*)(
+h\97d
+)) \
+
+540 (
+h\97d
+)->
+cqh_f\9c¡
+ = (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+; \
+
+542 (
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+->f\9bld.
+cqe_Ãxt
+ = \
+
+543 (
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+; \
+
+544 } \1f 0)
+
+ )
+
+546 \ 1
+ #CIRCLEQ_FOREACH
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+547 \ f(
+v¬
+èð((
+h\97d
+)->
+cqh_f\9c¡
+); \
+
+548 (
+v¬
+è!ð(cÚ¡ \1e*)(
+h\97d
+); \
+
+549 (
+v¬
+èð((v¬)->
+f\9bld
+.
+cqe_Ãxt
+))
+
+ )
+
+551 \ 1
+ #CIRCLEQ_FOREACH_REVERSE
+(
+v¬
+,
+h\97d
+,
+f\9bld
+) \
+
+552 \ f(
+v¬
+èð((
+h\97d
+)->
+cqh_ϡ
+); \
+
+553 (
+v¬
+è!ð(cÚ¡ \1e*)(
+h\97d
+); \
+
+554 (
+v¬
+èð((v¬)->
+f\9bld
+.
+cqe_´ev
+))
+
+ )
+
+559 \ 1
+ #CIRCLEQ_EMPTY
+(
+h\97d
+è((h\97d)->
+cqh_f\9c¡
+ =ð(\1e*)(h\97d))
+
+ )
+
+560 \ 1
+ #CIRCLEQ_FIRST
+(
+h\97d
+è((h\97d)->
+cqh_f\9c¡
+)
+
+ )
+
+561 \ 1
+ #CIRCLEQ_LAST
+(
+h\97d
+è((h\97d)->
+cqh_ϡ
+)
+
+ )
+
+562 \ 1
+ #CIRCLEQ_NEXT
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+cqe_Ãxt
+)
+
+ )
+
+563 \ 1
+ #CIRCLEQ_PREV
+(
+\96m
+,
+f\9bld
+è(Ólm)->f\9bld.
+cqe_´ev
+)
+
+ )
+
+565 \ 1
+ #CIRCLEQ_LOOP_NEXT
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) \
+
+566 (((
+\96m
+)->
+f\9bld
+.
+cqe_Ãxt
+ =ð(\1e*)(
+h\97d
+)) \
+
+567 ? ((
+h\97d
+)->
+cqh_f\9c¡
+) \
+
+568 : (
+\96m
+->
+f\9bld
+.
+cqe_Ãxt
+))
+
+ )
+
+569 \ 1
+ #CIRCLEQ_LOOP_PREV
+(
+h\97d
+,
+\96m
+,
+f\9bld
+) \
+
+570 (((
+\96m
+)->
+f\9bld
+.
+cqe_´ev
+ =ð(\1e*)(
+h\97d
+)) \
+
+571 ? ((
+h\97d
+)->
+cqh_ϡ
+) \
+
+572 : (
+\96m
+->
+f\9bld
+.
+cqe_´ev
+))
+
+ )
+
+ @/usr/include/sys/socket.h
+
+19 #iâdef
+_SYS_SOCKET_H
+
+
+20 \ 1
+ #_SYS_SOCKET_H
+ 1
+
+ )
+
+22 \ 2
+ ~<ã©u»s.h
+>
+
+24
+ g__BEGIN_DECLS
+
+
+26 \ 2
+ ~<sys/uio.h
+>
+
+27 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+28 \ 2
+ ~<¡ddef.h
+>
+
+29 #ifdeà
+__USE_GNU
+
+
+31 \ 2
+ ~<b\99s/sig£t.h
+>
+
+38 \ 2
+ ~<b\99s/sock\91.h
+>
+
+40 #ifdeà
+__USE_MISC
+
+
+43 \19
+ sosockaddr
+
+
+45 \1d\16\12
+ m§_çm\9ey
+;
+
+46 \1d\ 5
+ m§_d©a
+[14];
+
+54
+ mSHUT_RD
+ = 0,
+
+55 \ 1
+ #SHUT_RD
+
+SHUT_RD
+
+
+ )
+
+56
+ mSHUT_WR
+,
+
+57 \ 1
+ #SHUT_WR
+
+SHUT_WR
+
+
+ )
+
+58
+ mSHUT_RDWR
+
+
+59 \ 1
+ #SHUT_RDWR
+
+SHUT_RDWR
+
+
+ )
+
+68 #ià
+def\9aed
+
+__ýlu¥lus
+ || !
+__GNUC_PREREQ
+ (2, 7è|| !def\9aed
+__USE_GNU
+
+
+69 \ 1
+ #__SOCKADDR_ARG
+ \19
+sockaddr
+ *
+__»¡riù
+
+
+ )
+
+70 \ 1
+ #__CONST_SOCKADDR_ARG
+ cڡ \19
+sockaddr
+ *
+
+ )
+
+74 \ 1
+ #__SOCKADDR_ALLTYPES
+ \
+
+75
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr
+) \
+
+76
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_©
+) \
+
+77
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_ax25
+) \
+
+78
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_dl
+) \
+
+79
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_eÚ
+) \
+
+80
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_\9a
+) \
+
+81
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_\9a6
+) \
+
+82
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_\9a¬p
+) \
+
+83
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_\9dx
+) \
+
+84
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_iso
+) \
+
+85
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_ns
+) \
+
+86
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_un
+) \
+
+87
+ `__SOCKADDR_ONETYPE
+ (
+sockaddr_x25
+)
+
+ )
+
+89 \ 1
+ #__SOCKADDR_ONETYPE
+(
+ty³
+è\19ty³ *
+__»¡riù
+
+__
+##ty³##__;
+
+ )
+
+90 \euniÚ {
+ m__SOCKADDR_ALLTYPES
+
+
+91 }
+ t__SOCKADDR_ARG
+
+ t__©\8cibu\8b__
+ ((
+ t__\8cª¥¬\92t_uniÚ__
+));
+
+92 #undeà
+__SOCKADDR_ONETYPE
+
+
+93 \ 1
+ #__SOCKADDR_ONETYPE
+(
+ty³
+ècÚ¡ \19ty³ *
+__»¡riù
+
+__
+##ty³##__;
+
+ )
+
+94 \euniÚ {
+ m__SOCKADDR_ALLTYPES
+
+
+95 }
+ t__CONST_SOCKADDR_ARG
+
+ t__©\8cibu\8b__
+ ((
+ t__\8cª¥¬\92t_uniÚ__
+));
+
+96 #undeà
+__SOCKADDR_ONETYPE
+
+
+99 #ifdeà
+__USE_GNU
+
+
+101 \19
+ smmsghdr
+
+
+103 \19
+msghdr
+
+ mmsg_hdr
+;
+
+104 \1d\12
+ mmsg_Ën
+;
+
+113 \r\12
+ $sock\91
+ (\12
+__doma\9a
+, \12
+__ty³
+, \12
+__´ÙocÞ
+è
+__THROW
+;
+
+119 \r\12
+ $sock\91·\9c
+ (\12
+__doma\9a
+, \12
+__ty³
+, \12
+__´ÙocÞ
+,
+
+120 \12
+__fds
+[2]è
+__THROW
+;
+
+123 \r\12
+ $b\9ad
+ (\12
+__fd
+,
+__CONST_SOCKADDR_ARG
+
+__addr
+,
+sockËn_t
+
+__Ën
+)
+
+124
+__THROW
+;
+
+127 \r\12
+ $g\91sockÇme
+ (\12
+__fd
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+128
+sockËn_t
+ *
+__»¡riù
+
+__Ën
+è
+__THROW
+;
+
+137 \r\12
+ `cÚÃù
+ (\12
+__fd
+,
+__CONST_SOCKADDR_ARG
+
+__addr
+,
+sockËn_t
+
+__Ën
+);
+
+141 \r\12
+ $g\91³\94Çme
+ (\12
+__fd
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+142
+sockËn_t
+ *
+__»¡riù
+
+__Ën
+è
+__THROW
+;
+
+149 \r
+ssize_t
+
+ `£nd
+ (\12
+__fd
+, cڡ \1e*
+__buf
+,
+size_t
+
+__n
+, \12
+__æags
+);
+
+156 \r
+ssize_t
+
+ `»cv
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__n
+, \12
+__æags
+);
+
+163 \r
+ssize_t
+
+ `£ndto
+ (\12
+__fd
+, cڡ \1e*
+__buf
+,
+size_t
+
+__n
+,
+
+164 \12
+__æags
+,
+__CONST_SOCKADDR_ARG
+
+__addr
+,
+
+165
+sockËn_t
+
+__addr_Ën
+);
+
+174 \r
+ssize_t
+
+ `»cväom
+ (\12
+__fd
+, \1e*
+__»¡riù
+
+__buf
+,
+size_t
+
+__n
+,
+
+175 \12
+__æags
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+176
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+);
+
+184 \r
+ssize_t
+
+ `£ndmsg
+ (\12
+__fd
+, cڡ \19
+msghdr
+ *
+__mes§ge
+,
+
+185 \12
+__æags
+);
+
+187 #ifdeà
+__USE_GNU
+
+
+193 \r\12
+ `£ndmmsg
+ (\12
+__fd
+, \19
+mmsghdr
+ *
+__vmes§ges
+,
+
+194 \1d\12
+__vËn
+, \12
+__æags
+);
+
+202 \r
+ssize_t
+
+ `»cvmsg
+ (\12
+__fd
+, \19
+msghdr
+ *
+__mes§ge
+, \12
+__æags
+);
+
+204 #ifdeà
+__USE_GNU
+
+
+210 \r\12
+ `»cvmmsg
+ (\12
+__fd
+, \19
+mmsghdr
+ *
+__vmes§ges
+,
+
+211 \1d\12
+__vËn
+, \12
+__æags
+,
+
+212 \19
+time¥ec
+ *
+__tmo
+);
+
+219 \r\12
+ $g\91sockÝt
+ (\12
+__fd
+, \12
+__Ëv\96
+, \12
+__݊ame
+,
+
+220 \1e*
+__»¡riù
+
+__Ýtv®
+,
+
+221
+sockËn_t
+ *
+__»¡riù
+
+__Ý\8e\92
+è
+__THROW
+;
+
+226 \r\12
+ $£tsockÝt
+ (\12
+__fd
+, \12
+__Ëv\96
+, \12
+__݊ame
+,
+
+227 cڡ \1e*
+__Ýtv®
+,
+sockËn_t
+
+__Ý\8e\92
+è
+__THROW
+;
+
+233 \r\12
+ $li¡\92
+ (\12
+__fd
+, \12
+__n
+è
+__THROW
+;
+
+243 \r\12
+ `acû±
+ (\12
+__fd
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+244
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+);
+
+246 #ifdeà
+__USE_GNU
+
+
+251 \r\12
+ `acû±4
+ (\12
+__fd
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+252
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+, \12
+__æags
+);
+
+261 \r\12
+ $shutdown
+ (\12
+__fd
+, \12
+__how
+è
+__THROW
+;
+
+264 #ifdeà
+__USE_XOPEN2K
+
+
+266 \r\12
+ $sock©m¬k
+ (\12
+__fd
+è
+__THROW
+;
+
+270 #ifdeà
+__USE_MISC
+
+
+274 \r\12
+ $isfdty³
+ (\12
+__fd
+, \12
+__fdty³
+è
+__THROW
+;
+
+279 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+280 \ 2
+ ~<b\99s/sock\912.h
+>
+
+283
+__END_DECLS
+
+
+ @/usr/include/sys/types.h
+
+22 #iâdef
+_SYS_TYPES_H
+
+
+23 \ 1
+ #_SYS_TYPES_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27
+ g__BEGIN_DECLS
+
+
+29 \ 2
+ ~<b\99s/ty³s.h
+>
+
+31 #ifdef
+__USE_MISC
+
+
+32 #iâdeà
+__u_ch¬_def\9aed
+
+
+33 \e
+__u_ch¬
+
+ tu_ch¬
+;
+
+34 \e
+__u_shÜt
+
+ tu_shÜt
+;
+
+35 \e
+__u_\9at
+
+ tu_\9at
+;
+
+36 \e
+__u_lÚg
+
+ tu_lÚg
+;
+
+37 \e
+__quad_t
+
+ tquad_t
+;
+
+38 \e
+__u_quad_t
+
+ tu_quad_t
+;
+
+39 \e
+__fsid_t
+
+ tfsid_t
+;
+
+40 \ 1
+ #__u_ch¬_def\9aed
+
+
+ )
+
+44 \e
+__loff_t
+
+ tloff_t
+;
+
+46 #iâdeà
+__\9ao_t_def\9aed
+
+
+47 #iâdeà
+__USE_FILE_OFFSET64
+
+
+48 \e
+__\9ao_t
+
+ t\9ao_t
+;
+
+50 \e
+__\9ao64_t
+
+ t\9ao_t
+;
+
+52 \ 1
+ #__\9ao_t_def\9aed
+
+
+ )
+
+54 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ && !def\9aed
+__\9ao64_t_def\9aed
+
+
+55 \e
+__\9ao64_t
+
+ t\9ao64_t
+;
+
+56 \ 1
+ #__\9ao64_t_def\9aed
+
+
+ )
+
+59 #iâdeà
+__dev_t_def\9aed
+
+
+60 \e
+__dev_t
+
+ tdev_t
+;
+
+61 \ 1
+ #__dev_t_def\9aed
+
+
+ )
+
+64 #iâdeà
+__gid_t_def\9aed
+
+
+65 \e
+__gid_t
+
+ tgid_t
+;
+
+66 \ 1
+ #__gid_t_def\9aed
+
+
+ )
+
+69 #iâdeà
+__mode_t_def\9aed
+
+
+70 \e
+__mode_t
+
+ tmode_t
+;
+
+71 \ 1
+ #__mode_t_def\9aed
+
+
+ )
+
+74 #iâdeà
+__Æ\9ak_t_def\9aed
+
+
+75 \e
+__ƚk_t
+
+ tƚk_t
+;
+
+76 \ 1
+ #__Æ\9ak_t_def\9aed
+
+
+ )
+
+79 #iâdeà
+__uid_t_def\9aed
+
+
+80 \e
+__uid_t
+
+ tuid_t
+;
+
+81 \ 1
+ #__uid_t_def\9aed
+
+
+ )
+
+84 #iâdeà
+__off_t_def\9aed
+
+
+85 #iâdeà
+__USE_FILE_OFFSET64
+
+
+86 \e
+__off_t
+
+ toff_t
+;
+
+88 \e
+__off64_t
+
+ toff_t
+;
+
+90 \ 1
+ #__off_t_def\9aed
+
+
+ )
+
+92 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ && !def\9aed
+__off64_t_def\9aed
+
+
+93 \e
+__off64_t
+
+ toff64_t
+;
+
+94 \ 1
+ #__off64_t_def\9aed
+
+
+ )
+
+97 #iâdeà
+__pid_t_def\9aed
+
+
+98 \e
+__pid_t
+
+ tpid_t
+;
+
+99 \ 1
+ #__pid_t_def\9aed
+
+
+ )
+
+102 #ià(
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+) \
+
+103 && !
+def\9aed
+
+__id_t_def\9aed
+
+
+104 \e
+__id_t
+
+ tid_t
+;
+
+105 \ 1
+ #__id_t_def\9aed
+
+
+ )
+
+108 #iâdeà
+__ssize_t_def\9aed
+
+
+109 \e
+__ssize_t
+
+ tssize_t
+;
+
+110 \ 1
+ #__ssize_t_def\9aed
+
+
+ )
+
+113 #ifdef
+__USE_MISC
+
+
+114 #iâdeà
+__daddr_t_def\9aed
+
+
+115 \e
+__daddr_t
+
+ tdaddr_t
+;
+
+116 \e
+__ÿddr_t
+
+ tÿddr_t
+;
+
+117 \ 1
+ #__daddr_t_def\9aed
+
+
+ )
+
+121 #ià(
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+è&& !def\9aed
+__key_t_def\9aed
+
+
+122 \e
+__key_t
+
+ tkey_t
+;
+
+123 \ 1
+ #__key_t_def\9aed
+
+
+ )
+
+126 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+127 \ 1
+ #__Ãed_þock_t
+
+
+ )
+
+129 \ 1
+ #__Ãed_time_t
+
+
+ )
+
+130 \ 1
+ #__Ãed_tim\94_t
+
+
+ )
+
+131 \ 1
+ #__Ãed_þockid_t
+
+
+ )
+
+132 \ 2
+ ~<time.h
+>
+
+134 #ifdeà
+__USE_XOPEN
+
+
+135 #iâdeà
+__u£cÚds_t_def\9aed
+
+
+136 \e
+__u£cÚds_t
+
+ tu£cÚds_t
+;
+
+137 \ 1
+ #__u£cÚds_t_def\9aed
+
+
+ )
+
+139 #iâdeà
+__su£cÚds_t_def\9aed
+
+
+140 \e
+__su£cÚds_t
+
+ tsu£cÚds_t
+;
+
+141 \ 1
+ #__su£cÚds_t_def\9aed
+
+
+ )
+
+145 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+146 \ 2
+ ~<¡ddef.h
+>
+
+148 #ifdeà
+__USE_MISC
+
+
+150 \e\1d\13\12
+ tulÚg
+;
+
+151 \e\1d\16\12
+ tushÜt
+;
+
+152 \e\1d\12
+ tu\9at
+;
+
+157 #ià!
+__GNUC_PREREQ
+ (2, 7)
+
+160 #iâdeà
+__\9at8_t_def\9aed
+
+
+161 \ 1
+ #__\9at8_t_def\9aed
+
+
+ )
+
+162 \e\ 5
+ t\9at8_t
+;
+
+163 \e\16\12
+ t\9at16_t
+;
+
+164 \e\12
+ t\9at32_t
+;
+
+165 #ià
+__WORDSIZE
+ == 64
+
+166 \e\13\12
+ t\9at64_t
+;
+
+168
+__ex\8bnsiÚ__
+ \e\13\13\12
+ t\9at64_t
+;
+
+173 \e\1d\ 5
+ tu_\9at8_t
+;
+
+174 \e\1d\16\12
+ tu_\9at16_t
+;
+
+175 \e\1d\12
+ tu_\9at32_t
+;
+
+176 #ià
+__WORDSIZE
+ == 64
+
+177 \e\1d\13\12
+ tu_\9at64_t
+;
+
+179
+__ex\8bnsiÚ__
+ \e\1d\13\13\12
+ tu_\9at64_t
+;
+
+182 \e\12
+ t»gi¡\94_t
+;
+
+187 \ 1
+ #__\9atN_t
+(
+N
+,
+MODE
+) \
+
+188 \e\12\12##
+ tN
+##
+ t_t
+
+ t__©\8cibu\8b__
+ ((
+ t__mode__
+ (
+ tMODE
+)))
+
+ )
+
+189 \ 1
+ t__u_\9atN_t
+(
+ tN
+,
+ tMODE
+) \
+
+190 \e\1d\12
+ tu_\9at
+##
+ tN
+##
+ t_t
+
+ t__©\8cibu\8b__
+ ((
+ t__mode__
+ (
+ tMODE
+)))
+
+ )
+
+192 #iâdeà
+ t__\9at8_t_def\9aed
+
+
+193 \ 1
+ t__\9at8_t_def\9aed
+
+
+ )
+
+194
+ t__\9atN_t
+ (8,
+ t__QI__
+);
+
+195
+__\9atN_t
+ (16,
+__HI__
+);
+
+196
+__\9atN_t
+ (32,
+__SI__
+);
+
+197
+__\9atN_t
+ (64,
+__DI__
+);
+
+200
+__u_\9atN_t
+ (8,
+__QI__
+);
+
+201
+__u_\9atN_t
+ (16,
+__HI__
+);
+
+202
+__u_\9atN_t
+ (32,
+__SI__
+);
+
+203
+__u_\9atN_t
+ (64,
+__DI__
+);
+
+205 \e\12
+ t»gi¡\94_t
+
+ t__©\8cibu\8b__
+ ((
+ t__mode__
+ (
+ t__wÜd__
+)));
+
+211 \ 1
+ #__BIT_TYPES_DEFINED__
+ 1
+
+ )
+
+214 #ifdef
+__USE_MISC
+
+
+216 \ 2
+ ~<\92d\9fn.h
+>
+
+219 \ 2
+ ~<sys/£Ëù.h
+>
+
+222 \ 2
+ ~<sys/sysmaüos.h
+>
+
+226 #ià(
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K8
+) \
+
+227 && !
+def\9aed
+
+__blksize_t_def\9aed
+
+
+228 \e
+__blksize_t
+
+ tblksize_t
+;
+
+229 \ 1
+ #__blksize_t_def\9aed
+
+
+ )
+
+233 #iâdeà
+__USE_FILE_OFFSET64
+
+
+234 #iâdeà
+__blkút_t_def\9aed
+
+
+235 \e
+__blkút_t
+
+ tblkút_t
+;
+
+236 \ 1
+ #__blkút_t_def\9aed
+
+
+ )
+
+238 #iâdeà
+__fsblkút_t_def\9aed
+
+
+239 \e
+__fsblkút_t
+
+ tfsblkút_t
+;
+
+240 \ 1
+ #__fsblkút_t_def\9aed
+
+
+ )
+
+242 #iâdeà
+__fsf\9eút_t_def\9aed
+
+
+243 \e
+__fsf\9eút_t
+
+ tfsf\9eút_t
+;
+
+244 \ 1
+ #__fsf\9eút_t_def\9aed
+
+
+ )
+
+247 #iâdeà
+__blkút_t_def\9aed
+
+
+248 \e
+__blkút64_t
+
+ tblkút_t
+;
+
+249 \ 1
+ #__blkút_t_def\9aed
+
+
+ )
+
+251 #iâdeà
+__fsblkút_t_def\9aed
+
+
+252 \e
+__fsblkút64_t
+
+ tfsblkút_t
+;
+
+253 \ 1
+ #__fsblkút_t_def\9aed
+
+
+ )
+
+255 #iâdeà
+__fsf\9eút_t_def\9aed
+
+
+256 \e
+__fsf\9eút64_t
+
+ tfsf\9eút_t
+;
+
+257 \ 1
+ #__fsf\9eút_t_def\9aed
+
+
+ )
+
+261 #ifdeà
+__USE_LARGEFILE64
+
+
+262 \e
+__blkút64_t
+
+ tblkút64_t
+;
+
+263 \e
+__fsblkút64_t
+
+ tfsblkút64_t
+;
+
+264 \e
+__fsf\9eút64_t
+
+ tfsf\9eút64_t
+;
+
+269 #ià
+def\9aed
+
+__USE_POSIX199506
+ || def\9aed
+__USE_UNIX98
+
+
+270 \ 2
+ ~<b\99s/±h»adty³s.h
+>
+
+273
+ g__END_DECLS
+
+
+ @/usr/include/sys/wait.h
+
+22 #iâdef
+_SYS_WAIT_H
+
+
+23 \ 1
+ #_SYS_WAIT_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27
+ g__BEGIN_DECLS
+
+
+29 \ 2
+ ~<sigÇl.h
+>
+
+32 #ià!
+def\9aed
+
+_STDLIB_H
+ || (!def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K8
+)
+
+35 \ 2
+ ~<b\99s/wa\99æags.h
+>
+
+37 #ifdef
+__USE_MISC
+
+
+42 #ià
+def\9aed
+
+__GNUC__
+ && !def\9aed
+__ýlu¥lus
+
+
+43 \ 1
+ #__WAIT_INT
+(
+¡©us
+) \
+
+44 (
+ `__ex\8bnsiÚ__
+ (((uniÚ {
+ `__ty³of
+(
+¡©us
+è
+__\9a
+; \12
+__i
+; }) \
+
+45 { .
+__\9a
+ = (
+¡©us
+è}).
+__i
+))
+
+ )
+
+47 \ 1
+ #__WAIT_INT
+(
+¡©us
+è(*(cÚ¡ \12*è&(¡©us))
+
+ )
+
+55 #ià!
+def\9aed
+
+__GNUC__
+ || __GNUC__ < 2 || def\9aed
+__ýlu¥lus
+
+
+56 \ 1
+ #__WAIT_STATUS
+ \1e*
+
+ )
+
+57 \ 1
+ #__WAIT_STATUS_DEFN
+ \1e*
+
+ )
+
+62 \1c
+wa\99
+ *
+ m__u±r
+;
+
+63 \12*
+ m__\9d\8c
+;
+
+64 }
+ t__WAIT_STATUS
+
+ t__©\8cibu\8b__
+ ((
+ t__\8cª¥¬\92t_uniÚ__
+));
+
+65 \ 1
+ #__WAIT_STATUS_DEFN
+ \12*
+
+ )
+
+70 \ 1
+ #__WAIT_INT
+(
+¡©us
+è(¡©us)
+
+ )
+
+71 \ 1
+ #__WAIT_STATUS
+ \12*
+
+ )
+
+72 \ 1
+ #__WAIT_STATUS_DEFN
+ \12*
+
+ )
+
+77 \ 2
+ ~<b\99s/wa\99¡©us.h
+>
+
+79 \ 1
+ #WEXITSTATUS
+(
+¡©us
+è
+ `__WEXITSTATUS
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+80 \ 1
+ #WTERMSIG
+(
+¡©us
+è
+ `__WTERMSIG
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+81 \ 1
+ #WSTOPSIG
+(
+¡©us
+è
+ `__WSTOPSIG
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+82 \ 1
+ #WIFEXITED
+(
+¡©us
+è
+ `__WIFEXITED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+83 \ 1
+ #WIFSIGNALED
+(
+¡©us
+è
+ `__WIFSIGNALED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+84 \ 1
+ #WIFSTOPPED
+(
+¡©us
+è
+ `__WIFSTOPPED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+85 #ifdeà
+__WIFCONTINUED
+
+
+86 \ 1
+ #WIFCONTINUED
+(
+¡©us
+è
+ `__WIFCONTINUED
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+90 #ifdef
+__USE_MISC
+
+
+91 \ 1
+ #WCOREFLAG
+
+__WCOREFLAG
+
+
+ )
+
+92 \ 1
+ #WCOREDUMP
+(
+¡©us
+è
+ `__WCOREDUMP
+ (
+ `__WAIT_INT
+ (¡©us))
+
+ )
+
+93 \ 1
+ #W_EXITCODE
+(
+»t
+,
+sig
+è
+ `__W_EXITCODE
+ (»t, sig)
+
+ )
+
+94 \ 1
+ #W_STOPCODE
+(
+sig
+è
+ `__W_STOPCODE
+ (sig)
+
+ )
+
+102 \r
+__pid_t
+
+wa\99
+ (
+__WAIT_STATUS
+
+__¡©_loc
+);
+
+104 #ifdef
+__USE_MISC
+
+
+106 \ 1
+ #WAIT_ANY
+ (-1è
+
+ )
+
+107 \ 1
+ #WAIT_MYPGRP
+ 0
+
+ )
+
+125 \r
+__pid_t
+
+wa\99pid
+ (__pid_\88
+__pid
+, \12*
+__¡©_loc
+, \12
+__ÝtiÚs
+);
+
+127 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+128 #iâdeà
+__id_t_def\9aed
+
+
+129 \ 2
+ ~<b\99s/ty³s.h
+>
+
+130 \e
+__id_t
+
+ tid_t
+;
+
+131 \ 1
+ #__id_t_def\9aed
+
+
+ )
+
+134 \ 1
+ #__Ãed_sig\9afo_t
+
+
+ )
+
+135 \ 2
+ ~<b\99s/sig\9afo.h
+>
+
+148 \r\12
+wa\99id
+ (
+idty³_t
+
+__idty³
+,
+__id_t
+
+__id
+,
+sig\9afo_t
+ *
+__\9afÝ
+,
+
+149 \12
+__ÝtiÚs
+);
+
+152 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+155 \19
+ gru§ge
+;
+
+162 \r
+__pid_t
+
+ $wa\993
+ (
+__WAIT_STATUS
+
+__¡©_loc
+, \12
+__ÝtiÚs
+,
+
+163 \19
+ru§ge
+ *
+__u§ge
+è
+__THROWNL
+;
+
+166 #ifdeà
+__USE_MISC
+
+
+168 \r
+__pid_t
+
+ $wa\994
+ (
+__pid_t
+
+__pid
+,
+__WAIT_STATUS
+
+__¡©_loc
+, \12
+__ÝtiÚs
+,
+
+169 \19
+ru§ge
+ *
+__u§ge
+è
+__THROWNL
+;
+
+173
+__END_DECLS
+
+
+ @/usr/include/time.h
+
+22 #iâdef
+_TIME_H
+
+
+24 #ià(!
+def\9aed
+
+__Ãed_time_t
+ && !def\9aed
+__Ãed_þock_t
+ && \
+
+25 !
+def\9aed
+
+ g__Ãed_time¥ec
+)
+
+26 \ 1
+ #_TIME_H
+ 1
+
+ )
+
+27 \ 2
+ ~<ã©u»s.h
+>
+
+29
+ g__BEGIN_DECLS
+
+
+33 #ifdef
+_TIME_H
+
+
+35 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+36 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+37 \ 2
+ ~<¡ddef.h
+>
+
+41 \ 2
+ ~<b\99s/time.h
+>
+
+44 #ià!
+def\9aed
+
+__STRICT_ANSI__
+ && !def\9aed
+__USE_XOPEN2K
+
+
+45 #iâdeà
+CLK_TCK
+
+
+46 \ 1
+ #CLK_TCK
+
+CLOCKS_PER_SEC
+
+
+ )
+
+52 #ià!
+def\9aed
+
+__þock_t_def\9aed
+ && (def\9aed
+_TIME_H
+ || def\9aed
+__Ãed_þock_t
+)
+
+53 \ 1
+ #__þock_t_def\9aed
+ 1
+
+ )
+
+55 \ 2
+ ~<b\99s/ty³s.h
+>
+
+57
+__BEGIN_NAMESPACE_STD
+
+
+59 \e
+__þock_t
+
+ tþock_t
+;
+
+60
+ g__END_NAMESPACE_STD
+
+
+61 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_POSIX
+
+
+62
+ $__USING_NAMESPACE_STD
+(
+þock_t
+)
+
+66 #undeà
+__Ãed_þock_t
+
+
+68 #ià!
+def\9aed
+
+__time_t_def\9aed
+ && (def\9aed
+_TIME_H
+ || def\9aed
+__Ãed_time_t
+)
+
+69 \ 1
+ #__time_t_def\9aed
+ 1
+
+ )
+
+71 \ 2
+ ~<b\99s/ty³s.h
+>
+
+73
+__BEGIN_NAMESPACE_STD
+
+
+75 \e
+__time_t
+
+ ttime_t
+;
+
+76
+__END_NAMESPACE_STD
+
+
+77 #ifdeà
+__USE_POSIX
+
+
+78
+ $__USING_NAMESPACE_STD
+(
+time_t
+)
+
+82 #undeà
+__Ãed_time_t
+
+
+84 #ià!
+def\9aed
+
+__þockid_t_def\9aed
+ && \
+
+85 ((
+def\9aed
+
+_TIME_H
+ && def\9aed
+__USE_POSIX199309
+è|| def\9aed
+__Ãed_þockid_t
+)
+
+86 \ 1
+ #__þockid_t_def\9aed
+ 1
+
+ )
+
+88 \ 2
+ ~<b\99s/ty³s.h
+>
+
+91 \e
+__þockid_t
+
+ tþockid_t
+;
+
+94 #undeà
+__þockid_time_t
+
+
+96 #ià!
+def\9aed
+
+__tim\94_t_def\9aed
+ && \
+
+97 ((
+def\9aed
+
+_TIME_H
+ && def\9aed
+__USE_POSIX199309
+è|| def\9aed
+__Ãed_tim\94_t
+)
+
+98 \ 1
+ #__tim\94_t_def\9aed
+ 1
+
+ )
+
+100 \ 2
+ ~<b\99s/ty³s.h
+>
+
+103 \e
+__tim\94_t
+
+ ttim\94_t
+;
+
+106 #undeà
+__Ãed_tim\94_t
+
+
+109 #ià(!
+def\9aed
+
+__time¥ec_def\9aed
+ \
+
+110 && ((
+def\9aed
+
+_TIME_H
+ \
+
+111 && (
+def\9aed
+
+__USE_POSIX199309
+ \
+
+112 ||
+def\9aed
+
+__USE_ISOC11
+)) \
+
+113 ||
+def\9aed
+
+__Ãed_time¥ec
+))
+
+114 \ 1
+ #__time¥ec_def\9aed
+ 1
+
+ )
+
+116 \ 2
+ ~<b\99s/ty³s.h
+>
+
+120 \19
+ stime¥ec
+
+
+122
+__time_t
+
+tv_£c
+;
+
+123
+__sysÿÎ_¦Úg_t
+
+tv_n£c
+;
+
+127 #undeà
+__Ãed_time¥ec
+
+
+130 #ifdef
+_TIME_H
+
+
+131
+__BEGIN_NAMESPACE_STD
+
+
+133 \19
+ stm
+
+
+135 \12
+tm_£c
+;
+
+136 \12
+tm_m\9a
+;
+
+137 \12
+tm_hour
+;
+
+138 \12
+tm_mday
+;
+
+139 \12
+tm_mÚ
+;
+
+140 \12
+tm_y\97r
+;
+
+141 \12
+tm_wday
+;
+
+142 \12
+tm_yday
+;
+
+143 \12
+tm_isd¡
+;
+
+145 #ifdef
+__USE_MISC
+
+
+146 \13\12
+tm_gmtoff
+;
+
+147 cڡ \ 5*
+tm_zÚe
+;
+
+149 \13\12
+__tm_gmtoff
+;
+
+150 cڡ \ 5*
+__tm_zÚe
+;
+
+153
+__END_NAMESPACE_STD
+
+
+154 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_POSIX
+
+
+155
+ $__USING_NAMESPACE_STD
+(
+tm
+)
+
+159 #ifdeà
+__USE_POSIX199309
+
+
+161 \19
+ s\99im\94¥ec
+
+
+163 \19
+time¥ec
+
+\99_\9a\8brv®
+;
+
+164 \19
+time¥ec
+
+\99_v®ue
+;
+
+168 \19
+sigev\92t
+;
+
+172 #ifdeà
+__USE_XOPEN2K
+
+
+173 #iâdeà
+__pid_t_def\9aed
+
+
+174 \e
+__pid_t
+
+ tpid_t
+;
+
+175 \ 1
+ #__pid_t_def\9aed
+
+
+ )
+
+180 #ifdeà
+__USE_ISOC11
+
+
+182 \ 1
+ #TIME_UTC
+ 1
+
+ )
+
+186
+__BEGIN_NAMESPACE_STD
+
+
+189 \r
+þock_t
+
+ $þock
+ (\1eè
+__THROW
+;
+
+192 \r
+time_t
+
+ $time
+ (
+time_t
+ *
+__tim\94
+è
+__THROW
+;
+
+195 \r\b
+ $difáime
+ (
+time_t
+
+__time1
+,\81ime_\88
+__time0
+)
+
+196
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+199 \r
+time_t
+
+ $mktime
+ (\19
+tm
+ *
+__\8d
+è
+__THROW
+;
+
+205 \r
+size_t
+
+ $¡ráime
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__maxsize
+,
+
+206 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+207 cڡ \19
+tm
+ *
+__»¡riù
+
+__\8d
+è
+__THROW
+;
+
+208
+__END_NAMESPACE_STD
+
+
+210 #ifdeà
+__USE_XOPEN
+
+
+213 \r\ 5*
+ $¡½time
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+214 cڡ \ 5*
+__»¡riù
+
+__fmt
+, \19
+tm
+ *
+__\8d
+)
+
+215
+__THROW
+;
+
+218 #ifdeà
+__USE_XOPEN2K8
+
+
+221 \ 2
+ ~<xloÿË.h
+>
+
+223 \r
+size_t
+
+ $¡ráime_l
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__maxsize
+,
+
+224 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+225 cڡ \19
+tm
+ *
+__»¡riù
+
+__\8d
+,
+
+226
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+229 #ifdeà
+__USE_GNU
+
+
+230 \r\ 5*
+ $¡½time_l
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+
+231 cڡ \ 5*
+__»¡riù
+
+__fmt
+, \19
+tm
+ *
+__\8d
+,
+
+232
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+236
+__BEGIN_NAMESPACE_STD
+
+
+239 \r\19
+tm
+ *
+ $gmtime
+ (cڡ
+time_t
+ *
+__tim\94
+è
+__THROW
+;
+
+243 \r\19
+tm
+ *
+ $loÿÉime
+ (cڡ
+time_t
+ *
+__tim\94
+è
+__THROW
+;
+
+244
+__END_NAMESPACE_STD
+
+
+246 #ifdeà
+__USE_POSIX
+
+
+249 \r\19
+tm
+ *
+ $gmtime_r
+ (cڡ
+time_t
+ *
+__»¡riù
+
+__tim\94
+,
+
+250 \19
+tm
+ *
+__»¡riù
+
+__\8d
+è
+__THROW
+;
+
+254 \r\19
+tm
+ *
+ $loÿÉime_r
+ (cڡ
+time_t
+ *
+__»¡riù
+
+__tim\94
+,
+
+255 \19
+tm
+ *
+__»¡riù
+
+__\8d
+è
+__THROW
+;
+
+258
+__BEGIN_NAMESPACE_STD
+
+
+261 \r\ 5*
+ $asùime
+ (cڡ \19
+tm
+ *
+__\8d
+è
+__THROW
+;
+
+264 \r\ 5*
+ $ùime
+ (cڡ
+time_t
+ *
+__tim\94
+è
+__THROW
+;
+
+265
+__END_NAMESPACE_STD
+
+
+267 #ifdeà
+__USE_POSIX
+
+
+272 \r\ 5*
+ $asùime_r
+ (cڡ \19
+tm
+ *
+__»¡riù
+
+__\8d
+,
+
+273 \ 5*
+__»¡riù
+
+__buf
+è
+__THROW
+;
+
+276 \r\ 5*
+ $ùime_r
+ (cڡ
+time_t
+ *
+__»¡riù
+
+__tim\94
+,
+
+277 \ 5*
+__»¡riù
+
+__buf
+è
+__THROW
+;
+
+282 \r\ 5*
+__tzÇme
+[2];
+
+283 \r\12
+__daylight
+;
+
+284 \r\13\12
+__timezÚe
+;
+
+287 #ifdef
+__USE_POSIX
+
+
+289 \r\ 5*
+tzÇme
+[2];
+
+293 \r\1e
+ $tz£t
+ (\1eè
+__THROW
+;
+
+296 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+297 \r\12
+daylight
+;
+
+298 \r\13\12
+timezÚe
+;
+
+301 #ifdeà
+__USE_MISC
+
+
+304 \r\12
+ $¡ime
+ (cڡ
+time_t
+ *
+__wh\92
+è
+__THROW
+;
+
+310 \ 1
+ #__i¦\97p
+(
+y\97r
+) \
+
+311 ((
+y\97r
+è% 4 =ð0 && ((y\97rè% 100 !ð0 || (y\97rè% 400 =ð0))
+
+ )
+
+314 #ifdeà
+__USE_MISC
+
+
+319 \r
+time_t
+
+ $timegm
+ (\19
+tm
+ *
+__\8d
+è
+__THROW
+;
+
+322 \r
+time_t
+
+ $tim\96oÿl
+ (\19
+tm
+ *
+__\8d
+è
+__THROW
+;
+
+325 \r\12
+ $dysize
+ (\12
+__y\97r
+è
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+329 #ifdeà
+__USE_POSIX199309
+
+
+334 \r\12
+ `Çno¦\93p
+ (cڡ \19
+time¥ec
+ *
+__»que¡ed_time
+,
+
+335 \19
+time¥ec
+ *
+__»ma\9a\9ag
+);
+
+339 \r\12
+ $þock_g\91»s
+ (
+þockid_t
+
+__þock_id
+, \19
+time¥ec
+ *
+__»s
+è
+__THROW
+;
+
+342 \r\12
+ $þock_g\91time
+ (
+þockid_t
+
+__þock_id
+, \19
+time¥ec
+ *
+__\8d
+è
+__THROW
+;
+
+345 \r\12
+ $þock_£\89ime
+ (
+þockid_t
+
+__þock_id
+, cڡ \19
+time¥ec
+ *
+__\8d
+)
+
+346
+__THROW
+;
+
+348 #ifdeà
+__USE_XOPEN2K
+
+
+353 \r\12
+ `þock_Çno¦\93p
+ (
+þockid_t
+
+__þock_id
+, \12
+__æags
+,
+
+354 cڡ \19
+time¥ec
+ *
+__»q
+,
+
+355 \19
+time¥ec
+ *
+__»m
+);
+
+358 \r\12
+ $þock_g\91ýuþockid
+ (
+pid_t
+
+__pid
+,
+þockid_t
+ *
+__þock_id
+è
+__THROW
+;
+
+363 \r\12
+ $tim\94_ü\97\8b
+ (
+þockid_t
+
+__þock_id
+,
+
+364 \19
+sigev\92t
+ *
+__»¡riù
+
+__evp
+,
+
+365
+tim\94_t
+ *
+__»¡riù
+
+__tim\94id
+è
+__THROW
+;
+
+368 \r\12
+ $tim\94_d\96\91e
+ (
+tim\94_t
+
+__tim\94id
+è
+__THROW
+;
+
+371 \r\12
+ $tim\94_£\89ime
+ (
+tim\94_t
+
+__tim\94id
+, \12
+__æags
+,
+
+372 cڡ \19
+\99im\94¥ec
+ *
+__»¡riù
+
+__v®ue
+,
+
+373 \19
+\99im\94¥ec
+ *
+__»¡riù
+
+__ov®ue
+è
+__THROW
+;
+
+376 \r\12
+ $tim\94_g\91time
+ (
+tim\94_t
+
+__tim\94id
+, \19
+\99im\94¥ec
+ *
+__v®ue
+)
+
+377
+__THROW
+;
+
+380 \r\12
+ $tim\94_g\91ov\94run
+ (
+tim\94_t
+
+__tim\94id
+è
+__THROW
+;
+
+384 #ifdeà
+__USE_ISOC11
+
+
+386 \r\12
+ $time¥ec_g\91
+ (\19
+time¥ec
+ *
+__ts
+, \12
+__ba£
+)
+
+387
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+391 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+403 \r\12
+g\91d©e_\94r
+;
+
+412 \r\19
+tm
+ *
+ `g\91d©e
+ (cڡ \ 5*
+__¡r\9ag
+);
+
+415 #ifdeà
+__USE_GNU
+
+
+426 \r\12
+ `g\91d©e_r
+ (cڡ \ 5*
+__»¡riù
+
+__¡r\9ag
+,
+
+427 \19
+tm
+ *
+__»¡riù
+
+__»sbuå
+);
+
+430
+__END_DECLS
+
+
+ @/usr/include/unistd.h
+
+22 #iâdef
+_UNISTD_H
+
+
+23 \ 1
+ #_UNISTD_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+27
+ g__BEGIN_DECLS
+
+
+32 #ifdeà
+__USE_XOPEN2K8
+
+
+34 \ 1
+ #_POSIX_VERSION
+ 200809L
+
+ )
+
+35 #\96ià
+def\9aed
+
+__USE_XOPEN2K
+
+
+37 \ 1
+ #_POSIX_VERSION
+ 200112L
+
+ )
+
+38 #\96ià
+def\9aed
+
+__USE_POSIX199506
+
+
+40 \ 1
+ #_POSIX_VERSION
+ 199506L
+
+ )
+
+41 #\96ià
+def\9aed
+
+__USE_POSIX199309
+
+
+43 \ 1
+ #_POSIX_VERSION
+ 199309L
+
+ )
+
+46 \ 1
+ #_POSIX_VERSION
+ 199009L
+
+ )
+
+52 #ifdeà
+__USE_XOPEN2K8
+
+
+53 \ 1
+ #__POSIX2_THIS_VERSION
+ 200809L
+
+ )
+
+55 #\96ià
+def\9aed
+
+__USE_XOPEN2K
+
+
+57 \ 1
+ #__POSIX2_THIS_VERSION
+ 200112L
+
+ )
+
+58 #\96ià
+def\9aed
+
+__USE_POSIX199506
+
+
+60 \ 1
+ #__POSIX2_THIS_VERSION
+ 199506L
+
+ )
+
+63 \ 1
+ #__POSIX2_THIS_VERSION
+ 199209L
+
+ )
+
+67 \ 1
+ #_POSIX2_VERSION
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+70 \ 1
+ #_POSIX2_C_VERSION
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+74 \ 1
+ #_POSIX2_C_BIND
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+78 \ 1
+ #_POSIX2_C_DEV
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+82 \ 1
+ #_POSIX2_SW_DEV
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+86 \ 1
+ #_POSIX2_LOCALEDEF
+
+__POSIX2_THIS_VERSION
+
+
+ )
+
+89 #ifdeà
+__USE_XOPEN2K8
+
+
+90 \ 1
+ #_XOPEN_VERSION
+ 700
+
+ )
+
+91 #\96ià
+def\9aed
+
+__USE_XOPEN2K
+
+
+92 \ 1
+ #_XOPEN_VERSION
+ 600
+
+ )
+
+93 #\96ià
+def\9aed
+
+__USE_UNIX98
+
+
+94 \ 1
+ #_XOPEN_VERSION
+ 500
+
+ )
+
+96 \ 1
+ #_XOPEN_VERSION
+ 4
+
+ )
+
+100 \ 1
+ #_XOPEN_XCU_VERSION
+ 4
+
+ )
+
+103 \ 1
+ #_XOPEN_XPG2
+ 1
+
+ )
+
+104 \ 1
+ #_XOPEN_XPG3
+ 1
+
+ )
+
+105 \ 1
+ #_XOPEN_XPG4
+ 1
+
+ )
+
+108 \ 1
+ #_XOPEN_UNIX
+ 1
+
+ )
+
+111 \ 1
+ #_XOPEN_CRYPT
+ 1
+
+ )
+
+115 \ 1
+ #_XOPEN_ENH_I18N
+ 1
+
+ )
+
+118 \ 1
+ #_XOPEN_LEGACY
+ 1
+
+ )
+
+205 \ 2
+ ~<b\99s/posix_Ýt.h
+>
+
+208 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K
+
+
+209 \ 2
+ ~<b\99s/\92v\9cÚm\92ts.h
+>
+
+213 \ 1
+ #STDIN_FILENO
+ 0
+
+ )
+
+214 \ 1
+ #STDOUT_FILENO
+ 1
+
+ )
+
+215 \ 1
+ #STDERR_FILENO
+ 2
+
+ )
+
+220 \ 2
+ ~<b\99s/ty³s.h
+>
+
+222 #iâdef
+__ssize_t_def\9aed
+
+
+223 \e
+__ssize_t
+
+ tssize_t
+;
+
+224 \ 1
+ #__ssize_t_def\9aed
+
+
+ )
+
+227 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+228 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+229 \ 2
+ ~<¡ddef.h
+>
+
+231 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K
+
+
+234 #iâdeà
+__gid_t_def\9aed
+
+
+235 \e
+__gid_t
+
+ tgid_t
+;
+
+236 \ 1
+ #__gid_t_def\9aed
+
+
+ )
+
+239 #iâdeà
+__uid_t_def\9aed
+
+
+240 \e
+__uid_t
+
+ tuid_t
+;
+
+241 \ 1
+ #__uid_t_def\9aed
+
+
+ )
+
+244 #iâdeà
+__off_t_def\9aed
+
+
+245 #iâdeà
+__USE_FILE_OFFSET64
+
+
+246 \e
+__off_t
+
+ toff_t
+;
+
+248 \e
+__off64_t
+
+ toff_t
+;
+
+250 \ 1
+ #__off_t_def\9aed
+
+
+ )
+
+252 #ià
+def\9aed
+
+__USE_LARGEFILE64
+ && !def\9aed
+__off64_t_def\9aed
+
+
+253 \e
+__off64_t
+
+ toff64_t
+;
+
+254 \ 1
+ #__off64_t_def\9aed
+
+
+ )
+
+257 #iâdeà
+__u£cÚds_t_def\9aed
+
+
+258 \e
+__u£cÚds_t
+
+ tu£cÚds_t
+;
+
+259 \ 1
+ #__u£cÚds_t_def\9aed
+
+
+ )
+
+262 #iâdeà
+__pid_t_def\9aed
+
+
+263 \e
+__pid_t
+
+ tpid_t
+;
+
+264 \ 1
+ #__pid_t_def\9aed
+
+
+ )
+
+268 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K
+
+
+269 #iâdeà
+__\9a\8d\8c_t_def\9aed
+
+
+270 \e
+__\9a\8d\8c_t
+
+ t\9a\8d\8c_t
+;
+
+271 \ 1
+ #__\9a\8d\8c_t_def\9aed
+
+
+ )
+
+275 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+276 #iâdeà
+__sockËn_t_def\9aed
+
+
+277 \e
+__sockËn_t
+
+ tsockËn_t
+;
+
+278 \ 1
+ #__sockËn_t_def\9aed
+
+
+ )
+
+284 \ 1
+ #R_OK
+ 4
+
+ )
+
+285 \ 1
+ #W_OK
+ 2
+
+ )
+
+286 \ 1
+ #X_OK
+ 1
+
+ )
+
+287 \ 1
+ #F_OK
+ 0
+
+ )
+
+290 \r\12
+ $acûss
+ (cڡ \ 5*
+__Çme
+, \12
+__ty³
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+292 #ifdeà
+__USE_GNU
+
+
+295 \r\12
+ $euidacûss
+ (cڡ \ 5*
+__Çme
+, \12
+__ty³
+)
+
+296
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+299 \r\12
+ $\97cûss
+ (cڡ \ 5*
+__Çme
+, \12
+__ty³
+)
+
+300
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+303 #ifdeà
+__USE_ATFILE
+
+
+307 \r\12
+ $çcûs§t
+ (\12
+__fd
+, cڡ \ 5*
+__f\9ee
+, \12
+__ty³
+, \12
+__æag
+)
+
+308
+__THROW
+
+ `__nÚnuÎ
+ ((2)è
+__wur
+;
+
+313 #iâdef
+_STDIO_H
+
+
+314 \ 1
+ #SEEK_SET
+ 0
+
+ )
+
+315 \ 1
+ #SEEK_CUR
+ 1
+
+ )
+
+316 \ 1
+ #SEEK_END
+ 2
+
+ )
+
+317 #ifdeà
+__USE_GNU
+
+
+318 \ 1
+ #SEEK_DATA
+ 3
+
+ )
+
+319 \ 1
+ #SEEK_HOLE
+ 4
+
+ )
+
+323 #ià
+def\9aed
+
+__USE_MISC
+ && !def\9aed
+L_SET
+
+
+325 \ 1
+ #L_SET
+
+SEEK_SET
+
+
+ )
+
+326 \ 1
+ #L_INCR
+
+SEEK_CUR
+
+
+ )
+
+327 \ 1
+ #L_XTND
+
+SEEK_END
+
+
+ )
+
+336 #iâdeà
+__USE_FILE_OFFSET64
+
+
+337 \r
+__off_t
+
+ $l£ek
+ (\12
+__fd
+,
+__off_t
+
+__off£t
+, \12
+__wh\92û
+è
+__THROW
+;
+
+339 #ifdeà
+__REDIRECT_NTH
+
+
+340 \r
+__off64_t
+
+ `__REDIRECT_NTH
+ (
+l£ek
+,
+
+341 (\12
+__fd
+,
+__off64_t
+
+__off£t
+, \12
+__wh\92û
+),
+
+342
+l£ek64
+);
+
+344 \ 1
+ #l£ek
+
+l£ek64
+
+
+ )
+
+347 #ifdeà
+__USE_LARGEFILE64
+
+
+348 \r
+__off64_t
+
+ $l£ek64
+ (\12
+__fd
+,
+__off64_t
+
+__off£t
+, \12
+__wh\92û
+)
+
+349
+__THROW
+;
+
+356 \r\12
+ `þo£
+ (\12
+__fd
+);
+
+363 \r
+ssize_t
+
+ $»ad
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+è
+__wur
+;
+
+369 \r
+ssize_t
+
+ $wr\99e
+ (\12
+__fd
+, cڡ \1e*
+__buf
+,
+size_t
+
+__n
+è
+__wur
+;
+
+371 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K8
+
+
+372 #iâdeà
+__USE_FILE_OFFSET64
+
+
+379 \r
+ssize_t
+
+ $´\97d
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+380
+__off_t
+
+__off£t
+è
+__wur
+;
+
+387 \r
+ssize_t
+
+ $pwr\99e
+ (\12
+__fd
+, cڡ \1e*
+__buf
+,
+size_t
+
+__n
+,
+
+388
+__off_t
+
+__off£t
+è
+__wur
+;
+
+390 #ifdeà
+__REDIRECT
+
+
+391 \r
+ssize_t
+
+ `__REDIRECT
+ (
+´\97d
+, (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+392
+__off64_t
+
+__off£t
+),
+
+393
+´\97d64
+è
+__wur
+;
+
+394 \r
+ssize_t
+
+ `__REDIRECT
+ (
+pwr\99e
+, (\12
+__fd
+, cڡ \1e*
+__buf
+,
+
+395
+size_t
+
+__nby\8bs
+,
+__off64_t
+
+__off£t
+),
+
+396
+pwr\99e64
+è
+__wur
+;
+
+398 \ 1
+ #´\97d
+
+´\97d64
+
+
+ )
+
+399 \ 1
+ #pwr\99e
+
+pwr\99e64
+
+
+ )
+
+403 #ifdeà
+__USE_LARGEFILE64
+
+
+407 \r
+ssize_t
+
+ $´\97d64
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+408
+__off64_t
+
+__off£t
+è
+__wur
+;
+
+411 \r
+ssize_t
+
+ $pwr\99e64
+ (\12
+__fd
+, cڡ \1e*
+__buf
+,
+size_t
+
+__n
+,
+
+412
+__off64_t
+
+__off£t
+è
+__wur
+;
+
+420 \r\12
+ $p\9de
+ (\12
+__p\9dedes
+[2]è
+__THROW
+
+__wur
+;
+
+422 #ifdeà
+__USE_GNU
+
+
+425 \r\12
+ $p\9de2
+ (\12
+__p\9dedes
+[2], \12
+__æags
+è
+__THROW
+
+__wur
+;
+
+435 \r\1d\12
+ $®¬m
+ (\1d\12
+__£cÚds
+è
+__THROW
+;
+
+447 \r\1d\12
+ `¦\93p
+ (\1d\12
+__£cÚds
+);
+
+449 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K8
+) \
+
+450 ||
+def\9aed
+
+__USE_MISC
+
+
+455 \r
+__u£cÚds_t
+
+ $u®¬m
+ (
+__u£cÚds_t
+
+__v®ue
+, __u£cÚds_\88
+__\9a\8brv®
+)
+
+456
+__THROW
+;
+
+463 \r\12
+ `u¦\93p
+ (
+__u£cÚds_t
+
+__u£cÚds
+);
+
+472 \r\12
+ `·u£
+ (\1e);
+
+476 \r\12
+ $chown
+ (cڡ \ 5*
+__f\9ee
+,
+__uid_t
+
+__owÃr
+,
+__gid_t
+
+__group
+)
+
+477
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+479 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+481 \r\12
+ $fchown
+ (\12
+__fd
+,
+__uid_t
+
+__owÃr
+,
+__gid_t
+
+__group
+è
+__THROW
+
+__wur
+;
+
+486 \r\12
+ $lchown
+ (cڡ \ 5*
+__f\9ee
+,
+__uid_t
+
+__owÃr
+,
+__gid_t
+
+__group
+)
+
+487
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+491 #ifdeà
+__USE_ATFILE
+
+
+494 \r\12
+ $fchowÇt
+ (\12
+__fd
+, cڡ \ 5*
+__f\9ee
+,
+__uid_t
+
+__owÃr
+,
+
+495
+__gid_t
+
+__group
+, \12
+__æag
+)
+
+496
+__THROW
+
+ `__nÚnuÎ
+ ((2)è
+__wur
+;
+
+500 \r\12
+ $chd\9c
+ (cڡ \ 5*
+__·th
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+502 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+504 \r\12
+ $fchd\9c
+ (\12
+__fd
+è
+__THROW
+
+__wur
+;
+
+514 \r\ 5*
+ $g\91cwd
+ (\ 5*
+__buf
+,
+size_t
+
+__size
+è
+__THROW
+
+__wur
+;
+
+516 #ifdef
+__USE_GNU
+
+
+520 \r\ 5*
+ $g\91_cu¼\92t_d\9c_Çme
+ (\1eè
+__THROW
+;
+
+523 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K8
+) \
+
+524 ||
+def\9aed
+
+__USE_MISC
+
+
+528 \r\ 5*
+ $g\91wd
+ (\ 5*
+__buf
+)
+
+529
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__©\8cibu\8b_d\95»ÿ\8bd__
+
+__wur
+;
+
+534 \r\12
+ $dup
+ (\12
+__fd
+è
+__THROW
+
+__wur
+;
+
+537 \r\12
+ $dup2
+ (\12
+__fd
+, \12
+__fd2
+è
+__THROW
+;
+
+539 #ifdeà
+__USE_GNU
+
+
+542 \r\12
+ $dup3
+ (\12
+__fd
+, \12
+__fd2
+, \12
+__æags
+è
+__THROW
+;
+
+546 \r\ 5**
+__\92v\9cÚ
+;
+
+547 #ifdeà
+__USE_GNU
+
+
+548 \r\ 5**
+\92v\9cÚ
+;
+
+554 \r\12
+ $execve
+ (cڡ \ 5*
+__·th
+, \ 5*cڡ
+__¬gv
+[],
+
+555 \ 5*cڡ
+__\92vp
+[]è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+557 #ifdeà
+__USE_XOPEN2K8
+
+
+560 \r\12
+ $ãxecve
+ (\12
+__fd
+, \ 5*cڡ
+__¬gv
+[], \ 5*cڡ
+__\92vp
+[])
+
+561
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+566 \r\12
+ $execv
+ (cڡ \ 5*
+__·th
+, \ 5*cڡ
+__¬gv
+[])
+
+567
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+571 \r\12
+ $exeþe
+ (cڡ \ 5*
+__·th
+, cڡ \ 5*
+__¬g
+, ...)
+
+572
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+576 \r\12
+ $exeþ
+ (cڡ \ 5*
+__·th
+, cڡ \ 5*
+__¬g
+, ...)
+
+577
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+581 \r\12
+ $execvp
+ (cڡ \ 5*
+__f\9ee
+, \ 5*cڡ
+__¬gv
+[])
+
+582
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+587 \r\12
+ $exeþp
+ (cڡ \ 5*
+__f\9ee
+, cڡ \ 5*
+__¬g
+, ...)
+
+588
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+590 #ifdeà
+__USE_GNU
+
+
+593 \r\12
+ $execv³
+ (cڡ \ 5*
+__f\9ee
+, \ 5*cڡ
+__¬gv
+[],
+
+594 \ 5*cڡ
+__\92vp
+[])
+
+595
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+599 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+601 \r\12
+ $niû
+ (\12
+__\9ac
+è
+__THROW
+
+__wur
+;
+
+606 \r\1e
+ $_ex\99
+ (\12
+__¡©us
+è
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+612 \ 2
+ ~<b\99s/cÚâame.h
+>
+
+615 \r\13\12
+ $·thcÚf
+ (cڡ \ 5*
+__·th
+, \12
+__Çme
+)
+
+616
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+619 \r\13\12
+ $å©hcÚf
+ (\12
+__fd
+, \12
+__Çme
+è
+__THROW
+;
+
+622 \r\13\12
+ $syscÚf
+ (\12
+__Çme
+è
+__THROW
+;
+
+624 #ifdef
+__USE_POSIX2
+
+
+626 \r
+size_t
+
+ $cÚf¡r
+ (\12
+__Çme
+, \ 5*
+__buf
+,
+size_t
+
+__Ën
+è
+__THROW
+;
+
+631 \r
+__pid_t
+
+ $g\91pid
+ (\1eè
+__THROW
+;
+
+634 \r
+__pid_t
+
+ $g\91µid
+ (\1eè
+__THROW
+;
+
+637 \r
+__pid_t
+
+ $g\91pg½
+ (\1eè
+__THROW
+;
+
+640 \r
+__pid_t
+
+ $__g\91pgid
+ (
+__pid_t
+
+__pid
+è
+__THROW
+;
+
+641 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+642 \r
+__pid_t
+
+ $g\91pgid
+ (
+__pid_t
+
+__pid
+è
+__THROW
+;
+
+649 \r\12
+ $£\8dgid
+ (
+__pid_t
+
+__pid
+, __pid_\88
+__pgid
+è
+__THROW
+;
+
+651 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+663 \r\12
+ $£\8dg½
+ (\1eè
+__THROW
+;
+
+670 \r
+__pid_t
+
+ $£tsid
+ (\1eè
+__THROW
+;
+
+672 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+674 \r
+__pid_t
+
+ $g\91sid
+ (
+__pid_t
+
+__pid
+è
+__THROW
+;
+
+678 \r
+__uid_t
+
+ $g\91uid
+ (\1eè
+__THROW
+;
+
+681 \r
+__uid_t
+
+ $g\91euid
+ (\1eè
+__THROW
+;
+
+684 \r
+__gid_t
+
+ $g\91gid
+ (\1eè
+__THROW
+;
+
+687 \r
+__gid_t
+
+ $g\91egid
+ (\1eè
+__THROW
+;
+
+692 \r\12
+ $g\91groups
+ (\12
+__size
+,
+__gid_t
+
+__li¡
+[]è
+__THROW
+
+__wur
+;
+
+694 #ifdef
+__USE_GNU
+
+
+696 \r\12
+ $group_memb\94
+ (
+__gid_t
+
+__gid
+è
+__THROW
+;
+
+703 \r\12
+ $£tuid
+ (
+__uid_t
+
+__uid
+è
+__THROW
+
+__wur
+;
+
+705 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+708 \r\12
+ $£\8ceuid
+ (
+__uid_t
+
+__ruid
+, __uid_\88
+__euid
+è
+__THROW
+
+__wur
+;
+
+711 #ifdeà
+__USE_XOPEN2K
+
+
+713 \r\12
+ $£\8buid
+ (
+__uid_t
+
+__uid
+è
+__THROW
+
+__wur
+;
+
+720 \r\12
+ $£tgid
+ (
+__gid_t
+
+__gid
+è
+__THROW
+
+__wur
+;
+
+722 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+725 \r\12
+ $£\8cegid
+ (
+__gid_t
+
+__rgid
+, __gid_\88
+__egid
+è
+__THROW
+
+__wur
+;
+
+728 #ifdeà
+__USE_XOPEN2K
+
+
+730 \r\12
+ $£\8bgid
+ (
+__gid_t
+
+__gid
+è
+__THROW
+
+__wur
+;
+
+733 #ifdeà
+__USE_GNU
+
+
+736 \r\12
+ $g\91»suid
+ (
+__uid_t
+ *
+__ruid
+, __uid_\88*
+__euid
+, __uid_\88*
+__suid
+)
+
+737
+__THROW
+;
+
+741 \r\12
+ $g\91»sgid
+ (
+__gid_t
+ *
+__rgid
+, __gid_\88*
+__egid
+, __gid_\88*
+__sgid
+)
+
+742
+__THROW
+;
+
+746 \r\12
+ $£\8cesuid
+ (
+__uid_t
+
+__ruid
+, __uid_\88
+__euid
+, __uid_\88
+__suid
+)
+
+747
+__THROW
+
+__wur
+;
+
+751 \r\12
+ $£\8cesgid
+ (
+__gid_t
+
+__rgid
+, __gid_\88
+__egid
+, __gid_\88
+__sgid
+)
+
+752
+__THROW
+
+__wur
+;
+
+759 \r
+__pid_t
+
+ $fÜk
+ (\1eè
+__THROWNL
+;
+
+761 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K8
+) \
+
+762 ||
+def\9aed
+
+__USE_MISC
+
+
+767 \r
+__pid_t
+
+ $vfÜk
+ (\1eè
+__THROW
+;
+
+773 \r\ 5*
+ $\89yÇme
+ (\12
+__fd
+è
+__THROW
+;
+
+777 \r\12
+ $\89yÇme_r
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+)
+
+778
+__THROW
+
+ `__nÚnuÎ
+ ((2)è
+__wur
+;
+
+782 \r\12
+ $i§\89y
+ (\12
+__fd
+è
+__THROW
+;
+
+784 #ià
+def\9aed
+
+__USE_MISC
+ \
+
+785 || (
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_UNIX98
+)
+
+788 \r\12
+ $\89y¦Ù
+ (\1eè
+__THROW
+;
+
+793 \r\12
+ $l\9ak
+ (cڡ \ 5*
+__äom
+, cڡ \ 5*
+__to
+)
+
+794
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+796 #ifdeà
+__USE_ATFILE
+
+
+799 \r\12
+ $l\9ak©
+ (\12
+__äomfd
+, cڡ \ 5*
+__äom
+, \12
+__tofd
+,
+
+800 cڡ \ 5*
+__to
+, \12
+__æags
+)
+
+801
+__THROW
+
+ `__nÚnuÎ
+ ((2, 4)è
+__wur
+;
+
+804 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K
+
+
+806 \r\12
+ $syml\9ak
+ (cڡ \ 5*
+__äom
+, cڡ \ 5*
+__to
+)
+
+807
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+812 \r
+ssize_t
+
+ $»adl\9ak
+ (cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+813 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+)
+
+814
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+817 #ifdeà
+__USE_ATFILE
+
+
+819 \r\12
+ $syml\9ak©
+ (cڡ \ 5*
+__äom
+, \12
+__tofd
+,
+
+820 cڡ \ 5*
+__to
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 3)è
+__wur
+;
+
+823 \r
+ssize_t
+
+ $»adl\9ak©
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+824 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+)
+
+825
+__THROW
+
+ `__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+829 \r\12
+ $uƚk
+ (cڡ \ 5*
+__Çme
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+831 #ifdeà
+__USE_ATFILE
+
+
+833 \r\12
+ $uÆ\9ak©
+ (\12
+__fd
+, cڡ \ 5*
+__Çme
+, \12
+__æag
+)
+
+834
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+838 \r\12
+ $rmd\9c
+ (cڡ \ 5*
+__·th
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+842 \r
+__pid_t
+
+ $tcg\91pg½
+ (\12
+__fd
+è
+__THROW
+;
+
+845 \r\12
+ $tc£\8dg½
+ (\12
+__fd
+,
+__pid_t
+
+__pg½_id
+è
+__THROW
+;
+
+852 \r\ 5*
+ `g\91log\9a
+ (\1e);
+
+853 #ià
+def\9aed
+
+__USE_REENTRANT
+ || def\9aed
+__USE_POSIX199506
+
+
+860 \r\12
+ $g\91log\9a_r
+ (\ 5*
+__Çme
+,
+size_t
+
+__Çme_Ën
+è
+ `__nÚnuÎ
+ ((1));
+
+863 #ifdef
+__USE_MISC
+
+
+865 \r\12
+ $£\8eog\9a
+ (cڡ \ 5*
+__Çme
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+869 #ifdef
+__USE_POSIX2
+
+
+873 \ 1
+ #__Ãed_g\91Ýt
+
+
+ )
+
+874 \ 2
+ ~<g\91Ýt.h
+>
+
+878 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K
+
+
+882 \r\12
+ $g\91ho¡Çme
+ (\ 5*
+__Çme
+,
+size_t
+
+__Ën
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+886 #ià
+def\9aed
+
+__USE_MISC
+
+
+889 \r\12
+ $£tho¡Çme
+ (cڡ \ 5*
+__Çme
+,
+size_t
+
+__Ën
+)
+
+890
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+894 \r\12
+ $£tho¡id
+ (\13\12
+__id
+è
+__THROW
+
+__wur
+;
+
+900 \r\12
+ $g\91doma\9aÇme
+ (\ 5*
+__Çme
+,
+size_t
+
+__Ën
+)
+
+901
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+902 \r\12
+ $£tdoma\9aÇme
+ (cڡ \ 5*
+__Çme
+,
+size_t
+
+__Ën
+)
+
+903
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+909 \r\12
+ $vhªgup
+ (\1eè
+__THROW
+;
+
+912 \r\12
+ $»voke
+ (cڡ \ 5*
+__f\9ee
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+920 \r\12
+ $´of\9e
+ (\1d\16\12*
+__§m¶e_bufãr
+,
+size_t
+
+__size
+,
+
+921
+size_t
+
+__off£t
+, \1d\12
+__sÿË
+)
+
+922
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+928 \r\12
+ $acù
+ (cڡ \ 5*
+__Çme
+è
+__THROW
+;
+
+932 \r\ 5*
+ $g\91u£rsh\96l
+ (\1eè
+__THROW
+;
+
+933 \r\1e
+ $\92du£rsh\96l
+ (\1eè
+__THROW
+;
+
+934 \r\1e
+ $£tu£rsh\96l
+ (\1eè
+__THROW
+;
+
+940 \r\12
+ $d«mÚ
+ (\12
+__nochd\9c
+, \12
+__noþo£
+è
+__THROW
+
+__wur
+;
+
+944 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+)
+
+947 \r\12
+ $chroÙ
+ (cڡ \ 5*
+__·th
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+951 \r\ 5*
+ $g\91·ss
+ (cڡ \ 5*
+__´om±
+è
+ `__nÚnuÎ
+ ((1));
+
+959 \r\12
+ `fsync
+ (\12
+__fd
+);
+
+962 #ifdeà
+__USE_GNU
+
+
+965 \r\12
+ $syncfs
+ (\12
+__fd
+è
+__THROW
+;
+
+969 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+972 \r\13\12
+ `g\91ho¡id
+ (\1e);
+
+975 \r\1e
+ $sync
+ (\1eè
+__THROW
+;
+
+978 #ià
+def\9aed
+
+__USE_MISC
+ || !def\9aed
+__USE_XOPEN2K
+
+
+981 \r\12
+ $g\91·gesize
+ (\1eè
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+986 \r\12
+ $g\91d\8fbËsize
+ (\1eè
+__THROW
+;
+
+992 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+995 #iâdeà
+__USE_FILE_OFFSET64
+
+
+996 \r\12
+ $\8cunÿ\8b
+ (cڡ \ 5*
+__f\9ee
+,
+__off_t
+
+__Ëngth
+)
+
+997
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+999 #ifdeà
+__REDIRECT_NTH
+
+
+1000 \r\12
+ `__REDIRECT_NTH
+ (
+\8cunÿ\8b
+,
+
+1001 (cڡ \ 5*
+__f\9ee
+,
+__off64_t
+
+__Ëngth
+),
+
+1002
+\8cunÿ\8b64
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+1004 \ 1
+ #\8cunÿ\8b
+
+\8cunÿ\8b64
+
+
+ )
+
+1007 #ifdeà
+__USE_LARGEFILE64
+
+
+1008 \r\12
+ $\8cunÿ\8b64
+ (cڡ \ 5*
+__f\9ee
+,
+__off64_t
+
+__Ëngth
+)
+
+1009
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+1014 #ià
+def\9aed
+
+__USE_POSIX199309
+ \
+
+1015 ||
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K
+
+
+1018 #iâdeà
+__USE_FILE_OFFSET64
+
+
+1019 \r\12
+ $árunÿ\8b
+ (\12
+__fd
+,
+__off_t
+
+__Ëngth
+è
+__THROW
+
+__wur
+;
+
+1021 #ifdeà
+__REDIRECT_NTH
+
+
+1022 \r\12
+ `__REDIRECT_NTH
+ (
+árunÿ\8b
+, (\12
+__fd
+,
+__off64_t
+
+__Ëngth
+),
+
+1023
+árunÿ\8b64
+è
+__wur
+;
+
+1025 \ 1
+ #árunÿ\8b
+
+árunÿ\8b64
+
+
+ )
+
+1028 #ifdeà
+__USE_LARGEFILE64
+
+
+1029 \r\12
+ $árunÿ\8b64
+ (\12
+__fd
+,
+__off64_t
+
+__Ëngth
+è
+__THROW
+
+__wur
+;
+
+1035 #ià(
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ && !def\9aed
+__USE_XOPEN2K
+) \
+
+1036 ||
+def\9aed
+
+__USE_MISC
+
+
+1040 \r\12
+ $brk
+ (\1e*
+__addr
+è
+__THROW
+
+__wur
+;
+
+1046 \r\1e*
+ $sbrk
+ (
+\9a\8d\8c_t
+
+__d\96\8f
+è
+__THROW
+;
+
+1050 #ifdeà
+__USE_MISC
+
+
+1061 \r\13\12
+ $sysÿÎ
+ (\13\12
+__sy¢o
+, ...è
+__THROW
+;
+
+1066 #ià(
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+è&& !def\9aed
+F_LOCK
+
+
+1078 \ 1
+ #F_ULOCK
+ 0
+
+ )
+
+1079 \ 1
+ #F_LOCK
+ 1
+
+ )
+
+1080 \ 1
+ #F_TLOCK
+ 2
+
+ )
+
+1081 \ 1
+ #F_TEST
+ 3
+
+ )
+
+1083 #iâdeà
+__USE_FILE_OFFSET64
+
+
+1084 \r\12
+ $lockf
+ (\12
+__fd
+, \12
+__cmd
+,
+__off_t
+
+__Ën
+è
+__wur
+;
+
+1086 #ifdeà
+__REDIRECT
+
+
+1087 \r\12
+ `__REDIRECT
+ (
+lockf
+, (\12
+__fd
+, \12
+__cmd
+,
+__off64_t
+
+__Ën
+),
+
+1088
+lockf64
+è
+__wur
+;
+
+1090 \ 1
+ #lockf
+
+lockf64
+
+
+ )
+
+1093 #ifdeà
+__USE_LARGEFILE64
+
+
+1094 \r\12
+ $lockf64
+ (\12
+__fd
+, \12
+__cmd
+,
+__off64_t
+
+__Ën
+è
+__wur
+;
+
+1099 #ifdeà
+__USE_GNU
+
+
+1104 \ 1
+ #TEMP_FAILURE_RETRY
+(
+ex´essiÚ
+) \
+
+1105 (
+__ex\8bnsiÚ__
+ \
+
+1106 ({ \13\12
+__»suÉ
+; \
+
+1107 dØ
+__»suÉ
+ = (\13\12è(
+ex´essiÚ
+); \
+
+1108 \1f
+__»suÉ
+ =ð-1L &&
+\94ºo
+ =ð
+EINTR
+); \
+
+1109
+__»suÉ
+;
+ }
+}))
+
+ )
+
+1112 #ià
+def\9aed
+
+__USE_POSIX199309
+ || def\9aed
+__USE_UNIX98
+
+
+1115 \r\12
+fd©async
+ (\12
+__f\9edes
+);
+
+1121 #ifdef
+__USE_XOPEN
+
+
+1123 \r\ 5*
+ $üy±
+ (cڡ \ 5*
+__key
+, cڡ \ 5*
+__§É
+)
+
+1124
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+1128 \r\1e
+ $\92üy±
+ (\ 5*
+__glibc_block
+, \12
+__edæag
+)
+
+1129
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+1136 \r\1e
+ $swab
+ (cڡ \1e*
+__»¡riù
+
+__äom
+, \1e*__»¡riù
+__to
+,
+
+1137
+ssize_t
+
+__n
+è
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+1143 #ià
+def\9aed
+
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+
+
+1145 \r\ 5*
+ $ù\94mid
+ (\ 5*
+__s
+è
+__THROW
+;
+
+1150 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+1151 \ 2
+ ~<b\99s/uni¡d.h
+>
+
+1154
+__END_DECLS
+
+
+ @/usr/include/alloca.h
+
+18 #iâdef
+_ALLOCA_H
+
+
+19 \ 1
+ #_ALLOCA_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+23 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+24 \ 2
+ ~<¡ddef.h
+>
+
+26
+ g__BEGIN_DECLS
+
+
+29 #undeà
+®loÿ
+
+
+32 \r\1e*
+ $®loÿ
+ (
+size_t
+
+__size
+è
+__THROW
+;
+
+34 #ifdef
+__GNUC__
+
+
+35 \ 1
+ #®loÿ
+(
+size
+è
+ `__bu\9et\9a_®loÿ
+ (size)
+
+ )
+
+38
+__END_DECLS
+
+
+ @/usr/include/bits/byteswap.h
+
+19 #ià!
+def\9aed
+
+_BYTESWAP_H
+ && !def\9aed
+_NETINET_IN_H
+ && !def\9aed
+_ENDIAN_H
+
+
+23 #iâdeà
+_BITS_BYTESWAP_H
+
+
+24 \ 1
+ #_BITS_BYTESWAP_H
+ 1
+
+ )
+
+26 \ 2
+ ~<ã©u»s.h
+>
+
+27 \ 2
+ ~<b\99s/ty³s.h
+>
+
+28 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+31 \ 1
+ #__bsw_cÚ¡ªt_16
+(
+x
+) \
+
+32 ((\1d\16\12è((((
+x
+è>> 8è& 0xffè| (((xè& 0xffè<< 8)))
+
+ )
+
+35 \ 2
+ ~<b\99s/by\8bsw-16.h
+>
+
+38 \ 1
+ #__bsw_cÚ¡ªt_32
+(
+x
+) \
+
+39 ((((
+x
+) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
+
+40 (((
+x
+è& 0x0000ff00è<< 8è| (((xè& 0x000000ffè<< 24))
+
+ )
+
+42 #ifdeà
+__GNUC__
+
+
+43 #ià
+__GNUC_PREREQ
+ (4, 3)
+
+44 \18
+__\9al\9ae
+ \1d\12
+
+45
+ $__bsw_32
+ (\1d\12
+__bsx
+)
+
+47 \15
+ `__bu\9et\9a_bsw32
+ (
+__bsx
+);
+
+48
+ }
+}
+
+49 #\96ià
+__GNUC__
+ >= 2
+
+50 #ià
+__WORDSIZE
+ =ð64 || (
+def\9aed
+
+__i486__
+ || def\9aed
+__³Áium__
+ \
+
+51 ||
+def\9aed
+
+ g__³Áium´o__
+ || def\9aed
+ g__³Áium4__
+ \
+
+52 ||
+def\9aed
+
+ g__k8__
+ || def\9aed
+ g__©hlÚ__
+ \
+
+53 ||
+def\9aed
+
+ g__k6__
+ || def\9aed
+ g__nocÚa__
+ \
+
+54 ||
+def\9aed
+
+ g__cÜe2__
+ || def\9aed
+ g__geode__
+ \
+
+55 ||
+def\9aed
+
+ g__amdçm10__
+)
+
+58 \ 1
+ #__bsw_32
+(
+x
+) \
+
+59 (
+__ex\8bnsiÚ__
+ \
+
+60 ({ \1d\12
+__v
+,
+__x
+ = (
+x
+); \
+
+61 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__x
+)) \
+
+62
+__v
+ =
+ `__bsw_cÚ¡ªt_32
+ (
+__x
+); \
+
+64
+ `__asm__
+ ("bsw %0" : "ô" (
+__v
+è: "0" (
+__x
+)); \
+
+65
+__v
+; }))
+
+ )
+
+67 \ 1
+ #__bsw_32
+(
+x
+) \
+
+68 (
+__ex\8bnsiÚ__
+ \
+
+69 ({ \1d\12
+__v
+,
+__x
+ = (
+x
+); \
+
+70 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__x
+)) \
+
+71
+__v
+ =
+ `__bsw_cÚ¡ªt_32
+ (
+__x
+); \
+
+73
+ `__asm__
+ ("rorw $8, %w0;" \
+
+76 : "ô" (
+__v
+) \
+
+77 : "0" (
+__x
+) \
+
+79
+__v
+; }))
+
+ )
+
+82 \ 1
+ #__bsw_32
+(
+x
+) \
+
+83 (
+__ex\8bnsiÚ__
+ \
+
+84 ({ \1d\12
+__x
+ = (
+x
+);
+ `__bsw_cÚ¡ªt_32
+ (__x); }))
+
+ )
+
+87 \18
+__\9al\9ae
+ \1d\12
+
+88
+ $__bsw_32
+ (\1d\12
+__bsx
+)
+
+90 \15
+ `__bsw_cÚ¡ªt_32
+ (
+__bsx
+);
+
+91
+ }
+}
+
+95 #ià
+__GNUC_PREREQ
+ (2, 0)
+
+97 \ 1
+ #__bsw_cÚ¡ªt_64
+(
+x
+) \
+
+98 (
+ `__ex\8bnsiÚ__
+ ((((
+x
+) & 0xff00000000000000ull) >> 56) \
+
+99 | (((
+x
+) & 0x00ff000000000000ull) >> 40) \
+
+100 | (((
+x
+) & 0x0000ff0000000000ull) >> 24) \
+
+101 | (((
+x
+) & 0x000000ff00000000ull) >> 8) \
+
+102 | (((
+x
+) & 0x00000000ff000000ull) << 8) \
+
+103 | (((
+x
+) & 0x0000000000ff0000ull) << 24) \
+
+104 | (((
+x
+) & 0x000000000000ff00ull) << 40) \
+
+105 | (((
+x
+è& 0x00000000000000ffuÎè<< 56)))
+
+ )
+
+107 #ià
+__GNUC_PREREQ
+ (4, 3)
+
+108 \18
+__\9al\9ae
+
+__u\9at64_t
+
+
+109
+ $__bsw_64
+ (
+__u\9at64_t
+
+__bsx
+)
+
+111 \15
+ `__bu\9et\9a_bsw64
+ (
+__bsx
+);
+
+112
+ }
+}
+
+113 #\96ià
+__WORDSIZE
+ == 64
+
+114 \ 1
+ #__bsw_64
+(
+x
+) \
+
+115 (
+__ex\8bnsiÚ__
+ \
+
+116 ({
+__u\9at64_t
+
+__v
+,
+__x
+ = (
+x
+); \
+
+117 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__x
+)) \
+
+118
+__v
+ =
+ `__bsw_cÚ¡ªt_64
+ (
+__x
+); \
+
+120
+ `__asm__
+ ("bsw %q0" : "ô" (
+__v
+è: "0" (
+__x
+)); \
+
+121
+__v
+; }))
+
+ )
+
+123 \ 1
+ #__bsw_64
+(
+x
+) \
+
+124 (
+__ex\8bnsiÚ__
+ \
+
+125 ({ uniÚ {
+__ex\8bnsiÚ__
+
+__u\9at64_t
+
+__Î
+; \
+
+126 \1d\12
+__l
+[2]; }
+__w
+,
+__r
+; \
+
+127 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+x
+)) \
+
+128
+__r
+.
+__Î
+ =
+ `__bsw_cÚ¡ªt_64
+ (
+x
+); \
+
+131
+__w
+.
+__Î
+ = (
+x
+); \
+
+132
+__r
+.
+__l
+[0] =
+ `__bsw_32
+ (
+__w
+.__l[1]); \
+
+133
+__r
+.
+__l
+[1] =
+ `__bsw_32
+ (
+__w
+.__l[0]); \
+
+135
+__r
+.
+__Î
+; }))
+
+ )
+
+138 \ 1
+ #__bsw_cÚ¡ªt_64
+(
+x
+) \
+
+139 ((((
+x
+) & 0xff00000000000000ull) >> 56) \
+
+140 | (((
+x
+) & 0x00ff000000000000ull) >> 40) \
+
+141 | (((
+x
+) & 0x0000ff0000000000ull) >> 24) \
+
+142 | (((
+x
+) & 0x000000ff00000000ull) >> 8) \
+
+143 | (((
+x
+) & 0x00000000ff000000ull) << 8) \
+
+144 | (((
+x
+) & 0x0000000000ff0000ull) << 24) \
+
+145 | (((
+x
+) & 0x000000000000ff00ull) << 40) \
+
+146 | (((
+x
+è& 0x00000000000000ffuÎè<< 56))
+
+ )
+
+148 \18
+__\9al\9ae
+
+__u\9at64_t
+
+
+149
+ $__bsw_64
+ (
+__u\9at64_t
+
+__bsx
+)
+
+151 \15
+ `__bsw_cÚ¡ªt_64
+ (
+__bsx
+);
+
+152
+ }
+}
+
+ @/usr/include/bits/confname.h
+
+19 #iâdeà
+_UNISTD_H
+
+
+26
+ m_PC_LINK_MAX
+,
+
+27 \ 1
+ #_PC_LINK_MAX
+
+_PC_LINK_MAX
+
+
+ )
+
+28
+ m_PC_MAX_CANON
+,
+
+29 \ 1
+ #_PC_MAX_CANON
+
+_PC_MAX_CANON
+
+
+ )
+
+30
+ m_PC_MAX_INPUT
+,
+
+31 \ 1
+ #_PC_MAX_INPUT
+
+_PC_MAX_INPUT
+
+
+ )
+
+32
+ m_PC_NAME_MAX
+,
+
+33 \ 1
+ #_PC_NAME_MAX
+
+_PC_NAME_MAX
+
+
+ )
+
+34
+ m_PC_PATH_MAX
+,
+
+35 \ 1
+ #_PC_PATH_MAX
+
+_PC_PATH_MAX
+
+
+ )
+
+36
+ m_PC_PIPE_BUF
+,
+
+37 \ 1
+ #_PC_PIPE_BUF
+
+_PC_PIPE_BUF
+
+
+ )
+
+38
+ m_PC_CHOWN_RESTRICTED
+,
+
+39 \ 1
+ #_PC_CHOWN_RESTRICTED
+
+_PC_CHOWN_RESTRICTED
+
+
+ )
+
+40
+ m_PC_NO_TRUNC
+,
+
+41 \ 1
+ #_PC_NO_TRUNC
+
+_PC_NO_TRUNC
+
+
+ )
+
+42
+ m_PC_VDISABLE
+,
+
+43 \ 1
+ #_PC_VDISABLE
+
+_PC_VDISABLE
+
+
+ )
+
+44
+ m_PC_SYNC_IO
+,
+
+45 \ 1
+ #_PC_SYNC_IO
+
+_PC_SYNC_IO
+
+
+ )
+
+46
+ m_PC_ASYNC_IO
+,
+
+47 \ 1
+ #_PC_ASYNC_IO
+
+_PC_ASYNC_IO
+
+
+ )
+
+48
+ m_PC_PRIO_IO
+,
+
+49 \ 1
+ #_PC_PRIO_IO
+
+_PC_PRIO_IO
+
+
+ )
+
+50
+ m_PC_SOCK_MAXBUF
+,
+
+51 \ 1
+ #_PC_SOCK_MAXBUF
+
+_PC_SOCK_MAXBUF
+
+
+ )
+
+52
+ m_PC_FILESIZEBITS
+,
+
+53 \ 1
+ #_PC_FILESIZEBITS
+
+_PC_FILESIZEBITS
+
+
+ )
+
+54
+ m_PC_REC_INCR_XFER_SIZE
+,
+
+55 \ 1
+ #_PC_REC_INCR_XFER_SIZE
+
+_PC_REC_INCR_XFER_SIZE
+
+
+ )
+
+56
+ m_PC_REC_MAX_XFER_SIZE
+,
+
+57 \ 1
+ #_PC_REC_MAX_XFER_SIZE
+
+_PC_REC_MAX_XFER_SIZE
+
+
+ )
+
+58
+ m_PC_REC_MIN_XFER_SIZE
+,
+
+59 \ 1
+ #_PC_REC_MIN_XFER_SIZE
+
+_PC_REC_MIN_XFER_SIZE
+
+
+ )
+
+60
+ m_PC_REC_XFER_ALIGN
+,
+
+61 \ 1
+ #_PC_REC_XFER_ALIGN
+
+_PC_REC_XFER_ALIGN
+
+
+ )
+
+62
+ m_PC_ALLOC_SIZE_MIN
+,
+
+63 \ 1
+ #_PC_ALLOC_SIZE_MIN
+
+_PC_ALLOC_SIZE_MIN
+
+
+ )
+
+64
+ m_PC_SYMLINK_MAX
+,
+
+65 \ 1
+ #_PC_SYMLINK_MAX
+
+_PC_SYMLINK_MAX
+
+
+ )
+
+66
+ m_PC_2_SYMLINKS
+
+
+67 \ 1
+ #_PC_2_SYMLINKS
+
+_PC_2_SYMLINKS
+
+
+ )
+
+73
+ m_SC_ARG_MAX
+,
+
+74 \ 1
+ #_SC_ARG_MAX
+
+_SC_ARG_MAX
+
+
+ )
+
+75
+ m_SC_CHILD_MAX
+,
+
+76 \ 1
+ #_SC_CHILD_MAX
+
+_SC_CHILD_MAX
+
+
+ )
+
+77
+ m_SC_CLK_TCK
+,
+
+78 \ 1
+ #_SC_CLK_TCK
+
+_SC_CLK_TCK
+
+
+ )
+
+79
+ m_SC_NGROUPS_MAX
+,
+
+80 \ 1
+ #_SC_NGROUPS_MAX
+
+_SC_NGROUPS_MAX
+
+
+ )
+
+81
+ m_SC_OPEN_MAX
+,
+
+82 \ 1
+ #_SC_OPEN_MAX
+
+_SC_OPEN_MAX
+
+
+ )
+
+83
+ m_SC_STREAM_MAX
+,
+
+84 \ 1
+ #_SC_STREAM_MAX
+
+_SC_STREAM_MAX
+
+
+ )
+
+85
+ m_SC_TZNAME_MAX
+,
+
+86 \ 1
+ #_SC_TZNAME_MAX
+
+_SC_TZNAME_MAX
+
+
+ )
+
+87
+ m_SC_JOB_CONTROL
+,
+
+88 \ 1
+ #_SC_JOB_CONTROL
+
+_SC_JOB_CONTROL
+
+
+ )
+
+89
+ m_SC_SAVED_IDS
+,
+
+90 \ 1
+ #_SC_SAVED_IDS
+
+_SC_SAVED_IDS
+
+
+ )
+
+91
+ m_SC_REALTIME_SIGNALS
+,
+
+92 \ 1
+ #_SC_REALTIME_SIGNALS
+
+_SC_REALTIME_SIGNALS
+
+
+ )
+
+93
+ m_SC_PRIORITY_SCHEDULING
+,
+
+94 \ 1
+ #_SC_PRIORITY_SCHEDULING
+
+_SC_PRIORITY_SCHEDULING
+
+
+ )
+
+95
+ m_SC_TIMERS
+,
+
+96 \ 1
+ #_SC_TIMERS
+
+_SC_TIMERS
+
+
+ )
+
+97
+ m_SC_ASYNCHRONOUS_IO
+,
+
+98 \ 1
+ #_SC_ASYNCHRONOUS_IO
+
+_SC_ASYNCHRONOUS_IO
+
+
+ )
+
+99
+ m_SC_PRIORITIZED_IO
+,
+
+100 \ 1
+ #_SC_PRIORITIZED_IO
+
+_SC_PRIORITIZED_IO
+
+
+ )
+
+101
+ m_SC_SYNCHRONIZED_IO
+,
+
+102 \ 1
+ #_SC_SYNCHRONIZED_IO
+
+_SC_SYNCHRONIZED_IO
+
+
+ )
+
+103
+ m_SC_FSYNC
+,
+
+104 \ 1
+ #_SC_FSYNC
+
+_SC_FSYNC
+
+
+ )
+
+105
+ m_SC_MAPPED_FILES
+,
+
+106 \ 1
+ #_SC_MAPPED_FILES
+
+_SC_MAPPED_FILES
+
+
+ )
+
+107
+ m_SC_MEMLOCK
+,
+
+108 \ 1
+ #_SC_MEMLOCK
+
+_SC_MEMLOCK
+
+
+ )
+
+109
+ m_SC_MEMLOCK_RANGE
+,
+
+110 \ 1
+ #_SC_MEMLOCK_RANGE
+
+_SC_MEMLOCK_RANGE
+
+
+ )
+
+111
+ m_SC_MEMORY_PROTECTION
+,
+
+112 \ 1
+ #_SC_MEMORY_PROTECTION
+
+_SC_MEMORY_PROTECTION
+
+
+ )
+
+113
+ m_SC_MESSAGE_PASSING
+,
+
+114 \ 1
+ #_SC_MESSAGE_PASSING
+
+_SC_MESSAGE_PASSING
+
+
+ )
+
+115
+ m_SC_SEMAPHORES
+,
+
+116 \ 1
+ #_SC_SEMAPHORES
+
+_SC_SEMAPHORES
+
+
+ )
+
+117
+ m_SC_SHARED_MEMORY_OBJECTS
+,
+
+118 \ 1
+ #_SC_SHARED_MEMORY_OBJECTS
+
+_SC_SHARED_MEMORY_OBJECTS
+
+
+ )
+
+119
+ m_SC_AIO_LISTIO_MAX
+,
+
+120 \ 1
+ #_SC_AIO_LISTIO_MAX
+
+_SC_AIO_LISTIO_MAX
+
+
+ )
+
+121
+ m_SC_AIO_MAX
+,
+
+122 \ 1
+ #_SC_AIO_MAX
+
+_SC_AIO_MAX
+
+
+ )
+
+123
+ m_SC_AIO_PRIO_DELTA_MAX
+,
+
+124 \ 1
+ #_SC_AIO_PRIO_DELTA_MAX
+
+_SC_AIO_PRIO_DELTA_MAX
+
+
+ )
+
+125
+ m_SC_DELAYTIMER_MAX
+,
+
+126 \ 1
+ #_SC_DELAYTIMER_MAX
+
+_SC_DELAYTIMER_MAX
+
+
+ )
+
+127
+ m_SC_MQ_OPEN_MAX
+,
+
+128 \ 1
+ #_SC_MQ_OPEN_MAX
+
+_SC_MQ_OPEN_MAX
+
+
+ )
+
+129
+ m_SC_MQ_PRIO_MAX
+,
+
+130 \ 1
+ #_SC_MQ_PRIO_MAX
+
+_SC_MQ_PRIO_MAX
+
+
+ )
+
+131
+ m_SC_VERSION
+,
+
+132 \ 1
+ #_SC_VERSION
+
+_SC_VERSION
+
+
+ )
+
+133
+ m_SC_PAGESIZE
+,
+
+134 \ 1
+ #_SC_PAGESIZE
+
+_SC_PAGESIZE
+
+
+ )
+
+135 \ 1
+ #_SC_PAGE_SIZE
+
+_SC_PAGESIZE
+
+
+ )
+
+136
+ m_SC_RTSIG_MAX
+,
+
+137 \ 1
+ #_SC_RTSIG_MAX
+
+_SC_RTSIG_MAX
+
+
+ )
+
+138
+ m_SC_SEM_NSEMS_MAX
+,
+
+139 \ 1
+ #_SC_SEM_NSEMS_MAX
+
+_SC_SEM_NSEMS_MAX
+
+
+ )
+
+140
+ m_SC_SEM_VALUE_MAX
+,
+
+141 \ 1
+ #_SC_SEM_VALUE_MAX
+
+_SC_SEM_VALUE_MAX
+
+
+ )
+
+142
+ m_SC_SIGQUEUE_MAX
+,
+
+143 \ 1
+ #_SC_SIGQUEUE_MAX
+
+_SC_SIGQUEUE_MAX
+
+
+ )
+
+144
+ m_SC_TIMER_MAX
+,
+
+145 \ 1
+ #_SC_TIMER_MAX
+
+_SC_TIMER_MAX
+
+
+ )
+
+149
+ m_SC_BC_BASE_MAX
+,
+
+150 \ 1
+ #_SC_BC_BASE_MAX
+
+_SC_BC_BASE_MAX
+
+
+ )
+
+151
+ m_SC_BC_DIM_MAX
+,
+
+152 \ 1
+ #_SC_BC_DIM_MAX
+
+_SC_BC_DIM_MAX
+
+
+ )
+
+153
+ m_SC_BC_SCALE_MAX
+,
+
+154 \ 1
+ #_SC_BC_SCALE_MAX
+
+_SC_BC_SCALE_MAX
+
+
+ )
+
+155
+ m_SC_BC_STRING_MAX
+,
+
+156 \ 1
+ #_SC_BC_STRING_MAX
+
+_SC_BC_STRING_MAX
+
+
+ )
+
+157
+ m_SC_COLL_WEIGHTS_MAX
+,
+
+158 \ 1
+ #_SC_COLL_WEIGHTS_MAX
+
+_SC_COLL_WEIGHTS_MAX
+
+
+ )
+
+159
+ m_SC_EQUIV_CLASS_MAX
+,
+
+160 \ 1
+ #_SC_EQUIV_CLASS_MAX
+
+_SC_EQUIV_CLASS_MAX
+
+
+ )
+
+161
+ m_SC_EXPR_NEST_MAX
+,
+
+162 \ 1
+ #_SC_EXPR_NEST_MAX
+
+_SC_EXPR_NEST_MAX
+
+
+ )
+
+163
+ m_SC_LINE_MAX
+,
+
+164 \ 1
+ #_SC_LINE_MAX
+
+_SC_LINE_MAX
+
+
+ )
+
+165
+ m_SC_RE_DUP_MAX
+,
+
+166 \ 1
+ #_SC_RE_DUP_MAX
+
+_SC_RE_DUP_MAX
+
+
+ )
+
+167
+ m_SC_CHARCLASS_NAME_MAX
+,
+
+168 \ 1
+ #_SC_CHARCLASS_NAME_MAX
+
+_SC_CHARCLASS_NAME_MAX
+
+
+ )
+
+170
+ m_SC_2_VERSION
+,
+
+171 \ 1
+ #_SC_2_VERSION
+
+_SC_2_VERSION
+
+
+ )
+
+172
+ m_SC_2_C_BIND
+,
+
+173 \ 1
+ #_SC_2_C_BIND
+
+_SC_2_C_BIND
+
+
+ )
+
+174
+ m_SC_2_C_DEV
+,
+
+175 \ 1
+ #_SC_2_C_DEV
+
+_SC_2_C_DEV
+
+
+ )
+
+176
+ m_SC_2_FORT_DEV
+,
+
+177 \ 1
+ #_SC_2_FORT_DEV
+
+_SC_2_FORT_DEV
+
+
+ )
+
+178
+ m_SC_2_FORT_RUN
+,
+
+179 \ 1
+ #_SC_2_FORT_RUN
+
+_SC_2_FORT_RUN
+
+
+ )
+
+180
+ m_SC_2_SW_DEV
+,
+
+181 \ 1
+ #_SC_2_SW_DEV
+
+_SC_2_SW_DEV
+
+
+ )
+
+182
+ m_SC_2_LOCALEDEF
+,
+
+183 \ 1
+ #_SC_2_LOCALEDEF
+
+_SC_2_LOCALEDEF
+
+
+ )
+
+185
+ m_SC_PII
+,
+
+186 \ 1
+ #_SC_PII
+
+_SC_PII
+
+
+ )
+
+187
+ m_SC_PII_XTI
+,
+
+188 \ 1
+ #_SC_PII_XTI
+
+_SC_PII_XTI
+
+
+ )
+
+189
+ m_SC_PII_SOCKET
+,
+
+190 \ 1
+ #_SC_PII_SOCKET
+
+_SC_PII_SOCKET
+
+
+ )
+
+191
+ m_SC_PII_INTERNET
+,
+
+192 \ 1
+ #_SC_PII_INTERNET
+
+_SC_PII_INTERNET
+
+
+ )
+
+193
+ m_SC_PII_OSI
+,
+
+194 \ 1
+ #_SC_PII_OSI
+
+_SC_PII_OSI
+
+
+ )
+
+195
+ m_SC_POLL
+,
+
+196 \ 1
+ #_SC_POLL
+
+_SC_POLL
+
+
+ )
+
+197
+ m_SC_SELECT
+,
+
+198 \ 1
+ #_SC_SELECT
+
+_SC_SELECT
+
+
+ )
+
+199
+ m_SC_UIO_MAXIOV
+,
+
+200 \ 1
+ #_SC_UIO_MAXIOV
+
+_SC_UIO_MAXIOV
+
+
+ )
+
+201
+ m_SC_IOV_MAX
+ =
+_SC_UIO_MAXIOV
+,
+
+202 \ 1
+ #_SC_IOV_MAX
+
+_SC_IOV_MAX
+
+
+ )
+
+203
+ m_SC_PII_INTERNET_STREAM
+,
+
+204 \ 1
+ #_SC_PII_INTERNET_STREAM
+
+_SC_PII_INTERNET_STREAM
+
+
+ )
+
+205
+ m_SC_PII_INTERNET_DGRAM
+,
+
+206 \ 1
+ #_SC_PII_INTERNET_DGRAM
+
+_SC_PII_INTERNET_DGRAM
+
+
+ )
+
+207
+ m_SC_PII_OSI_COTS
+,
+
+208 \ 1
+ #_SC_PII_OSI_COTS
+
+_SC_PII_OSI_COTS
+
+
+ )
+
+209
+ m_SC_PII_OSI_CLTS
+,
+
+210 \ 1
+ #_SC_PII_OSI_CLTS
+
+_SC_PII_OSI_CLTS
+
+
+ )
+
+211
+ m_SC_PII_OSI_M
+,
+
+212 \ 1
+ #_SC_PII_OSI_M
+
+_SC_PII_OSI_M
+
+
+ )
+
+213
+ m_SC_T_IOV_MAX
+,
+
+214 \ 1
+ #_SC_T_IOV_MAX
+
+_SC_T_IOV_MAX
+
+
+ )
+
+217
+ m_SC_THREADS
+,
+
+218 \ 1
+ #_SC_THREADS
+
+_SC_THREADS
+
+
+ )
+
+219
+ m_SC_THREAD_SAFE_FUNCTIONS
+,
+
+220 \ 1
+ #_SC_THREAD_SAFE_FUNCTIONS
+
+_SC_THREAD_SAFE_FUNCTIONS
+
+
+ )
+
+221
+ m_SC_GETGR_R_SIZE_MAX
+,
+
+222 \ 1
+ #_SC_GETGR_R_SIZE_MAX
+
+_SC_GETGR_R_SIZE_MAX
+
+
+ )
+
+223
+ m_SC_GETPW_R_SIZE_MAX
+,
+
+224 \ 1
+ #_SC_GETPW_R_SIZE_MAX
+
+_SC_GETPW_R_SIZE_MAX
+
+
+ )
+
+225
+ m_SC_LOGIN_NAME_MAX
+,
+
+226 \ 1
+ #_SC_LOGIN_NAME_MAX
+
+_SC_LOGIN_NAME_MAX
+
+
+ )
+
+227
+ m_SC_TTY_NAME_MAX
+,
+
+228 \ 1
+ #_SC_TTY_NAME_MAX
+
+_SC_TTY_NAME_MAX
+
+
+ )
+
+229
+ m_SC_THREAD_DESTRUCTOR_ITERATIONS
+,
+
+230 \ 1
+ #_SC_THREAD_DESTRUCTOR_ITERATIONS
+
+_SC_THREAD_DESTRUCTOR_ITERATIONS
+
+
+ )
+
+231
+ m_SC_THREAD_KEYS_MAX
+,
+
+232 \ 1
+ #_SC_THREAD_KEYS_MAX
+
+_SC_THREAD_KEYS_MAX
+
+
+ )
+
+233
+ m_SC_THREAD_STACK_MIN
+,
+
+234 \ 1
+ #_SC_THREAD_STACK_MIN
+
+_SC_THREAD_STACK_MIN
+
+
+ )
+
+235
+ m_SC_THREAD_THREADS_MAX
+,
+
+236 \ 1
+ #_SC_THREAD_THREADS_MAX
+
+_SC_THREAD_THREADS_MAX
+
+
+ )
+
+237
+ m_SC_THREAD_ATTR_STACKADDR
+,
+
+238 \ 1
+ #_SC_THREAD_ATTR_STACKADDR
+
+_SC_THREAD_ATTR_STACKADDR
+
+
+ )
+
+239
+ m_SC_THREAD_ATTR_STACKSIZE
+,
+
+240 \ 1
+ #_SC_THREAD_ATTR_STACKSIZE
+
+_SC_THREAD_ATTR_STACKSIZE
+
+
+ )
+
+241
+ m_SC_THREAD_PRIORITY_SCHEDULING
+,
+
+242 \ 1
+ #_SC_THREAD_PRIORITY_SCHEDULING
+
+_SC_THREAD_PRIORITY_SCHEDULING
+
+
+ )
+
+243
+ m_SC_THREAD_PRIO_INHERIT
+,
+
+244 \ 1
+ #_SC_THREAD_PRIO_INHERIT
+
+_SC_THREAD_PRIO_INHERIT
+
+
+ )
+
+245
+ m_SC_THREAD_PRIO_PROTECT
+,
+
+246 \ 1
+ #_SC_THREAD_PRIO_PROTECT
+
+_SC_THREAD_PRIO_PROTECT
+
+
+ )
+
+247
+ m_SC_THREAD_PROCESS_SHARED
+,
+
+248 \ 1
+ #_SC_THREAD_PROCESS_SHARED
+
+_SC_THREAD_PROCESS_SHARED
+
+
+ )
+
+250
+ m_SC_NPROCESSORS_CONF
+,
+
+251 \ 1
+ #_SC_NPROCESSORS_CONF
+
+_SC_NPROCESSORS_CONF
+
+
+ )
+
+252
+ m_SC_NPROCESSORS_ONLN
+,
+
+253 \ 1
+ #_SC_NPROCESSORS_ONLN
+
+_SC_NPROCESSORS_ONLN
+
+
+ )
+
+254
+ m_SC_PHYS_PAGES
+,
+
+255 \ 1
+ #_SC_PHYS_PAGES
+
+_SC_PHYS_PAGES
+
+
+ )
+
+256
+ m_SC_AVPHYS_PAGES
+,
+
+257 \ 1
+ #_SC_AVPHYS_PAGES
+
+_SC_AVPHYS_PAGES
+
+
+ )
+
+258
+ m_SC_ATEXIT_MAX
+,
+
+259 \ 1
+ #_SC_ATEXIT_MAX
+
+_SC_ATEXIT_MAX
+
+
+ )
+
+260
+ m_SC_PASS_MAX
+,
+
+261 \ 1
+ #_SC_PASS_MAX
+
+_SC_PASS_MAX
+
+
+ )
+
+263
+ m_SC_XOPEN_VERSION
+,
+
+264 \ 1
+ #_SC_XOPEN_VERSION
+
+_SC_XOPEN_VERSION
+
+
+ )
+
+265
+ m_SC_XOPEN_XCU_VERSION
+,
+
+266 \ 1
+ #_SC_XOPEN_XCU_VERSION
+
+_SC_XOPEN_XCU_VERSION
+
+
+ )
+
+267
+ m_SC_XOPEN_UNIX
+,
+
+268 \ 1
+ #_SC_XOPEN_UNIX
+
+_SC_XOPEN_UNIX
+
+
+ )
+
+269
+ m_SC_XOPEN_CRYPT
+,
+
+270 \ 1
+ #_SC_XOPEN_CRYPT
+
+_SC_XOPEN_CRYPT
+
+
+ )
+
+271
+ m_SC_XOPEN_ENH_I18N
+,
+
+272 \ 1
+ #_SC_XOPEN_ENH_I18N
+
+_SC_XOPEN_ENH_I18N
+
+
+ )
+
+273
+ m_SC_XOPEN_SHM
+,
+
+274 \ 1
+ #_SC_XOPEN_SHM
+
+_SC_XOPEN_SHM
+
+
+ )
+
+276
+ m_SC_2_CHAR_TERM
+,
+
+277 \ 1
+ #_SC_2_CHAR_TERM
+
+_SC_2_CHAR_TERM
+
+
+ )
+
+278
+ m_SC_2_C_VERSION
+,
+
+279 \ 1
+ #_SC_2_C_VERSION
+
+_SC_2_C_VERSION
+
+
+ )
+
+280
+ m_SC_2_UPE
+,
+
+281 \ 1
+ #_SC_2_UPE
+
+_SC_2_UPE
+
+
+ )
+
+283
+ m_SC_XOPEN_XPG2
+,
+
+284 \ 1
+ #_SC_XOPEN_XPG2
+
+_SC_XOPEN_XPG2
+
+
+ )
+
+285
+ m_SC_XOPEN_XPG3
+,
+
+286 \ 1
+ #_SC_XOPEN_XPG3
+
+_SC_XOPEN_XPG3
+
+
+ )
+
+287
+ m_SC_XOPEN_XPG4
+,
+
+288 \ 1
+ #_SC_XOPEN_XPG4
+
+_SC_XOPEN_XPG4
+
+
+ )
+
+290
+ m_SC_CHAR_BIT
+,
+
+291 \ 1
+ #_SC_CHAR_BIT
+
+_SC_CHAR_BIT
+
+
+ )
+
+292
+ m_SC_CHAR_MAX
+,
+
+293 \ 1
+ #_SC_CHAR_MAX
+
+_SC_CHAR_MAX
+
+
+ )
+
+294
+ m_SC_CHAR_MIN
+,
+
+295 \ 1
+ #_SC_CHAR_MIN
+
+_SC_CHAR_MIN
+
+
+ )
+
+296
+ m_SC_INT_MAX
+,
+
+297 \ 1
+ #_SC_INT_MAX
+
+_SC_INT_MAX
+
+
+ )
+
+298
+ m_SC_INT_MIN
+,
+
+299 \ 1
+ #_SC_INT_MIN
+
+_SC_INT_MIN
+
+
+ )
+
+300
+ m_SC_LONG_BIT
+,
+
+301 \ 1
+ #_SC_LONG_BIT
+
+_SC_LONG_BIT
+
+
+ )
+
+302
+ m_SC_WORD_BIT
+,
+
+303 \ 1
+ #_SC_WORD_BIT
+
+_SC_WORD_BIT
+
+
+ )
+
+304
+ m_SC_MB_LEN_MAX
+,
+
+305 \ 1
+ #_SC_MB_LEN_MAX
+
+_SC_MB_LEN_MAX
+
+
+ )
+
+306
+ m_SC_NZERO
+,
+
+307 \ 1
+ #_SC_NZERO
+
+_SC_NZERO
+
+
+ )
+
+308
+ m_SC_SSIZE_MAX
+,
+
+309 \ 1
+ #_SC_SSIZE_MAX
+
+_SC_SSIZE_MAX
+
+
+ )
+
+310
+ m_SC_SCHAR_MAX
+,
+
+311 \ 1
+ #_SC_SCHAR_MAX
+
+_SC_SCHAR_MAX
+
+
+ )
+
+312
+ m_SC_SCHAR_MIN
+,
+
+313 \ 1
+ #_SC_SCHAR_MIN
+
+_SC_SCHAR_MIN
+
+
+ )
+
+314
+ m_SC_SHRT_MAX
+,
+
+315 \ 1
+ #_SC_SHRT_MAX
+
+_SC_SHRT_MAX
+
+
+ )
+
+316
+ m_SC_SHRT_MIN
+,
+
+317 \ 1
+ #_SC_SHRT_MIN
+
+_SC_SHRT_MIN
+
+
+ )
+
+318
+ m_SC_UCHAR_MAX
+,
+
+319 \ 1
+ #_SC_UCHAR_MAX
+
+_SC_UCHAR_MAX
+
+
+ )
+
+320
+ m_SC_UINT_MAX
+,
+
+321 \ 1
+ #_SC_UINT_MAX
+
+_SC_UINT_MAX
+
+
+ )
+
+322
+ m_SC_ULONG_MAX
+,
+
+323 \ 1
+ #_SC_ULONG_MAX
+
+_SC_ULONG_MAX
+
+
+ )
+
+324
+ m_SC_USHRT_MAX
+,
+
+325 \ 1
+ #_SC_USHRT_MAX
+
+_SC_USHRT_MAX
+
+
+ )
+
+327
+ m_SC_NL_ARGMAX
+,
+
+328 \ 1
+ #_SC_NL_ARGMAX
+
+_SC_NL_ARGMAX
+
+
+ )
+
+329
+ m_SC_NL_LANGMAX
+,
+
+330 \ 1
+ #_SC_NL_LANGMAX
+
+_SC_NL_LANGMAX
+
+
+ )
+
+331
+ m_SC_NL_MSGMAX
+,
+
+332 \ 1
+ #_SC_NL_MSGMAX
+
+_SC_NL_MSGMAX
+
+
+ )
+
+333
+ m_SC_NL_NMAX
+,
+
+334 \ 1
+ #_SC_NL_NMAX
+
+_SC_NL_NMAX
+
+
+ )
+
+335
+ m_SC_NL_SETMAX
+,
+
+336 \ 1
+ #_SC_NL_SETMAX
+
+_SC_NL_SETMAX
+
+
+ )
+
+337
+ m_SC_NL_TEXTMAX
+,
+
+338 \ 1
+ #_SC_NL_TEXTMAX
+
+_SC_NL_TEXTMAX
+
+
+ )
+
+340
+ m_SC_XBS5_ILP32_OFF32
+,
+
+341 \ 1
+ #_SC_XBS5_ILP32_OFF32
+
+_SC_XBS5_ILP32_OFF32
+
+
+ )
+
+342
+ m_SC_XBS5_ILP32_OFFBIG
+,
+
+343 \ 1
+ #_SC_XBS5_ILP32_OFFBIG
+
+_SC_XBS5_ILP32_OFFBIG
+
+
+ )
+
+344
+ m_SC_XBS5_LP64_OFF64
+,
+
+345 \ 1
+ #_SC_XBS5_LP64_OFF64
+
+_SC_XBS5_LP64_OFF64
+
+
+ )
+
+346
+ m_SC_XBS5_LPBIG_OFFBIG
+,
+
+347 \ 1
+ #_SC_XBS5_LPBIG_OFFBIG
+
+_SC_XBS5_LPBIG_OFFBIG
+
+
+ )
+
+349
+ m_SC_XOPEN_LEGACY
+,
+
+350 \ 1
+ #_SC_XOPEN_LEGACY
+
+_SC_XOPEN_LEGACY
+
+
+ )
+
+351
+ m_SC_XOPEN_REALTIME
+,
+
+352 \ 1
+ #_SC_XOPEN_REALTIME
+
+_SC_XOPEN_REALTIME
+
+
+ )
+
+353
+ m_SC_XOPEN_REALTIME_THREADS
+,
+
+354 \ 1
+ #_SC_XOPEN_REALTIME_THREADS
+
+_SC_XOPEN_REALTIME_THREADS
+
+
+ )
+
+356
+ m_SC_ADVISORY_INFO
+,
+
+357 \ 1
+ #_SC_ADVISORY_INFO
+
+_SC_ADVISORY_INFO
+
+
+ )
+
+358
+ m_SC_BARRIERS
+,
+
+359 \ 1
+ #_SC_BARRIERS
+
+_SC_BARRIERS
+
+
+ )
+
+360
+ m_SC_BASE
+,
+
+361 \ 1
+ #_SC_BASE
+
+_SC_BASE
+
+
+ )
+
+362
+ m_SC_C_LANG_SUPPORT
+,
+
+363 \ 1
+ #_SC_C_LANG_SUPPORT
+
+_SC_C_LANG_SUPPORT
+
+
+ )
+
+364
+ m_SC_C_LANG_SUPPORT_R
+,
+
+365 \ 1
+ #_SC_C_LANG_SUPPORT_R
+
+_SC_C_LANG_SUPPORT_R
+
+
+ )
+
+366
+ m_SC_CLOCK_SELECTION
+,
+
+367 \ 1
+ #_SC_CLOCK_SELECTION
+
+_SC_CLOCK_SELECTION
+
+
+ )
+
+368
+ m_SC_CPUTIME
+,
+
+369 \ 1
+ #_SC_CPUTIME
+
+_SC_CPUTIME
+
+
+ )
+
+370
+ m_SC_THREAD_CPUTIME
+,
+
+371 \ 1
+ #_SC_THREAD_CPUTIME
+
+_SC_THREAD_CPUTIME
+
+
+ )
+
+372
+ m_SC_DEVICE_IO
+,
+
+373 \ 1
+ #_SC_DEVICE_IO
+
+_SC_DEVICE_IO
+
+
+ )
+
+374
+ m_SC_DEVICE_SPECIFIC
+,
+
+375 \ 1
+ #_SC_DEVICE_SPECIFIC
+
+_SC_DEVICE_SPECIFIC
+
+
+ )
+
+376
+ m_SC_DEVICE_SPECIFIC_R
+,
+
+377 \ 1
+ #_SC_DEVICE_SPECIFIC_R
+
+_SC_DEVICE_SPECIFIC_R
+
+
+ )
+
+378
+ m_SC_FD_MGMT
+,
+
+379 \ 1
+ #_SC_FD_MGMT
+
+_SC_FD_MGMT
+
+
+ )
+
+380
+ m_SC_FIFO
+,
+
+381 \ 1
+ #_SC_FIFO
+
+_SC_FIFO
+
+
+ )
+
+382
+ m_SC_PIPE
+,
+
+383 \ 1
+ #_SC_PIPE
+
+_SC_PIPE
+
+
+ )
+
+384
+ m_SC_FILE_ATTRIBUTES
+,
+
+385 \ 1
+ #_SC_FILE_ATTRIBUTES
+
+_SC_FILE_ATTRIBUTES
+
+
+ )
+
+386
+ m_SC_FILE_LOCKING
+,
+
+387 \ 1
+ #_SC_FILE_LOCKING
+
+_SC_FILE_LOCKING
+
+
+ )
+
+388
+ m_SC_FILE_SYSTEM
+,
+
+389 \ 1
+ #_SC_FILE_SYSTEM
+
+_SC_FILE_SYSTEM
+
+
+ )
+
+390
+ m_SC_MONOTONIC_CLOCK
+,
+
+391 \ 1
+ #_SC_MONOTONIC_CLOCK
+
+_SC_MONOTONIC_CLOCK
+
+
+ )
+
+392
+ m_SC_MULTI_PROCESS
+,
+
+393 \ 1
+ #_SC_MULTI_PROCESS
+
+_SC_MULTI_PROCESS
+
+
+ )
+
+394
+ m_SC_SINGLE_PROCESS
+,
+
+395 \ 1
+ #_SC_SINGLE_PROCESS
+
+_SC_SINGLE_PROCESS
+
+
+ )
+
+396
+ m_SC_NETWORKING
+,
+
+397 \ 1
+ #_SC_NETWORKING
+
+_SC_NETWORKING
+
+
+ )
+
+398
+ m_SC_READER_WRITER_LOCKS
+,
+
+399 \ 1
+ #_SC_READER_WRITER_LOCKS
+
+_SC_READER_WRITER_LOCKS
+
+
+ )
+
+400
+ m_SC_SPIN_LOCKS
+,
+
+401 \ 1
+ #_SC_SPIN_LOCKS
+
+_SC_SPIN_LOCKS
+
+
+ )
+
+402
+ m_SC_REGEXP
+,
+
+403 \ 1
+ #_SC_REGEXP
+
+_SC_REGEXP
+
+
+ )
+
+404
+ m_SC_REGEX_VERSION
+,
+
+405 \ 1
+ #_SC_REGEX_VERSION
+
+_SC_REGEX_VERSION
+
+
+ )
+
+406
+ m_SC_SHELL
+,
+
+407 \ 1
+ #_SC_SHELL
+
+_SC_SHELL
+
+
+ )
+
+408
+ m_SC_SIGNALS
+,
+
+409 \ 1
+ #_SC_SIGNALS
+
+_SC_SIGNALS
+
+
+ )
+
+410
+ m_SC_SPAWN
+,
+
+411 \ 1
+ #_SC_SPAWN
+
+_SC_SPAWN
+
+
+ )
+
+412
+ m_SC_SPORADIC_SERVER
+,
+
+413 \ 1
+ #_SC_SPORADIC_SERVER
+
+_SC_SPORADIC_SERVER
+
+
+ )
+
+414
+ m_SC_THREAD_SPORADIC_SERVER
+,
+
+415 \ 1
+ #_SC_THREAD_SPORADIC_SERVER
+
+_SC_THREAD_SPORADIC_SERVER
+
+
+ )
+
+416
+ m_SC_SYSTEM_DATABASE
+,
+
+417 \ 1
+ #_SC_SYSTEM_DATABASE
+
+_SC_SYSTEM_DATABASE
+
+
+ )
+
+418
+ m_SC_SYSTEM_DATABASE_R
+,
+
+419 \ 1
+ #_SC_SYSTEM_DATABASE_R
+
+_SC_SYSTEM_DATABASE_R
+
+
+ )
+
+420
+ m_SC_TIMEOUTS
+,
+
+421 \ 1
+ #_SC_TIMEOUTS
+
+_SC_TIMEOUTS
+
+
+ )
+
+422
+ m_SC_TYPED_MEMORY_OBJECTS
+,
+
+423 \ 1
+ #_SC_TYPED_MEMORY_OBJECTS
+
+_SC_TYPED_MEMORY_OBJECTS
+
+
+ )
+
+424
+ m_SC_USER_GROUPS
+,
+
+425 \ 1
+ #_SC_USER_GROUPS
+
+_SC_USER_GROUPS
+
+
+ )
+
+426
+ m_SC_USER_GROUPS_R
+,
+
+427 \ 1
+ #_SC_USER_GROUPS_R
+
+_SC_USER_GROUPS_R
+
+
+ )
+
+428
+ m_SC_2_PBS
+,
+
+429 \ 1
+ #_SC_2_PBS
+
+_SC_2_PBS
+
+
+ )
+
+430
+ m_SC_2_PBS_ACCOUNTING
+,
+
+431 \ 1
+ #_SC_2_PBS_ACCOUNTING
+
+_SC_2_PBS_ACCOUNTING
+
+
+ )
+
+432
+ m_SC_2_PBS_LOCATE
+,
+
+433 \ 1
+ #_SC_2_PBS_LOCATE
+
+_SC_2_PBS_LOCATE
+
+
+ )
+
+434
+ m_SC_2_PBS_MESSAGE
+,
+
+435 \ 1
+ #_SC_2_PBS_MESSAGE
+
+_SC_2_PBS_MESSAGE
+
+
+ )
+
+436
+ m_SC_2_PBS_TRACK
+,
+
+437 \ 1
+ #_SC_2_PBS_TRACK
+
+_SC_2_PBS_TRACK
+
+
+ )
+
+438
+ m_SC_SYMLOOP_MAX
+,
+
+439 \ 1
+ #_SC_SYMLOOP_MAX
+
+_SC_SYMLOOP_MAX
+
+
+ )
+
+440
+ m_SC_STREAMS
+,
+
+441 \ 1
+ #_SC_STREAMS
+
+_SC_STREAMS
+
+
+ )
+
+442
+ m_SC_2_PBS_CHECKPOINT
+,
+
+443 \ 1
+ #_SC_2_PBS_CHECKPOINT
+
+_SC_2_PBS_CHECKPOINT
+
+
+ )
+
+445
+ m_SC_V6_ILP32_OFF32
+,
+
+446 \ 1
+ #_SC_V6_ILP32_OFF32
+
+_SC_V6_ILP32_OFF32
+
+
+ )
+
+447
+ m_SC_V6_ILP32_OFFBIG
+,
+
+448 \ 1
+ #_SC_V6_ILP32_OFFBIG
+
+_SC_V6_ILP32_OFFBIG
+
+
+ )
+
+449
+ m_SC_V6_LP64_OFF64
+,
+
+450 \ 1
+ #_SC_V6_LP64_OFF64
+
+_SC_V6_LP64_OFF64
+
+
+ )
+
+451
+ m_SC_V6_LPBIG_OFFBIG
+,
+
+452 \ 1
+ #_SC_V6_LPBIG_OFFBIG
+
+_SC_V6_LPBIG_OFFBIG
+
+
+ )
+
+454
+ m_SC_HOST_NAME_MAX
+,
+
+455 \ 1
+ #_SC_HOST_NAME_MAX
+
+_SC_HOST_NAME_MAX
+
+
+ )
+
+456
+ m_SC_TRACE
+,
+
+457 \ 1
+ #_SC_TRACE
+
+_SC_TRACE
+
+
+ )
+
+458
+ m_SC_TRACE_EVENT_FILTER
+,
+
+459 \ 1
+ #_SC_TRACE_EVENT_FILTER
+
+_SC_TRACE_EVENT_FILTER
+
+
+ )
+
+460
+ m_SC_TRACE_INHERIT
+,
+
+461 \ 1
+ #_SC_TRACE_INHERIT
+
+_SC_TRACE_INHERIT
+
+
+ )
+
+462
+ m_SC_TRACE_LOG
+,
+
+463 \ 1
+ #_SC_TRACE_LOG
+
+_SC_TRACE_LOG
+
+
+ )
+
+465
+ m_SC_LEVEL1_ICACHE_SIZE
+,
+
+466 \ 1
+ #_SC_LEVEL1_ICACHE_SIZE
+
+_SC_LEVEL1_ICACHE_SIZE
+
+
+ )
+
+467
+ m_SC_LEVEL1_ICACHE_ASSOC
+,
+
+468 \ 1
+ #_SC_LEVEL1_ICACHE_ASSOC
+
+_SC_LEVEL1_ICACHE_ASSOC
+
+
+ )
+
+469
+ m_SC_LEVEL1_ICACHE_LINESIZE
+,
+
+470 \ 1
+ #_SC_LEVEL1_ICACHE_LINESIZE
+
+_SC_LEVEL1_ICACHE_LINESIZE
+
+
+ )
+
+471
+ m_SC_LEVEL1_DCACHE_SIZE
+,
+
+472 \ 1
+ #_SC_LEVEL1_DCACHE_SIZE
+
+_SC_LEVEL1_DCACHE_SIZE
+
+
+ )
+
+473
+ m_SC_LEVEL1_DCACHE_ASSOC
+,
+
+474 \ 1
+ #_SC_LEVEL1_DCACHE_ASSOC
+
+_SC_LEVEL1_DCACHE_ASSOC
+
+
+ )
+
+475
+ m_SC_LEVEL1_DCACHE_LINESIZE
+,
+
+476 \ 1
+ #_SC_LEVEL1_DCACHE_LINESIZE
+
+_SC_LEVEL1_DCACHE_LINESIZE
+
+
+ )
+
+477
+ m_SC_LEVEL2_CACHE_SIZE
+,
+
+478 \ 1
+ #_SC_LEVEL2_CACHE_SIZE
+
+_SC_LEVEL2_CACHE_SIZE
+
+
+ )
+
+479
+ m_SC_LEVEL2_CACHE_ASSOC
+,
+
+480 \ 1
+ #_SC_LEVEL2_CACHE_ASSOC
+
+_SC_LEVEL2_CACHE_ASSOC
+
+
+ )
+
+481
+ m_SC_LEVEL2_CACHE_LINESIZE
+,
+
+482 \ 1
+ #_SC_LEVEL2_CACHE_LINESIZE
+
+_SC_LEVEL2_CACHE_LINESIZE
+
+
+ )
+
+483
+ m_SC_LEVEL3_CACHE_SIZE
+,
+
+484 \ 1
+ #_SC_LEVEL3_CACHE_SIZE
+
+_SC_LEVEL3_CACHE_SIZE
+
+
+ )
+
+485
+ m_SC_LEVEL3_CACHE_ASSOC
+,
+
+486 \ 1
+ #_SC_LEVEL3_CACHE_ASSOC
+
+_SC_LEVEL3_CACHE_ASSOC
+
+
+ )
+
+487
+ m_SC_LEVEL3_CACHE_LINESIZE
+,
+
+488 \ 1
+ #_SC_LEVEL3_CACHE_LINESIZE
+
+_SC_LEVEL3_CACHE_LINESIZE
+
+
+ )
+
+489
+ m_SC_LEVEL4_CACHE_SIZE
+,
+
+490 \ 1
+ #_SC_LEVEL4_CACHE_SIZE
+
+_SC_LEVEL4_CACHE_SIZE
+
+
+ )
+
+491
+ m_SC_LEVEL4_CACHE_ASSOC
+,
+
+492 \ 1
+ #_SC_LEVEL4_CACHE_ASSOC
+
+_SC_LEVEL4_CACHE_ASSOC
+
+
+ )
+
+493
+ m_SC_LEVEL4_CACHE_LINESIZE
+,
+
+494 \ 1
+ #_SC_LEVEL4_CACHE_LINESIZE
+
+_SC_LEVEL4_CACHE_LINESIZE
+
+
+ )
+
+497
+ m_SC_IPV6
+ =
+_SC_LEVEL1_ICACHE_SIZE
+ + 50,
+
+498 \ 1
+ #_SC_IPV6
+
+_SC_IPV6
+
+
+ )
+
+499
+ m_SC_RAW_SOCKETS
+,
+
+500 \ 1
+ #_SC_RAW_SOCKETS
+
+_SC_RAW_SOCKETS
+
+
+ )
+
+502
+ m_SC_V7_ILP32_OFF32
+,
+
+503 \ 1
+ #_SC_V7_ILP32_OFF32
+
+_SC_V7_ILP32_OFF32
+
+
+ )
+
+504
+ m_SC_V7_ILP32_OFFBIG
+,
+
+505 \ 1
+ #_SC_V7_ILP32_OFFBIG
+
+_SC_V7_ILP32_OFFBIG
+
+
+ )
+
+506
+ m_SC_V7_LP64_OFF64
+,
+
+507 \ 1
+ #_SC_V7_LP64_OFF64
+
+_SC_V7_LP64_OFF64
+
+
+ )
+
+508
+ m_SC_V7_LPBIG_OFFBIG
+,
+
+509 \ 1
+ #_SC_V7_LPBIG_OFFBIG
+
+_SC_V7_LPBIG_OFFBIG
+
+
+ )
+
+511
+ m_SC_SS_REPL_MAX
+,
+
+512 \ 1
+ #_SC_SS_REPL_MAX
+
+_SC_SS_REPL_MAX
+
+
+ )
+
+514
+ m_SC_TRACE_EVENT_NAME_MAX
+,
+
+515 \ 1
+ #_SC_TRACE_EVENT_NAME_MAX
+
+_SC_TRACE_EVENT_NAME_MAX
+
+
+ )
+
+516
+ m_SC_TRACE_NAME_MAX
+,
+
+517 \ 1
+ #_SC_TRACE_NAME_MAX
+
+_SC_TRACE_NAME_MAX
+
+
+ )
+
+518
+ m_SC_TRACE_SYS_MAX
+,
+
+519 \ 1
+ #_SC_TRACE_SYS_MAX
+
+_SC_TRACE_SYS_MAX
+
+
+ )
+
+520
+ m_SC_TRACE_USER_EVENT_MAX
+,
+
+521 \ 1
+ #_SC_TRACE_USER_EVENT_MAX
+
+_SC_TRACE_USER_EVENT_MAX
+
+
+ )
+
+523
+ m_SC_XOPEN_STREAMS
+,
+
+524 \ 1
+ #_SC_XOPEN_STREAMS
+
+_SC_XOPEN_STREAMS
+
+
+ )
+
+526
+ m_SC_THREAD_ROBUST_PRIO_INHERIT
+,
+
+527 \ 1
+ #_SC_THREAD_ROBUST_PRIO_INHERIT
+
+_SC_THREAD_ROBUST_PRIO_INHERIT
+
+
+ )
+
+528
+ m_SC_THREAD_ROBUST_PRIO_PROTECT
+
+
+529 \ 1
+ #_SC_THREAD_ROBUST_PRIO_PROTECT
+
+_SC_THREAD_ROBUST_PRIO_PROTECT
+
+
+ )
+
+535
+ m_CS_PATH
+,
+
+536 \ 1
+ #_CS_PATH
+
+_CS_PATH
+
+
+ )
+
+538
+ m_CS_V6_WIDTH_RESTRICTED_ENVS
+,
+
+539 \ 1
+ #_CS_V6_WIDTH_RESTRICTED_ENVS
+
+_CS_V6_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+540 \ 1
+ #_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
+
+_CS_V6_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+542
+ m_CS_GNU_LIBC_VERSION
+,
+
+543 \ 1
+ #_CS_GNU_LIBC_VERSION
+
+_CS_GNU_LIBC_VERSION
+
+
+ )
+
+544
+ m_CS_GNU_LIBPTHREAD_VERSION
+,
+
+545 \ 1
+ #_CS_GNU_LIBPTHREAD_VERSION
+
+_CS_GNU_LIBPTHREAD_VERSION
+
+
+ )
+
+547
+ m_CS_V5_WIDTH_RESTRICTED_ENVS
+,
+
+548 \ 1
+ #_CS_V5_WIDTH_RESTRICTED_ENVS
+
+_CS_V5_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+549 \ 1
+ #_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS
+
+_CS_V5_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+551
+ m_CS_V7_WIDTH_RESTRICTED_ENVS
+,
+
+552 \ 1
+ #_CS_V7_WIDTH_RESTRICTED_ENVS
+
+_CS_V7_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+553 \ 1
+ #_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
+
+_CS_V7_WIDTH_RESTRICTED_ENVS
+
+
+ )
+
+555
+ m_CS_LFS_CFLAGS
+ = 1000,
+
+556 \ 1
+ #_CS_LFS_CFLAGS
+
+_CS_LFS_CFLAGS
+
+
+ )
+
+557
+ m_CS_LFS_LDFLAGS
+,
+
+558 \ 1
+ #_CS_LFS_LDFLAGS
+
+_CS_LFS_LDFLAGS
+
+
+ )
+
+559
+ m_CS_LFS_LIBS
+,
+
+560 \ 1
+ #_CS_LFS_LIBS
+
+_CS_LFS_LIBS
+
+
+ )
+
+561
+ m_CS_LFS_LINTFLAGS
+,
+
+562 \ 1
+ #_CS_LFS_LINTFLAGS
+
+_CS_LFS_LINTFLAGS
+
+
+ )
+
+563
+ m_CS_LFS64_CFLAGS
+,
+
+564 \ 1
+ #_CS_LFS64_CFLAGS
+
+_CS_LFS64_CFLAGS
+
+
+ )
+
+565
+ m_CS_LFS64_LDFLAGS
+,
+
+566 \ 1
+ #_CS_LFS64_LDFLAGS
+
+_CS_LFS64_LDFLAGS
+
+
+ )
+
+567
+ m_CS_LFS64_LIBS
+,
+
+568 \ 1
+ #_CS_LFS64_LIBS
+
+_CS_LFS64_LIBS
+
+
+ )
+
+569
+ m_CS_LFS64_LINTFLAGS
+,
+
+570 \ 1
+ #_CS_LFS64_LINTFLAGS
+
+_CS_LFS64_LINTFLAGS
+
+
+ )
+
+572
+ m_CS_XBS5_ILP32_OFF32_CFLAGS
+ = 1100,
+
+573 \ 1
+ #_CS_XBS5_ILP32_OFF32_CFLAGS
+
+_CS_XBS5_ILP32_OFF32_CFLAGS
+
+
+ )
+
+574
+ m_CS_XBS5_ILP32_OFF32_LDFLAGS
+,
+
+575 \ 1
+ #_CS_XBS5_ILP32_OFF32_LDFLAGS
+
+_CS_XBS5_ILP32_OFF32_LDFLAGS
+
+
+ )
+
+576
+ m_CS_XBS5_ILP32_OFF32_LIBS
+,
+
+577 \ 1
+ #_CS_XBS5_ILP32_OFF32_LIBS
+
+_CS_XBS5_ILP32_OFF32_LIBS
+
+
+ )
+
+578
+ m_CS_XBS5_ILP32_OFF32_LINTFLAGS
+,
+
+579 \ 1
+ #_CS_XBS5_ILP32_OFF32_LINTFLAGS
+
+_CS_XBS5_ILP32_OFF32_LINTFLAGS
+
+
+ )
+
+580
+ m_CS_XBS5_ILP32_OFFBIG_CFLAGS
+,
+
+581 \ 1
+ #_CS_XBS5_ILP32_OFFBIG_CFLAGS
+
+_CS_XBS5_ILP32_OFFBIG_CFLAGS
+
+
+ )
+
+582
+ m_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+,
+
+583 \ 1
+ #_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+
+_CS_XBS5_ILP32_OFFBIG_LDFLAGS
+
+
+ )
+
+584
+ m_CS_XBS5_ILP32_OFFBIG_LIBS
+,
+
+585 \ 1
+ #_CS_XBS5_ILP32_OFFBIG_LIBS
+
+_CS_XBS5_ILP32_OFFBIG_LIBS
+
+
+ )
+
+586
+ m_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+,
+
+587 \ 1
+ #_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+
+_CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+
+
+ )
+
+588
+ m_CS_XBS5_LP64_OFF64_CFLAGS
+,
+
+589 \ 1
+ #_CS_XBS5_LP64_OFF64_CFLAGS
+
+_CS_XBS5_LP64_OFF64_CFLAGS
+
+
+ )
+
+590
+ m_CS_XBS5_LP64_OFF64_LDFLAGS
+,
+
+591 \ 1
+ #_CS_XBS5_LP64_OFF64_LDFLAGS
+
+_CS_XBS5_LP64_OFF64_LDFLAGS
+
+
+ )
+
+592
+ m_CS_XBS5_LP64_OFF64_LIBS
+,
+
+593 \ 1
+ #_CS_XBS5_LP64_OFF64_LIBS
+
+_CS_XBS5_LP64_OFF64_LIBS
+
+
+ )
+
+594
+ m_CS_XBS5_LP64_OFF64_LINTFLAGS
+,
+
+595 \ 1
+ #_CS_XBS5_LP64_OFF64_LINTFLAGS
+
+_CS_XBS5_LP64_OFF64_LINTFLAGS
+
+
+ )
+
+596
+ m_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+,
+
+597 \ 1
+ #_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+
+_CS_XBS5_LPBIG_OFFBIG_CFLAGS
+
+
+ )
+
+598
+ m_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+,
+
+599 \ 1
+ #_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+
+_CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+
+
+ )
+
+600
+ m_CS_XBS5_LPBIG_OFFBIG_LIBS
+,
+
+601 \ 1
+ #_CS_XBS5_LPBIG_OFFBIG_LIBS
+
+_CS_XBS5_LPBIG_OFFBIG_LIBS
+
+
+ )
+
+602
+ m_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+,
+
+603 \ 1
+ #_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+
+_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+
+
+ )
+
+605
+ m_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+,
+
+606 \ 1
+ #_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+
+_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+
+
+ )
+
+607
+ m_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+,
+
+608 \ 1
+ #_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+
+_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+
+
+ )
+
+609
+ m_CS_POSIX_V6_ILP32_OFF32_LIBS
+,
+
+610 \ 1
+ #_CS_POSIX_V6_ILP32_OFF32_LIBS
+
+_CS_POSIX_V6_ILP32_OFF32_LIBS
+
+
+ )
+
+611
+ m_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+,
+
+612 \ 1
+ #_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+
+_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+
+
+ )
+
+613
+ m_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+,
+
+614 \ 1
+ #_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+
+_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+
+
+ )
+
+615
+ m_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+,
+
+616 \ 1
+ #_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+
+_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+
+
+ )
+
+617
+ m_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+,
+
+618 \ 1
+ #_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+
+_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+
+
+ )
+
+619
+ m_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+,
+
+620 \ 1
+ #_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+
+_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+
+
+ )
+
+621
+ m_CS_POSIX_V6_LP64_OFF64_CFLAGS
+,
+
+622 \ 1
+ #_CS_POSIX_V6_LP64_OFF64_CFLAGS
+
+_CS_POSIX_V6_LP64_OFF64_CFLAGS
+
+
+ )
+
+623
+ m_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+,
+
+624 \ 1
+ #_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+
+_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+
+
+ )
+
+625
+ m_CS_POSIX_V6_LP64_OFF64_LIBS
+,
+
+626 \ 1
+ #_CS_POSIX_V6_LP64_OFF64_LIBS
+
+_CS_POSIX_V6_LP64_OFF64_LIBS
+
+
+ )
+
+627
+ m_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+,
+
+628 \ 1
+ #_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+
+_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+
+
+ )
+
+629
+ m_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+,
+
+630 \ 1
+ #_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+
+_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+
+
+ )
+
+631
+ m_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+,
+
+632 \ 1
+ #_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+
+_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+
+
+ )
+
+633
+ m_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+,
+
+634 \ 1
+ #_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+
+_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+
+
+ )
+
+635
+ m_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+,
+
+636 \ 1
+ #_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+
+_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+
+
+ )
+
+638
+ m_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+,
+
+639 \ 1
+ #_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+
+_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+
+
+ )
+
+640
+ m_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+,
+
+641 \ 1
+ #_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+
+_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+
+
+ )
+
+642
+ m_CS_POSIX_V7_ILP32_OFF32_LIBS
+,
+
+643 \ 1
+ #_CS_POSIX_V7_ILP32_OFF32_LIBS
+
+_CS_POSIX_V7_ILP32_OFF32_LIBS
+
+
+ )
+
+644
+ m_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+,
+
+645 \ 1
+ #_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+
+_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+
+
+ )
+
+646
+ m_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+,
+
+647 \ 1
+ #_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+
+_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+
+
+ )
+
+648
+ m_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+,
+
+649 \ 1
+ #_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+
+_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+
+
+ )
+
+650
+ m_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+,
+
+651 \ 1
+ #_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+
+_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+
+
+ )
+
+652
+ m_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+,
+
+653 \ 1
+ #_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+
+_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+
+
+ )
+
+654
+ m_CS_POSIX_V7_LP64_OFF64_CFLAGS
+,
+
+655 \ 1
+ #_CS_POSIX_V7_LP64_OFF64_CFLAGS
+
+_CS_POSIX_V7_LP64_OFF64_CFLAGS
+
+
+ )
+
+656
+ m_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+,
+
+657 \ 1
+ #_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+
+_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+
+
+ )
+
+658
+ m_CS_POSIX_V7_LP64_OFF64_LIBS
+,
+
+659 \ 1
+ #_CS_POSIX_V7_LP64_OFF64_LIBS
+
+_CS_POSIX_V7_LP64_OFF64_LIBS
+
+
+ )
+
+660
+ m_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+,
+
+661 \ 1
+ #_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+
+_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+
+
+ )
+
+662
+ m_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+,
+
+663 \ 1
+ #_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+
+_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+
+
+ )
+
+664
+ m_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+,
+
+665 \ 1
+ #_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+
+_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+
+
+ )
+
+666
+ m_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+,
+
+667 \ 1
+ #_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+
+_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+
+
+ )
+
+668
+ m_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+,
+
+669 \ 1
+ #_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+
+_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+
+
+ )
+
+671
+ m_CS_V6_ENV
+,
+
+672 \ 1
+ #_CS_V6_ENV
+
+_CS_V6_ENV
+
+
+ )
+
+673
+ m_CS_V7_ENV
+
+
+674 \ 1
+ #_CS_V7_ENV
+
+_CS_V7_ENV
+
+
+ )
+
+ @/usr/include/bits/environments.h
+
+18 #iâdeà
+_UNISTD_H
+
+
+22 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+42 #ià
+__WORDSIZE
+ == 64
+
+56 \ 1
+ #_POSIX_V7_LPBIG_OFFBIG
+ -1
+
+ )
+
+57 \ 1
+ #_POSIX_V6_LPBIG_OFFBIG
+ -1
+
+ )
+
+58 \ 1
+ #_XBS5_LPBIG_OFFBIG
+ -1
+
+ )
+
+61 \ 1
+ #_POSIX_V7_LP64_OFF64
+ 1
+
+ )
+
+62 \ 1
+ #_POSIX_V6_LP64_OFF64
+ 1
+
+ )
+
+63 \ 1
+ #_XBS5_LP64_OFF64
+ 1
+
+ )
+
+69 \ 1
+ #_POSIX_V7_ILP32_OFFBIG
+ 1
+
+ )
+
+70 \ 1
+ #_POSIX_V6_ILP32_OFFBIG
+ 1
+
+ )
+
+71 \ 1
+ #_XBS5_ILP32_OFFBIG
+ 1
+
+ )
+
+73 #iâdeà
+__x86_64__
+
+
+75 \ 1
+ #_POSIX_V7_ILP32_OFF32
+ 1
+
+ )
+
+76 \ 1
+ #_POSIX_V6_ILP32_OFF32
+ 1
+
+ )
+
+77 \ 1
+ #_XBS5_ILP32_OFF32
+ 1
+
+ )
+
+95 \ 1
+ #__ILP32_OFF32_CFLAGS
+ "-m32"
+
+ )
+
+96 \ 1
+ #__ILP32_OFF32_LDFLAGS
+ "-m32"
+
+ )
+
+97 #ià
+def\9aed
+
+__x86_64__
+ && def\9aed
+__ILP32__
+
+
+98 \ 1
+ #__ILP32_OFFBIG_CFLAGS
+ "-mx32"
+
+ )
+
+99 \ 1
+ #__ILP32_OFFBIG_LDFLAGS
+ "-mx32"
+
+ )
+
+101 \ 1
+ #__ILP32_OFFBIG_CFLAGS
+ "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
+ )
+
+102 \ 1
+ #__ILP32_OFFBIG_LDFLAGS
+ "-m32"
+
+ )
+
+104 \ 1
+ #__LP64_OFF64_CFLAGS
+ "-m64"
+
+ )
+
+105 \ 1
+ #__LP64_OFF64_LDFLAGS
+ "-m64"
+
+ )
+
+ @/usr/include/bits/errno.h
+
+19 #ifdeà
+_ERRNO_H
+
+
+21 #undeà
+EDOM
+
+
+22 #undeà
+EILSEQ
+
+
+23 #undeà
+ERANGE
+
+
+24 \ 2
+ ~<l\9aux/\94ºo.h
+>
+
+27 \ 1
+ #ENOTSUP
+
+EOPNOTSUPP
+
+
+ )
+
+30 #iâdeà
+ECANCELED
+
+
+31 \ 1
+ #ECANCELED
+ 125
+
+ )
+
+35 #iâdeà
+EOWNERDEAD
+
+
+36 \ 1
+ #EOWNERDEAD
+ 130
+
+ )
+
+37 \ 1
+ #ENOTRECOVERABLE
+ 131
+
+ )
+
+40 #iâdeà
+ERFKILL
+
+
+41 \ 1
+ #ERFKILL
+ 132
+
+ )
+
+44 #iâdeà
+EHWPOISON
+
+
+45 \ 1
+ #EHWPOISON
+ 133
+
+ )
+
+48 #iâdeà
+__ASSEMBLER__
+
+
+50 \r\12*
+ $__\94ºo_loÿtiÚ
+ (\1eè
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+52 #ià!
+def\9aed
+
+_LIBC
+ || def\9aed
+_LIBC_REENTRANT
+
+
+54 \ 1
+ #\94ºo
+ (*
+ `__\94ºo_loÿtiÚ
+ ())
+
+ )
+
+59 #ià!
+def\9aed
+
+_ERRNO_H
+ && def\9aed
+__Ãed_Em©h
+
+
+63 \ 1
+ #EDOM
+ 33
+
+ )
+
+64 \ 1
+ #EILSEQ
+ 84
+
+ )
+
+65 \ 1
+ #ERANGE
+ 34
+
+ )
+
+ @/usr/include/bits/fcntl.h
+
+19 #iâdeà
+_FCNTL_H
+
+
+23 #ifdeà
+__x86_64__
+
+
+24 \ 1
+ #__O_LARGEFILE
+ 0
+
+ )
+
+27 #ifdeà
+__x86_64__
+
+
+29 \ 1
+ #F_GETLK64
+ 5
+
+ )
+
+30 \ 1
+ #F_SETLK64
+ 6
+
+ )
+
+31 \ 1
+ #F_SETLKW64
+ 7
+
+ )
+
+35 \19
+ sæock
+
+
+37 \16\12
+ ml_ty³
+;
+
+38 \16\12
+ ml_wh\92û
+;
+
+39 #iâdeà
+__USE_FILE_OFFSET64
+
+
+40
+__off_t
+
+ ml_¡¬t
+;
+
+41
+__off_t
+
+ ml_Ën
+;
+
+43
+__off64_t
+
+ ml_¡¬t
+;
+
+44
+__off64_t
+
+ ml_Ën
+;
+
+46
+__pid_t
+
+ ml_pid
+;
+
+49 #ifdeà
+__USE_LARGEFILE64
+
+
+50 \19
+ sæock64
+
+
+52 \16\12
+ ml_ty³
+;
+
+53 \16\12
+ ml_wh\92û
+;
+
+54
+__off64_t
+
+ ml_¡¬t
+;
+
+55
+__off64_t
+
+ ml_Ën
+;
+
+56
+__pid_t
+
+ ml_pid
+;
+
+61 \ 2
+ ~<b\99s/fú\8e-l\9aux.h
+>
+
+ @/usr/include/bits/fcntl2.h
+
+19 #iâdef
+_FCNTL_H
+
+
+25 #iâdeà
+__USE_FILE_OFFSET64
+
+
+26 \r\12
+ $__ݒ_2
+ (cڡ \ 5*
+__·th
+, \12
+__oæag
+è
+ `__nÚnuÎ
+ ((1));
+
+27 \r\12
+ `__REDIRECT
+ (
+__Ý\92_®\9fs
+, (cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...),
+
+28
+ݒ
+è
+ `__nÚnuÎ
+ ((1));
+
+30 \r\12
+ `__REDIRECT
+ (
+__ݒ_2
+, (cڡ \ 5*
+__·th
+, \12
+__oæag
+),
+
+31
+__ݒ64_2
+è
+ `__nÚnuÎ
+ ((1));
+
+32 \r\12
+ `__REDIRECT
+ (
+__Ý\92_®\9fs
+, (cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...),
+
+33
+ݒ64
+è
+ `__nÚnuÎ
+ ((1));
+
+35
+ `__\94rÜdeþ
+ (
+__Ý\92_too_mªy_¬gs
+,
+
+37
+ `__\94rÜdeþ
+ (
+__Ý\92_miss\9ag_mode
+,
+
+40
+__fÜtify_funùiÚ
+ \12
+
+41
+ $ݒ
+ (cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...)
+
+43 ià(
+ `__va_¬g_·ck_Ën
+ () > 1)
+
+44
+ `__Ý\92_too_mªy_¬gs
+ ();
+
+46 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__oæag
+))
+
+48 ià(
+ `__OPEN_NEEDS_MODE
+ (
+__oæag
+è&&
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+50
+ `__Ý\92_miss\9ag_mode
+ ();
+
+51 \15
+ `__ݒ_2
+ (
+__·th
+,
+__oæag
+);
+
+53 \15
+ `__Ý\92_®\9fs
+ (
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+56 ià(
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+57 \15
+ `__ݒ_2
+ (
+__·th
+,
+__oæag
+);
+
+59 \15
+ `__Ý\92_®\9fs
+ (
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+60
+ }
+}
+
+63 #ifdeà
+__USE_LARGEFILE64
+
+
+64 \r\12
+ $__ݒ64_2
+ (cڡ \ 5*
+__·th
+, \12
+__oæag
+è
+ `__nÚnuÎ
+ ((1));
+
+65 \r\12
+ `__REDIRECT
+ (
+__Ý\9264_®\9fs
+, (cڡ \ 5*
+__·th
+, \12
+__oæag
+,
+
+66 ...),
+ݒ64
+è
+ `__nÚnuÎ
+ ((1));
+
+67
+ `__\94rÜdeþ
+ (
+__Ý\9264_too_mªy_¬gs
+,
+
+69
+ `__\94rÜdeþ
+ (
+__Ý\9264_miss\9ag_mode
+,
+
+72
+__fÜtify_funùiÚ
+ \12
+
+73
+ $ݒ64
+ (cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...)
+
+75 ià(
+ `__va_¬g_·ck_Ën
+ () > 1)
+
+76
+ `__Ý\9264_too_mªy_¬gs
+ ();
+
+78 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__oæag
+))
+
+80 ià(
+ `__OPEN_NEEDS_MODE
+ (
+__oæag
+è&&
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+82
+ `__Ý\9264_miss\9ag_mode
+ ();
+
+83 \15
+ `__ݒ64_2
+ (
+__·th
+,
+__oæag
+);
+
+85 \15
+ `__Ý\9264_®\9fs
+ (
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+88 ià(
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+89 \15
+ `__ݒ64_2
+ (
+__·th
+,
+__oæag
+);
+
+91 \15
+ `__Ý\9264_®\9fs
+ (
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+92
+ }
+}
+
+96 #ifdeà
+__USE_ATFILE
+
+
+97 #iâdeà
+__USE_FILE_OFFSET64
+
+
+98 \r\12
+ $__Ý\92©_2
+ (\12
+__fd
+, cڡ \ 5*
+__·th
+, \12
+__oæag
+)
+
+99
+ `__nÚnuÎ
+ ((2));
+
+100 \r\12
+ `__REDIRECT
+ (
+__Ý\92©_®\9fs
+, (\12
+__fd
+, cڡ \ 5*
+__·th
+,
+
+101 \12
+__oæag
+, ...),
+Ý\92©
+)
+
+102
+ `__nÚnuÎ
+ ((2));
+
+104 \r\12
+ `__REDIRECT
+ (
+__Ý\92©_2
+, (\12
+__fd
+, cڡ \ 5*
+__·th
+,
+
+105 \12
+__oæag
+),
+__Ý\92©64_2
+)
+
+106
+ `__nÚnuÎ
+ ((2));
+
+107 \r\12
+ `__REDIRECT
+ (
+__Ý\92©_®\9fs
+, (\12
+__fd
+, cڡ \ 5*
+__·th
+,
+
+108 \12
+__oæag
+, ...),
+Ý\92©64
+)
+
+109
+ `__nÚnuÎ
+ ((2));
+
+111
+ `__\94rÜdeþ
+ (
+__Ý\92©_too_mªy_¬gs
+,
+
+113
+ `__\94rÜdeþ
+ (
+__Ý\92©_miss\9ag_mode
+,
+
+116
+__fÜtify_funùiÚ
+ \12
+
+117
+ $Ý\92©
+ (\12
+__fd
+, cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...)
+
+119 ià(
+ `__va_¬g_·ck_Ën
+ () > 1)
+
+120
+ `__Ý\92©_too_mªy_¬gs
+ ();
+
+122 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__oæag
+))
+
+124 ià(
+ `__OPEN_NEEDS_MODE
+ (
+__oæag
+è&&
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+126
+ `__Ý\92©_miss\9ag_mode
+ ();
+
+127 \15
+ `__Ý\92©_2
+ (
+__fd
+,
+__·th
+,
+__oæag
+);
+
+129 \15
+ `__Ý\92©_®\9fs
+ (
+__fd
+,
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+132 ià(
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+133 \15
+ `__Ý\92©_2
+ (
+__fd
+,
+__·th
+,
+__oæag
+);
+
+135 \15
+ `__Ý\92©_®\9fs
+ (
+__fd
+,
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+136
+ }
+}
+
+139 #ifdeà
+__USE_LARGEFILE64
+
+
+140 \r\12
+ $__Ý\92©64_2
+ (\12
+__fd
+, cڡ \ 5*
+__·th
+, \12
+__oæag
+)
+
+141
+ `__nÚnuÎ
+ ((2));
+
+142 \r\12
+ `__REDIRECT
+ (
+__Ý\92©64_®\9fs
+, (\12
+__fd
+, cڡ \ 5*
+__·th
+,
+
+143 \12
+__oæag
+, ...),
+Ý\92©64
+)
+
+144
+ `__nÚnuÎ
+ ((2));
+
+145
+ `__\94rÜdeþ
+ (
+__Ý\92©64_too_mªy_¬gs
+,
+
+147
+ `__\94rÜdeþ
+ (
+__Ý\92©64_miss\9ag_mode
+,
+
+150
+__fÜtify_funùiÚ
+ \12
+
+151
+ $Ý\92©64
+ (\12
+__fd
+, cڡ \ 5*
+__·th
+, \12
+__oæag
+, ...)
+
+153 ià(
+ `__va_¬g_·ck_Ën
+ () > 1)
+
+154
+ `__Ý\92©64_too_mªy_¬gs
+ ();
+
+156 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__oæag
+))
+
+158 ià(
+ `__OPEN_NEEDS_MODE
+ (
+__oæag
+è&&
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+160
+ `__Ý\92©64_miss\9ag_mode
+ ();
+
+161 \15
+ `__Ý\92©64_2
+ (
+__fd
+,
+__·th
+,
+__oæag
+);
+
+163 \15
+ `__Ý\92©64_®\9fs
+ (
+__fd
+,
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+166 ià(
+ `__va_¬g_·ck_Ën
+ () < 1)
+
+167 \15
+ `__Ý\92©64_2
+ (
+__fd
+,
+__·th
+,
+__oæag
+);
+
+169 \15
+ `__Ý\92©64_®\9fs
+ (
+__fd
+,
+__·th
+,
+__oæag
+,
+ `__va_¬g_·ck
+ ());
+
+170
+ }
+}
+
+ @/usr/include/bits/huge_val.h
+
+20 #iâdeà
+_MATH_H
+
+
+26 #ià
+__GNUC_PREREQ
+(3,3)
+
+27 \ 1
+ #HUGE_VAL
+ (
+ `__bu\9et\9a_huge_v®
+())
+
+ )
+
+28 #\96ià
+__GNUC_PREREQ
+(2,96)
+
+29 \ 1
+ #HUGE_VAL
+ (
+__ex\8bnsiÚ__
+ 0x1.0
+p2047
+)
+
+ )
+
+30 #\96ià
+def\9aed
+
+__GNUC__
+
+
+32 \ 1
+ #HUGE_VAL
+ \
+
+33 (
+__ex\8bnsiÚ__
+ \
+
+34 ((uniÚ { \1d
+__l
+
+ `__©\8cibu\8b__
+((
+ `__mode__
+(
+__DI__
+))); \b
+__d
+; }) \
+
+35 {
+__l
+: 0x7ff0000000000000ULL }).
+__d
+)
+
+ )
+
+39 \ 2
+ ~<\92d\9fn.h
+>
+
+41 \euniÚ { \1d\ 5
+ m__c
+[8]; \b
+ m__d
+; }
+ t__huge_v®_t
+;
+
+43 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+44 \ 1
+ #__HUGE_VAL_by\8bs
+ { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
+
+ )
+
+46 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+47 \ 1
+ #__HUGE_VAL_by\8bs
+ { 0, 0, 0, 0, 0, 0, 0xf0, 0x7à}
+
+ )
+
+50 \18
+__huge_v®_t
+
+ g__huge_v®
+ = {
+__HUGE_VAL_by\8bs
+ };
+
+51 \ 1
+ #HUGE_VAL
+ (
+__huge_v®
+.
+__d
+)
+
+ )
+
+ @/usr/include/bits/huge_valf.h
+
+20 #iâdeà
+_MATH_H
+
+
+26 #ià
+__GNUC_PREREQ
+(3,3)
+
+27 \ 1
+ #HUGE_VALF
+ (
+ `__bu\9et\9a_huge_v®f
+())
+
+ )
+
+28 #\96ià
+__GNUC_PREREQ
+(2,96)
+
+29 \ 1
+ #HUGE_VALF
+ (
+__ex\8bnsiÚ__
+ 0x1.0
+p255f
+)
+
+ )
+
+30 #\96ià
+def\9aed
+
+__GNUC__
+
+
+32 \ 1
+ #HUGE_VALF
+ \
+
+33 (
+__ex\8bnsiÚ__
+ \
+
+34 ((uniÚ { \1d
+__l
+
+ `__©\8cibu\8b__
+((
+ `__mode__
+(
+__SI__
+))); \ e
+__d
+; }) \
+
+35 {
+__l
+: 0x7f800000UL }).
+__d
+)
+
+ )
+
+39 \euniÚ { \1d\ 5
+ m__c
+[4]; \ e
+ m__f
+; }
+ t__huge_v®f_t
+;
+
+41 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+42 \ 1
+ #__HUGE_VALF_by\8bs
+ { 0x7f, 0x80, 0, 0 }
+
+ )
+
+44 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+45 \ 1
+ #__HUGE_VALF_by\8bs
+ { 0, 0, 0x80, 0x7à}
+
+ )
+
+48 \18
+__huge_v®f_t
+
+ g__huge_v®f
+ = {
+__HUGE_VALF_by\8bs
+ };
+
+49 \ 1
+ #HUGE_VALF
+ (
+__huge_v®f
+.
+__f
+)
+
+ )
+
+ @/usr/include/bits/huge_vall.h
+
+20 #iâdeà
+_MATH_H
+
+
+24 #ià
+__GNUC_PREREQ
+(3,3)
+
+25 \ 1
+ #HUGE_VALL
+ (
+ `__bu\9et\9a_huge_v®l
+())
+
+ )
+
+26 #\96ià
+__GNUC_PREREQ
+(2,96)
+
+27 \ 1
+ #HUGE_VALL
+ (
+__ex\8bnsiÚ__
+ 0x1.0
+p32767L
+)
+
+ )
+
+30 \ 1
+ #__HUGE_VALL_by\8bs
+ { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
+
+ )
+
+32 \ 1
+ #__huge_v®l_t
+ uniÚ { \1d\ 5
+__c
+[12]; \13\b
+__ld
+; }
+
+ )
+
+33 #ifdeà
+__GNUC__
+
+
+34 \ 1
+ #HUGE_VALL
+ (
+__ex\8bnsiÚ__
+ \
+
+35 ((
+__huge_v®l_t
+è{
+__c
+:
+__HUGE_VALL_by\8bs
+ }).
+__ld
+)
+
+ )
+
+37 \18
+__huge_v®l_t
+
+ g__huge_v®l
+ = {
+__HUGE_VALL_by\8bs
+ };
+
+38 \ 1
+ #HUGE_VALL
+ (
+__huge_v®l
+.
+__ld
+)
+
+ )
+
+ @/usr/include/bits/in.h
+
+20 #iâdeà
+_NETINET_IN_H
+
+
+29 #ià
+def\9aed
+
+_UAPI_LINUX_IN6_H
+ || def\9aed
+_UAPI_IPV6_H
+
+
+33 \ 1
+ #__USE_KERNEL_IPV6_DEFS
+
+
+ )
+
+39 \ 1
+ #IP_OPTIONS
+ 4
+
+ )
+
+40 \ 1
+ #IP_HDRINCL
+ 3
+
+ )
+
+41 \ 1
+ #IP_TOS
+ 1
+
+ )
+
+42 \ 1
+ #IP_TTL
+ 2
+
+ )
+
+43 \ 1
+ #IP_RECVOPTS
+ 6
+
+ )
+
+45 \ 1
+ #IP_RECVRETOPTS
+
+IP_RETOPTS
+
+
+ )
+
+46 \ 1
+ #IP_RETOPTS
+ 7
+
+ )
+
+47 \ 1
+ #IP_MULTICAST_IF
+ 32
+
+ )
+
+48 \ 1
+ #IP_MULTICAST_TTL
+ 33
+
+ )
+
+49 \ 1
+ #IP_MULTICAST_LOOP
+ 34
+
+ )
+
+50 \ 1
+ #IP_ADD_MEMBERSHIP
+ 35
+
+ )
+
+51 \ 1
+ #IP_DROP_MEMBERSHIP
+ 36
+
+ )
+
+52 \ 1
+ #IP_UNBLOCK_SOURCE
+ 37
+
+ )
+
+53 \ 1
+ #IP_BLOCK_SOURCE
+ 38
+
+ )
+
+54 \ 1
+ #IP_ADD_SOURCE_MEMBERSHIP
+ 39
+
+ )
+
+55 \ 1
+ #IP_DROP_SOURCE_MEMBERSHIP
+ 40
+
+ )
+
+56 \ 1
+ #IP_MSFILTER
+ 41
+
+ )
+
+57 #ifdeà
+__USE_MISC
+
+
+58 \ 1
+ #MCAST_JOIN_GROUP
+ 42
+
+ )
+
+59 \ 1
+ #MCAST_BLOCK_SOURCE
+ 43
+
+ )
+
+60 \ 1
+ #MCAST_UNBLOCK_SOURCE
+ 44
+
+ )
+
+61 \ 1
+ #MCAST_LEAVE_GROUP
+ 45
+
+ )
+
+62 \ 1
+ #MCAST_JOIN_SOURCE_GROUP
+ 46
+
+ )
+
+63 \ 1
+ #MCAST_LEAVE_SOURCE_GROUP
+ 47
+
+ )
+
+64 \ 1
+ #MCAST_MSFILTER
+ 48
+
+ )
+
+65 \ 1
+ #IP_MULTICAST_ALL
+ 49
+
+ )
+
+66 \ 1
+ #IP_UNICAST_IF
+ 50
+
+ )
+
+68 \ 1
+ #MCAST_EXCLUDE
+ 0
+
+ )
+
+69 \ 1
+ #MCAST_INCLUDE
+ 1
+
+ )
+
+72 \ 1
+ #IP_ROUTER_ALERT
+ 5
+
+ )
+
+73 \ 1
+ #IP_PKTINFO
+ 8
+
+ )
+
+74 \ 1
+ #IP_PKTOPTIONS
+ 9
+
+ )
+
+75 \ 1
+ #IP_PMTUDISC
+ 10
+
+ )
+
+76 \ 1
+ #IP_MTU_DISCOVER
+ 10
+
+ )
+
+77 \ 1
+ #IP_RECVERR
+ 11
+
+ )
+
+78 \ 1
+ #IP_RECVTTL
+ 12
+
+ )
+
+79 \ 1
+ #IP_RECVTOS
+ 13
+
+ )
+
+80 \ 1
+ #IP_MTU
+ 14
+
+ )
+
+81 \ 1
+ #IP_FREEBIND
+ 15
+
+ )
+
+82 \ 1
+ #IP_IPSEC_POLICY
+ 16
+
+ )
+
+83 \ 1
+ #IP_XFRM_POLICY
+ 17
+
+ )
+
+84 \ 1
+ #IP_PASSSEC
+ 18
+
+ )
+
+85 \ 1
+ #IP_TRANSPARENT
+ 19
+
+ )
+
+86 \ 1
+ #IP_MULTICAST_ALL
+ 49
+
+ )
+
+89 \ 1
+ #IP_ORIGDSTADDR
+ 20
+
+ )
+
+90 \ 1
+ #IP_RECVORIGDSTADDR
+
+IP_ORIGDSTADDR
+
+
+ )
+
+92 \ 1
+ #IP_MINTTL
+ 21
+
+ )
+
+93 \ 1
+ #IP_NODEFRAG
+ 22
+
+ )
+
+94 \ 1
+ #IP_CHECKSUM
+ 23
+
+ )
+
+95 \ 1
+ #IP_BIND_ADDRESS_NO_PORT
+ 24
+
+ )
+
+98 \ 1
+ #IP_PMTUDISC_DONT
+ 0
+
+ )
+
+99 \ 1
+ #IP_PMTUDISC_WANT
+ 1
+
+ )
+
+100 \ 1
+ #IP_PMTUDISC_DO
+ 2
+
+ )
+
+101 \ 1
+ #IP_PMTUDISC_PROBE
+ 3
+
+ )
+
+105 \ 1
+ #IP_PMTUDISC_INTERFACE
+ 4
+
+ )
+
+107 \ 1
+ #IP_PMTUDISC_OMIT
+ 5
+
+ )
+
+109 \ 1
+ #IP_MULTICAST_IF
+ 32
+
+ )
+
+110 \ 1
+ #IP_MULTICAST_TTL
+ 33
+
+ )
+
+111 \ 1
+ #IP_MULTICAST_LOOP
+ 34
+
+ )
+
+112 \ 1
+ #IP_ADD_MEMBERSHIP
+ 35
+
+ )
+
+113 \ 1
+ #IP_DROP_MEMBERSHIP
+ 36
+
+ )
+
+114 \ 1
+ #IP_UNBLOCK_SOURCE
+ 37
+
+ )
+
+115 \ 1
+ #IP_BLOCK_SOURCE
+ 38
+
+ )
+
+116 \ 1
+ #IP_ADD_SOURCE_MEMBERSHIP
+ 39
+
+ )
+
+117 \ 1
+ #IP_DROP_SOURCE_MEMBERSHIP
+ 40
+
+ )
+
+118 \ 1
+ #IP_MSFILTER
+ 41
+
+ )
+
+119 \ 1
+ #IP_MULTICAST_ALL
+ 49
+
+ )
+
+120 \ 1
+ #IP_UNICAST_IF
+ 50
+
+ )
+
+123 \ 1
+ #SOL_IP
+ 0
+
+ )
+
+125 \ 1
+ #IP_DEFAULT_MULTICAST_TTL
+ 1
+
+ )
+
+126 \ 1
+ #IP_DEFAULT_MULTICAST_LOOP
+ 1
+
+ )
+
+127 \ 1
+ #IP_MAX_MEMBERSHIPS
+ 20
+
+ )
+
+129 #ifdeà
+__USE_MISC
+
+
+133 \19
+ s\9d_Ýts
+
+
+135 \19
+\9a_addr
+
+ m\9d_d¡
+;
+
+136 \ 5
+ m\9d_Ýts
+[40];
+
+140 \19
+ s\9d_m»qn
+
+
+142 \19
+\9a_addr
+
+ mimr_muɟddr
+;
+
+143 \19
+\9a_addr
+
+ mimr_add»ss
+;
+
+144 \12
+ mimr_if\9adex
+;
+
+148 \19
+ s\9a_pkt\9afo
+
+
+150 \12
+ m\9di_if\9adex
+;
+
+151 \19
+\9a_addr
+
+ m\9di_¥ec_d¡
+;
+
+152 \19
+\9a_addr
+
+ m\9di_addr
+;
+
+159 \ 1
+ #IPV6_ADDRFORM
+ 1
+
+ )
+
+160 \ 1
+ #IPV6_2292PKTINFO
+ 2
+
+ )
+
+161 \ 1
+ #IPV6_2292HOPOPTS
+ 3
+
+ )
+
+162 \ 1
+ #IPV6_2292DSTOPTS
+ 4
+
+ )
+
+163 \ 1
+ #IPV6_2292RTHDR
+ 5
+
+ )
+
+164 \ 1
+ #IPV6_2292PKTOPTIONS
+ 6
+
+ )
+
+165 \ 1
+ #IPV6_CHECKSUM
+ 7
+
+ )
+
+166 \ 1
+ #IPV6_2292HOPLIMIT
+ 8
+
+ )
+
+168 \ 1
+ #SCM_SRCRT
+
+IPV6_RXSRCRT
+
+
+ )
+
+170 \ 1
+ #IPV6_NEXTHOP
+ 9
+
+ )
+
+171 \ 1
+ #IPV6_AUTHHDR
+ 10
+
+ )
+
+172 \ 1
+ #IPV6_UNICAST_HOPS
+ 16
+
+ )
+
+173 \ 1
+ #IPV6_MULTICAST_IF
+ 17
+
+ )
+
+174 \ 1
+ #IPV6_MULTICAST_HOPS
+ 18
+
+ )
+
+175 \ 1
+ #IPV6_MULTICAST_LOOP
+ 19
+
+ )
+
+176 \ 1
+ #IPV6_JOIN_GROUP
+ 20
+
+ )
+
+177 \ 1
+ #IPV6_LEAVE_GROUP
+ 21
+
+ )
+
+178 \ 1
+ #IPV6_ROUTER_ALERT
+ 22
+
+ )
+
+179 \ 1
+ #IPV6_MTU_DISCOVER
+ 23
+
+ )
+
+180 \ 1
+ #IPV6_MTU
+ 24
+
+ )
+
+181 \ 1
+ #IPV6_RECVERR
+ 25
+
+ )
+
+182 \ 1
+ #IPV6_V6ONLY
+ 26
+
+ )
+
+183 \ 1
+ #IPV6_JOIN_ANYCAST
+ 27
+
+ )
+
+184 \ 1
+ #IPV6_LEAVE_ANYCAST
+ 28
+
+ )
+
+185 \ 1
+ #IPV6_IPSEC_POLICY
+ 34
+
+ )
+
+186 \ 1
+ #IPV6_XFRM_POLICY
+ 35
+
+ )
+
+189 \ 1
+ #IPV6_RECVPKTINFO
+ 49
+
+ )
+
+190 \ 1
+ #IPV6_PKTINFO
+ 50
+
+ )
+
+191 \ 1
+ #IPV6_RECVHOPLIMIT
+ 51
+
+ )
+
+192 \ 1
+ #IPV6_HOPLIMIT
+ 52
+
+ )
+
+193 \ 1
+ #IPV6_RECVHOPOPTS
+ 53
+
+ )
+
+194 \ 1
+ #IPV6_HOPOPTS
+ 54
+
+ )
+
+195 \ 1
+ #IPV6_RTHDRDSTOPTS
+ 55
+
+ )
+
+196 \ 1
+ #IPV6_RECVRTHDR
+ 56
+
+ )
+
+197 \ 1
+ #IPV6_RTHDR
+ 57
+
+ )
+
+198 \ 1
+ #IPV6_RECVDSTOPTS
+ 58
+
+ )
+
+199 \ 1
+ #IPV6_DSTOPTS
+ 59
+
+ )
+
+200 \ 1
+ #IPV6_RECVPATHMTU
+ 60
+
+ )
+
+201 \ 1
+ #IPV6_PATHMTU
+ 61
+
+ )
+
+202 \ 1
+ #IPV6_DONTFRAG
+ 62
+
+ )
+
+205 \ 1
+ #IPV6_RECVTCLASS
+ 66
+
+ )
+
+206 \ 1
+ #IPV6_TCLASS
+ 67
+
+ )
+
+209 \ 1
+ #IPV6_ADD_MEMBERSHIP
+
+IPV6_JOIN_GROUP
+
+
+ )
+
+210 \ 1
+ #IPV6_DROP_MEMBERSHIP
+
+IPV6_LEAVE_GROUP
+
+
+ )
+
+211 \ 1
+ #IPV6_RXHOPOPTS
+
+IPV6_HOPOPTS
+
+
+ )
+
+212 \ 1
+ #IPV6_RXDSTOPTS
+
+IPV6_DSTOPTS
+
+
+ )
+
+215 \ 1
+ #IPV6_PMTUDISC_DONT
+ 0
+
+ )
+
+216 \ 1
+ #IPV6_PMTUDISC_WANT
+ 1
+
+ )
+
+217 \ 1
+ #IPV6_PMTUDISC_DO
+ 2
+
+ )
+
+218 \ 1
+ #IPV6_PMTUDISC_PROBE
+ 3
+
+ )
+
+219 \ 1
+ #IPV6_PMTUDISC_INTERFACE
+ 4
+
+ )
+
+220 \ 1
+ #IPV6_PMTUDISC_OMIT
+ 5
+
+ )
+
+223 \ 1
+ #SOL_IPV6
+ 41
+
+ )
+
+224 \ 1
+ #SOL_ICMPV6
+ 58
+
+ )
+
+227 \ 1
+ #IPV6_RTHDR_LOOSE
+ 0
+
+ )
+
+228 \ 1
+ #IPV6_RTHDR_STRICT
+ 1
+
+ )
+
+230 \ 1
+ #IPV6_RTHDR_TYPE_0
+ 0
+
+ )
+
+ @/usr/include/bits/inf.h
+
+19 #iâdeà
+_MATH_H
+
+
+25 #ià
+__GNUC_PREREQ
+(3,3)
+
+26 \ 1
+ #INFINITY
+ (
+ `__bu\9et\9a_\9aff
+())
+
+ )
+
+28 \ 1
+ #INFINITY
+
+HUGE_VALF
+
+
+ )
+
+ @/usr/include/bits/math-finite.h
+
+19 #iâdeà
+_MATH_H
+
+
+24 \r\b
+__REDIRECT_NTH
+ (
+acos
+, (\b),
+__acos_f\9a\99e
+);
+
+25 #ifdeà
+__USE_ISOC99
+
+
+26 \r\ e
+__REDIRECT_NTH
+ (
+acosf
+, (\ e),
+__acosf_f\9a\99e
+);
+
+27 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+28 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+29 \r\13\b
+__REDIRECT_NTH
+ (
+aco¦
+, (\13\b),
+__acos_f\9a\99e
+);
+
+31 \r\13\b
+__REDIRECT_NTH
+ (
+aco¦
+, (\13\b),
+__aco¦_f\9a\99e
+);
+
+36 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+38 \r\b
+__REDIRECT_NTH
+ (
+acosh
+, (\b),
+__acosh_f\9a\99e
+);
+
+40 #ifdeà
+__USE_ISOC99
+
+
+41 \r\ e
+__REDIRECT_NTH
+ (
+acoshf
+, (\ e),
+__acoshf_f\9a\99e
+);
+
+42 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+43 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+44 \r\13\b
+__REDIRECT_NTH
+ (
+acoshl
+, (\13\b),
+__acosh_f\9a\99e
+);
+
+46 \r\13\b
+__REDIRECT_NTH
+ (
+acoshl
+, (\13\b),
+__acoshl_f\9a\99e
+);
+
+52 \r\b
+__REDIRECT_NTH
+ (
+as\9a
+, (\b),
+__as\9a_f\9a\99e
+);
+
+53 #ifdeà
+__USE_ISOC99
+
+
+54 \r\ e
+__REDIRECT_NTH
+ (
+as\9af
+, (\ e),
+__as\9af_f\9a\99e
+);
+
+55 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+56 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+57 \r\13\b
+__REDIRECT_NTH
+ (
+as\9al
+, (\13\b),
+__as\9a_f\9a\99e
+);
+
+59 \r\13\b
+__REDIRECT_NTH
+ (
+as\9al
+, (\13\b),
+__as\9al_f\9a\99e
+);
+
+65 \r\b
+__REDIRECT_NTH
+ (
+©ª2
+, (\b, \b),
+__©ª2_f\9a\99e
+);
+
+66 #ifdeà
+__USE_ISOC99
+
+
+67 \r\ e
+__REDIRECT_NTH
+ (
+©ª2f
+, (\ e, \ e),
+__©ª2f_f\9a\99e
+);
+
+68 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+69 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+70 \r\13\b
+__REDIRECT_NTH
+ (
+©ª2l
+, (\13\b, \13\b),
+
+71
+__©ª2_f\9a\99e
+);
+
+73 \r\13\b
+__REDIRECT_NTH
+ (
+©ª2l
+, (\13\b, \13\b),
+
+74
+__©ª2l_f\9a\99e
+);
+
+79 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+81 \r\b
+__REDIRECT_NTH
+ (
+©ªh
+, (\b),
+__©ªh_f\9a\99e
+);
+
+83 #ifdeà
+__USE_ISOC99
+
+
+84 \r\ e
+__REDIRECT_NTH
+ (
+©ªhf
+, (\ e),
+__©ªhf_f\9a\99e
+);
+
+85 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+86 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+87 \r\13\b
+__REDIRECT_NTH
+ (
+©ªhl
+, (\13\b),
+__©ªh_f\9a\99e
+);
+
+89 \r\13\b
+__REDIRECT_NTH
+ (
+©ªhl
+, (\13\b),
+__©ªhl_f\9a\99e
+);
+
+95 \r\b
+__REDIRECT_NTH
+ (
+cosh
+, (\b),
+__cosh_f\9a\99e
+);
+
+96 #ifdeà
+__USE_ISOC99
+
+
+97 \r\ e
+__REDIRECT_NTH
+ (
+coshf
+, (\ e),
+__coshf_f\9a\99e
+);
+
+98 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+99 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+100 \r\13\b
+__REDIRECT_NTH
+ (
+coshl
+, (\13\b),
+__cosh_f\9a\99e
+);
+
+102 \r\13\b
+__REDIRECT_NTH
+ (
+coshl
+, (\13\b),
+__coshl_f\9a\99e
+);
+
+108 \r\b
+__REDIRECT_NTH
+ (
+exp
+, (\b),
+__exp_f\9a\99e
+);
+
+109 #ifdeà
+__USE_ISOC99
+
+
+110 \r\ e
+__REDIRECT_NTH
+ (
+expf
+, (\ e),
+__expf_f\9a\99e
+);
+
+111 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+112 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+113 \r\13\b
+__REDIRECT_NTH
+ (
+ex¶
+, (\13\b),
+__exp_f\9a\99e
+);
+
+115 \r\13\b
+__REDIRECT_NTH
+ (
+ex¶
+, (\13\b),
+__ex¶_f\9a\99e
+);
+
+120 #ifdeà
+__USE_GNU
+
+
+122 \r\b
+__REDIRECT_NTH
+ (
+exp10
+, (\b),
+__exp10_f\9a\99e
+);
+
+123 \r\ e
+__REDIRECT_NTH
+ (
+exp10f
+, (\ e),
+__exp10f_f\9a\99e
+);
+
+124 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+125 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+126 \r\13\b
+__REDIRECT_NTH
+ (
+exp10l
+, (\13\b),
+__exp10_f\9a\99e
+);
+
+128 \r\13\b
+__REDIRECT_NTH
+ (
+exp10l
+, (\13\b),
+__exp10l_f\9a\99e
+);
+
+133 \r\b
+__REDIRECT_NTH
+ (
+pow10
+, (\b),
+__exp10_f\9a\99e
+);
+
+134 \r\ e
+__REDIRECT_NTH
+ (
+pow10f
+, (\ e),
+__exp10f_f\9a\99e
+);
+
+135 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+136 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+137 \r\13\b
+__REDIRECT_NTH
+ (
+pow10l
+, (\13\b),
+__exp10_f\9a\99e
+);
+
+139 \r\13\b
+__REDIRECT_NTH
+ (
+pow10l
+, (\13\b),
+__exp10l_f\9a\99e
+);
+
+144 #ifdeà
+__USE_ISOC99
+
+
+146 \r\b
+__REDIRECT_NTH
+ (
+exp2
+, (\b),
+__exp2_f\9a\99e
+);
+
+147 \r\ e
+__REDIRECT_NTH
+ (
+exp2f
+, (\ e),
+__exp2f_f\9a\99e
+);
+
+148 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+149 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+150 \r\13\b
+__REDIRECT_NTH
+ (
+exp2l
+, (\13\b),
+__exp2_f\9a\99e
+);
+
+152 \r\13\b
+__REDIRECT_NTH
+ (
+exp2l
+, (\13\b),
+__exp2l_f\9a\99e
+);
+
+158 \r\b
+__REDIRECT_NTH
+ (
+fmod
+, (\b, \b),
+__fmod_f\9a\99e
+);
+
+159 #ifdeà
+__USE_ISOC99
+
+
+160 \r\ e
+__REDIRECT_NTH
+ (
+fmodf
+, (\ e, \ e),
+__fmodf_f\9a\99e
+);
+
+161 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+162 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+163 \r\13\b
+__REDIRECT_NTH
+ (
+fmodl
+, (\13\b, \13\b),
+
+164
+__fmod_f\9a\99e
+);
+
+166 \r\13\b
+__REDIRECT_NTH
+ (
+fmodl
+, (\13\b, \13\b),
+
+167
+__fmodl_f\9a\99e
+);
+
+172 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_ISOC99
+
+
+174 \r\b
+__REDIRECT_NTH
+ (
+hypÙ
+, (\b, \b),
+__hypÙ_f\9a\99e
+);
+
+176 #ifdeà
+__USE_ISOC99
+
+
+177 \r\ e
+__REDIRECT_NTH
+ (
+hypÙf
+, (\ e, \ e),
+__hypÙf_f\9a\99e
+);
+
+178 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+179 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+180 \r\13\b
+__REDIRECT_NTH
+ (
+hypÙl
+, (\13\b, \13\b),
+
+181
+__hypÙ_f\9a\99e
+);
+
+183 \r\13\b
+__REDIRECT_NTH
+ (
+hypÙl
+, (\13\b, \13\b),
+
+184
+__hypÙl_f\9a\99e
+);
+
+189 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+191 \r\b
+__REDIRECT_NTH
+ (
+j0
+, (\b),
+__j0_f\9a\99e
+);
+
+193 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+194 \r\ e
+__REDIRECT_NTH
+ (
+j0f
+, (\ e),
+__j0f_f\9a\99e
+);
+
+195 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+196 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+197 \r\13\b
+__REDIRECT_NTH
+ (
+j0l
+, (\13\b),
+__j0_f\9a\99e
+);
+
+199 \r\13\b
+__REDIRECT_NTH
+ (
+j0l
+, (\13\b),
+__j0l_f\9a\99e
+);
+
+204 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+206 \r\b
+__REDIRECT_NTH
+ (
+y0
+, (\b),
+__y0_f\9a\99e
+);
+
+208 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+209 \r\ e
+__REDIRECT_NTH
+ (
+y0f
+, (\ e),
+__y0f_f\9a\99e
+);
+
+210 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+211 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+212 \r\13\b
+__REDIRECT_NTH
+ (
+y0l
+, (\13\b),
+__y0_f\9a\99e
+);
+
+214 \r\13\b
+__REDIRECT_NTH
+ (
+y0l
+, (\13\b),
+__y0l_f\9a\99e
+);
+
+219 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+221 \r\b
+__REDIRECT_NTH
+ (
+j1
+, (\b),
+__j1_f\9a\99e
+);
+
+223 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+224 \r\ e
+__REDIRECT_NTH
+ (
+j1f
+, (\ e),
+__j1f_f\9a\99e
+);
+
+225 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+226 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+227 \r\13\b
+__REDIRECT_NTH
+ (
+j1l
+, (\13\b),
+__j1_f\9a\99e
+);
+
+229 \r\13\b
+__REDIRECT_NTH
+ (
+j1l
+, (\13\b),
+__j1l_f\9a\99e
+);
+
+234 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+236 \r\b
+__REDIRECT_NTH
+ (
+y1
+, (\b),
+__y1_f\9a\99e
+);
+
+238 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+239 \r\ e
+__REDIRECT_NTH
+ (
+y1f
+, (\ e),
+__y1f_f\9a\99e
+);
+
+240 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+241 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+242 \r\13\b
+__REDIRECT_NTH
+ (
+y1l
+, (\13\b),
+__y1_f\9a\99e
+);
+
+244 \r\13\b
+__REDIRECT_NTH
+ (
+y1l
+, (\13\b),
+__y1l_f\9a\99e
+);
+
+249 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+251 \r\b
+__REDIRECT_NTH
+ (
+jn
+, (\12, \b),
+__jn_f\9a\99e
+);
+
+253 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+254 \r\ e
+__REDIRECT_NTH
+ (
+jnf
+, (\12, \ e),
+__jnf_f\9a\99e
+);
+
+255 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+256 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+257 \r\13\b
+__REDIRECT_NTH
+ (
+jÆ
+, (\12, \13\b),
+__jn_f\9a\99e
+);
+
+259 \r\13\b
+__REDIRECT_NTH
+ (
+jÆ
+, (\12, \13\b),
+__jÆ_f\9a\99e
+);
+
+264 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+266 \r\b
+__REDIRECT_NTH
+ (
+yn
+, (\12, \b),
+__yn_f\9a\99e
+);
+
+268 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+269 \r\ e
+__REDIRECT_NTH
+ (
+ynf
+, (\12, \ e),
+__ynf_f\9a\99e
+);
+
+270 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+271 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+272 \r\13\b
+__REDIRECT_NTH
+ (
+yÆ
+, (\12, \13\b),
+__yn_f\9a\99e
+);
+
+274 \r\13\b
+__REDIRECT_NTH
+ (
+yÆ
+, (\12, \13\b),
+__yÆ_f\9a\99e
+);
+
+279 #ifdeà
+__USE_MISC
+
+
+281 \r\b
+__REDIRECT_NTH
+ (
+lgamma_r
+, (\b, \12*),
+__lgamma_r_f\9a\99e
+);
+
+282 #ifdeà
+__USE_ISOC99
+
+
+283 \r\ e
+__REDIRECT_NTH
+ (
+lgammaf_r
+, (\ e, \12*),
+__lgammaf_r_f\9a\99e
+);
+
+284 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+285 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+286 \r\13\b
+__REDIRECT_NTH
+ (
+lgamm®_r
+, (\13\b, \12*),
+
+287
+__lgamma_r_f\9a\99e
+);
+
+289 \r\13\b
+__REDIRECT_NTH
+ (
+lgamm®_r
+, (\13\b, \12*),
+
+290
+__lgamm®_r_f\9a\99e
+);
+
+296 \r\b
+__lgamma_r_f\9a\99e
+ (\b, \12*);
+
+297 \r\ e
+__lgammaf_r_f\9a\99e
+ (\ e, \12*);
+
+298 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+299 \r\13\b
+__REDIRECT_NTH
+ (
+__lgamm®_r_f\9a\99e
+, (\13\b, \12*),
+
+300
+__lgamma_r_f\9a\99e
+);
+
+302 \r\13\b
+__lgamm®_r_f\9a\99e
+ (\13\b, \12*);
+
+305 #ià((
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_ISOC99
+) \
+
+306 &&
+def\9aed
+
+ g__ex\8bº_®ways_\9al\9ae
+)
+
+308
+__ex\8bº_®ways_\9al\9ae
+ \b
+__NTH
+ (
+ $lgamma
+ (\b
+__d
+))
+
+310 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+311 \15
+ `__lgamma_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+313 \12
+__loÿl_signgam
+ = 0;
+
+314 \15
+ `__lgamma_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+316
+ }
+}
+
+318 #ià
+def\9aed
+
+__USE_ISOC99
+ && def\9aed
+__ex\8bº_®ways_\9al\9ae
+
+
+319
+__ex\8bº_®ways_\9al\9ae
+ \ e
+__NTH
+ (
+ $lgammaf
+ (\ e
+__d
+))
+
+321 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+322 \15
+ `__lgammaf_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+324 \12
+__loÿl_signgam
+ = 0;
+
+325 \15
+ `__lgammaf_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+327
+ }
+}
+
+328 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+329
+__ex\8bº_®ways_\9al\9ae
+ \13\b
+__NTH
+ (
+ $lgamm®
+ (\13\b
+__d
+))
+
+331 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN
+
+
+332 \15
+ `__lgamm®_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+334 \12
+__loÿl_signgam
+ = 0;
+
+335 \15
+ `__lgamm®_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+337
+ }
+}
+
+341 #ià((
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+)) \
+
+342 &&
+def\9aed
+
+ g__ex\8bº_®ways_\9al\9ae
+)
+
+344
+__ex\8bº_®ways_\9al\9ae
+ \b
+__NTH
+ (
+ $gamma
+ (\b
+__d
+))
+
+346 \15
+ `__lgamma_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+347
+ }
+}
+
+348 #ifdeà
+__USE_ISOC99
+
+
+349
+__ex\8bº_®ways_\9al\9ae
+ \ e
+__NTH
+ (
+ $gammaf
+ (\ e
+__d
+))
+
+351 \15
+ `__lgammaf_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+352
+ }
+}
+
+353 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+354
+__ex\8bº_®ways_\9al\9ae
+ \13\b
+__NTH
+ (
+ $gamm®
+ (\13\b
+__d
+))
+
+356 \15
+ `__lgamm®_r_f\9a\99e
+ (
+__d
+, &
+signgam
+);
+
+357
+ }
+}
+
+363 \r\b
+__REDIRECT_NTH
+ (
+log
+, (\b),
+__log_f\9a\99e
+);
+
+364 #ifdeà
+__USE_ISOC99
+
+
+365 \r\ e
+__REDIRECT_NTH
+ (
+logf
+, (\ e),
+__logf_f\9a\99e
+);
+
+366 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+367 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+368 \r\13\b
+__REDIRECT_NTH
+ (
+logl
+, (\13\b),
+__log_f\9a\99e
+);
+
+370 \r\13\b
+__REDIRECT_NTH
+ (
+logl
+, (\13\b),
+__logl_f\9a\99e
+);
+
+376 \r\b
+__REDIRECT_NTH
+ (
+log10
+, (\b),
+__log10_f\9a\99e
+);
+
+377 #ifdeà
+__USE_ISOC99
+
+
+378 \r\ e
+__REDIRECT_NTH
+ (
+log10f
+, (\ e),
+__log10f_f\9a\99e
+);
+
+379 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+380 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+381 \r\13\b
+__REDIRECT_NTH
+ (
+log10l
+, (\13\b),
+__log10_f\9a\99e
+);
+
+383 \r\13\b
+__REDIRECT_NTH
+ (
+log10l
+, (\13\b),
+__log10l_f\9a\99e
+);
+
+388 #ifdeà
+__USE_ISOC99
+
+
+390 \r\b
+__REDIRECT_NTH
+ (
+log2
+, (\b),
+__log2_f\9a\99e
+);
+
+391 \r\ e
+__REDIRECT_NTH
+ (
+log2f
+, (\ e),
+__log2f_f\9a\99e
+);
+
+392 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+393 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+394 \r\13\b
+__REDIRECT_NTH
+ (
+log2l
+, (\13\b),
+__log2_f\9a\99e
+);
+
+396 \r\13\b
+__REDIRECT_NTH
+ (
+log2l
+, (\13\b),
+__log2l_f\9a\99e
+);
+
+402 \r\b
+__REDIRECT_NTH
+ (
+pow
+, (\b, \b),
+__pow_f\9a\99e
+);
+
+403 #ifdeà
+__USE_ISOC99
+
+
+404 \r\ e
+__REDIRECT_NTH
+ (
+powf
+, (\ e, \ e),
+__powf_f\9a\99e
+);
+
+405 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+406 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+407 \r\13\b
+__REDIRECT_NTH
+ (
+powl
+, (\13\b, \13\b),
+
+408
+__pow_f\9a\99e
+);
+
+410 \r\13\b
+__REDIRECT_NTH
+ (
+powl
+, (\13\b, \13\b),
+
+411
+__powl_f\9a\99e
+);
+
+416 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+418 \r\b
+__REDIRECT_NTH
+ (
+»ma\9ad\94
+, (\b, \b),
+__»ma\9ad\94_f\9a\99e
+);
+
+420 #ifdeà
+__USE_ISOC99
+
+
+421 \r\ e
+__REDIRECT_NTH
+ (
+»ma\9ad\94f
+, (\ e, \ e),
+__»ma\9ad\94f_f\9a\99e
+);
+
+422 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+423 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+424 \r\13\b
+__REDIRECT_NTH
+ (
+»ma\9ad\94l
+, (\13\b, \13\b),
+
+425
+__»ma\9ad\94_f\9a\99e
+);
+
+427 \r\13\b
+__REDIRECT_NTH
+ (
+»ma\9ad\94l
+, (\13\b, \13\b),
+
+428
+__»ma\9ad\94l_f\9a\99e
+);
+
+433 #ià(
+def\9aed
+
+__USE_MISC
+ \
+
+434 || (
+def\9aed
+
+ g__USE_XOPEN_EXTENDED
+ && !def\9aed
+ g__USE_XOPEN2K8
+))
+
+436 \r\b
+__REDIRECT_NTH
+ (
+sÿlb
+, (\b, \b),
+__sÿlb_f\9a\99e
+);
+
+438 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__USE_ISOC99
+
+
+439 \r\ e
+__REDIRECT_NTH
+ (
+sÿlbf
+, (\ e, \ e),
+__sÿlbf_f\9a\99e
+);
+
+440 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+441 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+442 \r\13\b
+__REDIRECT_NTH
+ (
+sÿlbl
+, (\13\b, \13\b),
+
+443
+__sÿlb_f\9a\99e
+);
+
+445 \r\13\b
+__REDIRECT_NTH
+ (
+sÿlbl
+, (\13\b, \13\b),
+
+446
+__sÿlbl_f\9a\99e
+);
+
+452 \r\b
+__REDIRECT_NTH
+ (
+s\9ah
+, (\b),
+__s\9ah_f\9a\99e
+);
+
+453 #ifdeà
+__USE_ISOC99
+
+
+454 \r\ e
+__REDIRECT_NTH
+ (
+s\9ahf
+, (\ e),
+__s\9ahf_f\9a\99e
+);
+
+455 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+456 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+457 \r\13\b
+__REDIRECT_NTH
+ (
+s\9ahl
+, (\13\b),
+__s\9ah_f\9a\99e
+);
+
+459 \r\13\b
+__REDIRECT_NTH
+ (
+s\9ahl
+, (\13\b),
+__s\9ahl_f\9a\99e
+);
+
+465 \r\b
+__REDIRECT_NTH
+ (
+sq¹
+, (\b),
+__sq¹_f\9a\99e
+);
+
+466 #ifdeà
+__USE_ISOC99
+
+
+467 \r\ e
+__REDIRECT_NTH
+ (
+sq¹f
+, (\ e),
+__sq¹f_f\9a\99e
+);
+
+468 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+469 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+470 \r\13\b
+__REDIRECT_NTH
+ (
+sq¹l
+, (\13\b),
+__sq¹_f\9a\99e
+);
+
+472 \r\13\b
+__REDIRECT_NTH
+ (
+sq¹l
+, (\13\b),
+__sq¹l_f\9a\99e
+);
+
+477 #ià
+def\9aed
+
+__USE_ISOC99
+ && def\9aed
+__ex\8bº_®ways_\9al\9ae
+
+
+479 \r\b
+__gamma_r_f\9a\99e
+ (\b, \12*);
+
+480
+__ex\8bº_®ways_\9al\9ae
+ \b
+__NTH
+ (
+ $tgamma
+ (\b
+__d
+))
+
+482 \12
+__loÿl_signgam
+ = 0;
+
+483 \b
+__»s
+ =
+ `__gamma_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+484 \15
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+485
+ }
+}
+
+486 \r\ e
+__gammaf_r_f\9a\99e
+ (\ e, \12*);
+
+487
+__ex\8bº_®ways_\9al\9ae
+ \ e
+__NTH
+ (
+ $tgammaf
+ (\ e
+__d
+))
+
+489 \12
+__loÿl_signgam
+ = 0;
+
+490 \ e
+__»s
+ =
+ `__gammaf_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+491 \15
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+492
+ }
+}
+
+493 #ifdeà
+__MATH_DECLARE_LDOUBLE
+
+
+494 \r\13\b
+__gamm®_r_f\9a\99e
+ (\13\b, \12*);
+
+495
+__ex\8bº_®ways_\9al\9ae
+ \13\b
+__NTH
+ (
+ $tgamm®
+ (\13\b
+__d
+))
+
+497 \12
+__loÿl_signgam
+ = 0;
+
+498 #ifdeà
+__NO_LONG_DOUBLE_MATH
+
+
+499 \13\b
+__»s
+ =
+ `__gamma_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+501 \13\b
+__»s
+ =
+ `__gamm®_r_f\9a\99e
+ (
+__d
+, &
+__loÿl_signgam
+);
+
+503 \15
+__loÿl_signgam
+ < 0 ? -
+__»s
+ : __res;
+
+504
+ }
+}
+
+ @/usr/include/bits/math-vector.h
+
+19 #iâdeà
+_MATH_H
+
+
+25 \ 2
+ ~<b\99s/libm-simd-deþ-¡ubs.h
+>
+
+27 #ià
+def\9aed
+
+__x86_64__
+ && def\9aed
+__FAST_MATH__
+
+
+28 #ià
+def\9aed
+
+_OPENMP
+ && _OPENMP >= 201307
+
+30 \ 1
+ #__DECL_SIMD_x86_64
+
+ `_P¿gma
+ ("om°deþ¬\90simd\82Ù\9ab¿nch")
+
+ )
+
+31 #\96ià
+__GNUC_PREREQ
+ (6,0)
+
+33 \ 1
+ #__DECL_SIMD_x86_64
+
+ `__©\8cibu\8b__
+ ((
+ `__simd__
+ ("nÙ\9ab¿nch")))
+
+ )
+
+36 #ifdeà
+__DECL_SIMD_x86_64
+
+
+37 #undeà
+__DECL_SIMD_cos
+
+
+38 \ 1
+ #__DECL_SIMD_cos
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+39 #undeà
+__DECL_SIMD_cosf
+
+
+40 \ 1
+ #__DECL_SIMD_cosf
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+41 #undeà
+__DECL_SIMD_s\9a
+
+
+42 \ 1
+ #__DECL_SIMD_s\9a
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+43 #undeà
+__DECL_SIMD_s\9af
+
+
+44 \ 1
+ #__DECL_SIMD_s\9af
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+45 #undeà
+__DECL_SIMD_s\9acos
+
+
+46 \ 1
+ #__DECL_SIMD_s\9acos
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+47 #undeà
+__DECL_SIMD_s\9acosf
+
+
+48 \ 1
+ #__DECL_SIMD_s\9acosf
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+49 #undeà
+__DECL_SIMD_log
+
+
+50 \ 1
+ #__DECL_SIMD_log
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+51 #undeà
+__DECL_SIMD_logf
+
+
+52 \ 1
+ #__DECL_SIMD_logf
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+53 #undeà
+__DECL_SIMD_exp
+
+
+54 \ 1
+ #__DECL_SIMD_exp
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+55 #undeà
+__DECL_SIMD_expf
+
+
+56 \ 1
+ #__DECL_SIMD_expf
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+57 #undeà
+__DECL_SIMD_pow
+
+
+58 \ 1
+ #__DECL_SIMD_pow
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+59 #undeà
+__DECL_SIMD_powf
+
+
+60 \ 1
+ #__DECL_SIMD_powf
+
+__DECL_SIMD_x86_64
+
+
+ )
+
+ @/usr/include/bits/mathcalls.h
+
+45 #iâdeà
+_MATH_H
+
+
+52
+_MdoubË_BEGIN_NAMESPACE
+
+
+54
+__MATHCALL
+ (
+acos
+,, (
+_MdoubË_
+
+__x
+));
+
+56
+__MATHCALL
+ (
+as\9a
+,, (
+_MdoubË_
+
+__x
+));
+
+58
+__MATHCALL
+ (
+©ª
+,, (
+_MdoubË_
+
+__x
+));
+
+60
+__MATHCALL
+ (
+©ª2
+,, (
+_MdoubË_
+
+__y
+, _MdoubË_
+__x
+));
+
+63
+__MATHCALL_VEC
+ (
+cos
+,, (
+_MdoubË_
+
+__x
+));
+
+65
+__MATHCALL_VEC
+ (
+s\9a
+,, (
+_MdoubË_
+
+__x
+));
+
+67
+__MATHCALL
+ (
+\8fn
+,, (
+_MdoubË_
+
+__x
+));
+
+72
+__MATHCALL
+ (
+cosh
+,, (
+_MdoubË_
+
+__x
+));
+
+74
+__MATHCALL
+ (
+s\9ah
+,, (
+_MdoubË_
+
+__x
+));
+
+76
+__MATHCALL
+ (
+\8fnh
+,, (
+_MdoubË_
+
+__x
+));
+
+77
+ g_MdoubË_END_NAMESPACE
+
+
+79 #ifdeà
+__USE_GNU
+
+
+81
+__MATHDECL_VEC
+ (\1e,
+s\9acos
+,,
+
+82 (
+_MdoubË_
+
+__x
+, _MdoubË_ *
+__s\9ax
+, _MdoubË_ *
+__cosx
+));
+
+85 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+86
+__BEGIN_NAMESPACE_C99
+
+
+88
+__MATHCALL
+ (
+acosh
+,, (
+_MdoubË_
+
+__x
+));
+
+90
+__MATHCALL
+ (
+as\9ah
+,, (
+_MdoubË_
+
+__x
+));
+
+92
+__MATHCALL
+ (
+©ªh
+,, (
+_MdoubË_
+
+__x
+));
+
+93
+ g__END_NAMESPACE_C99
+
+
+98
+_MdoubË_BEGIN_NAMESPACE
+
+
+100
+__MATHCALL_VEC
+ (
+exp
+,, (
+_MdoubË_
+
+__x
+));
+
+103
+__MATHCALL
+ (
+äexp
+,, (
+_MdoubË_
+
+__x
+, \12*
+__expڒt
+));
+
+106
+__MATHCALL
+ (
+ldexp
+,, (
+_MdoubË_
+
+__x
+, \12
+__expڒt
+));
+
+109
+__MATHCALL_VEC
+ (
+log
+,, (
+_MdoubË_
+
+__x
+));
+
+112
+__MATHCALL
+ (
+log10
+,, (
+_MdoubË_
+
+__x
+));
+
+115
+__MATHCALL
+ (
+modf
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_ *
+__\9d\8c
+)è
+__nÚnuÎ
+ ((2));
+
+116
+ g_MdoubË_END_NAMESPACE
+
+
+118 #ifdeà
+__USE_GNU
+
+
+120
+__MATHCALL
+ (
+exp10
+,, (
+_MdoubË_
+
+__x
+));
+
+122
+__MATHCALL
+ (
+pow10
+,, (
+_MdoubË_
+
+__x
+));
+
+125 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+126
+__BEGIN_NAMESPACE_C99
+
+
+128
+__MATHCALL
+ (
+expm1
+,, (
+_MdoubË_
+
+__x
+));
+
+131
+__MATHCALL
+ (
+log1p
+,, (
+_MdoubË_
+
+__x
+));
+
+134
+__MATHCALL
+ (
+logb
+,, (
+_MdoubË_
+
+__x
+));
+
+135
+ g__END_NAMESPACE_C99
+
+
+138 #ifdeà
+__USE_ISOC99
+
+
+139
+__BEGIN_NAMESPACE_C99
+
+
+141
+__MATHCALL
+ (
+exp2
+,, (
+_MdoubË_
+
+__x
+));
+
+144
+__MATHCALL
+ (
+log2
+,, (
+_MdoubË_
+
+__x
+));
+
+145
+ g__END_NAMESPACE_C99
+
+
+151
+_MdoubË_BEGIN_NAMESPACE
+
+
+153
+__MATHCALL_VEC
+ (
+pow
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+156
+__MATHCALL
+ (
+sq¹
+,, (
+_MdoubË_
+
+__x
+));
+
+157
+ g_MdoubË_END_NAMESPACE
+
+
+159 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_ISOC99
+
+
+160
+__BEGIN_NAMESPACE_C99
+
+
+162
+__MATHCALL
+ (
+hypÙ
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+163
+ g__END_NAMESPACE_C99
+
+
+166 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+167
+__BEGIN_NAMESPACE_C99
+
+
+169
+__MATHCALL
+ (
+cb¹
+,, (
+_MdoubË_
+
+__x
+));
+
+170
+ g__END_NAMESPACE_C99
+
+
+176
+_MdoubË_BEGIN_NAMESPACE
+
+
+178
+__MATHCALLX
+ (
+û\9e
+,, (
+_MdoubË_
+
+__x
+), (
+__cڡ__
+));
+
+181
+__MATHCALLX
+ (
+çbs
+,, (
+_MdoubË_
+
+__x
+), (
+__cڡ__
+));
+
+184
+__MATHCALLX
+ (
+æoÜ
+,, (
+_MdoubË_
+
+__x
+), (
+__cڡ__
+));
+
+187
+__MATHCALL
+ (
+fmod
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+192
+__MATHDECL_1
+ (\12,
+__is\9af
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+195
+__MATHDECL_1
+ (\12,
+__f\9a\99e
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+196
+ g_MdoubË_END_NAMESPACE
+
+
+198 #ifdeà
+__USE_MISC
+
+
+199 #ià(!
+def\9aed
+
+__ýlu¥lus
+ \
+
+200 ||
+ g__ýlu¥lus
+ < 201103L \
+
+201 ||
+ g__MATH_DECLARING_DOUBLE
+ == 0)
+
+204
+__MATHDECL_1
+ (\12,
+is\9af
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+208
+__MATHDECL_1
+ (\12,
+f\9a\99e
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+211
+__MATHCALL
+ (
+d»m
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+215
+__MATHCALL
+ (
+signifiÿnd
+,, (
+_MdoubË_
+
+__x
+));
+
+218 #ifdeà
+__USE_ISOC99
+
+
+219
+__BEGIN_NAMESPACE_C99
+
+
+221
+__MATHCALLX
+ (
+cÝysign
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+), (
+__cڡ__
+));
+
+222
+ g__END_NAMESPACE_C99
+
+
+225 #ifdeà
+__USE_ISOC99
+
+
+226
+__BEGIN_NAMESPACE_C99
+
+
+228
+__MATHCALLX
+ (
+Çn
+,, (cڡ \ 5*
+__\8fgb
+), (
+__cڡ__
+));
+
+229
+ g__END_NAMESPACE_C99
+
+
+234
+__MATHDECL_1
+ (\12,
+__i¢ª
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+236 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+)
+
+237 #ià(!
+def\9aed
+
+__ýlu¥lus
+ \
+
+238 ||
+ g__ýlu¥lus
+ < 201103L \
+
+239 ||
+ g__MATH_DECLARING_DOUBLE
+ == 0)
+
+241
+__MATHDECL_1
+ (\12,
+i¢ª
+,, (
+_MdoubË_
+
+__v®ue
+)è
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+245 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ &&
+__MATH_DECLARING_DOUBLE
+)
+
+247
+__MATHCALL
+ (
+j0
+,, (
+_MdoubË_
+));
+
+248
+__MATHCALL
+ (
+j1
+,, (
+_MdoubË_
+));
+
+249
+__MATHCALL
+ (
+jn
+,, (\12,
+_MdoubË_
+));
+
+250
+__MATHCALL
+ (
+y0
+,, (
+_MdoubË_
+));
+
+251
+__MATHCALL
+ (
+y1
+,, (
+_MdoubË_
+));
+
+252
+__MATHCALL
+ (
+yn
+,, (\12,
+_MdoubË_
+));
+
+256 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_ISOC99
+
+
+257
+__BEGIN_NAMESPACE_C99
+
+
+259
+__MATHCALL
+ (
+\94f
+,, (
+_MdoubË_
+));
+
+260
+__MATHCALL
+ (
+\94fc
+,, (
+_MdoubË_
+));
+
+261
+__MATHCALL
+ (
+lgamma
+,, (
+_MdoubË_
+));
+
+262
+ g__END_NAMESPACE_C99
+
+
+265 #ifdeà
+__USE_ISOC99
+
+
+266
+__BEGIN_NAMESPACE_C99
+
+
+268
+__MATHCALL
+ (
+tgamma
+,, (
+_MdoubË_
+));
+
+269
+ g__END_NAMESPACE_C99
+
+
+272 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_XOPEN2K
+)
+
+274
+__MATHCALL
+ (
+gamma
+,, (
+_MdoubË_
+));
+
+277 #ifdeà
+__USE_MISC
+
+
+281
+__MATHCALL
+ (
+lgamma
+,
+_r
+, (
+_MdoubË_
+, \12*
+__signgamp
+));
+
+285 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+286
+__BEGIN_NAMESPACE_C99
+
+
+289
+__MATHCALL
+ (
+r\9at
+,, (
+_MdoubË_
+
+__x
+));
+
+292
+__MATHCALLX
+ (
+Ãx\8fá\94
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+), (
+__cڡ__
+));
+
+293 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__LDBL_COMPAT
+
+
+294
+__MATHCALLX
+ (
+Ãx\89ow¬d
+,, (
+_MdoubË_
+
+__x
+, \13\b
+__y
+), (
+__cڡ__
+));
+
+298
+__MATHCALL
+ (
+»ma\9ad\94
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+300 #ifdeà
+__USE_ISOC99
+
+
+302
+__MATHCALL
+ (
+sÿlbn
+,, (
+_MdoubË_
+
+__x
+, \12
+__n
+));
+
+306
+__MATHDECL
+ (\12,
+\9eogb
+,, (
+_MdoubË_
+
+__x
+));
+
+309 #ifdeà
+__USE_ISOC99
+
+
+311
+__MATHCALL
+ (
+sÿlbÊ
+,, (
+_MdoubË_
+
+__x
+, \13\12
+__n
+));
+
+315
+__MATHCALL
+ (
+ìby\9at
+,, (
+_MdoubË_
+
+__x
+));
+
+319
+__MATHCALLX
+ (
+round
+,, (
+_MdoubË_
+
+__x
+), (
+__cڡ__
+));
+
+323
+__MATHCALLX
+ (
+\8cunc
+,, (
+_MdoubË_
+
+__x
+), (
+__cڡ__
+));
+
+328
+__MATHCALL
+ (
+»mquo
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+, \12*
+__quo
+));
+
+335
+__MATHDECL
+ (\13\12,
+̚t
+,, (
+_MdoubË_
+
+__x
+));
+
+336
+__ex\8bnsiÚ__
+
+
+337
+__MATHDECL
+ (\13\13\12,
+Îr\9at
+,, (
+_MdoubË_
+
+__x
+));
+
+341
+__MATHDECL
+ (\13\12,
+Ìound
+,, (
+_MdoubË_
+
+__x
+));
+
+342
+__ex\8bnsiÚ__
+
+
+343
+__MATHDECL
+ (\13\13\12,
+Îround
+,, (
+_MdoubË_
+
+__x
+));
+
+347
+__MATHCALL
+ (
+fdim
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+));
+
+350
+__MATHCALLX
+ (
+fmax
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+), (
+__cڡ__
+));
+
+353
+__MATHCALLX
+ (
+fm\9a
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+), (
+__cڡ__
+));
+
+357
+__MATHDECL_1
+ (\12,
+__åþassify
+,, (
+_MdoubË_
+
+__v®ue
+))
+
+358
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+361
+__MATHDECL_1
+ (\12,
+__signb\99
+,, (
+_MdoubË_
+
+__v®ue
+))
+
+362
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+366
+__MATHCALL
+ (
+fma
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__y
+, _MdoubË_
+__z
+));
+
+369 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+370
+ g__END_NAMESPACE_C99
+
+
+373 #ifdeà
+__USE_GNU
+
+
+375
+__MATHDECL_1
+ (\12,
+__issigÇl\9ag
+,, (
+_MdoubË_
+
+__v®ue
+))
+
+376
+__©\8cibu\8b__
+ ((
+__cڡ__
+));
+
+379 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN_EXTENDED
+ \
+
+380 &&
+ g__MATH_DECLARING_DOUBLE
+ \
+
+381 && !
+def\9aed
+
+ g__USE_XOPEN2K8
+)
+
+383
+__MATHCALL
+ (
+sÿlb
+,, (
+_MdoubË_
+
+__x
+, _MdoubË_
+__n
+));
+
+ @/usr/include/bits/mathdef.h
+
+18 #ià!
+def\9aed
+
+_MATH_H
+ && !def\9aed
+_COMPLEX_H
+
+
+22 #ià
+def\9aed
+
+__USE_ISOC99
+ && def\9aed
+_MATH_H
+ && !def\9aed
+_MATH_H_MATHDEF
+
+
+23 \ 1
+ #_MATH_H_MATHDEF
+ 1
+
+ )
+
+25 #ià
+def\9aed
+
+__x86_64__
+ || (def\9aed
+__FLT_EVAL_METHOD__
+ && __FLT_EVAL_METHOD__ == 0)
+
+28 \e\ e
+ tæßt_t
+;
+
+29 \e\b
+ tdoubË_t
+;
+
+35 \e\13\b
+ tæßt_t
+;
+
+37 \e\13\b
+ tdoubË_t
+;
+
+42 \ 1
+ #FP_ILOGB0
+ (-2147483647 - 1)
+
+ )
+
+43 \ 1
+ #FP_ILOGBNAN
+ (-2147483647 - 1)
+
+ )
+
+47 #ifdeà
+__FP_FAST_FMA
+
+
+48 \ 1
+ #FP_FAST_FMA
+ 1
+
+ )
+
+51 #ifdeà
+__FP_FAST_FMAF
+
+
+52 \ 1
+ #FP_FAST_FMAF
+ 1
+
+ )
+
+55 #ifdeà
+__FP_FAST_FMAL
+
+
+56 \ 1
+ #FP_FAST_FMAL
+ 1
+
+ )
+
+ @/usr/include/bits/mathinline.h
+
+19 #iâdeà
+_MATH_H
+
+
+23 #iâdeà
+__ex\8bº_®ways_\9al\9ae
+
+
+24 \ 1
+ #__MATH_INLINE
+
+__\9al\9ae
+
+
+ )
+
+26 \ 1
+ #__MATH_INLINE
+
+__ex\8bº_®ways_\9al\9ae
+
+
+ )
+
+30 #ià
+def\9aed
+
+__USE_ISOC99
+ && def\9aed
+__GNUC__
+ && __GNUC__ >= 2
+
+32 #ià!
+__GNUC_PREREQ
+ (2,97)
+
+37 #undeà
+isg»©\94
+
+
+38 #undeà
+isg»©\94equ®
+
+
+39 #undeà
+i¦ess
+
+
+40 #undeà
+i¦es£qu®
+
+
+41 #undeà
+i¦essg»©\94
+
+
+42 #undeà
+isunÜd\94ed
+
+
+43 #ifdeà
+__i686__
+
+
+46 \ 1
+ #isg»©\94
+(
+x
+,
+y
+) \
+
+47 ({ \14\ 5
+__»suÉ
+; \
+
+48
+ `__asm__
+ ("fucomip %%st(1), %%st; seta %%al" \
+
+49 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+50
+__»suÉ
+; })
+
+ )
+
+51 \ 1
+ #isg»©\94equ®
+(
+x
+,
+y
+) \
+
+52 ({ \14\ 5
+__»suÉ
+; \
+
+53
+ `__asm__
+ ("fucomip %%st(1), %%st; setae %%al" \
+
+54 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+55
+__»suÉ
+; })
+
+ )
+
+57 \ 1
+ #i¦ess
+(
+x
+,
+y
+) \
+
+58 ({ \14\ 5
+__»suÉ
+; \
+
+59
+ `__asm__
+ ("fucomip %%st(1), %%st; seta %%al" \
+
+60 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st"); \
+
+61
+__»suÉ
+; })
+
+ )
+
+63 \ 1
+ #i¦es£qu®
+(
+x
+,
+y
+) \
+
+64 ({ \14\ 5
+__»suÉ
+; \
+
+65
+ `__asm__
+ ("fucomip %%st(1), %%st; setae %%al" \
+
+66 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st"); \
+
+67
+__»suÉ
+; })
+
+ )
+
+69 \ 1
+ #i¦essg»©\94
+(
+x
+,
+y
+) \
+
+70 ({ \14\ 5
+__»suÉ
+; \
+
+71
+ `__asm__
+ ("fucomip %%st(1), %%st; setne %%al" \
+
+72 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+73
+__»suÉ
+; })
+
+ )
+
+75 \ 1
+ #isunÜd\94ed
+(
+x
+,
+y
+) \
+
+76 ({ \14\ 5
+__»suÉ
+; \
+
+77
+ `__asm__
+ ("fucomip %%st(1), %%st; setp %%al" \
+
+78 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st"); \
+
+79
+__»suÉ
+; })
+
+ )
+
+82 \ 1
+ #isg»©\94
+(
+x
+,
+y
+) \
+
+83 ({ \14\ 5
+__»suÉ
+; \
+
+84
+ `__asm__
+ ("fucompp; fnstsw;\81estb $0x45, %%ah; setz %%al" \
+
+85 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+86
+__»suÉ
+; })
+
+ )
+
+88 \ 1
+ #isg»©\94equ®
+(
+x
+,
+y
+) \
+
+89 ({ \14\ 5
+__»suÉ
+; \
+
+90
+ `__asm__
+ ("fucompp; fnstsw;\81estb $0x05, %%ah; setz %%al" \
+
+91 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+92
+__»suÉ
+; })
+
+ )
+
+94 \ 1
+ #i¦ess
+(
+x
+,
+y
+) \
+
+95 ({ \14\ 5
+__»suÉ
+; \
+
+96
+ `__asm__
+ ("fucompp; fnstsw;\81estb $0x45, %%ah; setz %%al" \
+
+97 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st", "st(1)"); \
+
+98
+__»suÉ
+; })
+
+ )
+
+100 \ 1
+ #i¦es£qu®
+(
+x
+,
+y
+) \
+
+101 ({ \14\ 5
+__»suÉ
+; \
+
+102
+ `__asm__
+ ("fucompp; fnstsw;\81estb $0x05, %%ah; setz %%al" \
+
+103 : "÷" (
+__»suÉ
+è: "u" (
+x
+), "t" (
+y
+) : "cc", "st", "st(1)"); \
+
+104
+__»suÉ
+; })
+
+ )
+
+106 \ 1
+ #i¦essg»©\94
+(
+x
+,
+y
+) \
+
+107 ({ \14\ 5
+__»suÉ
+; \
+
+108
+ `__asm__
+ ("fucompp; fnstsw;\81estb $0x44, %%ah; setz %%al" \
+
+109 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+110
+__»suÉ
+; })
+
+ )
+
+112 \ 1
+ #isunÜd\94ed
+(
+x
+,
+y
+) \
+
+113 ({ \14\ 5
+__»suÉ
+; \
+
+114
+ `__asm__
+ ("fucompp; fnstsw; sahf; setp %%al" \
+
+115 : "÷" (
+__»suÉ
+è: "u" (
+y
+), "t" (
+x
+) : "cc", "st", "st(1)"); \
+
+116
+__»suÉ
+; })
+
+ )
+
+122 #ià
+__GNUC_PREREQ
+ (2, 8)
+
+123
+__BEGIN_NAMESPACE_C99
+
+
+126
+__MATH_INLINE
+ \12
+
+127
+__NTH
+ (
+ $__signb\99f
+ (\ e
+__x
+))
+
+129 #ifdeà
+__SSE2_MATH__
+
+
+130 \12
+__m
+;
+
+131
+ `__asm
+ ("pmovmskb %1, %0" : "ô" (
+__m
+è: "x" (
+__x
+));
+
+132 \15 (
+__m
+ & 0x8) != 0;
+
+134
+__ex\8bnsiÚ__
+ uniÚ { \ e
+__f
+; \12
+__i
+; }
+__u
+ = { __f:
+__x
+ };
+
+135 \15
+__u
+.
+__i
+ < 0;
+
+137
+ }
+}
+
+138
+__MATH_INLINE
+ \12
+
+139
+__NTH
+ (
+ $__signb\99
+ (\b
+__x
+))
+
+141 #ifdeà
+__SSE2_MATH__
+
+
+142 \12
+__m
+;
+
+143
+ `__asm
+ ("pmovmskb %1, %0" : "ô" (
+__m
+è: "x" (
+__x
+));
+
+144 \15 (
+__m
+ & 0x80) != 0;
+
+146
+__ex\8bnsiÚ__
+ uniÚ { \b
+__d
+; \12
+__i
+[2]; }
+__u
+ = { __d:
+__x
+ };
+
+147 \15
+__u
+.
+__i
+[1] < 0;
+
+149
+ }
+}
+
+150
+__MATH_INLINE
+ \12
+
+151
+__NTH
+ (
+ $__signb\99l
+ (\13\b
+__x
+))
+
+153
+__ex\8bnsiÚ__
+ uniÚ { \13\b
+__l
+; \12
+__i
+[3]; }
+__u
+ = { __l:
+__x
+ };
+
+154 \15 (
+__u
+.
+__i
+[2] & 0x8000) != 0;
+
+155
+ }
+}
+
+157
+ g__END_NAMESPACE_C99
+
+
+164 #ià
+__GNUC_PREREQ
+ (2, 8)
+
+165 #ià!
+__GNUC_PREREQ
+ (3, 4è&& !
+def\9aed
+
+__NO_MATH_INLINES
+ \
+
+166 &&
+def\9aed
+
+ g__OPTIMIZE__
+
+
+170 #ifdeà
+__USE_ISOC99
+
+
+171
+ g__BEGIN_NAMESPACE_C99
+
+
+174 #ifdeà
+__SSE_MATH__
+
+
+175
+__MATH_INLINE
+ \13\12
+
+176
+__NTH
+ (
+ $̚tf
+ (\ e
+__x
+))
+
+178 \13\12
+__»s
+;
+
+183
+__asm
+
+ `__vÞ©\9ee__
+ ("cvtss2s\98%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+184 \15
+__»s
+;
+
+185
+ }
+}
+
+187 #ifdeà
+__SSE2_MATH__
+
+
+188
+__MATH_INLINE
+ \13\12
+
+189
+__NTH
+ (
+ $̚t
+ (\b
+__x
+))
+
+191 \13\12
+__»s
+;
+
+196
+__asm
+
+ `__vÞ©\9ee__
+ ("cvtsd2s\98%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+197 \15
+__»s
+;
+
+198
+ }
+}
+
+200 #ifdeà
+__x86_64__
+
+
+201
+__ex\8bnsiÚ__
+
+
+202
+__MATH_INLINE
+ \13\13\12
+
+203
+__NTH
+ (
+ $Îr\9atf
+ (\ e
+__x
+))
+
+205 \13\13\12
+__»s
+;
+
+210
+__asm
+
+ `__vÞ©\9ee__
+ ("cvtss2s\98%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+211 \15
+__»s
+;
+
+212
+ }
+}
+
+213
+__ex\8bnsiÚ__
+
+
+214
+__MATH_INLINE
+ \13\13\12
+
+215
+__NTH
+ (
+ $Îr\9at
+ (\b
+__x
+))
+
+217 \13\13\12
+__»s
+;
+
+222
+__asm
+
+ `__vÞ©\9ee__
+ ("cvtsd2s\98%1, %0" : "ô" (
+__»s
+è: "xm" (
+__x
+));
+
+223 \15
+__»s
+;
+
+224
+ }
+}
+
+227 #ià
+def\9aed
+
+__FINITE_MATH_ONLY__
+ && __FINITE_MATH_ONLY__ > 0 \
+
+228 &&
+def\9aed
+
+__SSE2_MATH__
+
+
+230
+__MATH_INLINE
+ \ e
+
+231
+__NTH
+ (
+ $fmaxf
+ (\ e
+__x
+, \ e
+__y
+))
+
+233 #ifdeà
+__AVX__
+
+
+234 \ e
+__»s
+;
+
+235
+ `__asm
+ ("vmaxs %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+236 \15
+__»s
+;
+
+238
+ `__asm
+ ("maxs %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+239 \15
+__x
+;
+
+241
+ }
+}
+
+242
+__MATH_INLINE
+ \b
+
+243
+__NTH
+ (
+ $fmax
+ (\b
+__x
+, \b
+__y
+))
+
+245 #ifdeà
+__AVX__
+
+
+246 \ e
+__»s
+;
+
+247
+ `__asm
+ ("vmaxsd %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+248 \15
+__»s
+;
+
+250
+ `__asm
+ ("maxsd %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+251 \15
+__x
+;
+
+253
+ }
+}
+
+256
+__MATH_INLINE
+ \ e
+
+257
+__NTH
+ (
+ $fm\9af
+ (\ e
+__x
+, \ e
+__y
+))
+
+259 #ifdeà
+__AVX__
+
+
+260 \ e
+__»s
+;
+
+261
+ `__asm
+ ("vm\9as %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+262 \15
+__»s
+;
+
+264
+ `__asm
+ ("m\9as %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+265 \15
+__x
+;
+
+267
+ }
+}
+
+268
+__MATH_INLINE
+ \b
+
+269
+__NTH
+ (
+ $fm\9a
+ (\b
+__x
+, \b
+__y
+))
+
+271 #ifdeà
+__AVX__
+
+
+272 \ e
+__»s
+;
+
+273
+ `__asm
+ ("vm\9asd %2, %1, %0" : "=x" (
+__»s
+è: "x" (
+x
+), "xm" (
+__y
+));
+
+274 \15
+__»s
+;
+
+276
+ `__asm
+ ("m\9asd %1, %0" : "+x" (
+__x
+è: "xm" (
+__y
+));
+
+277 \15
+__x
+;
+
+279
+ }
+}
+
+282
+ g__END_NAMESPACE_C99
+
+
+285 #ià
+def\9aed
+
+__SSE4_1__
+ && def\9aed
+__SSE2_MATH__
+
+
+286 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_ISOC99
+
+
+287
+__BEGIN_NAMESPACE_C99
+
+
+290
+__MATH_INLINE
+ \b
+
+291
+__NTH
+ (
+ $r\9at
+ (\b
+__x
+))
+
+293 \b
+__»s
+;
+
+298
+__asm
+
+ `__vÞ©\9ee__
+ ("roundsd $4, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+299 \15
+__»s
+;
+
+300
+ }
+}
+
+301
+__MATH_INLINE
+ \ e
+
+302
+__NTH
+ (
+ $r\9atf
+ (\ e
+__x
+))
+
+304 \ e
+__»s
+;
+
+309
+__asm
+
+ `__vÞ©\9ee__
+ ("rounds $4, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+310 \15
+__»s
+;
+
+311
+ }
+}
+
+313 #ifdeà
+__USE_ISOC99
+
+
+315
+__MATH_INLINE
+ \b
+
+316
+__NTH
+ (
+ $ìby\9at
+ (\b
+__x
+))
+
+318 \b
+__»s
+;
+
+323
+__asm
+
+ `__vÞ©\9ee__
+ ("roundsd $0xc, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+324 \15
+__»s
+;
+
+325
+ }
+}
+
+326
+__MATH_INLINE
+ \ e
+
+327
+__NTH
+ (
+ $ìby\9atf
+ (\ e
+__x
+))
+
+329 \ e
+__»s
+;
+
+334
+__asm
+
+ `__vÞ©\9ee__
+ ("rounds $0xc, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+335 \15
+__»s
+;
+
+336
+ }
+}
+
+339
+ g__END_NAMESPACE_C99
+
+
+342
+__BEGIN_NAMESPACE_STD
+
+
+344
+__MATH_INLINE
+ \b
+
+345
+__NTH
+ (
+ $û\9e
+ (\b
+__x
+))
+
+347 \b
+__»s
+;
+
+348
+ `__asm
+ ("roundsd $2, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+349 \15
+__»s
+;
+
+350
+ }
+}
+
+351
+__END_NAMESPACE_STD
+
+
+353
+__BEGIN_NAMESPACE_C99
+
+
+354
+__MATH_INLINE
+ \ e
+
+355
+__NTH
+ (
+ $û\9ef
+ (\ e
+__x
+))
+
+357 \ e
+__»s
+;
+
+358
+ `__asm
+ ("rounds $2, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+359 \15
+__»s
+;
+
+360
+ }
+}
+
+361
+__END_NAMESPACE_C99
+
+
+363
+__BEGIN_NAMESPACE_STD
+
+
+365
+__MATH_INLINE
+ \b
+
+366
+__NTH
+ (
+ $æoÜ
+ (\b
+__x
+))
+
+368 \b
+__»s
+;
+
+369
+ `__asm
+ ("roundsd $1, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+370 \15
+__»s
+;
+
+371
+ }
+}
+
+372
+__END_NAMESPACE_STD
+
+
+374
+__BEGIN_NAMESPACE_C99
+
+
+375
+__MATH_INLINE
+ \ e
+
+376
+__NTH
+ (
+ $æoÜf
+ (\ e
+__x
+))
+
+378 \ e
+__»s
+;
+
+379
+ `__asm
+ ("rounds $1, %1, %0" : "=x" (
+__»s
+è: "xm" (
+__x
+));
+
+380 \15
+__»s
+;
+
+381
+ }
+}
+
+382
+ g__END_NAMESPACE_C99
+
+
+390 #ià!
+def\9aed
+
+__SSE2_MATH__
+ && !def\9aed
+__x86_64__
+
+
+391 #ià((!
+def\9aed
+
+__NO_MATH_INLINES
+ || def\9aed
+__LIBC_INTERNAL_MATH_INLINES
+) \
+
+392 &&
+def\9aed
+
+ g__OPTIMIZE__
+)
+
+396 #undeà
+m©h_\94rhªdl\9ag
+
+
+405 #ifdeà
+__USE_ISOC99
+
+
+406 \ 1
+ #__\9al\9ae_m©hÝ
+(
+func
+,
+Ý
+) \
+
+407
+ `__\9al\9ae_m©hÝ_
+ (\b,
+func
+,
+Ý
+) \
+
+408
+ `__\9al\9ae_m©hÝ_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+Ý
+) \
+
+409
+ `__\9al\9ae_m©hÝ_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+Ý
+)
+
+ )
+
+410 \ 1
+ #__\9al\9ae_m©hÝNP
+(
+func
+,
+Ý
+) \
+
+411
+ `__\9al\9ae_m©hÝNP_
+ (\b,
+func
+,
+Ý
+) \
+
+412
+ `__\9al\9ae_m©hÝNP_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+Ý
+) \
+
+413
+ `__\9al\9ae_m©hÝNP_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+Ý
+)
+
+ )
+
+415 \ 1
+ #__\9al\9ae_m©hÝ
+(
+func
+,
+Ý
+) \
+
+416
+ `__\9al\9ae_m©hÝ_
+ (\b,
+func
+,
+Ý
+)
+
+ )
+
+417 \ 1
+ #__\9al\9ae_m©hÝNP
+(
+func
+,
+Ý
+) \
+
+418
+ `__\9al\9ae_m©hÝNP_
+ (\b,
+func
+,
+Ý
+)
+
+ )
+
+421 \ 1
+ #__\9al\9ae_m©hÝ_
+(
+æßt_ty³
+,
+func
+,
+Ý
+) \
+
+422
+ `__\9al\9ae_m©hÝ_deþ_
+ (
+æßt_ty³
+,
+func
+,
+Ý
+, "0" (
+__x
+))
+
+ )
+
+423 \ 1
+ #__\9al\9ae_m©hÝNP_
+(
+æßt_ty³
+,
+func
+,
+Ý
+) \
+
+424
+ `__\9al\9ae_m©hÝ_deþNP_
+ (
+æßt_ty³
+,
+func
+,
+Ý
+, "0" (
+__x
+))
+
+ )
+
+427 #ifdeà
+__USE_ISOC99
+
+
+428 \ 1
+ #__\9al\9ae_m©hÝ_deþ
+(
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+429
+ `__\9al\9ae_m©hÝ_deþ_
+ (\b,
+func
+,
+Ý
+,
+·¿ms
+) \
+
+430
+ `__\9al\9ae_m©hÝ_deþ_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+Ý
+,
+·¿ms
+) \
+
+431
+ `__\9al\9ae_m©hÝ_deþ_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+Ý
+,
+·¿ms
+)
+
+ )
+
+432 \ 1
+ #__\9al\9ae_m©hÝ_deþNP
+(
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+433
+ `__\9al\9ae_m©hÝ_deþNP_
+ (\b,
+func
+,
+Ý
+,
+·¿ms
+) \
+
+434
+ `__\9al\9ae_m©hÝ_deþNP_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+Ý
+,
+·¿ms
+) \
+
+435
+ `__\9al\9ae_m©hÝ_deþNP_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+Ý
+,
+·¿ms
+)
+
+ )
+
+437 \ 1
+ #__\9al\9ae_m©hÝ_deþ
+(
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+438
+ `__\9al\9ae_m©hÝ_deþ_
+ (\b,
+func
+,
+Ý
+,
+·¿ms
+)
+
+ )
+
+439 \ 1
+ #__\9al\9ae_m©hÝ_deþNP
+(
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+440
+ `__\9al\9ae_m©hÝ_deþNP_
+ (\b,
+func
+,
+Ý
+,
+·¿ms
+)
+
+ )
+
+443 \ 1
+ #__\9al\9ae_m©hÝ_deþ_
+(
+æßt_ty³
+,
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+444
+__MATH_INLINE
+
+æßt_ty³
+
+ `func
+ (æßt_ty³è
+__THROW
+; \
+
+445
+ `__\9al\9ae_m©hÝ_deþNP_
+ (
+æßt_ty³
+,
+func
+,
+Ý
+,
+·¿ms
+)
+
+ )
+
+447 \ 1
+ #__\9al\9ae_m©hÝ_deþNP_
+(
+æßt_ty³
+,
+func
+,
+Ý
+,
+·¿ms
+...) \
+
+448
+__MATH_INLINE
+
+æßt_ty³
+
+ `__NTH
+ (
+ `func
+ (æßt_ty³
+__x
+)) \
+
+450 \14
+æßt_ty³
+
+__»suÉ
+; \
+
+451
+__asm
+
+ `__vÞ©\9ee__
+ (
+Ý
+ : "ñ" (
+__»suÉ
+è:
+·¿ms
+); \
+
+452 \15
+__»suÉ
+; \
+
+453 }
+
+ )
+
+456 #ifdeà
+__USE_ISOC99
+
+
+457 \ 1
+ #__\9al\9ae_m©hcode
+(
+func
+,
+¬g
+,
+code
+) \
+
+458
+ `__\9al\9ae_m©hcode_
+ (\b,
+func
+,
+¬g
+,
+code
+) \
+
+459
+ `__\9al\9ae_m©hcode_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g
+,
+code
+) \
+
+460
+ `__\9al\9ae_m©hcode_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g
+,
+code
+)
+
+ )
+
+461 \ 1
+ #__\9al\9ae_m©hcodeNP
+(
+func
+,
+¬g
+,
+code
+) \
+
+462
+ `__\9al\9ae_m©hcodeNP_
+ (\b,
+func
+,
+¬g
+,
+code
+) \
+
+463
+ `__\9al\9ae_m©hcodeNP_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g
+,
+code
+) \
+
+464
+ `__\9al\9ae_m©hcodeNP_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g
+,
+code
+)
+
+ )
+
+465 \ 1
+ #__\9al\9ae_m©hcode2
+(
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+466
+ `__\9al\9ae_m©hcode2_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+467
+ `__\9al\9ae_m©hcode2_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g1
+,
+¬g2
+,
+code
+) \
+
+468
+ `__\9al\9ae_m©hcode2_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g1
+,
+¬g2
+,
+code
+)
+
+ )
+
+469 \ 1
+ #__\9al\9ae_m©hcodeNP2
+(
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+470
+ `__\9al\9ae_m©hcodeNP2_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+471
+ `__\9al\9ae_m©hcodeNP2_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g1
+,
+¬g2
+,
+code
+) \
+
+472
+ `__\9al\9ae_m©hcodeNP2_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g1
+,
+¬g2
+,
+code
+)
+
+ )
+
+473 \ 1
+ #__\9al\9ae_m©hcode3
+(
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+474
+ `__\9al\9ae_m©hcode3_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+475
+ `__\9al\9ae_m©hcode3_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+476
+ `__\9al\9ae_m©hcode3_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+)
+
+ )
+
+477 \ 1
+ #__\9al\9ae_m©hcodeNP3
+(
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+478
+ `__\9al\9ae_m©hcodeNP3_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+479
+ `__\9al\9ae_m©hcodeNP3_
+ (\ e,
+ `__CONCAT
+(
+func
+,
+f
+),
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+480
+ `__\9al\9ae_m©hcodeNP3_
+ (\13\b,
+ `__CONCAT
+(
+func
+,
+l
+),
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+)
+
+ )
+
+482 \ 1
+ #__\9al\9ae_m©hcode
+(
+func
+,
+¬g
+,
+code
+) \
+
+483
+ `__\9al\9ae_m©hcode_
+ (\b,
+func
+, (
+¬g
+),
+code
+)
+
+ )
+
+484 \ 1
+ #__\9al\9ae_m©hcodeNP
+(
+func
+,
+¬g
+,
+code
+) \
+
+485
+ `__\9al\9ae_m©hcodeNP_
+ (\b,
+func
+, (
+¬g
+),
+code
+)
+
+ )
+
+486 \ 1
+ #__\9al\9ae_m©hcode2
+(
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+487
+ `__\9al\9ae_m©hcode2_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+)
+
+ )
+
+488 \ 1
+ #__\9al\9ae_m©hcodeNP2
+(
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+489
+ `__\9al\9ae_m©hcodeNP2_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+)
+
+ )
+
+490 \ 1
+ #__\9al\9ae_m©hcode3
+(
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+491
+ `__\9al\9ae_m©hcode3_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+)
+
+ )
+
+492 \ 1
+ #__\9al\9ae_m©hcodeNP3
+(
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+493
+ `__\9al\9ae_m©hcodeNP3_
+ (\b,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+)
+
+ )
+
+496 \ 1
+ #__\9al\9ae_m©hcode_
+(
+æßt_ty³
+,
+func
+,
+¬g
+,
+code
+) \
+
+497
+__MATH_INLINE
+
+æßt_ty³
+
+ `func
+ (æßt_ty³è
+__THROW
+; \
+
+498
+ `__\9al\9ae_m©hcodeNP_
+(
+æßt_ty³
+,
+func
+,
+¬g
+,
+code
+)
+
+ )
+
+500 \ 1
+ #__\9al\9ae_m©hcodeNP_
+(
+æßt_ty³
+,
+func
+,
+¬g
+,
+code
+) \
+
+501
+__MATH_INLINE
+
+æßt_ty³
+
+ `__NTH
+ (
+ `func
+ (æßt_ty³
+¬g
+)) \
+
+503
+code
+; \
+
+504 }
+
+ )
+
+507 \ 1
+ #__\9al\9ae_m©hcode2_
+(
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+508
+__MATH_INLINE
+
+æßt_ty³
+
+ `func
+ (æßt_ty³, flßt_ty³è
+__THROW
+; \
+
+509
+ `__\9al\9ae_m©hcodeNP2_
+ (
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+)
+
+ )
+
+511 \ 1
+ #__\9al\9ae_m©hcodeNP2_
+(
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+code
+) \
+
+512
+__MATH_INLINE
+
+æßt_ty³
+
+ `__NTH
+ (
+ `func
+ (æßt_ty³
+¬g1
+, flßt_ty³
+¬g2
+)) \
+
+514
+code
+; \
+
+515 }
+
+ )
+
+517 \ 1
+ #__\9al\9ae_m©hcode3_
+(
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+518
+__MATH_INLINE
+
+æßt_ty³
+
+ `func
+ (æßt_ty³, flßt_ty³, flßt_ty³è
+__THROW
+; \
+
+519
+ `__\9al\9ae_m©hcodeNP3_
+(
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+)
+
+ )
+
+521 \ 1
+ #__\9al\9ae_m©hcodeNP3_
+(
+æßt_ty³
+,
+func
+,
+¬g1
+,
+¬g2
+,
+¬g3
+,
+code
+) \
+
+522
+__MATH_INLINE
+
+æßt_ty³
+
+ `__NTH
+ (
+ `func
+ (æßt_ty³
+¬g1
+, flßt_ty³
+¬g2
+, \
+
+523
+æßt_ty³
+
+¬g3
+)) \
+
+525
+code
+; \
+
+526 }
+
+ )
+
+530 #ià!
+def\9aed
+
+__NO_MATH_INLINES
+ && def\9aed
+__OPTIMIZE__
+
+
+534 #ifdeà
+__FAST_MATH__
+
+
+535 #ifdeà
+__USE_GNU
+
+
+536 \ 1
+ #__s\9acos_code
+ \
+
+537 \14\13\b
+__co¤
+; \
+
+538 \14\13\b
+__s\9ar
+; \
+
+539 \14\1d\12
+__swtmp
+; \
+
+540
+__asm
+
+__vÞ©\9ee__
+ \
+
+555 : "ñ" (
+__co¤
+), "=u" (
+__s\9ar
+), "÷" (
+__swtmp
+è: "0" (
+__x
+)); \
+
+556 *
+__s\9ax
+ =
+__s\9ar
+; \
+
+557 *
+__cosx
+ =
+__co¤
+
+
+ )
+
+559
+__MATH_INLINE
+ \1e
+
+560
+__NTH
+ (
+ $__s\9acos
+ (\b
+__x
+, \b*
+__s\9ax
+, \b*
+__cosx
+))
+
+562
+__s\9acos_code
+;
+
+563
+ }
+}
+
+565
+__MATH_INLINE
+ \1e
+
+566
+__NTH
+ (
+ $__s\9acosf
+ (\ e
+__x
+, \ e*
+__s\9ax
+, \ e*
+__cosx
+))
+
+568
+__s\9acos_code
+;
+
+569
+ }
+}
+
+571
+__MATH_INLINE
+ \1e
+
+572
+__NTH
+ (
+ $__s\9aco¦
+ (\13\b
+__x
+, \13\b*
+__s\9ax
+, \13\b*
+__cosx
+))
+
+574
+__s\9acos_code
+;
+
+575
+ }
+}
+
+582 #ià
+__GNUC_PREREQ
+ (3, 5)
+
+583 \ 1
+ #__expm1_code
+ \
+
+584 \14\13\b
+__\8bmp
+; \
+
+585
+__\8bmp
+ =
+ `__bu\9et\9a_expm1l
+ (
+__x
+); \
+
+586 \15
+__\8bmp
+ ? __\8bm°:
+__x
+
+
+ )
+
+588 \ 1
+ #__expm1_code
+ \
+
+589 \14\13\b
+__v®ue
+; \
+
+590 \14\13\b
+__expڒt
+; \
+
+591 \14\13\b
+__\8bmp
+; \
+
+592
+__asm
+
+__vÞ©\9ee__
+ \
+
+601 : "ñ" (
+__v®ue
+), "=u" (
+__expڒt
+è: "0" (
+__x
+)); \
+
+602
+__asm
+
+__vÞ©\9ee__
+ \
+
+604 : "ñ" (
+__\8bmp
+è: "0" (1.0), "u" (
+__expڒt
+)); \
+
+605
+__\8bmp
+ -= 1.0; \
+
+606
+__\8bmp
+ +ð
+__v®ue
+; \
+
+607 \15
+__\8bmp
+ ? __\8bm°:
+__x
+
+
+ )
+
+609
+ $__\9al\9ae_m©hcodeNP_
+ (\13\b,
+__expm1l
+,
+__x
+,
+__expm1_code
+)
+
+611 #ià
+ `__GNUC_PREREQ
+ (3, 4)
+
+612
+ `__\9al\9ae_m©hcodeNP_
+ (\13\b,
+__ex¶
+,
+__x
+, \15
+ $__bu\9et\9a_ex¶
+ (
+__x
+))
+
+614 \ 1
+ #__exp_code
+ \
+
+615 \14\13\b
+__v®ue
+; \
+
+616 \14\13\b
+__expڒt
+; \
+
+617
+__asm
+
+__vÞ©\9ee__
+ \
+
+625 : "ñ" (
+__v®ue
+), "=u" (
+__expڒt
+è: "0" (
+__x
+)); \
+
+626
+__v®ue
+ += 1.0; \
+
+627
+__asm
+
+__vÞ©\9ee__
+ \
+
+629 : "ñ" (
+__v®ue
+è: "0" (__v®ue), "u" (
+__expڒt
+)); \
+
+630 \15
+__v®ue
+
+
+ )
+
+631
+ $__\9al\9ae_m©hcodeNP
+ (
+exp
+,
+__x
+,
+__exp_code
+)
+
+632
+ $__\9al\9ae_m©hcodeNP_
+ (\13\b,
+__ex¶
+,
+__x
+,
+__exp_code
+)
+
+636 #ià!
+ `__GNUC_PREREQ
+ (3, 5)
+
+637
+ `__\9al\9ae_m©hcodeNP
+ (
+\8fn
+,
+__x
+, \
+
+638 \14\13\b
+__v®ue
+; \
+
+639 \14\13\b
+__v®ue2
+
+ `__©\8cibu\8b__
+ ((
+__unu£d__
+)); \
+
+640
+__asm
+
+__vÞ©\9ee__
+ \
+
+642 : "ñ" (
+__v®ue2
+), "=u" (
+__v®ue
+è: "0" (
+__x
+)); \
+
+643 \15
+__v®ue
+)
+
+648 #ià
+ `__GNUC_PREREQ
+ (3, 4)
+
+649
+ `__\9al\9ae_m©hcodeNP2_
+ (\13\b,
+__©ª2l
+,
+__y
+,
+__x
+,
+
+650 \15
+ $__bu\9et\9a_©ª2l
+ (
+__y
+,
+__x
+))
+
+652 \ 1
+ #__©ª2_code
+ \
+
+653 \14\13\b
+__v®ue
+; \
+
+654
+__asm
+
+__vÞ©\9ee__
+ \
+
+656 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" (
+__y
+) : "st(1)"); \
+
+657 \15
+__v®ue
+
+
+ )
+
+658 #ifdeà
+__FAST_MATH__
+
+
+659
+ $__\9al\9ae_m©hcodeNP2
+ (
+©ª2
+,
+__y
+,
+__x
+,
+__©ª2_code
+)
+
+661
+ $__\9al\9ae_m©hcodeNP2_
+ (\13\b,
+__©ª2l
+,
+__y
+,
+__x
+,
+__©ª2_code
+)
+
+665 #ià
+def\9aed
+
+__FAST_MATH__
+ && !
+ `__GNUC_PREREQ
+ (3, 5)
+
+666
+ `__\9al\9ae_m©hcodeNP2
+ (
+fmod
+,
+__x
+,
+__y
+, \
+
+667 \14\13\b
+__v®ue
+; \
+
+668
+__asm
+
+__vÞ©\9ee__
+ \
+
+673 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" (
+__y
+) : "ax", "cc"); \
+
+674 \15
+__v®ue
+)
+
+678 #ifdeà
+__FAST_MATH__
+
+
+679 #ià!
+ `__GNUC_PREREQ
+ (3,3)
+
+680
+ `__\9al\9ae_m©hÝNP
+ (
+sq¹
+, "fsqrt")
+
+681
+ `__\9al\9ae_m©hÝNP_
+ (\13\b,
+__sq¹l
+, "fsqrt")
+
+682 \ 1
+ #__libc_sq¹l
+(
+n
+è
+ `__sq¹l
+ (n)
+
+ )
+
+684 \ 1
+ #__libc_sq¹l
+(
+n
+è
+ `__bu\9et\9a_sq¹l
+ (n)
+
+ )
+
+688 #ià
+ `__GNUC_PREREQ
+ (2, 8)
+
+689
+ `__\9al\9ae_m©hcodeNP_
+ (\b,
+çbs
+,
+__x
+, \15
+ $__bu\9et\9a_çbs
+ (
+__x
+))
+
+690 #ifdeà
+__USE_ISOC99
+
+
+691
+ `__\9al\9ae_m©hcodeNP_
+ (\ e,
+çbsf
+,
+__x
+, \15
+ $__bu\9et\9a_çbsf
+ (
+__x
+))
+
+692
+ `__\9al\9ae_m©hcodeNP_
+ (\13\b,
+çb¦
+,
+__x
+, \15
+ $__bu\9et\9a_çb¦
+ (
+__x
+))
+
+694
+ `__\9al\9ae_m©hcodeNP_
+ (\13\b,
+__çb¦
+,
+__x
+, \15
+ $__bu\9et\9a_çb¦
+ (
+__x
+))
+
+696
+ `__\9al\9ae_m©hÝ
+ (
+çbs
+, "fabs")
+
+697
+ `__\9al\9ae_m©hÝ_
+ (\13\b,
+__çb¦
+, "fabs")
+
+700 #ifdeà
+__FAST_MATH__
+
+
+701 #ià!
+ `__GNUC_PREREQ
+ (3, 4)
+
+703
+ `__\9al\9ae_m©hÝNP
+ (
+s\9a
+, "fsin")
+
+705
+ `__\9al\9ae_m©hÝNP
+ (
+cos
+, "fcos")
+
+707
+ `__\9al\9ae_m©hÝ_deþNP
+ (
+log
+, "ædÊ2; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+710 #ià!
+ `__GNUC_PREREQ
+ (3, 5)
+
+711
+ `__\9al\9ae_m©hÝ_deþNP
+ (
+log10
+, "ædlg2; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+713
+ `__\9al\9ae_m©hcodeNP
+ (
+as\9a
+,
+__x
+, \15
+ `__©ª2l
+ (__x,
+ `__libc_sq¹l
+ (1.0 - __x * __x)))
+
+714
+ `__\9al\9ae_m©hcodeNP
+ (
+acos
+,
+__x
+, \15
+ `__©ª2l
+ (
+ `__libc_sq¹l
+ (1.0 - __x * __x), __x))
+
+717 #ià!
+ `__GNUC_PREREQ
+ (3, 4)
+
+718
+ `__\9al\9ae_m©hÝ_deþNP
+ (
+©ª
+, "æd1; f·\8fn", "0" (
+__x
+) : "st(1)")
+
+722
+ `__\9al\9ae_m©hcode_
+ (\13\b,
+__sgn1l
+,
+__x
+, \
+
+723
+__ex\8bnsiÚ__
+ uniÚ { \13\b
+__xld
+; \1d\12
+__xi
+[3]; }
+__n
+ = \
+
+724 {
+__xld
+:
+__x
+
+ }
+}; \
+
+725
+ g__n
+.
+ g__xi
+[2] = (
+__n
+.
+__xi
+[2] & 0x8000) | 0x3fff; \
+
+726
+ g__n
+.
+ g__xi
+[1] = 0x80000000; \
+
+727
+ g__n
+.
+ g__xi
+[0] = 0; \
+
+728 \15
+ g__n
+.
+ g__xld
+)
+
+731 #ifdeà
+__FAST_MATH__
+
+
+733
+__\9al\9ae_m©hcodeNP
+ (
+s\9ah
+,
+__x
+, \
+
+734 \14\13\b
+__exm1
+ =
+__expm1l
+ (
+__çb¦
+ (
+__x
+)); \
+
+735 \15 0.5 * (
+__exm1
+ / (__exm1 + 1.0è+ __exm1è*
+ $__sgn1l
+ (
+__x
+))
+
+737
+ `__\9al\9ae_m©hcodeNP
+ (
+cosh
+,
+__x
+, \
+
+738 \14\13\b
+__ex
+ =
+ `__ex¶
+ (
+__x
+); \
+
+739 \15 0.5 * (
+__ex
+ + 1.0 / __ex))
+
+741
+ `__\9al\9ae_m©hcodeNP
+ (
+\8fnh
+,
+__x
+, \
+
+742 \14\13\b
+__exm1
+ =
+ `__expm1l
+ (-
+ `__çb¦
+ (
+__x
+ + __x)); \
+
+743 \15
+__exm1
+ / (__exm1 + 2.0è*
+ `__sgn1l
+ (-
+__x
+))
+
+746
+ `__\9al\9ae_m©hcodeNP
+ (
+æoÜ
+,
+__x
+, \
+
+747 \14\13\b
+__v®ue
+; \
+
+748 \14\12
+__ignÜe
+; \
+
+749 \1d\16\12
+__cw
+; \
+
+750 \1d\16\12
+__cwtmp
+; \
+
+751
+__asm
+
+ `__vÞ©\9ee
+ ("fnstcw %3\n\t" \
+
+759 : "ñ" (
+__v®ue
+), "=&q" (
+__ignÜe
+), "=m" (
+__cwtmp
+), \
+
+760 "=m" (
+__cw
+) \
+
+761 : "0" (
+__x
+)); \
+
+762 \15
+__v®ue
+)
+
+764
+ `__\9al\9ae_m©hcodeNP
+ (
+û\9e
+,
+__x
+, \
+
+765 \14\13\b
+__v®ue
+; \
+
+766 \14\12
+__ignÜe
+; \
+
+767 \1d\16\12
+__cw
+; \
+
+768 \1d\16\12
+__cwtmp
+; \
+
+769
+__asm
+
+ `__vÞ©\9ee
+ ("fnstcw %3\n\t" \
+
+777 : "ñ" (
+__v®ue
+), "=&q" (
+__ignÜe
+), "=m" (
+__cwtmp
+), \
+
+778 "=m" (
+__cw
+) \
+
+779 : "0" (
+__x
+)); \
+
+780 \15
+__v®ue
+)
+
+782 #ifdeà
+__FAST_MATH__
+
+
+783 \ 1
+ #__ldexp_code
+ \
+
+784 \14\13\b
+__v®ue
+; \
+
+785
+__asm
+
+__vÞ©\9ee__
+ \
+
+787 : "ñ" (
+__v®ue
+è: "0" (
+__x
+), "u" ((\13\bè
+__y
+)); \
+
+788 \15
+__v®ue
+
+
+ )
+
+790
+__MATH_INLINE
+ \b
+
+791
+ `__NTH
+ (
+ $ldexp
+ (\b
+__x
+, \12
+__y
+))
+
+793
+__ldexp_code
+;
+
+794
+ }
+}
+
+799 #ifdeà
+__USE_ISOC99
+
+
+801 #ifdeà
+__FAST_MATH__
+
+
+802
+ $__\9al\9ae_m©hcodeNP
+ (
+expm1
+,
+__x
+,
+__expm1_code
+)
+
+806 \ 1
+ #__M_SQRT2
+ 1.41421356237309504880L
+
+ )
+
+808 #ià!
+ `__GNUC_PREREQ
+ (3, 5)
+
+809
+ `__\9al\9ae_m©hcodeNP
+ (
+log1p
+,
+__x
+, \
+
+810 \14\13\b
+__v®ue
+; \
+
+811 ià(
+ `__çb¦
+ (
+__x
+è>ð1.0 - 0.5 *
+__M_SQRT2
+) \
+
+812
+__v®ue
+ =
+ `logl
+ (1.0 +
+__x
+); \
+
+814
+__asm
+
+__vÞ©\9ee__
+ \
+
+818 : "ñ" (
+__v®ue
+è: "0" (
+__x
+) : "st(1)"); \
+
+819 \15
+__v®ue
+)
+
+824
+ `__\9al\9ae_m©hcodeNP
+ (
+as\9ah
+,
+__x
+, \
+
+825 \14\13\b
+__y
+ =
+ `__çb¦
+ (
+__x
+); \
+
+826 \15 (
+ `log1¶
+ (
+__y
+ * __y / (
+ `__libc_sq¹l
+ (__y * __y + 1.0) + 1.0) + __y) \
+
+827 *
+ $__sgn1l
+ (
+__x
+)))
+
+829
+ `__\9al\9ae_m©hcodeNP
+ (
+acosh
+,
+__x
+, \
+
+830 \15
+ `logl
+ (
+__x
+ +
+ `__libc_sq¹l
+ (__x - 1.0) * __libc_sqrtl (__x + 1.0)))
+
+832
+ `__\9al\9ae_m©hcodeNP
+ (
+©ªh
+,
+__x
+, \
+
+833 \14\13\b
+__y
+ =
+ `__çb¦
+ (
+__x
+); \
+
+834 \15 -0.5 *
+ `log1¶
+ (-(
+__y
+ + __yè/ (1.0 + __y)è*
+ $__sgn1l
+ (
+__x
+))
+
+837
+ `__\9al\9ae_m©hcodeNP2
+ (
+hypÙ
+,
+__x
+,
+__y
+,
+
+838 \15
+ `__libc_sq¹l
+ (
+__x
+ * __x +
+__y
+ * __y))
+
+840 #ià!
+ `__GNUC_PREREQ
+ (3, 5)
+
+841
+ `__\9al\9ae_m©hcodeNP
+(
+logb
+,
+__x
+, \
+
+842 \14\13\b
+__v®ue
+; \
+
+843 \14\13\b
+__junk
+; \
+
+844
+__asm
+
+__vÞ©\9ee__
+ \
+
+846 : "ñ" (
+__junk
+), "=u" (
+__v®ue
+è: "0" (
+__x
+)); \
+
+847 \15
+__v®ue
+)
+
+853 #ifdeà
+__USE_ISOC99
+
+
+854 #ifdeà
+__FAST_MATH__
+
+
+856 #ià!
+ `__GNUC_PREREQ
+ (3, 5)
+
+857
+ `__\9al\9ae_m©hÝ_deþNP
+ (
+log2
+, "æd1; fxch; fyl2x", "0" (
+__x
+) : "st(1)")
+
+860
+__MATH_INLINE
+ \ e
+
+861
+ `__NTH
+ (
+ $ldexpf
+ (\ e
+__x
+, \12
+__y
+))
+
+863
+__ldexp_code
+;
+
+864
+ }
+}
+
+866
+__MATH_INLINE
+ \13\b
+
+867
+__NTH
+ (
+ $ldex¶
+ (\13\b
+__x
+, \12
+__y
+))
+
+869
+__ldexp_code
+;
+
+870
+ }
+}
+
+872
+__\9al\9ae_m©hÝNP
+ (
+r\9at
+, "frndint")
+
+875 \ 1
+ #__̚t_code
+ \
+
+876 \13\12
+__Ì\9a\8ces
+; \
+
+877
+__asm__
+
+__vÞ©\9ee__
+ \
+
+879 : "=m" (
+__Ì\9a\8ces
+è: "t" (
+__x
+) : "st"); \
+
+880 \15
+__Ì\9a\8ces
+
+
+ )
+
+881
+__MATH_INLINE
+ \13\12
+
+882
+__NTH
+ (
+ $̚tf
+ (\ e
+__x
+))
+
+884
+__̚t_code
+;
+
+885
+ }
+}
+
+886
+__MATH_INLINE
+ \13\12
+
+887
+__NTH
+ (
+ $̚t
+ (\b
+__x
+))
+
+889
+__̚t_code
+;
+
+890
+ }
+}
+
+891
+__MATH_INLINE
+ \13\12
+
+892
+__NTH
+ (
+ $Ì\9a\8e
+ (\13\b
+__x
+))
+
+894
+__̚t_code
+;
+
+895
+ }
+}
+
+896 #undeà
+__̚t_code
+
+
+898 \ 1
+ #__Îr\9at_code
+ \
+
+899 \13\13\12
+__Îr\9a\8ces
+; \
+
+900
+__asm__
+
+__vÞ©\9ee__
+ \
+
+902 : "=m" (
+__Îr\9a\8ces
+è: "t" (
+__x
+) : "st"); \
+
+903 \15
+__Îr\9a\8ces
+
+
+ )
+
+904
+__ex\8bnsiÚ__
+
+
+905
+__MATH_INLINE
+ \13\13\12
+
+906
+__NTH
+ (
+ $Îr\9atf
+ (\ e
+__x
+))
+
+908
+__Îr\9at_code
+;
+
+909
+ }
+}
+
+910
+__ex\8bnsiÚ__
+
+
+911
+__MATH_INLINE
+ \13\13\12
+
+912
+__NTH
+ (
+ $Îr\9at
+ (\b
+__x
+))
+
+914
+__Îr\9at_code
+;
+
+915
+ }
+}
+
+916
+__ex\8bnsiÚ__
+
+
+917
+__MATH_INLINE
+ \13\13\12
+
+918
+__NTH
+ (
+ $Îr\9a\8e
+ (\13\b
+__x
+))
+
+920
+__Îr\9at_code
+;
+
+921
+ }
+}
+
+922 #undeà
+__Îr\9at_code
+
+
+927 #ifdeà
+__USE_MISC
+
+
+929 #ià
+def\9aed
+
+__FAST_MATH__
+ && !
+__GNUC_PREREQ
+ (3, 5)
+
+930
+__\9al\9ae_m©hcodeNP2
+ (
+d»m
+,
+__x
+,
+__y
+, \
+
+931 \14\b
+__v®ue
+; \
+
+932 \14\12
+__þobb\94ed
+; \
+
+933
+__asm
+
+__vÞ©\9ee__
+ \
+
+938 : "ñ" (
+__v®ue
+), "=&a" (
+__þobb\94ed
+è: "0" (
+__x
+), "u" (
+__y
+) : "cc"); \
+
+939 \15
+__v®ue
+)
+
+944
+__MATH_INLINE
+ \12
+
+945
+__NTH
+ (
+ $__f\9a\99e
+ (\b
+__x
+))
+
+947 \15 (
+__ex\8bnsiÚ__
+
+
+948 (((((uniÚ { \b
+__d
+; \12
+__i
+[2]; }è{__d:
+__x
+}).__i[1]
+
+950
+ }
+}
+
+955 #undeà
+__©ª2_code
+
+
+956 #ifdeà
+__FAST_MATH__
+
+
+957 #undeà
+__expm1_code
+
+
+958 #undeà
+__exp_code
+
+
+959 #undeà
+__s\9acos_code
+
+
+966 #ifdeà
+__LIBC_INTERNAL_MATH_INLINES
+
+
+967
+__\9al\9ae_m©hÝ
+ (
+__\9b\93754_sq¹
+, "fsqrt")
+
+968
+__\9al\9ae_m©hcode2_
+ (\13\b,
+__\9b\93754_©ª2l
+,
+__y
+,
+__x
+,
+
+969 \14\13\b
+__v®ue
+;
+
+970
+__asm
+
+__vÞ©\9ee__
+ ("fpatan\n\t"
+
+971 : "ñ" (
+__v®ue
+)
+
+972 : "0" (
+__x
+), "u" (
+__y
+) : "st(1)");
+
+973 \15
+__v®ue
+;)
+
+ @/usr/include/bits/nan.h
+
+19 #iâdeà
+_MATH_H
+
+
+26 #ià
+__GNUC_PREREQ
+(3,3)
+
+28 \ 1
+ #NAN
+ (
+ `__bu\9et\9a_Çnf
+ (""))
+
+ )
+
+30 #\96ià
+def\9aed
+
+__GNUC__
+
+
+32 \ 1
+ #NAN
+ \
+
+33 (
+__ex\8bnsiÚ__
+ \
+
+34 ((uniÚ { \1d
+__l
+
+ `__©\8cibu\8b__
+ ((
+ `__mode__
+ (
+__SI__
+))); \ e
+__d
+; }) \
+
+35 {
+__l
+: 0x7fc00000UL }).
+__d
+)
+
+ )
+
+39 \ 2
+ ~<\92d\9fn.h
+>
+
+41 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+42 \ 1
+ #__qÇn_by\8bs
+ { 0x7f, 0xc0, 0, 0 }
+
+ )
+
+44 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+45 \ 1
+ #__qÇn_by\8bs
+ { 0, 0, 0xc0, 0x7à}
+
+ )
+
+48 \18uniÚ { \1d\ 5
+ m__c
+[4]; \ e
+ m__d
+; }
+__qÇn_uniÚ
+
+
+49
+__©\8cibu\8b__
+ ((
+__unu£d__
+)èð{
+__qÇn_by\8bs
+ };
+
+50 \ 1
+ #NAN
+ (
+__qÇn_uniÚ
+.
+__d
+)
+
+ )
+
+ @/usr/include/bits/param.h
+
+19 #iâdeà
+_SYS_PARAM_H
+
+
+23 #iâdeà
+ARG_MAX
+
+
+24 \ 1
+ #__undef_ARG_MAX
+
+
+ )
+
+27 \ 2
+ ~<l\9aux/lim\99s.h
+>
+
+28 \ 2
+ ~<l\9aux/·¿m.h
+>
+
+31 #ifdeà
+__undef_ARG_MAX
+
+
+32 #undeà
+ARG_MAX
+
+
+33 #undeà
+__undef_ARG_MAX
+
+
+36 \ 1
+ #MAXSYMLINKS
+ 20
+
+ )
+
+41 \ 1
+ #NOFILE
+ 256
+
+ )
+
+42 \ 1
+ #NCARGS
+ 131072
+
+ )
+
+ @/usr/include/bits/posix_opt.h
+
+19 #iâdef
+_BITS_POSIX_OPT_H
+
+
+20 \ 1
+ #_BITS_POSIX_OPT_H
+ 1
+
+ )
+
+23 \ 1
+ #_POSIX_JOB_CONTROL
+ 1
+
+ )
+
+26 \ 1
+ #_POSIX_SAVED_IDS
+ 1
+
+ )
+
+29 \ 1
+ #_POSIX_PRIORITY_SCHEDULING
+ 200809L
+
+ )
+
+32 \ 1
+ #_POSIX_SYNCHRONIZED_IO
+ 200809L
+
+ )
+
+35 \ 1
+ #_POSIX_FSYNC
+ 200809L
+
+ )
+
+38 \ 1
+ #_POSIX_MAPPED_FILES
+ 200809L
+
+ )
+
+41 \ 1
+ #_POSIX_MEMLOCK
+ 200809L
+
+ )
+
+44 \ 1
+ #_POSIX_MEMLOCK_RANGE
+ 200809L
+
+ )
+
+47 \ 1
+ #_POSIX_MEMORY_PROTECTION
+ 200809L
+
+ )
+
+50 \ 1
+ #_POSIX_CHOWN_RESTRICTED
+ 0
+
+ )
+
+54 \ 1
+ #_POSIX_VDISABLE
+ '\0'
+
+ )
+
+57 \ 1
+ #_POSIX_NO_TRUNC
+ 1
+
+ )
+
+60 \ 1
+ #_XOPEN_REALTIME
+ 1
+
+ )
+
+63 \ 1
+ #_XOPEN_REALTIME_THREADS
+ 1
+
+ )
+
+66 \ 1
+ #_XOPEN_SHM
+ 1
+
+ )
+
+69 \ 1
+ #_POSIX_THREADS
+ 200809L
+
+ )
+
+72 \ 1
+ #_POSIX_REENTRANT_FUNCTIONS
+ 1
+
+ )
+
+73 \ 1
+ #_POSIX_THREAD_SAFE_FUNCTIONS
+ 200809L
+
+ )
+
+76 \ 1
+ #_POSIX_THREAD_PRIORITY_SCHEDULING
+ 200809L
+
+ )
+
+79 \ 1
+ #_POSIX_THREAD_ATTR_STACKSIZE
+ 200809L
+
+ )
+
+82 \ 1
+ #_POSIX_THREAD_ATTR_STACKADDR
+ 200809L
+
+ )
+
+85 \ 1
+ #_POSIX_THREAD_PRIO_INHERIT
+ 200809L
+
+ )
+
+89 \ 1
+ #_POSIX_THREAD_PRIO_PROTECT
+ 200809L
+
+ )
+
+91 #ifdeà
+__USE_XOPEN2K8
+
+
+93 \ 1
+ #_POSIX_THREAD_ROBUST_PRIO_INHERIT
+ 200809L
+
+ )
+
+96 \ 1
+ #_POSIX_THREAD_ROBUST_PRIO_PROTECT
+ -1
+
+ )
+
+100 \ 1
+ #_POSIX_SEMAPHORES
+ 200809L
+
+ )
+
+103 \ 1
+ #_POSIX_REALTIME_SIGNALS
+ 200809L
+
+ )
+
+106 \ 1
+ #_POSIX_ASYNCHRONOUS_IO
+ 200809L
+
+ )
+
+107 \ 1
+ #_POSIX_ASYNC_IO
+ 1
+
+ )
+
+109 \ 1
+ #_LFS_ASYNCHRONOUS_IO
+ 1
+
+ )
+
+111 \ 1
+ #_POSIX_PRIORITIZED_IO
+ 200809L
+
+ )
+
+114 \ 1
+ #_LFS64_ASYNCHRONOUS_IO
+ 1
+
+ )
+
+117 \ 1
+ #_LFS_LARGEFILE
+ 1
+
+ )
+
+118 \ 1
+ #_LFS64_LARGEFILE
+ 1
+
+ )
+
+119 \ 1
+ #_LFS64_STDIO
+ 1
+
+ )
+
+122 \ 1
+ #_POSIX_SHARED_MEMORY_OBJECTS
+ 200809L
+
+ )
+
+125 \ 1
+ #_POSIX_CPUTIME
+ 0
+
+ )
+
+128 \ 1
+ #_POSIX_THREAD_CPUTIME
+ 0
+
+ )
+
+131 \ 1
+ #_POSIX_REGEXP
+ 1
+
+ )
+
+134 \ 1
+ #_POSIX_READER_WRITER_LOCKS
+ 200809L
+
+ )
+
+137 \ 1
+ #_POSIX_SHELL
+ 1
+
+ )
+
+140 \ 1
+ #_POSIX_TIMEOUTS
+ 200809L
+
+ )
+
+143 \ 1
+ #_POSIX_SPIN_LOCKS
+ 200809L
+
+ )
+
+146 \ 1
+ #_POSIX_SPAWN
+ 200809L
+
+ )
+
+149 \ 1
+ #_POSIX_TIMERS
+ 200809L
+
+ )
+
+152 \ 1
+ #_POSIX_BARRIERS
+ 200809L
+
+ )
+
+155 \ 1
+ #_POSIX_MESSAGE_PASSING
+ 200809L
+
+ )
+
+158 \ 1
+ #_POSIX_THREAD_PROCESS_SHARED
+ 200809L
+
+ )
+
+161 \ 1
+ #_POSIX_MONOTONIC_CLOCK
+ 0
+
+ )
+
+164 \ 1
+ #_POSIX_CLOCK_SELECTION
+ 200809L
+
+ )
+
+167 \ 1
+ #_POSIX_ADVISORY_INFO
+ 200809L
+
+ )
+
+170 \ 1
+ #_POSIX_IPV6
+ 200809L
+
+ )
+
+173 \ 1
+ #_POSIX_RAW_SOCKETS
+ 200809L
+
+ )
+
+176 \ 1
+ #_POSIX2_CHAR_TERM
+ 200809L
+
+ )
+
+179 \ 1
+ #_POSIX_SPORADIC_SERVER
+ -1
+
+ )
+
+180 \ 1
+ #_POSIX_THREAD_SPORADIC_SERVER
+ -1
+
+ )
+
+183 \ 1
+ #_POSIX_TRACE
+ -1
+
+ )
+
+184 \ 1
+ #_POSIX_TRACE_EVENT_FILTER
+ -1
+
+ )
+
+185 \ 1
+ #_POSIX_TRACE_INHERIT
+ -1
+
+ )
+
+186 \ 1
+ #_POSIX_TRACE_LOG
+ -1
+
+ )
+
+189 \ 1
+ #_POSIX_TYPED_MEMORY_OBJECTS
+ -1
+
+ )
+
+ @/usr/include/bits/pthreadtypes.h
+
+18 #iâdeà
+_BITS_PTHREADTYPES_H
+
+
+19 \ 1
+ #_BITS_PTHREADTYPES_H
+ 1
+
+ )
+
+21 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+23 #ifdeà
+__x86_64__
+
+
+24 #ià
+__WORDSIZE
+ == 64
+
+25 \ 1
+ #__SIZEOF_PTHREAD_ATTR_T
+ 56
+
+ )
+
+26 \ 1
+ #__SIZEOF_PTHREAD_MUTEX_T
+ 40
+
+ )
+
+27 \ 1
+ #__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+ )
+
+28 \ 1
+ #__SIZEOF_PTHREAD_COND_T
+ 48
+
+ )
+
+29 \ 1
+ #__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+ )
+
+30 \ 1
+ #__SIZEOF_PTHREAD_RWLOCK_T
+ 56
+
+ )
+
+31 \ 1
+ #__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+ )
+
+32 \ 1
+ #__SIZEOF_PTHREAD_BARRIER_T
+ 32
+
+ )
+
+33 \ 1
+ #__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+ )
+
+35 \ 1
+ #__SIZEOF_PTHREAD_ATTR_T
+ 32
+
+ )
+
+36 \ 1
+ #__SIZEOF_PTHREAD_MUTEX_T
+ 32
+
+ )
+
+37 \ 1
+ #__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+ )
+
+38 \ 1
+ #__SIZEOF_PTHREAD_COND_T
+ 48
+
+ )
+
+39 \ 1
+ #__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+ )
+
+40 \ 1
+ #__SIZEOF_PTHREAD_RWLOCK_T
+ 44
+
+ )
+
+41 \ 1
+ #__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+ )
+
+42 \ 1
+ #__SIZEOF_PTHREAD_BARRIER_T
+ 20
+
+ )
+
+43 \ 1
+ #__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+ )
+
+46 \ 1
+ #__SIZEOF_PTHREAD_ATTR_T
+ 36
+
+ )
+
+47 \ 1
+ #__SIZEOF_PTHREAD_MUTEX_T
+ 24
+
+ )
+
+48 \ 1
+ #__SIZEOF_PTHREAD_MUTEXATTR_T
+ 4
+
+ )
+
+49 \ 1
+ #__SIZEOF_PTHREAD_COND_T
+ 48
+
+ )
+
+50 \ 1
+ #__SIZEOF_PTHREAD_CONDATTR_T
+ 4
+
+ )
+
+51 \ 1
+ #__SIZEOF_PTHREAD_RWLOCK_T
+ 32
+
+ )
+
+52 \ 1
+ #__SIZEOF_PTHREAD_RWLOCKATTR_T
+ 8
+
+ )
+
+53 \ 1
+ #__SIZEOF_PTHREAD_BARRIER_T
+ 20
+
+ )
+
+54 \ 1
+ #__SIZEOF_PTHREAD_BARRIERATTR_T
+ 4
+
+ )
+
+60 \e\1d\13\12
+ t±h»ad_t
+;
+
+63 \1c
+ u±h»ad_©\8c_t
+
+
+65 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_ATTR_T
+];
+
+66 \13\12
+ m__®ign
+;
+
+68 #iâdeà
+__have_±h»ad_©\8c_t
+
+
+69 \e\1c
+±h»ad_©\8c_t
+
+ t±h»ad_©\8c_t
+;
+
+70 \ 1
+ #__have_±h»ad_©\8c_t
+ 1
+
+ )
+
+74 #ifdeà
+__x86_64__
+
+
+75 \e\19
+ s__±h»ad_\9a\8bº®_li¡
+
+
+77 \19
+__±h»ad_\9a\8bº®_li¡
+ *
+ m__´ev
+;
+
+78 \19
+__±h»ad_\9a\8bº®_li¡
+ *
+ m__Ãxt
+;
+
+79 }
+ t__±h»ad_li¡_t
+;
+
+81 \e\19
+ s__±h»ad_\9a\8bº®_¦i¡
+
+
+83 \19
+__±h»ad_\9a\8bº®_¦i¡
+ *
+ m__Ãxt
+;
+
+84 }
+ t__±h»ad_¦i¡_t
+;
+
+92 \19
+ s__±h»ad_mu\8bx_s
+
+
+94 \12
+ m__lock
+;
+
+95 \1d\12
+ m__couÁ
+;
+
+96 \12
+ m__owÃr
+;
+
+97 #ifdeà
+__x86_64__
+
+
+98 \1d\12
+ m__nu£rs
+;
+
+102 \12
+ m__k\9ad
+;
+
+103 #ifdeà
+__x86_64__
+
+
+104 \16
+ m__¥\9as
+;
+
+105 \16
+ m__\96isiÚ
+;
+
+106
+__±h»ad_li¡_t
+
+ m__li¡
+;
+
+107 \ 1
+ #__PTHREAD_MUTEX_HAVE_PREV
+ 1
+
+ )
+
+109 \ 1
+ #__PTHREAD_SPINS
+ 0, 0
+
+ )
+
+111 \1d\12
+ m__nu£rs
+;
+
+112
+__ex\8bnsiÚ__
+ union
+
+116 \16
+ m__e¥\9as
+;
+
+117 \16
+ m__\96isiÚ
+;
+
+118 \ 1
+ #__¥\9as
+
+__\96isiÚ_d©a
+.
+__e¥\9as
+
+
+ )
+
+119 \ 1
+ #__\96isiÚ
+
+__\96isiÚ_d©a
+.
+__\96isiÚ
+
+
+ )
+
+120 \ 1
+ #__PTHREAD_SPINS
+ { 0, 0 }
+
+ )
+
+121 }
+ m__\96isiÚ_d©a
+;
+
+122
+__±h»ad_¦i¡_t
+
+ m__li¡
+;
+
+125 }
+ m__d©a
+;
+
+126 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_MUTEX_T
+];
+
+127 \13\12
+ m__®ign
+;
+
+128 }
+ t±h»ad_mu\8bx_t
+;
+
+132 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_MUTEXATTR_T
+];
+
+133 \12
+ m__®ign
+;
+
+134 }
+ t±h»ad_mu\8bx©\8c_t
+;
+
+143 \12
+ m__lock
+;
+
+144 \1d\12
+ m__fu\8bx
+;
+
+145
+__ex\8bnsiÚ__
+ \1d\13\13\12
+ m__tÙ®_£q
+;
+
+146
+__ex\8bnsiÚ__
+ \1d\13\13\12
+ m__wakeup_£q
+;
+
+147
+__ex\8bnsiÚ__
+ \1d\13\13\12
+ m__wok\92_£q
+;
+
+148 \1e*
+ m__mu\8bx
+;
+
+149 \1d\12
+ m__nwa\99\94s
+;
+
+150 \1d\12
+ m__brßdÿ¡_£q
+;
+
+151 }
+ m__d©a
+;
+
+152 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_COND_T
+];
+
+153
+__ex\8bnsiÚ__
+ \13\13\12
+ m__®ign
+;
+
+154 }
+ t±h»ad_cÚd_t
+;
+
+158 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_CONDATTR_T
+];
+
+159 \12
+ m__®ign
+;
+
+160 }
+ t±h»ad_cÚd©\8c_t
+;
+
+164 \e\1d\12
+ t±h»ad_key_t
+;
+
+168 \e\12
+ t±h»ad_Úû_t
+;
+
+171 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K
+
+
+176 #ifdeà
+__x86_64__
+
+
+179 \12
+ m__lock
+;
+
+180 \1d\12
+ m__Ä_»ad\94s
+;
+
+181 \1d\12
+ m__»ad\94s_wakeup
+;
+
+182 \1d\12
+ m__wr\99\94_wakeup
+;
+
+183 \1d\12
+ m__Ä_»ad\94s_queued
+;
+
+184 \1d\12
+ m__Ä_wr\99\94s_queued
+;
+
+185 \12
+ m__wr\99\94
+;
+
+186 \12
+ m__sh¬ed
+;
+
+187 sigÃd \ 5
+ m__rw\96isiÚ
+;
+
+188 #ifdeà
+__ILP32__
+
+
+189 \1d\ 5
+ m__·d1
+[3];
+
+190 \ 1
+ #__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0, { 0, 0, 0 }
+
+ )
+
+192 \1d\ 5
+ m__·d1
+[7];
+
+193 \ 1
+ #__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0, { 0, 0, 0, 0, 0, 0, 0 }
+
+ )
+
+195 \1d\13\12
+ m__·d2
+;
+
+198 \1d\12
+ m__æags
+;
+
+199 \ 1
+ #__PTHREAD_RWLOCK_INT_FLAGS_SHARED
+ 1
+
+ )
+
+200 }
+ m__d©a
+;
+
+204 \12
+ m__lock
+;
+
+205 \1d\12
+ m__Ä_»ad\94s
+;
+
+206 \1d\12
+ m__»ad\94s_wakeup
+;
+
+207 \1d\12
+ m__wr\99\94_wakeup
+;
+
+208 \1d\12
+ m__Ä_»ad\94s_queued
+;
+
+209 \1d\12
+ m__Ä_wr\99\94s_queued
+;
+
+212 \1d\ 5
+ m__æags
+;
+
+213 \1d\ 5
+ m__sh¬ed
+;
+
+214 sigÃd \ 5
+ m__rw\96isiÚ
+;
+
+215 \ 1
+ #__PTHREAD_RWLOCK_ELISION_EXTRA
+ 0
+
+ )
+
+216 \1d\ 5
+ m__·d2
+;
+
+217 \12
+ m__wr\99\94
+;
+
+218 }
+ m__d©a
+;
+
+220 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_RWLOCK_T
+];
+
+221 \13\12
+ m__®ign
+;
+
+222 }
+ t±h»ad_rwlock_t
+;
+
+226 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_RWLOCKATTR_T
+];
+
+227 \13\12
+ m__®ign
+;
+
+228 }
+ t±h»ad_rwlock©\8c_t
+;
+
+232 #ifdeà
+__USE_XOPEN2K
+
+
+234 \evÞ©\9e\90\12
+ t±h»ad_¥\9alock_t
+;
+
+241 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_BARRIER_T
+];
+
+242 \13\12
+ m__®ign
+;
+
+243 }
+ t±h»ad_b¬r\9br_t
+;
+
+247 \ 5
+ m__size
+[
+__SIZEOF_PTHREAD_BARRIERATTR_T
+];
+
+248 \12
+ m__®ign
+;
+
+249 }
+ t±h»ad_b¬r\9b¿\89r_t
+;
+
+253 #iâdeà
+__x86_64__
+
+
+255 \ 1
+ #__þ\97nup_fù_©\8cibu\8b
+
+ `__©\8cibu\8b__
+ ((
+ `__»g·rm__
+ (1)))
+
+ )
+
+ @/usr/include/bits/setjmp.h
+
+19 #iâdeà
+_BITS_SETJMP_H
+
+
+20 \ 1
+ #_BITS_SETJMP_H
+ 1
+
+ )
+
+22 #ià!
+def\9aed
+
+_SETJMP_H
+ && !def\9aed
+_PTHREAD_H
+
+
+26 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+28 #iâdeà
+_ASM
+
+
+30 #ià
+__WORDSIZE
+ == 64
+
+31 \e\13\12
+ t__jmp_buf
+[8];
+
+32 #\96ià
+def\9aed
+
+__x86_64__
+
+
+33
+__ex\8bnsiÚ__
+ \e\13\13\12
+ t__jmp_buf
+[8];
+
+35 \e\12
+ t__jmp_buf
+[6];
+
+ @/usr/include/bits/setjmp2.h
+
+19 #iâdeà
+_SETJMP_H
+
+
+24 #ifdeà
+__REDIRECT_NTH
+
+
+25 \r\1e
+__REDIRECT_NTHNL
+ (
+lÚgjmp
+,
+
+26 (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+),
+
+27
+__lÚgjmp_chk
+è
+__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+28 \r\1e
+__REDIRECT_NTHNL
+ (
+_lÚgjmp
+,
+
+29 (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+),
+
+30
+__lÚgjmp_chk
+è
+__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+31 \r\1e
+__REDIRECT_NTHNL
+ (
+siglÚgjmp
+,
+
+32 (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+),
+
+33
+__lÚgjmp_chk
+è
+__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+35 \r\1e
+__lÚgjmp_chk
+ (\19
+__jmp_buf_\8fg
+
+__\92v
+[1], \12
+__v®
+),
+
+36
+__THROWNL
+
+__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+));
+
+37 \ 1
+ #lÚgjmp
+
+__lÚgjmp_chk
+
+
+ )
+
+38 \ 1
+ #_lÚgjmp
+
+__lÚgjmp_chk
+
+
+ )
+
+39 \ 1
+ #siglÚgjmp
+
+__lÚgjmp_chk
+
+
+ )
+
+ @/usr/include/bits/sigaction.h
+
+19 #iâdeà
+_SIGNAL_H
+
+
+24 \19
+ ssigaùiÚ
+
+
+27 #ifdeà
+__USE_POSIX199309
+
+
+31
+__sighªdËr_t
+
+ m§_hªdËr
+;
+
+33 \1e(*
+ m§_sigaùiÚ
+è(\12,
+ msig\9afo_t
+ *, \1e*);
+
+35
+ m__sigaùiÚ_hªdËr
+;
+
+36 \ 1
+ #§_hªdËr
+
+__sigaùiÚ_hªdËr
+.
+§_hªdËr
+
+
+ )
+
+37 \ 1
+ #§_sigaùiÚ
+
+__sigaùiÚ_hªdËr
+.
+§_sigaùiÚ
+
+
+ )
+
+39
+__sighªdËr_t
+
+ m§_hªdËr
+;
+
+43
+__sig£t_t
+
+ m§_mask
+;
+
+46 \12
+ m§_æags
+;
+
+49 \1e(*
+ m§_»¡Ü\94
+) (\1e);
+
+53 \ 1
+ #SA_NOCLDSTOP
+ 1
+
+ )
+
+54 \ 1
+ #SA_NOCLDWAIT
+ 2
+
+ )
+
+55 \ 1
+ #SA_SIGINFO
+ 4
+
+ )
+
+57 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_MISC
+
+
+58 \ 1
+ #SA_ONSTACK
+ 0x08000000
+
+ )
+
+60 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K8
+
+
+61 \ 1
+ #SA_RESTART
+ 0x10000000
+
+ )
+
+62 \ 1
+ #SA_NODEFER
+ 0x40000000
+
+ )
+
+64 \ 1
+ #SA_RESETHAND
+ 0x80000000
+
+ )
+
+66 #ifdeà
+__USE_MISC
+
+
+67 \ 1
+ #SA_INTERRUPT
+ 0x20000000
+
+ )
+
+70 \ 1
+ #SA_NOMASK
+
+SA_NODEFER
+
+
+ )
+
+71 \ 1
+ #SA_ONESHOT
+
+SA_RESETHAND
+
+
+ )
+
+72 \ 1
+ #SA_STACK
+
+SA_ONSTACK
+
+
+ )
+
+76 \ 1
+ #SIG_BLOCK
+ 0
+
+ )
+
+77 \ 1
+ #SIG_UNBLOCK
+ 1
+
+ )
+
+78 \ 1
+ #SIG_SETMASK
+ 2
+
+ )
+
+ @/usr/include/bits/sigcontext.h
+
+18 #iâdeà
+_BITS_SIGCONTEXT_H
+
+
+19 \ 1
+ #_BITS_SIGCONTEXT_H
+ 1
+
+ )
+
+21 #ià!
+def\9aed
+
+_SIGNAL_H
+ && !def\9aed
+_SYS_UCONTEXT_H
+
+
+25 \ 1
+ #FP_XSTATE_MAGIC1
+ 0x46505853U
+
+ )
+
+26 \ 1
+ #FP_XSTATE_MAGIC2
+ 0x46505845U
+
+ )
+
+27 \ 1
+ #FP_XSTATE_MAGIC2_SIZE
+ \17(
+FP_XSTATE_MAGIC2
+)
+
+ )
+
+29 \19
+ s_åx_sw_by\8bs
+
+
+31
+__u\9at32_t
+
+ mmagic1
+;
+
+32
+__u\9at32_t
+
+ mex\8bnded_size
+;
+
+33
+__u\9at64_t
+
+ mx¡©e_bv
+;
+
+34
+__u\9at32_t
+
+ mx¡©e_size
+;
+
+35
+__u\9at32_t
+
+ m·dd\9ag
+[7];
+
+38 \19
+ s_å»g
+
+
+40 \1d\16
+ msignifiÿnd
+[4];
+
+41 \1d\16
+ mexpڒt
+;
+
+44 \19
+ s_åx»g
+
+
+46 \1d\16
+ msignifiÿnd
+[4];
+
+47 \1d\16
+ mexpڒt
+;
+
+48 \1d\16
+ m·dd\9ag
+[3];
+
+51 \19
+ s_xmm»g
+
+
+53
+__u\9at32_t
+
+ m\96em\92t
+[4];
+
+58 #iâdeà
+__x86_64__
+
+
+60 \19
+ s_塩e
+
+
+63
+__u\9at32_t
+
+ mcw
+;
+
+64
+__u\9at32_t
+
+ msw
+;
+
+65
+__u\9at32_t
+
+ m\8fg
+;
+
+66
+__u\9at32_t
+
+ m\9doff
+;
+
+67
+__u\9at32_t
+
+ mcs£l
+;
+
+68
+__u\9at32_t
+
+ md©aoff
+;
+
+69
+__u\9at32_t
+
+ md©a£l
+;
+
+70 \19
+_å»g
+
+ m_¡
+[8];
+
+71 \1d\16
+ m¡©us
+;
+
+72 \1d\16
+ mmagic
+;
+
+75
+__u\9at32_t
+
+ m_fx¤_\92v
+[6];
+
+76
+__u\9at32_t
+
+ mmxc¤
+;
+
+77
+__u\9at32_t
+
+ mȣrved
+;
+
+78 \19
+_åx»g
+
+ m_fx¤_¡
+[8];
+
+79 \19
+_xmm»g
+
+ m_xmm
+[8];
+
+80
+__u\9at32_t
+
+ m·dd\9ag
+[56];
+
+83 #iâdeà
+sigcÚ\8bxt_¡ruù
+
+
+88 \ 1
+ #sigcÚ\8bxt_¡ruù
+
+sigcڋxt
+
+
+ )
+
+91 \ 1
+ #X86_FXSR_MAGIC
+ 0x0000
+
+ )
+
+93 \19
+ ssigcڋxt
+
+
+95 \1d\16
+ mgs
+,
+ m__gsh
+;
+
+96 \1d\16
+ mfs
+,
+ m__fsh
+;
+
+97 \1d\16
+ mes
+,
+ m__esh
+;
+
+98 \1d\16
+ mds
+,
+ m__dsh
+;
+
+99 \1d\13
+ medi
+;
+
+100 \1d\13
+ mesi
+;
+
+101 \1d\13
+ mebp
+;
+
+102 \1d\13
+ me¥
+;
+
+103 \1d\13
+ mebx
+;
+
+104 \1d\13
+ medx
+;
+
+105 \1d\13
+ mecx
+;
+
+106 \1d\13
+ m\97x
+;
+
+107 \1d\13
+ m\8cno
+;
+
+108 \1d\13
+ m\94r
+;
+
+109 \1d\13
+ me\9d
+;
+
+110 \1d\16
+ mcs
+,
+ m__csh
+;
+
+111 \1d\13
+ meæags
+;
+
+112 \1d\13
+ me¥_©_sigÇl
+;
+
+113 \1d\16
+ mss
+,
+ m__ssh
+;
+
+114 \19
+_塩e
+ *
+ m塩e
+;
+
+115 \1d\13
+ mÞdmask
+;
+
+116 \1d\13
+ mü2
+;
+
+121 \19
+ s_塩e
+
+
+124
+__u\9at16_t
+
+ mcwd
+;
+
+125
+__u\9at16_t
+
+ mswd
+;
+
+126
+__u\9at16_t
+
+ máw
+;
+
+127
+__u\9at16_t
+
+ mfÝ
+;
+
+128
+__u\9at64_t
+
+ mr\9d
+;
+
+129
+__u\9at64_t
+
+ mrdp
+;
+
+130
+__u\9at32_t
+
+ mmxc¤
+;
+
+131
+__u\9at32_t
+
+ mmxü_mask
+;
+
+132 \19
+_åx»g
+
+ m_¡
+[8];
+
+133 \19
+_xmm»g
+
+ m_xmm
+[16];
+
+134
+__u\9at32_t
+
+ m·dd\9ag
+[24];
+
+137 \19
+ ssigcڋxt
+
+
+139
+__u\9at64_t
+
+ mr8
+;
+
+140
+__u\9at64_t
+
+ mr9
+;
+
+141
+__u\9at64_t
+
+ mr10
+;
+
+142
+__u\9at64_t
+
+ mr11
+;
+
+143
+__u\9at64_t
+
+ mr12
+;
+
+144
+__u\9at64_t
+
+ mr13
+;
+
+145
+__u\9at64_t
+
+ mr14
+;
+
+146
+__u\9at64_t
+
+ mr15
+;
+
+147
+__u\9at64_t
+
+ mrdi
+;
+
+148
+__u\9at64_t
+
+ mrsi
+;
+
+149
+__u\9at64_t
+
+ mrbp
+;
+
+150
+__u\9at64_t
+
+ mrbx
+;
+
+151
+__u\9at64_t
+
+ mrdx
+;
+
+152
+__u\9at64_t
+
+ m¿x
+;
+
+153
+__u\9at64_t
+
+ mrcx
+;
+
+154
+__u\9at64_t
+
+ mr¥
+;
+
+155
+__u\9at64_t
+
+ mr\9d
+;
+
+156
+__u\9at64_t
+
+ meæags
+;
+
+157 \1d\16
+ mcs
+;
+
+158 \1d\16
+ mgs
+;
+
+159 \1d\16
+ mfs
+;
+
+160 \1d\16
+ m__·d0
+;
+
+161
+__u\9at64_t
+
+ m\94r
+;
+
+162
+__u\9at64_t
+
+ m\8cno
+;
+
+163
+__u\9at64_t
+
+ mÞdmask
+;
+
+164
+__u\9at64_t
+
+ mü2
+;
+
+165
+__ex\8bnsiÚ__
+ union
+
+167 \19
+_塩e
+ *
+ m塩e
+;
+
+168
+__u\9at64_t
+
+ m__å¡©e_wÜd
+;
+
+170
+__u\9at64_t
+
+ m__ȣrved1
+ [8];
+
+175 \19
+ s_x§ve_hdr
+
+
+177
+__u\9at64_t
+
+ mx¡©e_bv
+;
+
+178
+__u\9at64_t
+
+ mȣrved1
+[2];
+
+179
+__u\9at64_t
+
+ mȣrved2
+[5];
+
+182 \19
+ s_ymmh_¡©e
+
+
+184
+__u\9at32_t
+
+ mymmh_¥aû
+[64];
+
+187 \19
+ s_x¡©e
+
+
+189 \19
+_塩e
+
+ m塩e
+;
+
+190 \19
+_x§ve_hdr
+
+ mx¡©e_hdr
+;
+
+191 \19
+_ymmh_¡©e
+
+ mymmh
+;
+
+ @/usr/include/bits/siginfo.h
+
+19 #ià!
+def\9aed
+
+_SIGNAL_H
+ && !def\9aed
+__Ãed_sig\9afo_t
+ \
+
+20 && !
+def\9aed
+
+ g__Ãed_sigev\92t_t
+
+
+24 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+26 #ià(!
+def\9aed
+
+__have_sigv®_t
+ \
+
+27 && (
+def\9aed
+
+ g_SIGNAL_H
+ || def\9aed
+ g__Ãed_sig\9afo_t
+ \
+
+28 ||
+def\9aed
+
+ g__Ãed_sigev\92t_t
+))
+
+29 \ 1
+ #__have_sigv®_t
+ 1
+
+ )
+
+32 \e\1c
+ usigv®
+
+
+34 \12
+ msiv®_\9at
+;
+
+35 \1e*
+ msiv®_±r
+;
+
+36 }
+ tsigv®_t
+;
+
+39 #ià(!
+def\9aed
+
+__have_sig\9afo_t
+ \
+
+40 && (
+def\9aed
+
+ g_SIGNAL_H
+ || def\9aed
+ g__Ãed_sig\9afo_t
+))
+
+41 \ 1
+ #__have_sig\9afo_t
+ 1
+
+ )
+
+43 \ 1
+ #__SI_MAX_SIZE
+ 128
+
+ )
+
+44 #ià
+__WORDSIZE
+ == 64
+
+45 \ 1
+ #__SI_PAD_SIZE
+ ((
+__SI_MAX_SIZE
+ / \17 (\12)è- 4)
+
+ )
+
+47 \ 1
+ #__SI_PAD_SIZE
+ ((
+__SI_MAX_SIZE
+ / \17 (\12)è- 3)
+
+ )
+
+50 #ià
+def\9aed
+
+__x86_64__
+ &&
+__WORDSIZE
+ == 32
+
+55 \e
+__þock_t
+
+ t__©\8cibu\8b__
+ ((
+ t__®igÃd__
+ (4))è
+ t__sigchld_þock_t
+;
+
+56 \ 1
+ #__SI_ALIGNMENT
+
+ `__©\8cibu\8b__
+ ((
+ `__®igÃd__
+ (8)))
+
+ )
+
+58 \e
+__þock_t
+
+ t__sigchld_þock_t
+;
+
+59 \ 1
+ #__SI_ALIGNMENT
+
+
+ )
+
+64 \12
+si_signo
+;
+
+65 \12
+si_\94ºo
+;
+
+67 \12
+si_code
+;
+
+71 \12
+_·d
+[
+__SI_PAD_SIZE
+];
+
+76
+__pid_t
+
+si_pid
+;
+
+77
+__uid_t
+
+si_uid
+;
+
+78 }
+_k\9el
+;
+
+83 \12
+si_tid
+;
+
+84 \12
+si_ov\94run
+;
+
+85
+sigv®_t
+
+si_sigv®
+;
+
+86 }
+_tim\94
+;
+
+91
+__pid_t
+
+si_pid
+;
+
+92
+__uid_t
+
+si_uid
+;
+
+93
+sigv®_t
+
+si_sigv®
+;
+
+94 }
+_¹
+;
+
+99
+__pid_t
+
+si_pid
+;
+
+100
+__uid_t
+
+si_uid
+;
+
+101 \12
+si_¡©us
+;
+
+102
+__sigchld_þock_t
+
+si_utime
+;
+
+103
+__sigchld_þock_t
+
+si_¡ime
+;
+
+104 }
+_sigchld
+;
+
+109 \1e*
+si_addr
+;
+
+110 \16\12
+si_addr_lsb
+;
+
+113 \1e*
+_low\94
+;
+
+114 \1e*
+_uµ\94
+;
+
+115 }
+si_addr_bnd
+;
+
+116 }
+_sigçuÉ
+;
+
+121 \13\12
+si_bªd
+;
+
+122 \12
+si_fd
+;
+
+123 }
+_sigpÞl
+;
+
+128 \1e*
+_ÿÎ_addr
+;
+
+129 \12
+_sysÿÎ
+;
+
+130 \1d\12
+_¬ch
+;
+
+131 }
+_sigsys
+;
+
+132 }
+_sif\9blds
+;
+
+133 }
+ tsig\9afo_t
+
+ t__SI_ALIGNMENT
+;
+
+137 \ 1
+ #si_pid
+
+_sif\9blds
+.
+_k\9el
+.
+si_pid
+
+
+ )
+
+138 \ 1
+ #si_uid
+
+_sif\9blds
+.
+_k\9el
+.
+si_uid
+
+
+ )
+
+139 \ 1
+ #si_tim\94id
+
+_sif\9blds
+.
+_tim\94
+.
+si_tid
+
+
+ )
+
+140 \ 1
+ #si_ov\94run
+
+_sif\9blds
+.
+_tim\94
+.
+si_ov\94run
+
+
+ )
+
+141 \ 1
+ #si_¡©us
+
+_sif\9blds
+.
+_sigchld
+.
+si_¡©us
+
+
+ )
+
+142 \ 1
+ #si_utime
+
+_sif\9blds
+.
+_sigchld
+.
+si_utime
+
+
+ )
+
+143 \ 1
+ #si_¡ime
+
+_sif\9blds
+.
+_sigchld
+.
+si_¡ime
+
+
+ )
+
+144 \ 1
+ #si_v®ue
+
+_sif\9blds
+.
+_¹
+.
+si_sigv®
+
+
+ )
+
+145 \ 1
+ #si_\9at
+
+_sif\9blds
+.
+_¹
+.
+si_sigv®
+.
+siv®_\9at
+
+
+ )
+
+146 \ 1
+ #si_±r
+
+_sif\9blds
+.
+_¹
+.
+si_sigv®
+.
+siv®_±r
+
+
+ )
+
+147 \ 1
+ #si_addr
+
+_sif\9blds
+.
+_sigçuÉ
+.
+si_addr
+
+
+ )
+
+148 \ 1
+ #si_addr_lsb
+
+_sif\9blds
+.
+_sigçuÉ
+.
+si_addr_lsb
+
+
+ )
+
+149 \ 1
+ #si_low\94
+
+_sif\9blds
+.
+_sigçuÉ
+.
+si_addr_bnd
+.
+_low\94
+
+
+ )
+
+150 \ 1
+ #si_uµ\94
+
+_sif\9blds
+.
+_sigçuÉ
+.
+si_addr_bnd
+.
+_uµ\94
+
+
+ )
+
+151 \ 1
+ #si_bªd
+
+_sif\9blds
+.
+_sigpÞl
+.
+si_bªd
+
+
+ )
+
+152 \ 1
+ #si_fd
+
+_sif\9blds
+.
+_sigpÞl
+.
+si_fd
+
+
+ )
+
+153 \ 1
+ #si_ÿÎ_addr
+
+_sif\9blds
+.
+_sigsys
+.
+_ÿÎ_addr
+
+
+ )
+
+154 \ 1
+ #si_sysÿÎ
+
+_sif\9blds
+.
+_sigsys
+.
+_sysÿÎ
+
+
+ )
+
+155 \ 1
+ #si_¬ch
+
+_sif\9blds
+.
+_sigsys
+.
+_¬ch
+
+
+ )
+
+162
+SI_ASYNCNL
+ = -60,
+
+163 \ 1
+ #SI_ASYNCNL
+
+SI_ASYNCNL
+
+
+ )
+
+164
+SI_TKILL
+ = -6,
+
+165 \ 1
+ #SI_TKILL
+
+SI_TKILL
+
+
+ )
+
+166
+SI_SIGIO
+,
+
+167 \ 1
+ #SI_SIGIO
+
+SI_SIGIO
+
+
+ )
+
+168
+SI_ASYNCIO
+,
+
+169 \ 1
+ #SI_ASYNCIO
+
+SI_ASYNCIO
+
+
+ )
+
+170
+SI_MESGQ
+,
+
+171 \ 1
+ #SI_MESGQ
+
+SI_MESGQ
+
+
+ )
+
+172
+SI_TIMER
+,
+
+173 \ 1
+ #SI_TIMER
+
+SI_TIMER
+
+
+ )
+
+174
+SI_QUEUE
+,
+
+175 \ 1
+ #SI_QUEUE
+
+SI_QUEUE
+
+
+ )
+
+176
+SI_USER
+,
+
+177 \ 1
+ #SI_USER
+
+SI_USER
+
+
+ )
+
+178
+SI_KERNEL
+ = 0x80
+
+179 \ 1
+ #SI_KERNEL
+
+SI_KERNEL
+
+
+ )
+
+183 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+187
+ILL_ILLOPC
+ = 1,
+
+188 \ 1
+ #ILL_ILLOPC
+
+ILL_ILLOPC
+
+
+ )
+
+189
+ILL_ILLOPN
+,
+
+190 \ 1
+ #ILL_ILLOPN
+
+ILL_ILLOPN
+
+
+ )
+
+191
+ILL_ILLADR
+,
+
+192 \ 1
+ #ILL_ILLADR
+
+ILL_ILLADR
+
+
+ )
+
+193
+ILL_ILLTRP
+,
+
+194 \ 1
+ #ILL_ILLTRP
+
+ILL_ILLTRP
+
+
+ )
+
+195
+ILL_PRVOPC
+,
+
+196 \ 1
+ #ILL_PRVOPC
+
+ILL_PRVOPC
+
+
+ )
+
+197
+ILL_PRVREG
+,
+
+198 \ 1
+ #ILL_PRVREG
+
+ILL_PRVREG
+
+
+ )
+
+199
+ILL_COPROC
+,
+
+200 \ 1
+ #ILL_COPROC
+
+ILL_COPROC
+
+
+ )
+
+201
+ILL_BADSTK
+
+
+202 \ 1
+ #ILL_BADSTK
+
+ILL_BADSTK
+
+
+ )
+
+208
+FPE_INTDIV
+ = 1,
+
+209 \ 1
+ #FPE_INTDIV
+
+FPE_INTDIV
+
+
+ )
+
+210
+FPE_INTOVF
+,
+
+211 \ 1
+ #FPE_INTOVF
+
+FPE_INTOVF
+
+
+ )
+
+212
+FPE_FLTDIV
+,
+
+213 \ 1
+ #FPE_FLTDIV
+
+FPE_FLTDIV
+
+
+ )
+
+214
+FPE_FLTOVF
+,
+
+215 \ 1
+ #FPE_FLTOVF
+
+FPE_FLTOVF
+
+
+ )
+
+216
+FPE_FLTUND
+,
+
+217 \ 1
+ #FPE_FLTUND
+
+FPE_FLTUND
+
+
+ )
+
+218
+FPE_FLTRES
+,
+
+219 \ 1
+ #FPE_FLTRES
+
+FPE_FLTRES
+
+
+ )
+
+220
+FPE_FLTINV
+,
+
+221 \ 1
+ #FPE_FLTINV
+
+FPE_FLTINV
+
+
+ )
+
+222
+FPE_FLTSUB
+
+
+223 \ 1
+ #FPE_FLTSUB
+
+FPE_FLTSUB
+
+
+ )
+
+229
+SEGV_MAPERR
+ = 1,
+
+230 \ 1
+ #SEGV_MAPERR
+
+SEGV_MAPERR
+
+
+ )
+
+231
+SEGV_ACCERR
+
+
+232 \ 1
+ #SEGV_ACCERR
+
+SEGV_ACCERR
+
+
+ )
+
+238
+BUS_ADRALN
+ = 1,
+
+239 \ 1
+ #BUS_ADRALN
+
+BUS_ADRALN
+
+
+ )
+
+240
+BUS_ADRERR
+,
+
+241 \ 1
+ #BUS_ADRERR
+
+BUS_ADRERR
+
+
+ )
+
+242
+BUS_OBJERR
+,
+
+243 \ 1
+ #BUS_OBJERR
+
+BUS_OBJERR
+
+
+ )
+
+244
+BUS_MCEERR_AR
+,
+
+245 \ 1
+ #BUS_MCEERR_AR
+
+BUS_MCEERR_AR
+
+
+ )
+
+246
+BUS_MCEERR_AO
+
+
+247 \ 1
+ #BUS_MCEERR_AO
+
+BUS_MCEERR_AO
+
+
+ )
+
+251 #ifdeà
+__USE_XOPEN_EXTENDED
+
+
+255
+TRAP_BRKPT
+ = 1,
+
+256 \ 1
+ #TRAP_BRKPT
+
+TRAP_BRKPT
+
+
+ )
+
+257
+TRAP_TRACE
+
+
+258 \ 1
+ #TRAP_TRACE
+
+TRAP_TRACE
+
+
+ )
+
+262 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+266
+CLD_EXITED
+ = 1,
+
+267 \ 1
+ #CLD_EXITED
+
+CLD_EXITED
+
+
+ )
+
+268
+CLD_KILLED
+,
+
+269 \ 1
+ #CLD_KILLED
+
+CLD_KILLED
+
+
+ )
+
+270
+CLD_DUMPED
+,
+
+271 \ 1
+ #CLD_DUMPED
+
+CLD_DUMPED
+
+
+ )
+
+272
+CLD_TRAPPED
+,
+
+273 \ 1
+ #CLD_TRAPPED
+
+CLD_TRAPPED
+
+
+ )
+
+274
+CLD_STOPPED
+,
+
+275 \ 1
+ #CLD_STOPPED
+
+CLD_STOPPED
+
+
+ )
+
+276
+CLD_CONTINUED
+
+
+277 \ 1
+ #CLD_CONTINUED
+
+CLD_CONTINUED
+
+
+ )
+
+283
+POLL_IN
+ = 1,
+
+284 \ 1
+ #POLL_IN
+
+POLL_IN
+
+
+ )
+
+285
+POLL_OUT
+,
+
+286 \ 1
+ #POLL_OUT
+
+POLL_OUT
+
+
+ )
+
+287
+POLL_MSG
+,
+
+288 \ 1
+ #POLL_MSG
+
+POLL_MSG
+
+
+ )
+
+289
+POLL_ERR
+,
+
+290 \ 1
+ #POLL_ERR
+
+POLL_ERR
+
+
+ )
+
+291
+POLL_PRI
+,
+
+292 \ 1
+ #POLL_PRI
+
+POLL_PRI
+
+
+ )
+
+293
+POLL_HUP
+
+
+294 \ 1
+ #POLL_HUP
+
+POLL_HUP
+
+
+ )
+
+298 #undeà
+__Ãed_sig\9afo_t
+
+
+302 #ià(
+def\9aed
+
+_SIGNAL_H
+ || def\9aed
+__Ãed_sigev\92t_t
+) \
+
+303 && !
+def\9aed
+
+__have_sigev\92t_t
+
+
+304 \ 1
+ #__have_sigev\92t_t
+ 1
+
+ )
+
+307 \ 1
+ #__SIGEV_MAX_SIZE
+ 64
+
+ )
+
+308 #ià
+__WORDSIZE
+ == 64
+
+309 \ 1
+ #__SIGEV_PAD_SIZE
+ ((
+__SIGEV_MAX_SIZE
+ / \17 (\12)è- 4)
+
+ )
+
+311 \ 1
+ #__SIGEV_PAD_SIZE
+ ((
+__SIGEV_MAX_SIZE
+ / \17 (\12)è- 3)
+
+ )
+
+315 #iâdeà
+__have_±h»ad_©\8c_t
+
+
+316 \e\1c
+±h»ad_©\8c_t
+
+ t±h»ad_©\8c_t
+;
+
+317 \ 1
+ #__have_±h»ad_©\8c_t
+ 1
+
+ )
+
+320 \e\19
+ ssigev\92t
+
+
+322
+sigv®_t
+
+sigev_v®ue
+;
+
+323 \12
+sigev_signo
+;
+
+324 \12
+sigev_nÙify
+;
+
+328 \12
+_·d
+[
+__SIGEV_PAD_SIZE
+];
+
+332
+__pid_t
+
+_tid
+;
+
+336 \1e(*
+_funùiÚ
+è(
+sigv®_t
+);
+
+337
+±h»ad_©\8c_t
+ *
+_©\8cibu\8b
+;
+
+338 }
+_sigev_th»ad
+;
+
+339 }
+_sigev_un
+;
+
+340 }
+ tsigev\92t_t
+;
+
+343 \ 1
+ #sigev_nÙify_funùiÚ
+
+_sigev_un
+.
+_sigev_th»ad
+.
+_funùiÚ
+
+
+ )
+
+344 \ 1
+ #sigev_nÙify_©\8cibu\8bs
+
+_sigev_un
+.
+_sigev_th»ad
+.
+_©\8cibu\8b
+
+
+ )
+
+349
+SIGEV_SIGNAL
+ = 0,
+
+350 \ 1
+ #SIGEV_SIGNAL
+
+SIGEV_SIGNAL
+
+
+ )
+
+351
+SIGEV_NONE
+,
+
+352 \ 1
+ #SIGEV_NONE
+
+SIGEV_NONE
+
+
+ )
+
+353
+SIGEV_THREAD
+,
+
+354 \ 1
+ #SIGEV_THREAD
+
+SIGEV_THREAD
+
+
+ )
+
+356
+SIGEV_THREAD_ID
+ = 4
+
+357 \ 1
+ #SIGEV_THREAD_ID
+
+SIGEV_THREAD_ID
+
+
+ )
+
+ @/usr/include/bits/signum.h
+
+19 #ifdef
+_SIGNAL_H
+
+
+22 \ 1
+ #SIG_ERR
+ ((
+__sighªdËr_t
+è-1è
+
+ )
+
+23 \ 1
+ #SIG_DFL
+ ((
+__sighªdËr_t
+è0è
+
+ )
+
+24 \ 1
+ #SIG_IGN
+ ((
+__sighªdËr_t
+è1è
+
+ )
+
+26 #ifdeà
+__USE_UNIX98
+
+
+27 \ 1
+ #SIG_HOLD
+ ((
+__sighªdËr_t
+è2è
+
+ )
+
+32 \ 1
+ #SIGHUP
+ 1
+
+ )
+
+33 \ 1
+ #SIGINT
+ 2
+
+ )
+
+34 \ 1
+ #SIGQUIT
+ 3
+
+ )
+
+35 \ 1
+ #SIGILL
+ 4
+
+ )
+
+36 \ 1
+ #SIGTRAP
+ 5
+
+ )
+
+37 \ 1
+ #SIGABRT
+ 6
+
+ )
+
+38 \ 1
+ #SIGIOT
+ 6
+
+ )
+
+39 \ 1
+ #SIGBUS
+ 7
+
+ )
+
+40 \ 1
+ #SIGFPE
+ 8
+
+ )
+
+41 \ 1
+ #SIGKILL
+ 9
+
+ )
+
+42 \ 1
+ #SIGUSR1
+ 10
+
+ )
+
+43 \ 1
+ #SIGSEGV
+ 11
+
+ )
+
+44 \ 1
+ #SIGUSR2
+ 12
+
+ )
+
+45 \ 1
+ #SIGPIPE
+ 13
+
+ )
+
+46 \ 1
+ #SIGALRM
+ 14
+
+ )
+
+47 \ 1
+ #SIGTERM
+ 15
+
+ )
+
+48 \ 1
+ #SIGSTKFLT
+ 16
+
+ )
+
+49 \ 1
+ #SIGCLD
+
+SIGCHLD
+
+
+ )
+
+50 \ 1
+ #SIGCHLD
+ 17
+
+ )
+
+51 \ 1
+ #SIGCONT
+ 18
+
+ )
+
+52 \ 1
+ #SIGSTOP
+ 19
+
+ )
+
+53 \ 1
+ #SIGTSTP
+ 20
+
+ )
+
+54 \ 1
+ #SIGTTIN
+ 21
+
+ )
+
+55 \ 1
+ #SIGTTOU
+ 22
+
+ )
+
+56 \ 1
+ #SIGURG
+ 23
+
+ )
+
+57 \ 1
+ #SIGXCPU
+ 24
+
+ )
+
+58 \ 1
+ #SIGXFSZ
+ 25
+
+ )
+
+59 \ 1
+ #SIGVTALRM
+ 26
+
+ )
+
+60 \ 1
+ #SIGPROF
+ 27
+
+ )
+
+61 \ 1
+ #SIGWINCH
+ 28
+
+ )
+
+62 \ 1
+ #SIGPOLL
+
+SIGIO
+
+
+ )
+
+63 \ 1
+ #SIGIO
+ 29
+
+ )
+
+64 \ 1
+ #SIGPWR
+ 30
+
+ )
+
+65 \ 1
+ #SIGSYS
+ 31
+
+ )
+
+66 \ 1
+ #SIGUNUSED
+ 31
+
+ )
+
+68 \ 1
+ #_NSIG
+ 65
+
+ )
+
+71 \ 1
+ #SIGRTMIN
+ (
+ `__libc_cu¼\92t_sig¹m\9a
+ ())
+
+ )
+
+72 \ 1
+ #SIGRTMAX
+ (
+ `__libc_cu¼\92t_sig¹max
+ ())
+
+ )
+
+76 \ 1
+ #__SIGRTMIN
+ 32
+
+ )
+
+77 \ 1
+ #__SIGRTMAX
+ (
+_NSIG
+ - 1)
+
+ )
+
+ @/usr/include/bits/sigset.h
+
+19 #iâdef
+_SIGSET_H_ty³s
+
+
+20 \ 1
+ #_SIGSET_H_ty³s
+ 1
+
+ )
+
+22 \e\12
+ t__sig_©omic_t
+;
+
+26 \ 1
+ #_SIGSET_NWORDS
+ (1024 / (8 * \17 (\1d\13\12)))
+
+ )
+
+29 \1d\13\12
+ m__v®
+[
+_SIGSET_NWORDS
+];
+
+30 }
+ t__sig£t_t
+;
+
+41 #ià!
+def\9aed
+
+_SIGSET_H_âs
+ && def\9aed
+_SIGNAL_H
+
+
+42 \ 1
+ #_SIGSET_H_âs
+ 1
+
+ )
+
+44 #iâdeà
+_EXTERN_INLINE
+
+
+45 \ 1
+ #_EXTERN_INLINE
+
+__ex\8bº_\9al\9ae
+
+
+ )
+
+49 \ 1
+ #__sigmask
+(
+sig
+) \
+
+50 (((\1d\13\12è1è<< (((
+sig
+è- 1è% (8 * \17 (\1d\13\12))))
+
+ )
+
+53 \ 1
+ #__sigwÜd
+(
+sig
+è(((sigè- 1è/ (8 * \17 (\1d\13\12)))
+
+ )
+
+55 #ià
+def\9aed
+
+__GNUC__
+ && __GNUC__ >= 2
+
+56 \ 1
+ #__sigem±y£t
+(
+£t
+) \
+
+57 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__út
+ =
+_SIGSET_NWORDS
+; \
+
+58
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+59 \1f--
+__út
+ >ð0è
+__£t
+->
+__v®
+[__cnt] = 0; \
+
+60 0; }))
+
+ )
+
+61 \ 1
+ #__sigf\9el£t
+(
+£t
+) \
+
+62 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__út
+ =
+_SIGSET_NWORDS
+; \
+
+63
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+64 \1f--
+__út
+ >ð0è
+__£t
+->
+__v®
+[__cnt] = ~0UL; \
+
+65 0; }))
+
+ )
+
+67 #ifdeà
+__USE_GNU
+
+
+71 \ 1
+ #__sigi£m±y£t
+(
+£t
+) \
+
+72 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__út
+ =
+_SIGSET_NWORDS
+; \
+
+73 cڡ
+sig£t_t
+ *
+__£t
+ = (
+£t
+); \
+
+74 \12
+__»t
+ =
+__£t
+->
+__v®
+[--
+__út
+]; \
+
+75 \1f!
+__»t
+ && --
+__út
+ >= 0) \
+
+76
+__»t
+ =
+__£t
+->
+__v®
+[
+__út
+]; \
+
+77
+__»t
+ =ð0; }))
+
+ )
+
+78 \ 1
+ #__sigªd£t
+(
+de¡
+,
+Ëá
+,
+right
+) \
+
+79 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__út
+ =
+_SIGSET_NWORDS
+; \
+
+80
+sig£t_t
+ *
+__de¡
+ = (
+de¡
+); \
+
+81 cڡ
+sig£t_t
+ *
+__Ëá
+ = (
+Ëá
+); \
+
+82 cڡ
+sig£t_t
+ *
+__right
+ = (
+right
+); \
+
+83 \1f--
+__út
+ >= 0) \
+
+84
+__de¡
+->
+__v®
+[
+__út
+] = (
+__Ëá
+->__val[__cnt] \
+
+85 &
+__right
+->
+__v®
+[
+__út
+]); \
+
+86 0; }))
+
+ )
+
+87 \ 1
+ #__sigܣt
+(
+de¡
+,
+Ëá
+,
+right
+) \
+
+88 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__út
+ =
+_SIGSET_NWORDS
+; \
+
+89
+sig£t_t
+ *
+__de¡
+ = (
+de¡
+); \
+
+90 cڡ
+sig£t_t
+ *
+__Ëá
+ = (
+Ëá
+); \
+
+91 cڡ
+sig£t_t
+ *
+__right
+ = (
+right
+); \
+
+92 \1f--
+__út
+ >= 0) \
+
+93
+__de¡
+->
+__v®
+[
+__út
+] = (
+__Ëá
+->__val[__cnt] \
+
+94 |
+__right
+->
+__v®
+[
+__út
+]); \
+
+95 0; }))
+
+ )
+
+102 \r\12
+__sigismemb\94
+ (cڡ
+__sig£t_t
+ *, \12);
+
+103 \r\12
+__sigadd£t
+ (
+__sig£t_t
+ *, \12);
+
+104 \r\12
+__sigd\96£t
+ (
+__sig£t_t
+ *, \12);
+
+106 #ifdeà
+__USE_EXTERN_INLINES
+
+
+107 \ 1
+ #__SIGSETFN
+(
+NAME
+,
+BODY
+,
+CONST
+) \
+
+108
+_EXTERN_INLINE
+ \12\
+
+109
+ `NAME
+ (
+CONST
+
+__sig£t_t
+ *
+__£t
+, \12
+__sig
+) \
+
+111 \1d\13\12
+__mask
+ =
+ `__sigmask
+ (
+__sig
+); \
+
+112 \1d\13\12
+__wÜd
+ =
+ `__sigwÜd
+ (
+__sig
+); \
+
+113 \15
+BODY
+; \
+
+114 }
+
+ )
+
+116
+__SIGSETFN
+ (
+__sigismemb\94
+, (
+__£t
+->
+__v®
+[
+__wÜd
+] &
+__mask
+) ? 1 : 0, const)
+
+117
+__SIGSETFN
+ (
+__sigadd£t
+, ((
+__£t
+->
+__v®
+[
+__wÜd
+] |ð
+__mask
+), 0), )
+
+118
+__SIGSETFN
+ (
+__sigd\96£t
+, ((
+__£t
+->
+__v®
+[
+__wÜd
+] &ð~
+__mask
+), 0), )
+
+120 #undeà
+__SIGSETFN
+
+
+ @/usr/include/bits/sigstack.h
+
+19 #iâdeà
+_SIGNAL_H
+
+
+25 \19
+ ssig¡ack
+
+
+27 \1e*
+ mss_¥
+;
+
+28 \12
+ mss_ڡack
+;
+
+35
+ mSS_ONSTACK
+ = 1,
+
+36 \ 1
+ #SS_ONSTACK
+
+SS_ONSTACK
+
+
+ )
+
+37
+ mSS_DISABLE
+
+
+38 \ 1
+ #SS_DISABLE
+
+SS_DISABLE
+
+
+ )
+
+42 \ 1
+ #MINSIGSTKSZ
+ 2048
+
+ )
+
+45 \ 1
+ #SIGSTKSZ
+ 8192
+
+ )
+
+49 \e\19
+ ssig®t¡ack
+
+
+51 \1e*
+ mss_¥
+;
+
+52 \12
+ mss_æags
+;
+
+53
+size_t
+
+ mss_size
+;
+
+54 }
+ t¡ack_t
+;
+
+ @/usr/include/bits/sigthread.h
+
+19 #iâdeà
+_BITS_SIGTHREAD_H
+
+
+20 \ 1
+ #_BITS_SIGTHREAD_H
+ 1
+
+ )
+
+22 #ià!
+def\9aed
+
+_SIGNAL_H
+ && !def\9aed
+_PTHREAD_H
+
+
+30 \r\12
+ $±h»ad_sigmask
+ (\12
+__how
+,
+
+31 cڡ
+__sig£t_t
+ *
+__»¡riù
+
+__Ãwmask
+,
+
+32
+__sig£t_t
+ *
+__»¡riù
+
+__Þdmask
+)
+__THROW
+;
+
+35 \r\12
+ $±h»ad_k\9el
+ (
+±h»ad_t
+
+__th»adid
+, \12
+__signo
+è
+__THROW
+;
+
+37 #ifdeà
+__USE_GNU
+
+
+39 \r\12
+ $±h»ad_sigqueue
+ (
+±h»ad_t
+
+__th»adid
+, \12
+__signo
+,
+
+40 cڡ \1c
+sigv®
+
+__v®ue
+è
+__THROW
+;
+
+ @/usr/include/bits/socket.h
+
+19 #iâdeà
+__BITS_SOCKET_H
+
+
+20 \ 1
+ #__BITS_SOCKET_H
+
+
+ )
+
+22 #iâdeà
+_SYS_SOCKET_H
+
+
+26 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+27 \ 2
+ ~<¡ddef.h
+>
+
+29 \ 2
+ ~<sys/ty³s.h
+>
+
+32 #iâdeà
+__sockËn_t_def\9aed
+
+
+33 \e
+__sockËn_t
+
+ tsockËn_t
+;
+
+34 \ 1
+ #__sockËn_t_def\9aed
+
+
+ )
+
+38 \ 2
+ ~<b\99s/sock\91_ty³.h
+>
+
+41 \ 1
+ #PF_UNSPEC
+ 0
+
+ )
+
+42 \ 1
+ #PF_LOCAL
+ 1
+
+ )
+
+43 \ 1
+ #PF_UNIX
+
+PF_LOCAL
+
+
+ )
+
+44 \ 1
+ #PF_FILE
+
+PF_LOCAL
+
+
+ )
+
+45 \ 1
+ #PF_INET
+ 2
+
+ )
+
+46 \ 1
+ #PF_AX25
+ 3
+
+ )
+
+47 \ 1
+ #PF_IPX
+ 4
+
+ )
+
+48 \ 1
+ #PF_APPLETALK
+ 5
+
+ )
+
+49 \ 1
+ #PF_NETROM
+ 6
+
+ )
+
+50 \ 1
+ #PF_BRIDGE
+ 7
+
+ )
+
+51 \ 1
+ #PF_ATMPVC
+ 8
+
+ )
+
+52 \ 1
+ #PF_X25
+ 9
+
+ )
+
+53 \ 1
+ #PF_INET6
+ 10
+
+ )
+
+54 \ 1
+ #PF_ROSE
+ 11
+
+ )
+
+55 \ 1
+ #PF_DECÃt
+ 12
+
+ )
+
+56 \ 1
+ #PF_NETBEUI
+ 13
+
+ )
+
+57 \ 1
+ #PF_SECURITY
+ 14
+
+ )
+
+58 \ 1
+ #PF_KEY
+ 15
+
+ )
+
+59 \ 1
+ #PF_NETLINK
+ 16
+
+ )
+
+60 \ 1
+ #PF_ROUTE
+
+PF_NETLINK
+
+
+ )
+
+61 \ 1
+ #PF_PACKET
+ 17
+
+ )
+
+62 \ 1
+ #PF_ASH
+ 18
+
+ )
+
+63 \ 1
+ #PF_ECONET
+ 19
+
+ )
+
+64 \ 1
+ #PF_ATMSVC
+ 20
+
+ )
+
+65 \ 1
+ #PF_RDS
+ 21
+
+ )
+
+66 \ 1
+ #PF_SNA
+ 22
+
+ )
+
+67 \ 1
+ #PF_IRDA
+ 23
+
+ )
+
+68 \ 1
+ #PF_PPPOX
+ 24
+
+ )
+
+69 \ 1
+ #PF_WANPIPE
+ 25
+
+ )
+
+70 \ 1
+ #PF_LLC
+ 26
+
+ )
+
+71 \ 1
+ #PF_IB
+ 27
+
+ )
+
+72 \ 1
+ #PF_MPLS
+ 28
+
+ )
+
+73 \ 1
+ #PF_CAN
+ 29
+
+ )
+
+74 \ 1
+ #PF_TIPC
+ 30
+
+ )
+
+75 \ 1
+ #PF_BLUETOOTH
+ 31
+
+ )
+
+76 \ 1
+ #PF_IUCV
+ 32
+
+ )
+
+77 \ 1
+ #PF_RXRPC
+ 33
+
+ )
+
+78 \ 1
+ #PF_ISDN
+ 34
+
+ )
+
+79 \ 1
+ #PF_PHONET
+ 35
+
+ )
+
+80 \ 1
+ #PF_IEEE802154
+ 36
+
+ )
+
+81 \ 1
+ #PF_CAIF
+ 37
+
+ )
+
+82 \ 1
+ #PF_ALG
+ 38
+
+ )
+
+83 \ 1
+ #PF_NFC
+ 39
+
+ )
+
+84 \ 1
+ #PF_VSOCK
+ 40
+
+ )
+
+85 \ 1
+ #PF_MAX
+ 41
+
+ )
+
+88 \ 1
+ #AF_UNSPEC
+
+PF_UNSPEC
+
+
+ )
+
+89 \ 1
+ #AF_LOCAL
+
+PF_LOCAL
+
+
+ )
+
+90 \ 1
+ #AF_UNIX
+
+PF_UNIX
+
+
+ )
+
+91 \ 1
+ #AF_FILE
+
+PF_FILE
+
+
+ )
+
+92 \ 1
+ #AF_INET
+
+PF_INET
+
+
+ )
+
+93 \ 1
+ #AF_AX25
+
+PF_AX25
+
+
+ )
+
+94 \ 1
+ #AF_IPX
+
+PF_IPX
+
+
+ )
+
+95 \ 1
+ #AF_APPLETALK
+
+PF_APPLETALK
+
+
+ )
+
+96 \ 1
+ #AF_NETROM
+
+PF_NETROM
+
+
+ )
+
+97 \ 1
+ #AF_BRIDGE
+
+PF_BRIDGE
+
+
+ )
+
+98 \ 1
+ #AF_ATMPVC
+
+PF_ATMPVC
+
+
+ )
+
+99 \ 1
+ #AF_X25
+
+PF_X25
+
+
+ )
+
+100 \ 1
+ #AF_INET6
+
+PF_INET6
+
+
+ )
+
+101 \ 1
+ #AF_ROSE
+
+PF_ROSE
+
+
+ )
+
+102 \ 1
+ #AF_DECÃt
+
+PF_DECÃt
+
+
+ )
+
+103 \ 1
+ #AF_NETBEUI
+
+PF_NETBEUI
+
+
+ )
+
+104 \ 1
+ #AF_SECURITY
+
+PF_SECURITY
+
+
+ )
+
+105 \ 1
+ #AF_KEY
+
+PF_KEY
+
+
+ )
+
+106 \ 1
+ #AF_NETLINK
+
+PF_NETLINK
+
+
+ )
+
+107 \ 1
+ #AF_ROUTE
+
+PF_ROUTE
+
+
+ )
+
+108 \ 1
+ #AF_PACKET
+
+PF_PACKET
+
+
+ )
+
+109 \ 1
+ #AF_ASH
+
+PF_ASH
+
+
+ )
+
+110 \ 1
+ #AF_ECONET
+
+PF_ECONET
+
+
+ )
+
+111 \ 1
+ #AF_ATMSVC
+
+PF_ATMSVC
+
+
+ )
+
+112 \ 1
+ #AF_RDS
+
+PF_RDS
+
+
+ )
+
+113 \ 1
+ #AF_SNA
+
+PF_SNA
+
+
+ )
+
+114 \ 1
+ #AF_IRDA
+
+PF_IRDA
+
+
+ )
+
+115 \ 1
+ #AF_PPPOX
+
+PF_PPPOX
+
+
+ )
+
+116 \ 1
+ #AF_WANPIPE
+
+PF_WANPIPE
+
+
+ )
+
+117 \ 1
+ #AF_LLC
+
+PF_LLC
+
+
+ )
+
+118 \ 1
+ #AF_IB
+
+PF_IB
+
+
+ )
+
+119 \ 1
+ #AF_MPLS
+
+PF_MPLS
+
+
+ )
+
+120 \ 1
+ #AF_CAN
+
+PF_CAN
+
+
+ )
+
+121 \ 1
+ #AF_TIPC
+
+PF_TIPC
+
+
+ )
+
+122 \ 1
+ #AF_BLUETOOTH
+
+PF_BLUETOOTH
+
+
+ )
+
+123 \ 1
+ #AF_IUCV
+
+PF_IUCV
+
+
+ )
+
+124 \ 1
+ #AF_RXRPC
+
+PF_RXRPC
+
+
+ )
+
+125 \ 1
+ #AF_ISDN
+
+PF_ISDN
+
+
+ )
+
+126 \ 1
+ #AF_PHONET
+
+PF_PHONET
+
+
+ )
+
+127 \ 1
+ #AF_IEEE802154
+
+PF_IEEE802154
+
+
+ )
+
+128 \ 1
+ #AF_CAIF
+
+PF_CAIF
+
+
+ )
+
+129 \ 1
+ #AF_ALG
+
+PF_ALG
+
+
+ )
+
+130 \ 1
+ #AF_NFC
+
+PF_NFC
+
+
+ )
+
+131 \ 1
+ #AF_VSOCK
+
+PF_VSOCK
+
+
+ )
+
+132 \ 1
+ #AF_MAX
+
+PF_MAX
+
+
+ )
+
+138 \ 1
+ #SOL_RAW
+ 255
+
+ )
+
+139 \ 1
+ #SOL_DECNET
+ 261
+
+ )
+
+140 \ 1
+ #SOL_X25
+ 262
+
+ )
+
+141 \ 1
+ #SOL_PACKET
+ 263
+
+ )
+
+142 \ 1
+ #SOL_ATM
+ 264
+
+ )
+
+143 \ 1
+ #SOL_AAL
+ 265
+
+ )
+
+144 \ 1
+ #SOL_IRDA
+ 266
+
+ )
+
+147 \ 1
+ #SOMAXCONN
+ 128
+
+ )
+
+150 \ 2
+ ~<b\99s/sockaddr.h
+>
+
+153 \19
+ ssockaddr
+
+
+155
+__SOCKADDR_COMMON
+ (
+§_
+);
+
+156 \ 5
+ m§_d©a
+[14];
+
+162 \ 1
+ #__ss_®igÁy³
+ \1d\13\12
+
+ )
+
+163 \ 1
+ #_SS_PADSIZE
+ \
+
+164 (
+_SS_SIZE
+ -
+__SOCKADDR_COMMON_SIZE
+ - \17 (
+__ss_®igÁy³
+))
+
+ )
+
+166 \19
+ ssockaddr_¡Üage
+
+
+168
+__SOCKADDR_COMMON
+ (
+ss_
+);
+
+169 \ 5
+ m__ss_·dd\9ag
+[
+_SS_PADSIZE
+];
+
+170
+__ss_®igÁy³
+
+ m__ss_®ign
+;
+
+177
+ mMSG_OOB
+ = 0x01,
+
+178 \ 1
+ #MSG_OOB
+
+MSG_OOB
+
+
+ )
+
+179
+ mMSG_PEEK
+ = 0x02,
+
+180 \ 1
+ #MSG_PEEK
+
+MSG_PEEK
+
+
+ )
+
+181
+ mMSG_DONTROUTE
+ = 0x04,
+
+182 \ 1
+ #MSG_DONTROUTE
+
+MSG_DONTROUTE
+
+
+ )
+
+183 #ifdeà
+__USE_GNU
+
+
+185
+ mMSG_TRYHARD
+ =
+MSG_DONTROUTE
+,
+
+186 \ 1
+ #MSG_TRYHARD
+
+MSG_DONTROUTE
+
+
+ )
+
+188
+ mMSG_CTRUNC
+ = 0x08,
+
+189 \ 1
+ #MSG_CTRUNC
+
+MSG_CTRUNC
+
+
+ )
+
+190
+ mMSG_PROXY
+ = 0x10,
+
+191 \ 1
+ #MSG_PROXY
+
+MSG_PROXY
+
+
+ )
+
+192
+ mMSG_TRUNC
+ = 0x20,
+
+193 \ 1
+ #MSG_TRUNC
+
+MSG_TRUNC
+
+
+ )
+
+194
+ mMSG_DONTWAIT
+ = 0x40,
+
+195 \ 1
+ #MSG_DONTWAIT
+
+MSG_DONTWAIT
+
+
+ )
+
+196
+ mMSG_EOR
+ = 0x80,
+
+197 \ 1
+ #MSG_EOR
+
+MSG_EOR
+
+
+ )
+
+198
+ mMSG_WAITALL
+ = 0x100,
+
+199 \ 1
+ #MSG_WAITALL
+
+MSG_WAITALL
+
+
+ )
+
+200
+ mMSG_FIN
+ = 0x200,
+
+201 \ 1
+ #MSG_FIN
+
+MSG_FIN
+
+
+ )
+
+202
+ mMSG_SYN
+ = 0x400,
+
+203 \ 1
+ #MSG_SYN
+
+MSG_SYN
+
+
+ )
+
+204
+ mMSG_CONFIRM
+ = 0x800,
+
+205 \ 1
+ #MSG_CONFIRM
+
+MSG_CONFIRM
+
+
+ )
+
+206
+ mMSG_RST
+ = 0x1000,
+
+207 \ 1
+ #MSG_RST
+
+MSG_RST
+
+
+ )
+
+208
+ mMSG_ERRQUEUE
+ = 0x2000,
+
+209 \ 1
+ #MSG_ERRQUEUE
+
+MSG_ERRQUEUE
+
+
+ )
+
+210
+ mMSG_NOSIGNAL
+ = 0x4000,
+
+211 \ 1
+ #MSG_NOSIGNAL
+
+MSG_NOSIGNAL
+
+
+ )
+
+212
+ mMSG_MORE
+ = 0x8000,
+
+213 \ 1
+ #MSG_MORE
+
+MSG_MORE
+
+
+ )
+
+214
+ mMSG_WAITFORONE
+ = 0x10000,
+
+215 \ 1
+ #MSG_WAITFORONE
+
+MSG_WAITFORONE
+
+
+ )
+
+216
+ mMSG_FASTOPEN
+ = 0x20000000,
+
+217 \ 1
+ #MSG_FASTOPEN
+
+MSG_FASTOPEN
+
+
+ )
+
+219
+ mMSG_CMSG_CLOEXEC
+ = 0x40000000
+
+222 \ 1
+ #MSG_CMSG_CLOEXEC
+
+MSG_CMSG_CLOEXEC
+
+
+ )
+
+228 \19
+ smsghdr
+
+
+230 \1e*
+ mmsg_Çme
+;
+
+231
+sockËn_t
+
+ mmsg_Çm\96\92
+;
+
+233 \19
+iovec
+ *
+ mmsg_iov
+;
+
+234
+size_t
+
+ mmsg_iovËn
+;
+
+236 \1e*
+ mmsg_cÚ\8cÞ
+;
+
+237
+size_t
+
+ mmsg_cÚ\8cÞËn
+;
+
+242 \12
+ mmsg_æags
+;
+
+246 \19
+ scmsghdr
+
+
+248
+size_t
+
+ mcmsg_Ën
+;
+
+253 \12
+ mcmsg_Ëv\96
+;
+
+254 \12
+ mcmsg_ty³
+;
+
+255 #ià(!
+def\9aed
+
+__STRICT_ANSI__
+ &&
+__GNUC__
+ >ð2è||
+__STDC_VERSION__
+ >= 199901L
+
+256
+__ex\8bnsiÚ__
+ \1d\ 5
+__cmsg_d©a
+
+ m__æex¬r
+;
+
+261 #ià(!
+def\9aed
+
+__STRICT_ANSI__
+ &&
+__GNUC__
+ >ð2è||
+__STDC_VERSION__
+ >= 199901L
+
+262 \ 1
+ #CMSG_DATA
+(
+cmsg
+è((cmsg)->
+__cmsg_d©a
+)
+
+ )
+
+264 \ 1
+ #CMSG_DATA
+(
+cmsg
+è((\1d\ 5*è((\19
+cmsghdr
+ *è(cmsgè+ 1))
+
+ )
+
+266 \ 1
+ #CMSG_NXTHDR
+(
+mhdr
+,
+cmsg
+è
+ `__cmsg_nxthdr
+ (mhdr, cmsg)
+
+ )
+
+267 \ 1
+ #CMSG_FIRSTHDR
+(
+mhdr
+) \
+
+268 ((
+size_t
+è(
+mhdr
+)->
+msg_cÚ\8cÞËn
+ >ð\17 (\19
+cmsghdr
+) \
+
+269 ? (\19
+cmsghdr
+ *è(
+mhdr
+)->
+msg_cÚ\8cÞ
+ : (\19cmsghd¸*è0)
+
+ )
+
+270 \ 1
+ #CMSG_ALIGN
+(
+Ën
+è((Ö\92è+ \17 (
+size_t
+) - 1) \
+
+271 & (
+size_t
+è~(\17 (size_tè- 1))
+
+ )
+
+272 \ 1
+ #CMSG_SPACE
+(
+Ën
+è(
+ `CMSG_ALIGN
+ (len) \
+
+273 +
+ `CMSG_ALIGN
+ (\17 (\19
+cmsghdr
+)))
+
+ )
+
+274 \ 1
+ #CMSG_LEN
+(
+Ën
+è(
+ `CMSG_ALIGN
+ (\17 (\19
+cmsghdr
+)è+ (Ën))
+
+ )
+
+276 \r\19
+cmsghdr
+ *
+ $__cmsg_nxthdr
+ (\19
+msghdr
+ *
+__mhdr
+,
+
+277 \19
+cmsghdr
+ *
+__cmsg
+è
+__THROW
+;
+
+278 #ifdeà
+__USE_EXTERN_INLINES
+
+
+279 #iâdeà
+_EXTERN_INLINE
+
+
+280 \ 1
+ #_EXTERN_INLINE
+
+__ex\8bº_\9al\9ae
+
+
+ )
+
+282
+_EXTERN_INLINE
+ \19
+cmsghdr
+ *
+
+283
+ `__NTH
+ (
+ $__cmsg_nxthdr
+ (\19
+msghdr
+ *
+__mhdr
+, \19
+cmsghdr
+ *
+__cmsg
+))
+
+285 ià((
+size_t
+è
+__cmsg
+->
+cmsg_Ën
+ < \17 (\19
+cmsghdr
+))
+
+287 \15 (\19
+cmsghdr
+ *) 0;
+
+289
+__cmsg
+ = (\19
+cmsghdr
+ *) ((\1d\ 5*) __cmsg
+
+290 +
+ `CMSG_ALIGN
+ (
+__cmsg
+->
+cmsg_Ën
+));
+
+291 ià((\1d\ 5*è(
+__cmsg
+ + 1è> ((\1d\ 5*è
+__mhdr
+->
+msg_cÚ\8cÞ
+
+
+292 +
+__mhdr
+->
+msg_cÚ\8cÞËn
+)
+
+293 || ((\1d\ 5*è
+__cmsg
+ +
+ `CMSG_ALIGN
+ (__cmsg->
+cmsg_Ën
+)
+
+294 > ((\1d\ 5*è
+__mhdr
+->
+msg_cÚ\8cÞ
+ + __mhdr->
+msg_cÚ\8cÞËn
+)))
+
+296 \15 (\19
+cmsghdr
+ *) 0;
+
+297 \15
+__cmsg
+;
+
+298
+ }
+}
+
+305
+ mSCM_RIGHTS
+ = 0x01
+
+306 \ 1
+ #SCM_RIGHTS
+
+SCM_RIGHTS
+
+
+ )
+
+307 #ifdeà
+__USE_GNU
+
+
+308 ,
+ mSCM_CREDENTIALS
+ = 0x02
+
+309 \ 1
+ #SCM_CREDENTIALS
+
+SCM_CREDENTIALS
+
+
+ )
+
+313 #ifdeà
+__USE_GNU
+
+
+315 \19
+ suüed
+
+
+317
+pid_t
+
+ mpid
+;
+
+318
+uid_t
+
+ muid
+;
+
+319
+gid_t
+
+ mgid
+;
+
+324 #iâdeà
+__USE_MISC
+
+
+325 #iâdeà
+FIOGETOWN
+
+
+326 \ 1
+ #__SYS_SOCKET_H_undef_FIOGETOWN
+
+
+ )
+
+328 #iâdeà
+FIOSETOWN
+
+
+329 \ 1
+ #__SYS_SOCKET_H_undef_FIOSETOWN
+
+
+ )
+
+331 #iâdeà
+SIOCATMARK
+
+
+332 \ 1
+ #__SYS_SOCKET_H_undef_SIOCATMARK
+
+
+ )
+
+334 #iâdeà
+SIOCGPGRP
+
+
+335 \ 1
+ #__SYS_SOCKET_H_undef_SIOCGPGRP
+
+
+ )
+
+337 #iâdeà
+SIOCGSTAMP
+
+
+338 \ 1
+ #__SYS_SOCKET_H_undef_SIOCGSTAMP
+
+
+ )
+
+340 #iâdeà
+SIOCGSTAMPNS
+
+
+341 \ 1
+ #__SYS_SOCKET_H_undef_SIOCGSTAMPNS
+
+
+ )
+
+343 #iâdeà
+SIOCSPGRP
+
+
+344 \ 1
+ #__SYS_SOCKET_H_undef_SIOCSPGRP
+
+
+ )
+
+349 \ 2
+ ~<asm/sock\91.h
+>
+
+351 #iâdeà
+__USE_MISC
+
+
+352 #ifdeà
+__SYS_SOCKET_H_undef_FIOGETOWN
+
+
+353 #undeà
+__SYS_SOCKET_H_undef_FIOGETOWN
+
+
+354 #undeà
+FIOGETOWN
+
+
+356 #ifdeà
+__SYS_SOCKET_H_undef_FIOSETOWN
+
+
+357 #undeà
+__SYS_SOCKET_H_undef_FIOSETOWN
+
+
+358 #undeà
+FIOSETOWN
+
+
+360 #ifdeà
+__SYS_SOCKET_H_undef_SIOCATMARK
+
+
+361 #undeà
+__SYS_SOCKET_H_undef_SIOCATMARK
+
+
+362 #undeà
+SIOCATMARK
+
+
+364 #ifdeà
+__SYS_SOCKET_H_undef_SIOCGPGRP
+
+
+365 #undeà
+__SYS_SOCKET_H_undef_SIOCGPGRP
+
+
+366 #undeà
+SIOCGPGRP
+
+
+368 #ifdeà
+__SYS_SOCKET_H_undef_SIOCGSTAMP
+
+
+369 #undeà
+__SYS_SOCKET_H_undef_SIOCGSTAMP
+
+
+370 #undeà
+SIOCGSTAMP
+
+
+372 #ifdeà
+__SYS_SOCKET_H_undef_SIOCGSTAMPNS
+
+
+373 #undeà
+__SYS_SOCKET_H_undef_SIOCGSTAMPNS
+
+
+374 #undeà
+SIOCGSTAMPNS
+
+
+376 #ifdeà
+__SYS_SOCKET_H_undef_SIOCSPGRP
+
+
+377 #undeà
+__SYS_SOCKET_H_undef_SIOCSPGRP
+
+
+378 #undeà
+SIOCSPGRP
+
+
+383 \19
+ sl\9ag\94
+
+
+385 \12
+ ml_Úoff
+;
+
+386 \12
+ ml_l\9ag\94
+;
+
+ @/usr/include/bits/socket2.h
+
+19 #iâdeà
+_SYS_SOCKET_H
+
+
+23 \r
+ssize_t
+
+__»cv_chk
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__n
+, size_\88
+__buæ\92
+,
+
+24 \12
+__æags
+);
+
+25 \r
+ssize_t
+
+__REDIRECT
+ (
+__»cv_®\9fs
+, (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__n
+,
+
+26 \12
+__æags
+),
+»cv
+);
+
+27 \r
+ssize_t
+
+__REDIRECT
+ (
+__»cv_chk_w¬n
+,
+
+28 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__n
+, size_\88
+__buæ\92
+,
+
+29 \12
+__æags
+),
+__»cv_chk
+)
+
+30
+__w‚\89r
+ ("recv called with bigger\86ength\81han size of destination "
+
+33
+__fÜtify_funùiÚ
+
+ssize_t
+
+
+34
+ $»cv
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__n
+, \12
+__æags
+)
+
+36 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+38 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+39 \15
+ `__»cv_chk
+ (
+__fd
+,
+__buf
+,
+__n
+,
+ `__bos0
+ (__buf),
+__æags
+);
+
+41 ià(
+__n
+ >
+ `__bos0
+ (
+__buf
+))
+
+42 \15
+ `__»cv_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__n
+,
+ `__bos0
+ (__buf),
+__æags
+);
+
+44 \15
+ `__»cv_®\9fs
+ (
+__fd
+,
+__buf
+,
+__n
+,
+__æags
+);
+
+45
+ }
+}
+
+47 \r
+ssize_t
+
+__»cväom_chk
+ (\12
+__fd
+, \1e*
+__»¡riù
+
+__buf
+,
+size_t
+
+__n
+,
+
+48
+size_t
+
+__buæ\92
+, \12
+__æags
+,
+
+49
+__SOCKADDR_ARG
+
+__addr
+,
+
+50
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+);
+
+51 \r
+ssize_t
+
+__REDIRECT
+ (
+__»cväom_®\9fs
+,
+
+52 (\12
+__fd
+, \1e*
+__»¡riù
+
+__buf
+,
+size_t
+
+__n
+,
+
+53 \12
+__æags
+,
+__SOCKADDR_ARG
+
+__addr
+,
+
+54
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+),
+»cväom
+);
+
+55 \r
+ssize_t
+
+__REDIRECT
+ (
+__»cväom_chk_w¬n
+,
+
+56 (\12
+__fd
+, \1e*
+__»¡riù
+
+__buf
+,
+size_t
+
+__n
+,
+
+57
+size_t
+
+__buæ\92
+, \12
+__æags
+,
+
+58
+__SOCKADDR_ARG
+
+__addr
+,
+
+59
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+),
+__»cväom_chk
+)
+
+60
+__w‚\89r
+ ("recvfrom called with bigger\86ength\81han size of "
+
+63
+__fÜtify_funùiÚ
+
+ssize_t
+
+
+64
+ $»cväom
+ (\12
+__fd
+, \1e*
+__»¡riù
+
+__buf
+,
+size_t
+
+__n
+, \12
+__æags
+,
+
+65
+__SOCKADDR_ARG
+
+__addr
+,
+sockËn_t
+ *
+__»¡riù
+
+__addr_Ën
+)
+
+67 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+69 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+70 \15
+ `__»cväom_chk
+ (
+__fd
+,
+__buf
+,
+__n
+,
+ `__bos0
+ (__buf),
+__æags
+,
+
+71
+__addr
+,
+__addr_Ën
+);
+
+72 ià(
+__n
+ >
+ `__bos0
+ (
+__buf
+))
+
+73 \15
+ `__»cväom_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__n
+,
+ `__bos0
+ (__buf),
+__æags
+,
+
+74
+__addr
+,
+__addr_Ën
+);
+
+76 \15
+ `__»cväom_®\9fs
+ (
+__fd
+,
+__buf
+,
+__n
+,
+__æags
+,
+__addr
+,
+__addr_Ën
+);
+
+77
+ }
+}
+
+ @/usr/include/bits/stat.h
+
+18 #ià!
+def\9aed
+
+_SYS_STAT_H
+ && !def\9aed
+_FCNTL_H
+
+
+22 #iâdeà
+_BITS_STAT_H
+
+
+23 \ 1
+ #_BITS_STAT_H
+ 1
+
+ )
+
+26 #iâdeà
+__x86_64__
+
+
+27 \ 1
+ #_STAT_VER_LINUX_OLD
+ 1
+
+ )
+
+28 \ 1
+ #_STAT_VER_KERNEL
+ 1
+
+ )
+
+29 \ 1
+ #_STAT_VER_SVR4
+ 2
+
+ )
+
+30 \ 1
+ #_STAT_VER_LINUX
+ 3
+
+ )
+
+33 \ 1
+ #_MKNOD_VER_LINUX
+ 1
+
+ )
+
+34 \ 1
+ #_MKNOD_VER_SVR4
+ 2
+
+ )
+
+35 \ 1
+ #_MKNOD_VER
+
+_MKNOD_VER_LINUX
+
+
+ )
+
+37 \ 1
+ #_STAT_VER_KERNEL
+ 0
+
+ )
+
+38 \ 1
+ #_STAT_VER_LINUX
+ 1
+
+ )
+
+41 \ 1
+ #_MKNOD_VER_LINUX
+ 0
+
+ )
+
+44 \ 1
+ #_STAT_VER
+
+_STAT_VER_LINUX
+
+
+ )
+
+46 \19
+ s¡©
+
+
+48
+__dev_t
+
+ m¡_dev
+;
+
+49 #iâdeà
+__x86_64__
+
+
+50 \1d\16\12
+ m__·d1
+;
+
+52 #ià
+def\9aed
+
+__x86_64__
+ || !def\9aed
+__USE_FILE_OFFSET64
+
+
+53
+__\9ao_t
+
+ m¡_\9ao
+;
+
+55
+__\9ao_t
+
+ m__¡_\9ao
+;
+
+57 #iâdeà
+__x86_64__
+
+
+58
+__mode_t
+
+ m¡_mode
+;
+
+59
+__ƚk_t
+
+ m¡_Æ\9ak
+;
+
+61
+__ƚk_t
+
+ m¡_Æ\9ak
+;
+
+62
+__mode_t
+
+ m¡_mode
+;
+
+64
+__uid_t
+
+ m¡_uid
+;
+
+65
+__gid_t
+
+ m¡_gid
+;
+
+66 #ifdeà
+__x86_64__
+
+
+67 \12
+ m__·d0
+;
+
+69
+__dev_t
+
+ m¡_rdev
+;
+
+70 #iâdeà
+__x86_64__
+
+
+71 \1d\16\12
+ m__·d2
+;
+
+73 #ià
+def\9aed
+
+__x86_64__
+ || !def\9aed
+__USE_FILE_OFFSET64
+
+
+74
+__off_t
+
+ m¡_size
+;
+
+76
+__off64_t
+
+ m¡_size
+;
+
+78
+__blksize_t
+
+ m¡_blksize
+;
+
+79 #ià
+def\9aed
+
+__x86_64__
+ || !def\9aed
+__USE_FILE_OFFSET64
+
+
+80
+__blkút_t
+
+ m¡_blocks
+;
+
+82
+__blkút64_t
+
+ m¡_blocks
+;
+
+84 #ifdeà
+__USE_XOPEN2K8
+
+
+91 \19
+time¥ec
+
+ m¡_©im
+;
+
+92 \19
+time¥ec
+
+ m¡_mtim
+;
+
+93 \19
+time¥ec
+
+ m¡_ùim
+;
+
+94 \ 1
+ #¡_©ime
+
+¡_©im
+.
+tv_£c
+
+
+ )
+
+95 \ 1
+ #¡_mtime
+
+¡_mtim
+.
+tv_£c
+
+
+ )
+
+96 \ 1
+ #¡_ùime
+
+¡_ùim
+.
+tv_£c
+
+
+ )
+
+98
+__time_t
+
+ m¡_©ime
+;
+
+99
+__sysÿÎ_ulÚg_t
+
+ m¡_©im\92£c
+;
+
+100
+__time_t
+
+ m¡_mtime
+;
+
+101
+__sysÿÎ_ulÚg_t
+
+ m¡_mtim\92£c
+;
+
+102
+__time_t
+
+ m¡_ùime
+;
+
+103
+__sysÿÎ_ulÚg_t
+
+ m¡_ùim\92£c
+;
+
+105 #ifdeà
+__x86_64__
+
+
+106
+__sysÿÎ_¦Úg_t
+
+ m__glibc_ȣrved
+[3];
+
+108 #iâdeà
+__USE_FILE_OFFSET64
+
+
+109 \1d\13\12
+ m__glibc_ȣrved4
+;
+
+110 \1d\13\12
+ m__glibc_ȣrved5
+;
+
+112
+__\9ao64_t
+
+ m¡_\9ao
+;
+
+117 #ifdeà
+__USE_LARGEFILE64
+
+
+119 \19
+ s¡©64
+
+
+121
+__dev_t
+
+ m¡_dev
+;
+
+122 #ifdeà
+__x86_64__
+
+
+123
+__\9ao64_t
+
+ m¡_\9ao
+;
+
+124
+__ƚk_t
+
+ m¡_Æ\9ak
+;
+
+125
+__mode_t
+
+ m¡_mode
+;
+
+127 \1d\12
+ m__·d1
+;
+
+128
+__\9ao_t
+
+ m__¡_\9ao
+;
+
+129
+__mode_t
+
+ m¡_mode
+;
+
+130
+__ƚk_t
+
+ m¡_Æ\9ak
+;
+
+132
+__uid_t
+
+ m¡_uid
+;
+
+133
+__gid_t
+
+ m¡_gid
+;
+
+134 #ifdeà
+__x86_64__
+
+
+135 \12
+ m__·d0
+;
+
+136
+__dev_t
+
+ m¡_rdev
+;
+
+137
+__off_t
+
+ m¡_size
+;
+
+139
+__dev_t
+
+ m¡_rdev
+;
+
+140 \1d\12
+ m__·d2
+;
+
+141
+__off64_t
+
+ m¡_size
+;
+
+143
+__blksize_t
+
+ m¡_blksize
+;
+
+144
+__blkút64_t
+
+ m¡_blocks
+;
+
+145 #ifdeà
+__USE_XOPEN2K8
+
+
+152 \19
+time¥ec
+
+ m¡_©im
+;
+
+153 \19
+time¥ec
+
+ m¡_mtim
+;
+
+154 \19
+time¥ec
+
+ m¡_ùim
+;
+
+156
+__time_t
+
+ m¡_©ime
+;
+
+157
+__sysÿÎ_ulÚg_t
+
+ m¡_©im\92£c
+;
+
+158
+__time_t
+
+ m¡_mtime
+;
+
+159
+__sysÿÎ_ulÚg_t
+
+ m¡_mtim\92£c
+;
+
+160
+__time_t
+
+ m¡_ùime
+;
+
+161
+__sysÿÎ_ulÚg_t
+
+ m¡_ùim\92£c
+;
+
+163 #ifdeà
+__x86_64__
+
+
+164
+__sysÿÎ_¦Úg_t
+
+ m__glibc_ȣrved
+[3];
+
+166
+__\9ao64_t
+
+ m¡_\9ao
+;
+
+172 \ 1
+ #_STATBUF_ST_BLKSIZE
+
+
+ )
+
+173 \ 1
+ #_STATBUF_ST_RDEV
+
+
+ )
+
+175 \ 1
+ #_STATBUF_ST_NSEC
+
+
+ )
+
+179 \ 1
+ #__S_IFMT
+ 0170000
+
+ )
+
+182 \ 1
+ #__S_IFDIR
+ 0040000
+
+ )
+
+183 \ 1
+ #__S_IFCHR
+ 0020000
+
+ )
+
+184 \ 1
+ #__S_IFBLK
+ 0060000
+
+ )
+
+185 \ 1
+ #__S_IFREG
+ 0100000
+
+ )
+
+186 \ 1
+ #__S_IFIFO
+ 0010000
+
+ )
+
+187 \ 1
+ #__S_IFLNK
+ 0120000
+
+ )
+
+188 \ 1
+ #__S_IFSOCK
+ 0140000
+
+ )
+
+192 \ 1
+ #__S_TYPEISMQ
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+ )
+
+193 \ 1
+ #__S_TYPEISSEM
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+ )
+
+194 \ 1
+ #__S_TYPEISSHM
+(
+buf
+è((buf)->
+¡_mode
+ - (buf)->¡_mode)
+
+ )
+
+198 \ 1
+ #__S_ISUID
+ 04000
+
+ )
+
+199 \ 1
+ #__S_ISGID
+ 02000
+
+ )
+
+200 \ 1
+ #__S_ISVTX
+ 01000
+
+ )
+
+201 \ 1
+ #__S_IREAD
+ 0400
+
+ )
+
+202 \ 1
+ #__S_IWRITE
+ 0200
+
+ )
+
+203 \ 1
+ #__S_IEXEC
+ 0100
+
+ )
+
+205 #ifdeà
+__USE_ATFILE
+
+
+206 \ 1
+ #UTIME_NOW
+ ((1È<< 30è- 1l)
+
+ )
+
+207 \ 1
+ #UTIME_OMIT
+ ((1È<< 30è- 2l)
+
+ )
+
+ @/usr/include/bits/stdio-ldbl.h
+
+19 #iâdeà
+_STDIO_H
+
+
+23
+__BEGIN_NAMESPACE_STD
+
+
+24
+ $__LDBL_REDIR_DECL
+ (
+år\9atf
+)
+
+25
+ $__LDBL_REDIR_DECL
+ (
+´\9atf
+)
+
+26
+ $__LDBL_REDIR_DECL
+ (
+¥r\9atf
+)
+
+27
+ $__LDBL_REDIR_DECL
+ (
+vår\9atf
+)
+
+28
+ $__LDBL_REDIR_DECL
+ (
+v´\9atf
+)
+
+29
+ $__LDBL_REDIR_DECL
+ (
+v¥r\9atf
+)
+
+30 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__USE_GNU
+ \
+
+31 && !
+def\9aed
+
+__REDIRECT
+ \
+
+32 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+33
+ $__LDBL_REDIR1_DECL
+ (
+fsÿnf
+,
+__Ædbl___isoc99_fsÿnf
+)
+
+34
+ $__LDBL_REDIR1_DECL
+ (
+sÿnf
+,
+__Ædbl___isoc99_sÿnf
+)
+
+35
+ $__LDBL_REDIR1_DECL
+ (
+ssÿnf
+,
+__Ædbl___isoc99_ssÿnf
+)
+
+37
+ $__LDBL_REDIR_DECL
+ (
+fsÿnf
+)
+
+38
+ $__LDBL_REDIR_DECL
+ (
+sÿnf
+)
+
+39
+ $__LDBL_REDIR_DECL
+ (
+ssÿnf
+)
+
+41
+__END_NAMESPACE_STD
+
+
+43 #ià
+def\9aed
+
+__USE_ISOC99
+ || def\9aed
+__USE_UNIX98
+
+
+44
+__BEGIN_NAMESPACE_C99
+
+
+45
+ $__LDBL_REDIR_DECL
+ (
+¢´\9atf
+)
+
+46
+ $__LDBL_REDIR_DECL
+ (
+v¢´\9atf
+)
+
+47
+__END_NAMESPACE_C99
+
+
+50 #ifdef
+__USE_ISOC99
+
+
+51
+__BEGIN_NAMESPACE_C99
+
+
+52 #ià!
+def\9aed
+
+__USE_GNU
+ && !def\9aed
+__REDIRECT
+ \
+
+53 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+54
+ $__LDBL_REDIR1_DECL
+ (
+vfsÿnf
+,
+__Ædbl___isoc99_vfsÿnf
+)
+
+55
+ $__LDBL_REDIR1_DECL
+ (
+vsÿnf
+,
+__Ædbl___isoc99_vsÿnf
+)
+
+56
+ $__LDBL_REDIR1_DECL
+ (
+vssÿnf
+,
+__Ædbl___isoc99_vssÿnf
+)
+
+58
+ $__LDBL_REDIR_DECL
+ (
+vfsÿnf
+)
+
+59
+ $__LDBL_REDIR_DECL
+ (
+vssÿnf
+)
+
+60
+ $__LDBL_REDIR_DECL
+ (
+vsÿnf
+)
+
+62
+__END_NAMESPACE_C99
+
+
+65 #ifdeà
+__USE_XOPEN2K8
+
+
+66
+ $__LDBL_REDIR_DECL
+ (
+vd´\9atf
+)
+
+67
+ $__LDBL_REDIR_DECL
+ (
+d´\9atf
+)
+
+70 #ifdeà
+__USE_GNU
+
+
+71
+ $__LDBL_REDIR_DECL
+ (
+va¥r\9atf
+)
+
+72
+ $__LDBL_REDIR_DECL
+ (
+__a¥r\9atf
+)
+
+73
+ $__LDBL_REDIR_DECL
+ (
+a¥r\9atf
+)
+
+74
+ $__LDBL_REDIR_DECL
+ (
+ob¡ack_´\9atf
+)
+
+75
+ $__LDBL_REDIR_DECL
+ (
+ob¡ack_v´\9atf
+)
+
+78 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+79
+ $__LDBL_REDIR_DECL
+ (
+__¥r\9atf_chk
+)
+
+80
+ $__LDBL_REDIR_DECL
+ (
+__v¥r\9atf_chk
+)
+
+81 #ià
+def\9aed
+
+__USE_ISOC99
+ || def\9aed
+__USE_UNIX98
+
+
+82
+ $__LDBL_REDIR_DECL
+ (
+__¢´\9atf_chk
+)
+
+83
+ $__LDBL_REDIR_DECL
+ (
+__v¢´\9atf_chk
+)
+
+85 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+86
+ $__LDBL_REDIR_DECL
+ (
+__år\9atf_chk
+)
+
+87
+ $__LDBL_REDIR_DECL
+ (
+__´\9atf_chk
+)
+
+88
+ $__LDBL_REDIR_DECL
+ (
+__vår\9atf_chk
+)
+
+89
+ $__LDBL_REDIR_DECL
+ (
+__v´\9atf_chk
+)
+
+90 #ifdeà
+__USE_XOPEN2K8
+
+
+91
+ $__LDBL_REDIR_DECL
+ (
+__d´\9atf_chk
+)
+
+92
+ $__LDBL_REDIR_DECL
+ (
+__vd´\9atf_chk
+)
+
+94 #ifdeà
+__USE_GNU
+
+
+95
+ $__LDBL_REDIR_DECL
+ (
+__a¥r\9atf_chk
+)
+
+96
+ $__LDBL_REDIR_DECL
+ (
+__va¥r\9atf_chk
+)
+
+97
+ $__LDBL_REDIR_DECL
+ (
+__ob¡ack_´\9atf_chk
+)
+
+98
+ $__LDBL_REDIR_DECL
+ (
+__ob¡ack_v´\9atf_chk
+)
+
+ @/usr/include/bits/stdio.h
+
+19 #iâdeà
+_STDIO_H
+
+
+23 #iâdeà
+__ex\8bº_\9al\9ae
+
+
+24 \ 1
+ #__STDIO_INLINE
+
+\9al\9ae
+
+
+ )
+
+26 \ 1
+ #__STDIO_INLINE
+
+__ex\8bº_\9al\9ae
+
+
+ )
+
+30 #ifdeà
+__USE_EXTERN_INLINES
+
+
+33 #ià!(
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+)
+
+35
+__STDIO_INLINE
+ \12
+
+36
+ $v´\9atf
+ (cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__¬g
+)
+
+38 \15
+ `vår\9atf
+ (
+¡dout
+,
+__fmt
+,
+__¬g
+);
+
+39
+ }
+}
+
+43
+__STDIO_INLINE
+ \12
+
+44
+ $g\91ch¬
+ (\1e)
+
+46 \15
+ `_IO_g\91c
+ (
+¡d\9a
+);
+
+47
+ }
+}
+
+50 #ifdeà
+__USE_MISC
+
+
+52
+__STDIO_INLINE
+ \12
+
+53
+ $fg\91c_uÆocked
+ (
+FILE
+ *
+__å
+)
+
+55 \15
+ `_IO_g\91c_uÆocked
+ (
+__å
+);
+
+56
+ }
+}
+
+60 #ifdeà
+__USE_POSIX
+
+
+62
+__STDIO_INLINE
+ \12
+
+63
+ $g\91c_uÆocked
+ (
+FILE
+ *
+__å
+)
+
+65 \15
+ `_IO_g\91c_uÆocked
+ (
+__å
+);
+
+66
+ }
+}
+
+69
+__STDIO_INLINE
+ \12
+
+70
+ $g\91ch¬_uÆocked
+ (\1e)
+
+72 \15
+ `_IO_g\91c_uÆocked
+ (
+¡d\9a
+);
+
+73
+ }
+}
+
+78
+__STDIO_INLINE
+ \12
+
+79
+ $putch¬
+ (\12
+__c
+)
+
+81 \15
+ `_IO_putc
+ (
+__c
+,
+¡dout
+);
+
+82
+ }
+}
+
+85 #ifdeà
+__USE_MISC
+
+
+87
+__STDIO_INLINE
+ \12
+
+88
+ $åutc_uÆocked
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+)
+
+90 \15
+ `_IO_putc_uÆocked
+ (
+__c
+,
+__¡»am
+);
+
+91
+ }
+}
+
+95 #ifdeà
+__USE_POSIX
+
+
+97
+__STDIO_INLINE
+ \12
+
+98
+ $putc_uÆocked
+ (\12
+__c
+,
+FILE
+ *
+__¡»am
+)
+
+100 \15
+ `_IO_putc_uÆocked
+ (
+__c
+,
+__¡»am
+);
+
+101
+ }
+}
+
+104
+__STDIO_INLINE
+ \12
+
+105
+ $putch¬_uÆocked
+ (\12
+__c
+)
+
+107 \15
+ `_IO_putc_uÆocked
+ (
+__c
+,
+¡dout
+);
+
+108
+ }
+}
+
+112 #ifdef
+__USE_GNU
+
+
+114
+__STDIO_INLINE
+
+_IO_ssize_t
+
+
+115
+ $g\91l\9ae
+ (\ 5**
+__l\9a\95\8c
+,
+size_t
+ *
+__n
+,
+FILE
+ *
+__¡»am
+)
+
+117 \15
+ `__g\91d\96im
+ (
+__l\9a\95\8c
+,
+__n
+, '\n',
+__¡»am
+);
+
+118
+ }
+}
+
+122 #ifdeà
+__USE_MISC
+
+
+124
+__STDIO_INLINE
+ \12
+
+125
+__NTH
+ (
+ $ãof_uÆocked
+ (
+FILE
+ *
+__¡»am
+))
+
+127 \15
+ `_IO_ãof_uÆocked
+ (
+__¡»am
+);
+
+128
+ }
+}
+
+131
+__STDIO_INLINE
+ \12
+
+132
+__NTH
+ (
+ $ã¼Ü_uÆocked
+ (
+FILE
+ *
+__¡»am
+))
+
+134 \15
+ `_IO_ã¼Ü_uÆocked
+ (
+__¡»am
+);
+
+135
+ }
+}
+
+141 #ià
+def\9aed
+
+__USE_MISC
+ && def\9aed
+__GNUC__
+ && def\9aed
+__OPTIMIZE__
+ \
+
+142 && !
+def\9aed
+
+ g__ýlu¥lus
+
+
+144 \ 1
+ #ä\97d_uÆocked
+(
+±r
+,
+size
+,
+n
+,
+¡»am
+) \
+
+145 (
+ `__ex\8bnsiÚ__
+ ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+size
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+146 && (
+size_t
+è(
+size
+è* (size_tè(
+n
+) <= 8 \
+
+147 && (
+size_t
+è(
+size
+) != 0) \
+
+148 ? ({ \ 5*
+__±r
+ = (\ 5*è(
+±r
+); \
+
+149
+FILE
+ *
+__¡»am
+ = (
+¡»am
+); \
+
+150
+size_t
+
+__út
+; \
+
+151 \ f
+__út
+ = (
+size_t
+è(
+size
+è* (size_tè(
+n
+); \
+
+152
+__út
+ > 0; --__cnt) \
+
+154 \12
+__c
+ =
+ `_IO_g\91c_uÆocked
+ (
+__¡»am
+); \
+
+155 ià(
+__c
+ =ð
+EOF
+) \
+
+157 *
+__±r
+++ =
+__c
+; \
+
+159 ((
+size_t
+è(
+size
+è* (size_tè(
+n
+è-
+__út
+) \
+
+160 / (
+size_t
+è(
+size
+); }) \
+
+161 : (((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+size
+è&& (
+size_t
+) (size) == 0) \
+
+162 || (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+è&& (
+size_t
+) (n) == 0)) \
+
+164 ? ((\1eè(
+±r
+), (\1eè(
+¡»am
+), (\1eè(
+size
+), \
+
+165 (\1eè(
+n
+), (
+size_t
+) 0) \
+
+166 :
+ `ä\97d_uÆocked
+ (
+±r
+,
+size
+,
+n
+,
+¡»am
+))))
+
+ )
+
+168 \ 1
+ #fwr\99e_uÆocked
+(
+±r
+,
+size
+,
+n
+,
+¡»am
+) \
+
+169 (
+ `__ex\8bnsiÚ__
+ ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+size
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+170 && (
+size_t
+è(
+size
+è* (size_tè(
+n
+) <= 8 \
+
+171 && (
+size_t
+è(
+size
+) != 0) \
+
+172 ? ({ cڡ \ 5*
+__±r
+ = (cÚ¡ \ 5*è(
+±r
+); \
+
+173
+FILE
+ *
+__¡»am
+ = (
+¡»am
+); \
+
+174
+size_t
+
+__út
+; \
+
+175 \ f
+__út
+ = (
+size_t
+è(
+size
+è* (size_tè(
+n
+); \
+
+176
+__út
+ > 0; --__cnt) \
+
+177 ià(
+ `_IO_putc_uÆocked
+ (*
+__±r
+++,
+__¡»am
+è=ð
+EOF
+) \
+
+179 ((
+size_t
+è(
+size
+è* (size_tè(
+n
+è-
+__út
+) \
+
+180 / (
+size_t
+è(
+size
+); }) \
+
+181 : (((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+size
+è&& (
+size_t
+) (size) == 0) \
+
+182 || (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+è&& (
+size_t
+) (n) == 0)) \
+
+184 ? ((\1eè(
+±r
+), (\1eè(
+¡»am
+), (\1eè(
+size
+), \
+
+185 (\1eè(
+n
+), (
+size_t
+) 0) \
+
+186 :
+ `fwr\99e_uÆocked
+ (
+±r
+,
+size
+,
+n
+,
+¡»am
+))))
+
+ )
+
+190 #undeà
+__STDIO_INLINE
+
+
+ @/usr/include/bits/stdio2.h
+
+19 #iâdeà
+_STDIO_H
+
+
+23 \r\12
+ $__¥r\9atf_chk
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__æag
+,
+size_t
+
+__¦\92
+,
+
+24 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...è
+__THROW
+;
+
+25 \r\12
+ $__v¥r\9atf_chk
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__æag
+,
+size_t
+
+__¦\92
+,
+
+26 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+27
+_G_va_li¡
+
+__
+è
+__THROW
+;
+
+29 #ifdeà
+__va_¬g_·ck
+
+
+30
+__fÜtify_funùiÚ
+ \12
+
+31
+ `__NTH
+ (
+ $¥r\9atf
+ (\ 5*
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__fmt
+, ...))
+
+33 \15
+ `__bu\9et\9a___¥r\9atf_chk
+ (
+__s
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+34
+ `__bos
+ (
+__s
+),
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+35
+ }
+}
+
+36 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+37 \ 1
+ #¥r\9atf
+(
+¡r
+, ...) \
+
+38
+ `__bu\9et\9a___¥r\9atf_chk
+ (
+¡r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+ `__bos
+ (str), \
+
+39
+__VA_ARGS__
+)
+
+ )
+
+42
+__fÜtify_funùiÚ
+ \12
+
+43
+__NTH
+ (
+ $v¥r\9atf
+ (\ 5*
+__»¡riù
+
+__s
+, cÚ¡ \ 5*__»¡riù
+__fmt
+,
+
+44
+_G_va_li¡
+
+__
+))
+
+46 \15
+ `__bu\9et\9a___v¥r\9atf_chk
+ (
+__s
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+47
+ `__bos
+ (
+__s
+),
+__fmt
+,
+__
+);
+
+48
+ }
+}
+
+50 #ià
+def\9aed
+
+__USE_ISOC99
+ || def\9aed
+__USE_UNIX98
+
+
+52 \r\12
+ $__¢´\9atf_chk
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+, \12
+__æag
+,
+
+53
+size_t
+
+__¦\92
+, cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+54 ...è
+__THROW
+;
+
+55 \r\12
+ $__v¢´\9atf_chk
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+, \12
+__æag
+,
+
+56
+size_t
+
+__¦\92
+, cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+57
+_G_va_li¡
+
+__
+è
+__THROW
+;
+
+59 #ifdeà
+__va_¬g_·ck
+
+
+60
+__fÜtify_funùiÚ
+ \12
+
+61
+ `__NTH
+ (
+ $¢´\9atf
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+62 cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...))
+
+64 \15
+ `__bu\9et\9a___¢´\9atf_chk
+ (
+__s
+,
+__n
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+65
+ `__bos
+ (
+__s
+),
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+66
+ }
+}
+
+67 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+68 \ 1
+ #¢´\9atf
+(
+¡r
+,
+Ën
+, ...) \
+
+69
+ `__bu\9et\9a___¢´\9atf_chk
+ (
+¡r
+,
+Ën
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+ `__bos
+ (str), \
+
+70
+__VA_ARGS__
+)
+
+ )
+
+73
+__fÜtify_funùiÚ
+ \12
+
+74
+__NTH
+ (
+ $v¢´\9atf
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+75 cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__
+))
+
+77 \15
+ `__bu\9et\9a___v¢´\9atf_chk
+ (
+__s
+,
+__n
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+78
+ `__bos
+ (
+__s
+),
+__fmt
+,
+__
+);
+
+79
+ }
+}
+
+83 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+85 \r\12
+__år\9atf_chk
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, \12
+__æag
+,
+
+86 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...);
+
+87 \r\12
+__´\9atf_chk
+ (\12
+__æag
+, cڡ \ 5*
+__»¡riù
+
+__fÜm©
+, ...);
+
+88 \r\12
+__vår\9atf_chk
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, \12
+__æag
+,
+
+89 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+_G_va_li¡
+
+__
+);
+
+90 \r\12
+__v´\9atf_chk
+ (\12
+__æag
+, cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+91
+_G_va_li¡
+
+__
+);
+
+93 #ifdeà
+__va_¬g_·ck
+
+
+94
+__fÜtify_funùiÚ
+ \12
+
+95
+ $år\9atf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+, cÚ¡ \ 5*__»¡riù
+__fmt
+, ...)
+
+97 \15
+ `__år\9atf_chk
+ (
+__¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+98
+ `__va_¬g_·ck
+ ());
+
+99
+ }
+}
+
+101
+__fÜtify_funùiÚ
+ \12
+
+102
+ $´\9atf
+ (cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+104 \15
+ `__´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+105
+ }
+}
+
+106 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+107 \ 1
+ #´\9atf
+(...) \
+
+108
+ `__´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+109 \ 1
+ #år\9atf
+(
+¡»am
+, ...) \
+
+110
+ `__år\9atf_chk
+ (
+¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+113
+__fÜtify_funùiÚ
+ \12
+
+114
+ $v´\9atf
+ (cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__
+)
+
+116 #ifdeà
+__USE_EXTERN_INLINES
+
+
+117 \15
+ `__vår\9atf_chk
+ (
+¡dout
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+119 \15
+ `__v´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+121
+ }
+}
+
+123
+__fÜtify_funùiÚ
+ \12
+
+124
+ $vår\9atf
+ (
+FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+125 cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__
+)
+
+127 \15
+ `__vår\9atf_chk
+ (
+__¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+128
+ }
+}
+
+130 #ifdeà
+__USE_XOPEN2K8
+
+
+131 \r\12
+ $__d´\9atf_chk
+ (\12
+__fd
+, \12
+__æag
+, cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+
+132 ...è
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 4)));
+
+133 \r\12
+ $__vd´\9atf_chk
+ (\12
+__fd
+, \12
+__æag
+,
+
+134 cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__¬g
+)
+
+135
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 0)));
+
+137 #ifdeà
+__va_¬g_·ck
+
+
+138
+__fÜtify_funùiÚ
+ \12
+
+139
+ $d´\9atf
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+141 \15
+ `__d´\9atf_chk
+ (
+__fd
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+142
+ `__va_¬g_·ck
+ ());
+
+143
+ }
+}
+
+144 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+145 \ 1
+ #d´\9atf
+(
+fd
+, ...) \
+
+146
+ `__d´\9atf_chk
+ (
+fd
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+149
+__fÜtify_funùiÚ
+ \12
+
+150
+ $vd´\9atf
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__
+)
+
+152 \15
+ `__vd´\9atf_chk
+ (
+__fd
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+153
+ }
+}
+
+156 #ifdeà
+__USE_GNU
+
+
+158 \r\12
+ $__a¥r\9atf_chk
+ (\ 5**
+__»¡riù
+
+__±r
+, \12
+__æag
+,
+
+159 cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...)
+
+160
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__´\9atf__
+, 3, 4))è
+__wur
+;
+
+161 \r\12
+ $__va¥r\9atf_chk
+ (\ 5**
+__»¡riù
+
+__±r
+, \12
+__æag
+,
+
+162 cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__¬g
+)
+
+163
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+ $__fÜm©__
+ (
+__´\9atf__
+, 3, 0))è
+__wur
+;
+
+164 \r\12
+ $__ob¡ack_´\9atf_chk
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+165 \12
+__æag
+, cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+167
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 4)));
+
+168 \r\12
+ $__ob¡ack_v´\9atf_chk
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+169 \12
+__æag
+,
+
+170 cڡ \ 5*
+__»¡riù
+
+__fÜm©
+,
+
+171
+_G_va_li¡
+
+__¬gs
+)
+
+172
+__THROW
+
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__´\9atf__
+, 3, 0)));
+
+174 #ifdeà
+__va_¬g_·ck
+
+
+175
+__fÜtify_funùiÚ
+ \12
+
+176
+ `__NTH
+ (
+ $a¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+, cÚ¡ \ 5*__»¡riù
+__fmt
+, ...))
+
+178 \15
+ `__a¥r\9atf_chk
+ (
+__±r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+179
+ `__va_¬g_·ck
+ ());
+
+180
+ }
+}
+
+182
+__fÜtify_funùiÚ
+ \12
+
+183
+__NTH
+ (
+ $__a¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+, cÚ¡ \ 5*__»¡riù
+__fmt
+,
+
+186 \15
+ `__a¥r\9atf_chk
+ (
+__±r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+187
+ `__va_¬g_·ck
+ ());
+
+188
+ }
+}
+
+190
+__fÜtify_funùiÚ
+ \12
+
+191
+__NTH
+ (
+ $ob¡ack_´\9atf
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+192 cڡ \ 5*
+__»¡riù
+
+__fmt
+, ...))
+
+194 \15
+ `__ob¡ack_´\9atf_chk
+ (
+__ob¡ack
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+195
+ `__va_¬g_·ck
+ ());
+
+196
+ }
+}
+
+197 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+198 \ 1
+ #a¥r\9atf
+(
+±r
+, ...) \
+
+199
+ `__a¥r\9atf_chk
+ (
+±r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+200 \ 1
+ #__a¥r\9atf
+(
+±r
+, ...) \
+
+201
+ `__a¥r\9atf_chk
+ (
+±r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+202 \ 1
+ #ob¡ack_´\9atf
+(
+ob¡ack
+, ...) \
+
+203
+ `__ob¡ack_´\9atf_chk
+ (
+ob¡ack
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+206
+__fÜtify_funùiÚ
+ \12
+
+207
+__NTH
+ (
+ $va¥r\9atf
+ (\ 5**
+__»¡riù
+
+__±r
+, cÚ¡ \ 5*__»¡riù
+__fmt
+,
+
+208
+_G_va_li¡
+
+__
+))
+
+210 \15
+ `__va¥r\9atf_chk
+ (
+__±r
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+211
+ }
+}
+
+213
+__fÜtify_funùiÚ
+ \12
+
+214
+__NTH
+ (
+ $ob¡ack_v´\9atf
+ (\19
+ob¡ack
+ *
+__»¡riù
+
+__ob¡ack
+,
+
+215 cڡ \ 5*
+__»¡riù
+
+__fmt
+,
+_G_va_li¡
+
+__
+))
+
+217 \15
+ `__ob¡ack_v´\9atf_chk
+ (
+__ob¡ack
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+218
+__
+);
+
+219
+ }
+}
+
+225 #ià!
+def\9aed
+
+__USE_ISOC11
+ \
+
+226 || (
+def\9aed
+
+ g__ýlu¥lus
+ && __ýlu¥lu <ð201103L && !def\9aed
+__USE_GNU
+)
+
+227 \r\ 5*
+ $__g\91s_chk
+ (\ 5*
+__¡r
+,
+size_t
+è
+__wur
+;
+
+228 \r\ 5*
+ `__REDIRECT
+ (
+__g\91s_w¬n
+, (\ 5*
+__¡r
+),
+g\91s
+)
+
+229
+__wur
+
+ `__w‚\89r
+ ("please use fgets or getline instead, gets can't "
+
+232
+__fÜtify_funùiÚ
+
+__wur
+ \ 5*
+
+233
+ $g\91s
+ (\ 5*
+__¡r
+)
+
+235 ià(
+ `__bos
+ (
+__¡r
+è!ð(
+size_t
+) -1)
+
+236 \15
+ `__g\91s_chk
+ (
+__¡r
+,
+ `__bos
+ (__str));
+
+237 \15
+ `__g\91s_w¬n
+ (
+__¡r
+);
+
+238
+ }
+}
+
+241 \r\ 5*
+ $__fg\91s_chk
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+242
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+243 \r\ 5*
+ `__REDIRECT
+ (
+__fg\91s_®\9fs
+,
+
+244 (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+
+245
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+fg\91s
+è
+__wur
+;
+
+246 \r\ 5*
+ `__REDIRECT
+ (
+__fg\91s_chk_w¬n
+,
+
+247 (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+248
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+__fg\91s_chk
+)
+
+249
+__wur
+
+ `__w‚\89r
+ ("fgets called with bigger size\81han\86ength "
+
+252
+__fÜtify_funùiÚ
+
+__wur
+ \ 5*
+
+253
+ $fg\91s
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+FILE
+ *__»¡riù
+__¡»am
+)
+
+255 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+257 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+258 \15
+ `__fg\91s_chk
+ (
+__s
+,
+ `__bos
+ (__s),
+__n
+,
+__¡»am
+);
+
+260 ià((
+size_t
+è
+__n
+ >
+ `__bos
+ (
+__s
+))
+
+261 \15
+ `__fg\91s_chk_w¬n
+ (
+__s
+,
+ `__bos
+ (__s),
+__n
+,
+__¡»am
+);
+
+263 \15
+ `__fg\91s_®\9fs
+ (
+__s
+,
+__n
+,
+__¡»am
+);
+
+264
+ }
+}
+
+266 \r
+size_t
+
+ $__ä\97d_chk
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__±¾\92
+,
+
+267
+size_t
+
+__size
+, size_\88
+__n
+,
+
+268
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+269 \r
+size_t
+
+ `__REDIRECT
+ (
+__ä\97d_®\9fs
+,
+
+270 (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+,
+
+271
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+
+272
+ä\97d
+è
+__wur
+;
+
+273 \r
+size_t
+
+ `__REDIRECT
+ (
+__ä\97d_chk_w¬n
+,
+
+274 (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__±¾\92
+,
+
+275
+size_t
+
+__size
+, size_\88
+__n
+,
+
+276
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+
+277
+__ä\97d_chk
+)
+
+278
+__wur
+
+ `__w‚\89r
+ ("fread called with bigger size *\82memb\81han\86ength "
+
+281
+__fÜtify_funùiÚ
+
+__wur
+
+size_t
+
+
+282
+ $ä\97d
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+, size_\88
+__n
+,
+
+283
+FILE
+ *
+__»¡riù
+
+__¡»am
+)
+
+285 ià(
+ `__bos0
+ (
+__±r
+è!ð(
+size_t
+) -1)
+
+287 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__size
+)
+
+288 || !
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+)
+
+289 || (
+__size
+ |
+__n
+è>ð(((
+size_t
+) 1) << (8 * \17 (size_t) / 2)))
+
+290 \15
+ `__ä\97d_chk
+ (
+__±r
+,
+ `__bos0
+ (__±r),
+__size
+,
+__n
+,
+__¡»am
+);
+
+292 ià(
+__size
+ *
+__n
+ >
+ `__bos0
+ (
+__±r
+))
+
+293 \15
+ `__ä\97d_chk_w¬n
+ (
+__±r
+,
+ `__bos0
+ (__±r),
+__size
+,
+__n
+,
+__¡»am
+);
+
+295 \15
+ `__ä\97d_®\9fs
+ (
+__±r
+,
+__size
+,
+__n
+,
+__¡»am
+);
+
+296
+ }
+}
+
+298 #ifdeà
+__USE_GNU
+
+
+299 \r\ 5*
+ $__fg\91s_uÆocked_chk
+ (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+,
+
+300 \12
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+301 \r\ 5*
+ `__REDIRECT
+ (
+__fg\91s_uÆocked_®\9fs
+,
+
+302 (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+
+303
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+fg\91s_uÆocked
+è
+__wur
+;
+
+304 \r\ 5*
+ `__REDIRECT
+ (
+__fg\91s_uÆocked_chk_w¬n
+,
+
+305 (\ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+306
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+__fg\91s_uÆocked_chk
+)
+
+307
+__wur
+
+ `__w‚\89r
+ ("fgets_unlocked called with bigger size\81han\86ength "
+
+310
+__fÜtify_funùiÚ
+
+__wur
+ \ 5*
+
+311
+ $fg\91s_uÆocked
+ (\ 5*
+__»¡riù
+
+__s
+, \12
+__n
+,
+FILE
+ *__»¡riù
+__¡»am
+)
+
+313 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+315 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+316 \15
+ `__fg\91s_uÆocked_chk
+ (
+__s
+,
+ `__bos
+ (__s),
+__n
+,
+__¡»am
+);
+
+318 ià((
+size_t
+è
+__n
+ >
+ `__bos
+ (
+__s
+))
+
+319 \15
+ `__fg\91s_uÆocked_chk_w¬n
+ (
+__s
+,
+ `__bos
+ (__s),
+__n
+,
+__¡»am
+);
+
+321 \15
+ `__fg\91s_uÆocked_®\9fs
+ (
+__s
+,
+__n
+,
+__¡»am
+);
+
+322
+ }
+}
+
+325 #ifdeà
+__USE_MISC
+
+
+326 #undeà
+ä\97d_uÆocked
+
+
+327 \r
+size_t
+
+ $__ä\97d_uÆocked_chk
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__±¾\92
+,
+
+328
+size_t
+
+__size
+, size_\88
+__n
+,
+
+329
+FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+330 \r
+size_t
+
+ `__REDIRECT
+ (
+__ä\97d_uÆocked_®\9fs
+,
+
+331 (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+,
+
+332
+size_t
+
+__n
+,
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+
+333
+ä\97d_uÆocked
+è
+__wur
+;
+
+334 \r
+size_t
+
+ `__REDIRECT
+ (
+__ä\97d_uÆocked_chk_w¬n
+,
+
+335 (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__±¾\92
+,
+
+336
+size_t
+
+__size
+, size_\88
+__n
+,
+
+337
+FILE
+ *
+__»¡riù
+
+__¡»am
+),
+
+338
+__ä\97d_uÆocked_chk
+)
+
+339
+__wur
+
+ `__w‚\89r
+ ("fread_unlocked called with bigger size *\82memb\81han "
+
+342
+__fÜtify_funùiÚ
+
+__wur
+
+size_t
+
+
+343
+ $ä\97d_uÆocked
+ (\1e*
+__»¡riù
+
+__±r
+,
+size_t
+
+__size
+, size_\88
+__n
+,
+
+344
+FILE
+ *
+__»¡riù
+
+__¡»am
+)
+
+346 ià(
+ `__bos0
+ (
+__±r
+è!ð(
+size_t
+) -1)
+
+348 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__size
+)
+
+349 || !
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+)
+
+350 || (
+__size
+ |
+__n
+è>ð(((
+size_t
+) 1) << (8 * \17 (size_t) / 2)))
+
+351 \15
+ `__ä\97d_uÆocked_chk
+ (
+__±r
+,
+ `__bos0
+ (__±r),
+__size
+,
+__n
+,
+
+352
+__¡»am
+);
+
+354 ià(
+__size
+ *
+__n
+ >
+ `__bos0
+ (
+__±r
+))
+
+355 \15
+ `__ä\97d_uÆocked_chk_w¬n
+ (
+__±r
+,
+ `__bos0
+ (__±r),
+__size
+,
+__n
+,
+
+356
+__¡»am
+);
+
+359 #ifdeà
+__USE_EXTERN_INLINES
+
+
+360 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__size
+)
+
+361 &&
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+)
+
+362 && (
+__size
+ |
+__n
+è< (((
+size_t
+) 1) << (8 * \17 (size_t) / 2))
+
+363 &&
+__size
+ *
+__n
+ <= 8)
+
+365
+size_t
+
+__út
+ =
+__size
+ *
+__n
+;
+
+366 \ 5*
+__ý\8c
+ = (\ 5*è
+__±r
+;
+
+367 ià(
+__út
+ == 0)
+
+370 \ f;
+__út
+ > 0; --__cnt)
+
+372 \12
+__c
+ =
+ `_IO_g\91c_uÆocked
+ (
+__¡»am
+);
+
+373 ià(
+__c
+ =ð
+EOF
+)
+
+375 *
+__ý\8c
+++ =
+__c
+;
+
+377 \15 (
+__ý\8c
+ - (\ 5*è
+__±r
+è/
+__size
+;
+
+380 \15
+ `__ä\97d_uÆocked_®\9fs
+ (
+__±r
+,
+__size
+,
+__n
+,
+__¡»am
+);
+
+381
+ }
+}
+
+ @/usr/include/bits/stdio_lim.h
+
+18 #ià!
+def\9aed
+
+_STDIO_H
+ && !def\9aed
+__Ãed_FOPEN_MAX
+ && !def\9aed
+__Ãed_IOV_MAX
+
+
+22 #ifdeà
+_STDIO_H
+
+
+23 \ 1
+ #L_tm²am
+ 20
+
+ )
+
+24 \ 1
+ #TMP_MAX
+ 238328
+
+ )
+
+25 \ 1
+ #FILENAME_MAX
+ 4096
+
+ )
+
+27 #ifdeà
+__USE_POSIX
+
+
+28 \ 1
+ #L_ù\94mid
+ 9
+
+ )
+
+29 #ià!
+def\9aed
+
+__USE_XOPEN2K
+ || def\9aed
+__USE_GNU
+
+
+30 \ 1
+ #L_cu£rid
+ 9
+
+ )
+
+35 #ià
+def\9aed
+
+__Ãed_FOPEN_MAX
+ || def\9aed
+_STDIO_H
+
+
+36 #undeà
+FOPEN_MAX
+
+
+37 \ 1
+ #FOPEN_MAX
+ 16
+
+ )
+
+40 #ià
+def\9aed
+
+__Ãed_IOV_MAX
+ && !def\9aed
+IOV_MAX
+
+
+41 \ 1
+ #IOV_MAX
+ 1024
+
+ )
+
+ @/usr/include/bits/stdlib-bsearch.h
+
+19
+__ex\8bº_\9al\9ae
+ \1e*
+
+20
+ $b£¬ch
+ (cڡ \1e*
+__key
+, cڡ \1e*
+__ba£
+,
+size_t
+
+__nmemb
+, size_\88
+__size
+,
+
+21
+__com·r_â_t
+
+__com·r
+)
+
+23
+size_t
+
+__l
+,
+__u
+,
+__idx
+;
+
+24 cڡ \1e*
+__p
+;
+
+25 \12
+__com·risÚ
+;
+
+27
+__l
+ = 0;
+
+28
+__u
+ =
+__nmemb
+;
+
+29 \1f
+__l
+ <
+__u
+)
+
+31
+__idx
+ = (
+__l
+ +
+__u
+) / 2;
+
+32
+__p
+ = (\1e*è(((cÚ¡ \ 5*è
+__ba£
+è+ (
+__idx
+ *
+__size
+));
+
+33
+__com·risÚ
+ = (*
+__com·r
+è(
+__key
+,
+__p
+);
+
+34 ià(
+__com·risÚ
+ < 0)
+
+35
+__u
+ =
+__idx
+;
+
+36 \vià(
+__com·risÚ
+ > 0)
+
+37
+__l
+ =
+__idx
+ + 1;
+
+39 \15 (\1e*è
+__p
+;
+
+42 \15
+NULL
+;
+
+43
+ }
+}
+
+ @/usr/include/bits/stdlib-float.h
+
+19 #iâdeà
+_STDLIB_H
+
+
+23 #ifdeà
+__USE_EXTERN_INLINES
+
+
+24
+__BEGIN_NAMESPACE_STD
+
+
+25
+__ex\8bº_\9al\9ae
+ \b
+
+26
+__NTH
+ (
+ $©of
+ (cڡ \ 5*
+__Ō
+))
+
+28 \15
+ `¡¹od
+ (
+__Ō
+, (\ 5**è
+NULL
+);
+
+29
+ }
+}
+
+30
+ g__END_NAMESPACE_STD
+
+
+ @/usr/include/bits/stdlib-ldbl.h
+
+19 #iâdeà
+_STDLIB_H
+
+
+23 #ifdef
+__USE_ISOC99
+
+
+24
+__BEGIN_NAMESPACE_C99
+
+
+25
+ $__LDBL_REDIR1_DECL
+ (
+¡¹Þd
+,
+¡¹od
+)
+
+26
+__END_NAMESPACE_C99
+
+
+29 #ifdeà
+__USE_GNU
+
+
+30
+ $__LDBL_REDIR1_DECL
+ (
+¡¹Þd_l
+,
+¡¹od_l
+)
+
+33 #ifdeà
+__USE_MISC
+
+
+34
+ $__LDBL_REDIR1_DECL
+ (
+qecvt
+,
+ecvt
+)
+
+35
+ $__LDBL_REDIR1_DECL
+ (
+qfcvt
+,
+fcvt
+)
+
+36
+ $__LDBL_REDIR1_DECL
+ (
+qgcvt
+,
+gcvt
+)
+
+37
+ $__LDBL_REDIR1_DECL
+ (
+qecvt_r
+,
+ecvt_r
+)
+
+38
+ $__LDBL_REDIR1_DECL
+ (
+qfcvt_r
+,
+fcvt_r
+)
+
+ @/usr/include/bits/stdlib.h
+
+19 #iâdeà
+_STDLIB_H
+
+
+23 \r\ 5*
+ $__»®·th_chk
+ (cڡ \ 5*
+__»¡riù
+
+__Çme
+,
+
+24 \ 5*
+__»¡riù
+
+__»sÞved
+,
+
+25
+size_t
+
+__»sÞvedËn
+è
+__THROW
+
+__wur
+;
+
+26 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__»®·th_®\9fs
+,
+
+27 (cڡ \ 5*
+__»¡riù
+
+__Çme
+,
+
+28 \ 5*
+__»¡riù
+
+__»sÞved
+),
+»®·th
+è
+__wur
+;
+
+29 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__»®·th_chk_w¬n
+,
+
+30 (cڡ \ 5*
+__»¡riù
+
+__Çme
+,
+
+31 \ 5*
+__»¡riù
+
+__»sÞved
+,
+
+32
+size_t
+
+__»sÞvedËn
+),
+__»®·th_chk
+è
+__wur
+
+
+33
+ `__w‚\89r
+ ("second\87rgument of\84ealpath must be\83ither NULL or\87t "
+
+36
+__fÜtify_funùiÚ
+
+__wur
+ \ 5*
+
+37
+ `__NTH
+ (
+ $»®·th
+ (cڡ \ 5*
+__»¡riù
+
+__Çme
+, \ 5*__»¡riù
+__»sÞved
+))
+
+39 ià(
+ `__bos
+ (
+__»sÞved
+è!ð(
+size_t
+) -1)
+
+41 #ià
+def\9aed
+
+_LIBC_LIMITS_H_
+ && def\9aed
+PATH_MAX
+
+
+42 ià(
+ `__bos
+ (
+__»sÞved
+è<
+PATH_MAX
+)
+
+43 \15
+ `__»®·th_chk_w¬n
+ (
+__Çme
+,
+__»sÞved
+,
+ `__bos
+ (__resolved));
+
+45 \15
+ `__»®·th_chk
+ (
+__Çme
+,
+__»sÞved
+,
+ `__bos
+ (__resolved));
+
+48 \15
+ `__»®·th_®\9fs
+ (
+__Çme
+,
+__»sÞved
+);
+
+49
+ }
+}
+
+52 \r\12
+ $__±¢ame_r_chk
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+,
+
+53
+size_t
+
+__ėl
+è
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+54 \r\12
+ `__REDIRECT_NTH
+ (
+__±¢ame_r_®\9fs
+, (\12
+__fd
+, \ 5*
+__buf
+,
+
+55
+size_t
+
+__buæ\92
+),
+±¢ame_r
+)
+
+56
+ `__nÚnuÎ
+ ((2));
+
+57 \r\12
+ `__REDIRECT_NTH
+ (
+__±¢ame_r_chk_w¬n
+,
+
+58 (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+,
+
+59
+size_t
+
+__ėl
+),
+__±¢ame_r_chk
+)
+
+60
+ `__nÚnuÎ
+ ((2)è
+ `__w‚\89r
+ ("ptsname_r called with buflen bigger\81han "
+
+63
+__fÜtify_funùiÚ
+ \12
+
+64
+ `__NTH
+ (
+ $±¢ame_r
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+))
+
+66 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+68 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__buæ\92
+))
+
+69 \15
+ `__±¢ame_r_chk
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+70 ià(
+__buæ\92
+ >
+ `__bos
+ (
+__buf
+))
+
+71 \15
+ `__±¢ame_r_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+73 \15
+ `__±¢ame_r_®\9fs
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+);
+
+74
+ }
+}
+
+77 \r\12
+ $__wùomb_chk
+ (\ 5*
+__s
+,
+wch¬_t
+
+__wch¬
+,
+size_t
+
+__buæ\92
+)
+
+78
+__THROW
+
+__wur
+;
+
+79 \r\12
+ `__REDIRECT_NTH
+ (
+__wùomb_®\9fs
+, (\ 5*
+__s
+,
+wch¬_t
+
+__wch¬
+),
+
+80
+wùomb
+è
+__wur
+;
+
+82
+__fÜtify_funùiÚ
+
+__wur
+ \12
+
+83
+ `__NTH
+ (
+ $wùomb
+ (\ 5*
+__s
+,
+wch¬_t
+
+__wch¬
+))
+
+88 \ 1
+ #__STDLIB_MB_LEN_MAX
+ 16
+
+ )
+
+89 #ià
+def\9aed
+
+MB_LEN_MAX
+ && MB_LEN_MAX !ð
+__STDLIB_MB_LEN_MAX
+
+
+92 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+è-1 &&
+__STDLIB_MB_LEN_MAX
+ > __bos (__s))
+
+93 \15
+ `__wùomb_chk
+ (
+__s
+,
+__wch¬
+,
+ `__bos
+ (__s));
+
+94 \15
+ `__wùomb_®\9fs
+ (
+__s
+,
+__wch¬
+);
+
+95
+ }
+}
+
+98 \r
+size_t
+
+ $__mb¡owcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+99 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+
+100
+size_t
+
+__Ën
+, size_\88
+__d¡Ën
+è
+__THROW
+;
+
+101 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¡owcs_®\9fs
+,
+
+102 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+103 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+
+104
+size_t
+
+__Ën
+),
+mb¡owcs
+);
+
+105 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¡owcs_chk_w¬n
+,
+
+106 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+107 cڡ \ 5*
+__»¡riù
+
+__¤c
+,
+
+108
+size_t
+
+__Ën
+, size_\88
+__d¡Ën
+),
+__mb¡owcs_chk
+)
+
+109
+ `__w‚\89r
+ ("mbstowcs called with dst buffer smaller\81han\86en "
+
+112
+__fÜtify_funùiÚ
+
+size_t
+
+
+113
+ `__NTH
+ (
+ $mb¡owcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+,
+
+114
+size_t
+
+__Ën
+))
+
+116 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+118 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+119 \15
+ `__mb¡owcs_chk
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+
+120
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+122 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+))
+
+123 \15
+ `__mb¡owcs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+
+124
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+126 \15
+ `__mb¡owcs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+);
+
+127
+ }
+}
+
+130 \r
+size_t
+
+ $__wc¡ombs_chk
+ (\ 5*
+__»¡riù
+
+__d¡
+,
+
+131 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+132
+size_t
+
+__Ën
+, size_\88
+__d¡Ën
+è
+__THROW
+;
+
+133 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¡ombs_®\9fs
+,
+
+134 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+135 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+136
+size_t
+
+__Ën
+),
+wc¡ombs
+);
+
+137 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¡ombs_chk_w¬n
+,
+
+138 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+139 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+140
+size_t
+
+__Ën
+, size_\88
+__d¡Ën
+),
+__wc¡ombs_chk
+)
+
+141
+ `__w‚\89r
+ ("wcstombs called with dst buffer smaller\81han\86en");
+
+143
+__fÜtify_funùiÚ
+
+size_t
+
+
+144
+ `__NTH
+ (
+ $wc¡ombs
+ (\ 5*
+__»¡riù
+
+__d¡
+, cڡ
+wch¬_t
+ *__»¡riù
+__¤c
+,
+
+145
+size_t
+
+__Ën
+))
+
+147 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+149 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+150 \15
+ `__wc¡ombs_chk
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos
+ (__dst));
+
+151 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+))
+
+152 \15
+ `__wc¡ombs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos
+ (__dst));
+
+154 \15
+ `__wc¡ombs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+);
+
+155
+ }
+}
+
+ @/usr/include/bits/string.h
+
+19 #iâdeà
+_STRING_H
+
+
+24 \ 1
+ #_STRING_INLINE_uÇligÃd
+ 1
+
+ )
+
+27 \ 1
+ #_HAVE_STRING_ARCH_mempýy
+ 1
+
+ )
+
+31 #ià!
+def\9aed
+
+__x86_64__
+ && (def\9aed
+__i486__
+ || def\9aed
+__³Áium__
+ \
+
+32 ||
+def\9aed
+
+ g__³Áium´o__
+ || def\9aed
+ g__³Áium4__
+ \
+
+33 ||
+def\9aed
+
+ g__nocÚa__
+ || def\9aed
+ g__©om__
+ \
+
+34 ||
+def\9aed
+
+ g__cÜe2__
+ || def\9aed
+ g__cÜei7__
+ \
+
+35 ||
+def\9aed
+
+ g__§ndybridge__
+ || def\9aed
+ g__hasw\96l__
+ \
+
+36 ||
+def\9aed
+
+ g__bÚÃÎ__
+ || def\9aed
+ g__s\9ev\94mÚt__
+ \
+
+37 ||
+def\9aed
+
+ g__k6__
+ || def\9aed
+ g__geode__
+ \
+
+38 ||
+def\9aed
+
+ g__k8__
+ || def\9aed
+ g__©hlÚ__
+ \
+
+39 ||
+def\9aed
+
+ g__amdçm10__
+ || def\9aed
+ g__bdv\941__
+ \
+
+40 ||
+def\9aed
+
+ g__bdv\942__
+ || def\9aed
+ g__bdv\943__
+ \
+
+41 ||
+def\9aed
+
+ g__bdv\944__
+ || def\9aed
+ g__btv\941__
+ \
+
+42 ||
+def\9aed
+
+ g__btv\942__
+)
+
+46 #ià!
+def\9aed
+
+__NO_STRING_INLINES
+ && def\9aed
+__USE_STRING_INLINES
+ \
+
+47 &&
+def\9aed
+
+ g__GNUC__
+ && __GNUC__ >= 2
+
+49 #iâdeà
+__STRING_INLINE
+
+
+50 #iâdeà
+__ex\8bº_\9al\9ae
+
+
+51 \ 1
+ #__STRING_INLINE
+
+\9al\9ae
+
+
+ )
+
+53 \ 1
+ #__STRING_INLINE
+
+__ex\8bº_\9al\9ae
+
+
+ )
+
+58 \ 1
+ #__STRING_SMALL_GET16
+(
+¤c
+,
+idx
+) \
+
+59 ((((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+ + 1] << 8) \
+
+60 | ((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+])
+
+ )
+
+61 \ 1
+ #__STRING_SMALL_GET32
+(
+¤c
+,
+idx
+) \
+
+62 (((((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+ + 3] << 8 \
+
+63 | ((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+64 | ((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+65 | ((cÚ¡ \1d\ 5*è(
+¤c
+))[
+idx
+])
+
+ )
+
+69 \ 1
+ #_HAVE_STRING_ARCH_memýy
+ 1
+
+ )
+
+70 \ 1
+ #memýy
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+71 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) \
+
+72 ?
+ `__memýy_c
+ ((
+de¡
+), (
+¤c
+), (
+n
+)) \
+
+73 :
+ `__memýy_g
+ ((
+de¡
+), (
+¤c
+), (
+n
+))))
+
+ )
+
+74 \ 1
+ #__memýy_c
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+75 ((
+n
+) == 0 \
+
+76 ? (
+de¡
+) \
+
+77 : (((
+n
+) % 4 == 0) \
+
+78 ?
+ `__memýy_by4
+ (
+de¡
+,
+¤c
+,
+n
+) \
+
+79 : (((
+n
+) % 2 == 0) \
+
+80 ?
+ `__memýy_by2
+ (
+de¡
+,
+¤c
+,
+n
+) \
+
+81 :
+ `__memýy_g
+ (
+de¡
+,
+¤c
+,
+n
+))))
+
+ )
+
+83
+__STRING_INLINE
+ \1e*
+__memýy_by4
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+
+84
+size_t
+
+__n
+);
+
+86
+__STRING_INLINE
+ \1e*
+
+87
+ $__memýy_by4
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+)
+
+89 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+90 \14\1e*
+__tmp
+ =
+__de¡
+;
+
+91
+__asm__
+
+__vÞ©\9ee__
+
+
+99 : "=&r" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+100 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+ / 4)
+
+102 \15
+__de¡
+;
+
+103
+ }
+}
+
+105
+__STRING_INLINE
+ \1e*
+__memýy_by2
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+
+106
+size_t
+
+__n
+);
+
+108
+__STRING_INLINE
+ \1e*
+
+109
+ $__memýy_by2
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+)
+
+111 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+112 \14\1e*
+__tmp
+ =
+__de¡
+;
+
+113
+__asm__
+
+__vÞ©\9ee__
+
+
+126 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+127 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+ / 2)
+
+129 \15
+__de¡
+;
+
+130
+ }
+}
+
+132
+__STRING_INLINE
+ \1e*
+__memýy_g
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+);
+
+134
+__STRING_INLINE
+ \1e*
+
+135
+ $__memýy_g
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+)
+
+137 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+138 \14\1e*
+__tmp
+ =
+__de¡
+;
+
+139
+__asm__
+
+__vÞ©\9ee__
+
+
+150 : "=&c" (
+__d0
+), "=&D" (
+__d1
+), "=&S" (
+__d2
+),
+
+151 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+152 : "0" (
+__n
+), "1" (
+__tmp
+), "2" (
+__¤c
+),
+
+153 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__¤c
+)
+
+155 \15
+__de¡
+;
+
+156
+ }
+}
+
+158 \ 1
+ #_HAVE_STRING_ARCH_memmove
+ 1
+
+ )
+
+159 #iâdeà
+_FORCE_INLINES
+
+
+162 \ 1
+ #memmove
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__memmove_g
+ (de¡, src,\82)
+
+ )
+
+164
+__STRING_INLINE
+ \1e*
+ $__memmove_g
+ (\1e*, cڡ \1e*,
+size_t
+)
+
+165
+ `__asm__
+ ("memmove");
+
+167
+__STRING_INLINE
+ \1e*
+
+168
+ $__memmove_g
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__n
+)
+
+170 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+171 \14\1e*
+__tmp
+ =
+__de¡
+;
+
+172 ià(
+__de¡
+ <
+__¤c
+)
+
+173
+__asm__
+
+__vÞ©\9ee__
+
+
+176 : "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+),
+
+177 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+178 : "0" (
+__n
+), "1" (
+__¤c
+), "2" (
+__tmp
+),
+
+179 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__¤c
+));
+
+181
+__asm__
+
+__vÞ©\9ee__
+
+
+187 : "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+),
+
+188 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__de¡
+)
+
+189 : "0" (
+__n
+), "1" (__À+ (cÚ¡ \ 5*è
+__¤c
+),
+
+190 "2" (
+__n
+ + (\ 5*è
+__tmp
+),
+
+191 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__¤c
+));
+
+192 \15
+__de¡
+;
+
+193
+ }
+}
+
+197 \ 1
+ #_HAVE_STRING_ARCH_memcmp
+ 1
+
+ )
+
+198 #iâdeà
+_FORCE_INLINES
+
+
+199 #iâdeà
+__PIC__
+
+
+201
+__STRING_INLINE
+ \12
+
+202
+ $memcmp
+ (cڡ \1e*
+__s1
+, cڡ \1e*
+__s2
+,
+size_t
+
+__n
+)
+
+204 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+205 \14\12
+__»s
+;
+
+206
+__asm__
+
+__vÞ©\9ee__
+
+
+214 : "=&a" (
+__»s
+), "=&S" (
+__d0
+), "=&D" (
+__d1
+), "=&c" (
+__d2
+)
+
+215 : "0" (0), "1" (
+__s1
+), "2" (
+__s2
+), "3" (
+__n
+),
+
+216 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s1
+),
+
+217 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s2
+)
+
+219 \15
+__»s
+;
+
+220
+ }
+}
+
+225 \ 1
+ #_HAVE_STRING_ARCH_mem£t
+ 1
+
+ )
+
+226 \ 1
+ #_USE_STRING_ARCH_mem£t
+ 1
+
+ )
+
+227 \ 1
+ #mem£t
+(
+s
+,
+c
+,
+n
+) \
+
+228 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) && (n) <= 16 \
+
+229 ? ((
+n
+) == 1 \
+
+230 ?
+ `__mem£t_c1
+ ((
+s
+), (
+c
+)) \
+
+231 :
+ `__mem£t_gc
+ ((
+s
+), (
+c
+), (
+n
+))) \
+
+232 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+233 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) \
+
+234 ?
+ `__mem£t_cú
+ ((
+s
+), (
+c
+), (
+n
+)) \
+
+235 :
+ `mem£t
+ ((
+s
+), (
+c
+), (
+n
+))) \
+
+236 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) \
+
+237 ?
+ `__mem£t_gú
+ ((
+s
+), (
+c
+), (
+n
+)) \
+
+238 :
+ `mem£t
+ ((
+s
+), (
+c
+), (
+n
+))))))
+
+ )
+
+240 \ 1
+ #__mem£t_c1
+(
+s
+,
+c
+è({ \1e*
+__s
+ = (s); \
+
+241 *((\1d\ 5*è
+__s
+èð(\1d\ 5è(
+c
+); \
+
+242
+__s
+; })
+
+ )
+
+244 \ 1
+ #__mem£t_gc
+(
+s
+,
+c
+,
+n
+) \
+
+245 ({ \1e*
+__s
+ = (
+s
+); \
+
+247 \1d\12
+__ui
+; \
+
+248 \1d\16\12
+__usi
+; \
+
+249 \1d\ 5
+__uc
+; \
+
+250 } *
+__u
+ =
+__s
+; \
+
+251 \1d\12
+__c
+ = ((\1d\12è((\1d\ 5è(
+c
+))) * 0x01010101; \
+
+257 ià((
+n
+) == 3 || (n) >= 5) \
+
+258
+__asm__
+
+ `__vÞ©\9ee__
+ ("" : "ô" (
+__c
+) : "0" (__c)); \
+
+261 \1a
+n
+) \
+
+264
+__u
+->
+__ui
+ =
+__c
+; \
+
+265
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+267
+__u
+->
+__ui
+ =
+__c
+; \
+
+268
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+270
+__u
+->
+__ui
+ =
+__c
+; \
+
+271
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+273
+__u
+->
+__usi
+ = (\1d\16\12è
+__c
+; \
+
+274
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+275
+__u
+->
+__uc
+ = (\1d\ 5è
+__c
+; \
+
+279
+__u
+->
+__ui
+ =
+__c
+; \
+
+280
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+282
+__u
+->
+__ui
+ =
+__c
+; \
+
+283
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+285
+__u
+->
+__ui
+ =
+__c
+; \
+
+286
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+288
+__u
+->
+__usi
+ = (\1d\16\12è
+__c
+; \
+
+292
+__u
+->
+__ui
+ =
+__c
+; \
+
+293
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+295
+__u
+->
+__ui
+ =
+__c
+; \
+
+296
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+298
+__u
+->
+__ui
+ =
+__c
+; \
+
+299
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+301
+__u
+->
+__uc
+ = (\1d\ 5è
+__c
+; \
+
+305
+__u
+->
+__ui
+ =
+__c
+; \
+
+306
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+308
+__u
+->
+__ui
+ =
+__c
+; \
+
+309
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+311
+__u
+->
+__ui
+ =
+__c
+; \
+
+312
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+314
+__u
+->
+__ui
+ =
+__c
+; \
+
+319
+__s
+; })
+
+ )
+
+321 \ 1
+ #__mem£t_cú
+(
+s
+,
+c
+,
+n
+) \
+
+322 (((
+n
+) % 4 == 0) \
+
+323 ?
+ `__mem£t_cú_by4
+ (
+s
+, ((\1d\12è((\1d\ 5è(
+c
+))) * 0x01010101,\
+
+324
+n
+) \
+
+325 : (((
+n
+) % 2 == 0) \
+
+326 ?
+ `__mem£t_cú_by2
+ (
+s
+, \
+
+327 ((\1d\12è((\1d\ 5è(
+c
+))) * 0x01010101,\
+
+328
+n
+) \
+
+329 :
+ `mem£t
+ (
+s
+,
+c
+,
+n
+)))
+
+ )
+
+331
+__STRING_INLINE
+ \1e*
+__mem£t_cú_by4
+ (\1e*
+__s
+, \1d\12
+__c
+,
+
+332
+size_t
+
+__n
+);
+
+334
+__STRING_INLINE
+ \1e*
+
+335
+ $__mem£t_cú_by4
+ (\1e*
+__s
+, \1d\12
+__c
+,
+size_t
+
+__n
+)
+
+337 \14\1e*
+__tmp
+ =
+__s
+;
+
+338 \14\1d\13\12
+__d0
+;
+
+339 #ifdeà
+__i686__
+
+
+340
+__asm__
+
+__vÞ©\9ee__
+
+
+343 : "=&a" (
+__c
+), "=&D" (
+__tmp
+), "=&c" (
+__d0
+),
+
+344 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+345 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+348
+__asm__
+
+__vÞ©\9ee__
+
+
+354 : "=&r" (
+__c
+), "=&r" (
+__tmp
+), "=&r" (
+__d0
+),
+
+355 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+356 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+359 \15
+__s
+;
+
+360
+ }
+}
+
+362
+__STRING_INLINE
+ \1e*
+__mem£t_cú_by2
+ (\1e*
+__s
+, \1d\12
+__c
+,
+
+363
+size_t
+
+__n
+);
+
+365
+__STRING_INLINE
+ \1e*
+
+366
+ $__mem£t_cú_by2
+ (\1e*
+__s
+, \1d\12
+__c
+,
+size_t
+
+__n
+)
+
+368 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+369 \14\1e*
+__tmp
+ =
+__s
+;
+
+370 #ifdeà
+__i686__
+
+
+371
+__asm__
+
+__vÞ©\9ee__
+
+
+375 : "=&a" (
+__d0
+), "=&D" (
+__tmp
+), "=&c" (
+__d1
+),
+
+376 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+377 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+380
+__asm__
+
+__vÞ©\9ee__
+
+
+386 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__d1
+),
+
+387 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+388 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+391 \15
+__s
+;
+
+392
+ }
+}
+
+394 \ 1
+ #__mem£t_gú
+(
+s
+,
+c
+,
+n
+) \
+
+395 (((
+n
+) % 4 == 0) \
+
+396 ?
+ `__mem£t_gú_by4
+ (
+s
+,
+c
+,
+n
+) \
+
+397 : (((
+n
+) % 2 == 0) \
+
+398 ?
+ `__mem£t_gú_by2
+ (
+s
+,
+c
+,
+n
+) \
+
+399 :
+ `mem£t
+ (
+s
+,
+c
+,
+n
+)))
+
+ )
+
+401
+__STRING_INLINE
+ \1e*
+__mem£t_gú_by4
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+);
+
+403
+__STRING_INLINE
+ \1e*
+
+404
+ $__mem£t_gú_by4
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+406 \14\1e*
+__tmp
+ =
+__s
+;
+
+407 \14\1d\13\12
+__d0
+;
+
+408
+__asm__
+
+__vÞ©\9ee__
+
+
+418 : "=&q" (
+__c
+), "=&r" (
+__tmp
+), "=&r" (
+__d0
+),
+
+419 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+420 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+422 \15
+__s
+;
+
+423
+ }
+}
+
+425
+__STRING_INLINE
+ \1e*
+__mem£t_gú_by2
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+);
+
+427
+__STRING_INLINE
+ \1e*
+
+428
+ $__mem£t_gú_by2
+ (\1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+430 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+431 \14\1e*
+__tmp
+ =
+__s
+;
+
+432
+__asm__
+
+__vÞ©\9ee__
+
+
+443 : "=&q" (
+__d0
+), "=&r" (
+__tmp
+), "=&r" (
+__d1
+),
+
+444 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+445 : "0" ((\1d\12è
+__c
+), "1" (
+__tmp
+), "2" (
+__n
+ / 4)
+
+447 \15
+__s
+;
+
+448
+ }
+}
+
+452 \ 1
+ #_HAVE_STRING_ARCH_memchr
+ 1
+
+ )
+
+453 #iâdeà
+_FORCE_INLINES
+
+
+454
+__STRING_INLINE
+ \1e*
+
+455
+ $memchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+457 \14\1d\13\12
+__d0
+;
+
+458 #ifdeà
+__i686__
+
+
+459 \14\1d\13\12
+__d1
+;
+
+461 \14\1d\ 5*
+__»s
+;
+
+462 ià(
+__n
+ == 0)
+
+463 \15
+NULL
+;
+
+464 #ifdeà
+__i686__
+
+
+465
+__asm__
+
+__vÞ©\9ee__
+
+
+469 : "=D" (
+__»s
+), "=&c" (
+__d0
+), "=&r" (
+__d1
+)
+
+470 : "a" (
+__c
+), "0" (
+__s
+), "1" (
+__n
+), "2" (1),
+
+471 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+474
+__asm__
+
+__vÞ©\9ee__
+
+
+480 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+481 : "a" (
+__c
+), "0" (
+__s
+), "1" (
+__n
+),
+
+482 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+485 \15
+__»s
+ - 1;
+
+486
+ }
+}
+
+489 \ 1
+ #_HAVE_STRING_ARCH_memrchr
+ 1
+
+ )
+
+490 #iâdeà
+_FORCE_INLINES
+
+
+491
+__STRING_INLINE
+ \1e*
+__memrchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+);
+
+493
+__STRING_INLINE
+ \1e*
+
+494
+ $__memrchr
+ (cڡ \1e*
+__s
+, \12
+__c
+,
+size_t
+
+__n
+)
+
+496 \14\1d\13\12
+__d0
+;
+
+497 #ifdeà
+__i686__
+
+
+498 \14\1d\13\12
+__d1
+;
+
+500 \14\1e*
+__»s
+;
+
+501 ià(
+__n
+ == 0)
+
+502 \15
+NULL
+;
+
+503 #ifdeà
+__i686__
+
+
+504
+__asm__
+
+__vÞ©\9ee__
+
+
+510 : "=D" (
+__»s
+), "=&c" (
+__d0
+), "=&r" (
+__d1
+)
+
+511 : "a" (
+__c
+), "0" (
+__s
+ +
+__n
+ - 1), "1" (__n), "2" (-1),
+
+512 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+515
+__asm__
+
+__vÞ©\9ee__
+
+
+522 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+523 : "a" (
+__c
+), "0" (
+__s
+ +
+__n
+ - 1), "1" (__n),
+
+524 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s
+)
+
+527 \15
+__»s
+;
+
+528
+ }
+}
+
+529 #ifdeà
+__USE_GNU
+
+
+530 \ 1
+ #memrchr
+(
+s
+,
+c
+,
+n
+è
+ `__memrchr
+ ((s), (c), (n))
+
+ )
+
+535 \ 1
+ #_HAVE_STRING_ARCH_¿wmemchr
+ 1
+
+ )
+
+536
+__STRING_INLINE
+ \1e*
+__¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+);
+
+538 #iâdeà
+_FORCE_INLINES
+
+
+539
+__STRING_INLINE
+ \1e*
+
+540
+ $__¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+)
+
+542 \14\1d\13\12
+__d0
+;
+
+543 \14\1d\ 5*
+__»s
+;
+
+544
+__asm__
+
+__vÞ©\9ee__
+
+
+547 : "=D" (
+__»s
+), "=&c" (
+__d0
+)
+
+548 : "a" (
+__c
+), "0" (
+__s
+), "1" (0xffffffff),
+
+549 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+551 \15
+__»s
+ - 1;
+
+552
+ }
+}
+
+553 #ifdeà
+__USE_GNU
+
+
+554
+__STRING_INLINE
+ \1e*
+
+555
+ $¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+)
+
+557 \15
+ `__¿wmemchr
+ (
+__s
+,
+__c
+);
+
+558
+ }
+}
+
+564 \ 1
+ #_HAVE_STRING_ARCH_¡¾\92
+ 1
+
+ )
+
+565 \ 1
+ #¡¾\92
+(
+¡r
+) \
+
+566 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¡r
+) \
+
+567 ?
+ `__bu\9et\9a_¡¾\92
+ (
+¡r
+) \
+
+568 :
+ `__¡¾\92_g
+ (
+¡r
+)))
+
+ )
+
+569
+__STRING_INLINE
+
+size_t
+
+__¡¾\92_g
+ (cڡ \ 5*
+__¡r
+);
+
+571
+__STRING_INLINE
+
+size_t
+
+
+572
+ $__¡¾\92_g
+ (cڡ \ 5*
+__¡r
+)
+
+574 \14\ 5
+__dummy
+;
+
+575 \14cڡ \ 5*
+__tmp
+ =
+__¡r
+;
+
+576
+__asm__
+
+__vÞ©\9ee__
+
+
+582 : "ô" (
+__tmp
+), "=&q" (
+__dummy
+)
+
+583 : "0" (
+__¡r
+),
+
+584 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__¡r
+)
+
+586 \15
+__tmp
+ -
+__¡r
+ - 1;
+
+587
+ }
+}
+
+591 \ 1
+ #_HAVE_STRING_ARCH_¡rýy
+ 1
+
+ )
+
+592 \ 1
+ #¡rýy
+(
+de¡
+,
+¤c
+) \
+
+593 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+594 ? (\17 ((
+¤c
+)[0]è=ð1 &&
+ `¡¾\92
+ (src) + 1 <= 8 \
+
+595 ?
+ `__¡rýy_a_sm®l
+ ((
+de¡
+), (
+¤c
+),
+ `¡¾\92
+ (src) + 1) \
+
+596 : (\ 5*è
+ `memýy
+ ((\ 5*è(
+de¡
+), \
+
+597 (cÚ¡ \ 5*è(
+¤c
+), \
+
+598
+ `¡¾\92
+ (
+¤c
+) + 1)) \
+
+599 :
+ `__¡rýy_g
+ ((
+de¡
+), (
+¤c
+))))
+
+ )
+
+601 \ 1
+ #__¡rýy_a_sm®l
+(
+de¡
+,
+¤c
+,
+¤þ\92
+) \
+
+602 (
+ `__ex\8bnsiÚ__
+ ({ \ 5*
+__de¡
+ = (
+de¡
+); \
+
+604 \1d\12
+__ui
+; \
+
+605 \1d\16\12
+__usi
+; \
+
+606 \1d\ 5
+__uc
+; \
+
+607 \ 5
+__c
+; \
+
+608 } *
+__u
+ = (\1e*è
+__de¡
+; \
+
+609 \1a
+¤þ\92
+) \
+
+612
+__u
+->
+__uc
+ = '\0'; \
+
+615
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+618
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+619
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+620
+__u
+->
+__uc
+ = '\0'; \
+
+623
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+626
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+627
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+628
+__u
+->
+__uc
+ = '\0'; \
+
+631
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+632
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+633
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+636
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+637
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+638
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+639
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+640
+__u
+->
+__uc
+ = '\0'; \
+
+643
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+644
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+645
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 4); \
+
+648 (\ 5*è
+__de¡
+; }))
+
+ )
+
+650
+__STRING_INLINE
+ \ 5*
+__¡rýy_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+);
+
+652
+__STRING_INLINE
+ \ 5*
+
+653
+ $__¡rýy_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+)
+
+655 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+656 \14\ 5
+__dummy
+;
+
+657
+__asm__
+
+__vÞ©\9ee__
+
+
+666 : "=&r" (
+__¤c
+), "=&r" (
+__tmp
+), "=&q" (
+__dummy
+),
+
+667 "=m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+668 : "0" (
+__¤c
+), "1" (
+__tmp
+),
+
+669 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+671 \15
+__de¡
+;
+
+672
+ }
+}
+
+675 #ifdeà
+__USE_GNU
+
+
+676 \ 1
+ #_HAVE_STRING_ARCH_¡pýy
+ 1
+
+ )
+
+678 \ 1
+ #__¡pýy
+(
+de¡
+,
+¤c
+) \
+
+679 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+680 ? (
+ `¡¾\92
+ (
+¤c
+) + 1 <= 8 \
+
+681 ?
+ `__¡pýy_a_sm®l
+ ((
+de¡
+), (
+¤c
+),
+ `¡¾\92
+ (src) + 1) \
+
+682 :
+ `__¡pýy_c
+ ((
+de¡
+), (
+¤c
+),
+ `¡¾\92
+ (src) + 1)) \
+
+683 :
+ `__¡pýy_g
+ ((
+de¡
+), (
+¤c
+))))
+
+ )
+
+684 \ 1
+ #__¡pýy_c
+(
+de¡
+,
+¤c
+,
+¤þ\92
+) \
+
+685 ((
+¤þ\92
+) % 4 == 0 \
+
+686 ?
+ `__mempýy_by4
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+) - 1 \
+
+687 : ((
+¤þ\92
+) % 2 == 0 \
+
+688 ?
+ `__mempýy_by2
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+) - 1 \
+
+689 :
+ `__mempýy_byn
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+è- 1))
+
+ )
+
+692 \ 1
+ #¡pýy
+(
+de¡
+,
+¤c
+è
+ `__¡pýy
+ ((de¡), (¤c))
+
+ )
+
+694 \ 1
+ #__¡pýy_a_sm®l
+(
+de¡
+,
+¤c
+,
+¤þ\92
+) \
+
+695 (
+ `__ex\8bnsiÚ__
+ ({ union { \
+
+696 \1d\12
+__ui
+; \
+
+697 \1d\16\12
+__usi
+; \
+
+698 \1d\ 5
+__uc
+; \
+
+699 \ 5
+__c
+; \
+
+700 } *
+__u
+ = (\1e*è(
+de¡
+); \
+
+701 \1a
+¤þ\92
+) \
+
+704
+__u
+->
+__uc
+ = '\0'; \
+
+707
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+708
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1); \
+
+711
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 0); \
+
+712
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+713
+__u
+->
+__uc
+ = '\0'; \
+
+716
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+717
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 3); \
+
+720
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+721
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+722
+__u
+->
+__uc
+ = '\0'; \
+
+725
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+726
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+727
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+728
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1); \
+
+731
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+732
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+733
+__u
+->
+__usi
+ =
+ `__STRING_SMALL_GET16
+ (
+¤c
+, 4); \
+
+734
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+735
+__u
+->
+__uc
+ = '\0'; \
+
+738
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 0); \
+
+739
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+740
+__u
+->
+__ui
+ =
+ `__STRING_SMALL_GET32
+ (
+¤c
+, 4); \
+
+741
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 3); \
+
+744 (\ 5*è
+__u
+; }))
+
+ )
+
+746
+__STRING_INLINE
+ \ 5*
+__mempýy_by4
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+
+747
+size_t
+
+__¤þ\92
+);
+
+749
+__STRING_INLINE
+ \ 5*
+
+750
+ $__mempýy_by4
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__¤þ\92
+)
+
+752 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+753 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+754
+__asm__
+
+__vÞ©\9ee__
+
+
+762 : "=&r" (
+__d0
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+)
+
+763 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ\92
+ / 4)
+
+765 \15
+__tmp
+;
+
+766
+ }
+}
+
+768
+__STRING_INLINE
+ \ 5*
+__mempýy_by2
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+
+769
+size_t
+
+__¤þ\92
+);
+
+771
+__STRING_INLINE
+ \ 5*
+
+772
+ $__mempýy_by2
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__¤þ\92
+)
+
+774 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+775 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+776
+__asm__
+
+__vÞ©\9ee__
+
+
+789 : "=&q" (
+__d0
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__d1
+),
+
+790 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__de¡
+)
+
+791 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ\92
+ / 2),
+
+792 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+794 \15
+__tmp
+ + 2;
+
+795
+ }
+}
+
+797
+__STRING_INLINE
+ \ 5*
+__mempýy_byn
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+
+798
+size_t
+
+__¤þ\92
+);
+
+800
+__STRING_INLINE
+ \ 5*
+
+801
+ $__mempýy_byn
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__¤þ\92
+)
+
+803 \14\1d\13
+__d0
+,
+__d1
+;
+
+804 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+805
+__asm__
+
+__vÞ©\9ee__
+
+
+816 : "=D" (
+__tmp
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+),
+
+817 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__de¡
+)
+
+818 : "0" (
+__tmp
+), "1" (
+__¤þ\92
+), "2" (
+__¤c
+),
+
+819 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+821 \15
+__tmp
+;
+
+822
+ }
+}
+
+824
+__STRING_INLINE
+ \ 5*
+__¡pýy_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+);
+
+826
+__STRING_INLINE
+ \ 5*
+
+827
+ $__¡pýy_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+)
+
+829 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+830 \14\ 5
+__dummy
+;
+
+831
+__asm__
+
+__vÞ©\9ee__
+
+
+840 : "=&r" (
+__¤c
+), "ô" (
+__tmp
+), "=&q" (
+__dummy
+),
+
+841 "=m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+842 : "0" (
+__¤c
+), "1" (
+__tmp
+),
+
+843 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+845 \15
+__tmp
+ - 1;
+
+846
+ }
+}
+
+851 \ 1
+ #_HAVE_STRING_ARCH_¡ºýy
+ 1
+
+ )
+
+852 \ 1
+ #¡ºýy
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+853 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+854 ? ((
+ `¡¾\92
+ (
+¤c
+è+ 1 >ð((
+size_t
+è(
+n
+)) \
+
+855 ? (\ 5*è
+ `memýy
+ ((\ 5*è(
+de¡
+), \
+
+856 (cÚ¡ \ 5*è(
+¤c
+),
+n
+) \
+
+857 :
+ `__¡ºýy_cg
+ ((
+de¡
+), (
+¤c
+),
+ `¡¾\92
+ (¤cè+ 1,
+n
+))) \
+
+858 :
+ `__¡ºýy_gg
+ ((
+de¡
+), (
+¤c
+),
+n
+)))
+
+ )
+
+859 \ 1
+ #__¡ºýy_cg
+(
+de¡
+,
+¤c
+,
+¤þ\92
+,
+n
+) \
+
+860 (((
+¤þ\92
+) % 4 == 0) \
+
+861 ?
+ `__¡ºýy_by4
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+,
+n
+) \
+
+862 : (((
+¤þ\92
+) % 2 == 0) \
+
+863 ?
+ `__¡ºýy_by2
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+,
+n
+) \
+
+864 :
+ `__¡ºýy_byn
+ (
+de¡
+,
+¤c
+,
+¤þ\92
+,
+n
+)))
+
+ )
+
+866
+__STRING_INLINE
+ \ 5*
+__¡ºýy_by4
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+
+867
+size_t
+
+__¤þ\92
+, size_\88
+__n
+);
+
+869
+__STRING_INLINE
+ \ 5*
+
+870
+ $__¡ºýy_by4
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+size_t
+
+__¤þ\92
+, size_\88
+__n
+)
+
+872 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+873 \14\12
+__dummy1
+,
+__dummy2
+;
+
+874
+__asm__
+
+__vÞ©\9ee__
+
+
+882 : "=&r" (
+__dummy1
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__dummy2
+),
+
+883 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__de¡
+)
+
+884 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ\92
+ / 4),
+
+885 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+887 (\1eè
+ `mem£t
+ (
+__tmp
+, '\0',
+__n
+ -
+__¤þ\92
+);
+
+888 \15
+__de¡
+;
+
+889
+ }
+}
+
+891
+__STRING_INLINE
+ \ 5*
+__¡ºýy_by2
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+
+892
+size_t
+
+__¤þ\92
+, size_\88
+__n
+);
+
+894
+__STRING_INLINE
+ \ 5*
+
+895
+ $__¡ºýy_by2
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+size_t
+
+__¤þ\92
+, size_\88
+__n
+)
+
+897 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+898 \14\12
+__dummy1
+,
+__dummy2
+;
+
+899
+__asm__
+
+__vÞ©\9ee__
+
+
+912 : "=&q" (
+__dummy1
+), "ô" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__dummy2
+),
+
+913 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__de¡
+)
+
+914 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__¤þ\92
+ / 2),
+
+915 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+917 (\1eè
+ `mem£t
+ (
+__tmp
+ + 2, '\0',
+__n
+ -
+__¤þ\92
+);
+
+918 \15
+__de¡
+;
+
+919
+ }
+}
+
+921
+__STRING_INLINE
+ \ 5*
+__¡ºýy_byn
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+
+922
+size_t
+
+__¤þ\92
+, size_\88
+__n
+);
+
+924
+__STRING_INLINE
+ \ 5*
+
+925
+ $__¡ºýy_byn
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+size_t
+
+__¤þ\92
+, size_\88
+__n
+)
+
+927 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+928 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+929
+__asm__
+
+__vÞ©\9ee__
+
+
+940 : "=D" (
+__tmp
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+),
+
+941 "=m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__de¡
+)
+
+942 : "1" (
+__¤þ\92
+), "0" (
+__tmp
+),"2" (
+__¤c
+),
+
+943 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+945 (\1eè
+ `mem£t
+ (
+__tmp
+, '\0',
+__n
+ -
+__¤þ\92
+);
+
+946 \15
+__de¡
+;
+
+947
+ }
+}
+
+949
+__STRING_INLINE
+ \ 5*
+__¡ºýy_gg
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+
+950
+size_t
+
+__n
+);
+
+952
+__STRING_INLINE
+ \ 5*
+
+953
+ $__¡ºýy_gg
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__n
+)
+
+955 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+956 \14\ 5
+__dummy
+;
+
+957 ià(
+__n
+ > 0)
+
+958
+__asm__
+
+__vÞ©\9ee__
+
+
+974 : "=&r" (
+__¤c
+), "=&r" (
+__tmp
+), "=&q" (
+__dummy
+), "=&r" (
+__n
+)
+
+975 : "0" (
+__¤c
+), "1" (
+__tmp
+), "3" (
+__n
+)
+
+978 \15
+__de¡
+;
+
+979
+ }
+}
+
+983 \ 1
+ #_HAVE_STRING_ARCH_¡rÿt
+ 1
+
+ )
+
+984 \ 1
+ #¡rÿt
+(
+de¡
+,
+¤c
+) \
+
+985 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+986 ?
+ `__¡rÿt_c
+ ((
+de¡
+), (
+¤c
+),
+ `¡¾\92
+ (src) + 1) \
+
+987 :
+ `__¡rÿt_g
+ ((
+de¡
+), (
+¤c
+))))
+
+ )
+
+989
+__STRING_INLINE
+ \ 5*
+__¡rÿt_c
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+
+990
+size_t
+
+__¤þ\92
+);
+
+992
+__STRING_INLINE
+ \ 5*
+
+993
+ $__¡rÿt_c
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+size_t
+
+__¤þ\92
+)
+
+995 #ifdeà
+__i686__
+
+
+996 \14\1d\13\12
+__d0
+;
+
+997 \14\ 5*
+__tmp
+;
+
+998
+__asm__
+
+__vÞ©\9ee__
+
+
+1000 : "=D" (
+__tmp
+), "=&c" (
+__d0
+),
+
+1001 "=m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1002 : "0" (
+__de¡
+), "1" (0xffffffff), "a" (0),
+
+1003 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+1005 --
+__tmp
+;
+
+1007 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+1008
+__asm__
+
+__vÞ©\9ee__
+
+
+1014 : "ô" (
+__tmp
+),
+
+1015 "=m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1016 : "0" (
+__tmp
+),
+
+1017 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__¤þ\92
+]; } *)
+__¤c
+)
+
+1020 (\1eè
+ `memýy
+ (
+__tmp
+,
+__¤c
+,
+__¤þ\92
+);
+
+1021 \15
+__de¡
+;
+
+1022
+ }
+}
+
+1024
+__STRING_INLINE
+ \ 5*
+__¡rÿt_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+);
+
+1026
+__STRING_INLINE
+ \ 5*
+
+1027
+ $__¡rÿt_g
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+)
+
+1029 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+1030 \14\ 5
+__dummy
+;
+
+1031
+__asm__
+
+__vÞ©\9ee__
+
+
+1044 : "=&q" (
+__dummy
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+),
+
+1045 "=m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__de¡
+)
+
+1046 : "1" (
+__tmp
+), "2" (
+__¤c
+),
+
+1047 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__¤c
+)
+
+1049 \15
+__de¡
+;
+
+1050
+ }
+}
+
+1054 \ 1
+ #_HAVE_STRING_ARCH_¡ºÿt
+ 1
+
+ )
+
+1055 \ 1
+ #¡ºÿt
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+1056 (
+ `__ex\8bnsiÚ__
+ ({ \ 5*
+__de¡
+ = (
+de¡
+); \
+
+1057
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+1058 ? (
+ `¡¾\92
+ (
+¤c
+è< ((
+size_t
+è(
+n
+)) \
+
+1059 ?
+ `¡rÿt
+ (
+__de¡
+, (
+¤c
+)) \
+
+1060 : (*(\ 5*)
+ `__mempýy
+ (
+ `¡rchr
+ (
+__de¡
+, '\0'), \
+
+1061 (cÚ¡ \ 5*è(
+¤c
+), \
+
+1062 (
+n
+)èð0,
+__de¡
+)) \
+
+1063 :
+ `__¡ºÿt_g
+ (
+__de¡
+, (
+¤c
+), (
+n
+)); }))
+
+ )
+
+1065
+__STRING_INLINE
+ \ 5*
+__¡ºÿt_g
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+
+1066
+size_t
+
+__n
+);
+
+1068
+__STRING_INLINE
+ \ 5*
+
+1069
+ $__¡ºÿt_g
+ (\ 5*
+__de¡
+, cڡ \ 5
+__¤c
+[],
+size_t
+
+__n
+)
+
+1071 \14\ 5*
+__tmp
+ =
+__de¡
+;
+
+1072 \14\ 5
+__dummy
+;
+
+1073 #ifdeà
+__i686__
+
+
+1074
+__asm__
+
+__vÞ©\9ee__
+
+
+1088 : "=&a" (
+__dummy
+), "=&D" (
+__tmp
+), "=&S" (
+__¤c
+), "=&c" (
+__n
+)
+
+1089 : "g" (
+__n
+), "0" (0), "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (0xffffffff)
+
+1092 --
+__tmp
+;
+
+1093
+__asm__
+
+__vÞ©\9ee__
+
+
+1110 : "=&q" (
+__dummy
+), "=&r" (
+__tmp
+), "=&r" (
+__¤c
+), "=&r" (
+__n
+)
+
+1111 : "1" (
+__tmp
+), "2" (
+__¤c
+), "3" (
+__n
+)
+
+1114 \15
+__de¡
+;
+
+1115
+ }
+}
+
+1119 \ 1
+ #_HAVE_STRING_ARCH_¡rcmp
+ 1
+
+ )
+
+1120 \ 1
+ #¡rcmp
+(
+s1
+,
+s2
+) \
+
+1121 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&& __bu\9et\9a_cÚ¡ªt_°(
+s2
+) \
+
+1122 && (\17 ((
+s1
+)[0]è!ð1 ||
+ `¡¾\92
+ (s1) >= 4) \
+
+1123 && (\17 ((
+s2
+)[0]è!ð1 ||
+ `¡¾\92
+ (s2) >= 4) \
+
+1124 ?
+ `memcmp
+ ((cÚ¡ \ 5*è(
+s1
+), (cÚ¡ \ 5*è(
+s2
+), \
+
+1125 (
+ `¡¾\92
+ (
+s1
+è< s\8cËÀ(
+s2
+) \
+
+1126 ?
+ `¡¾\92
+ (
+s1
+è: s\8cËÀ(
+s2
+)) + 1) \
+
+1127 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+) && \17 ((s1)[0]) == 1 \
+
+1128 && \17 ((
+s2
+)[0]è=ð1 &&
+ `¡¾\92
+ (
+s1
+) < 4 \
+
+1129 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+) && \17 ((s2)[0]) == 1 \
+
+1130 ?
+ `__¡rcmp_cc
+ ((cÚ¡ \1d\ 5*è(
+s1
+), \
+
+1131 (cÚ¡ \1d\ 5*è(
+s2
+), \
+
+1132
+ `¡¾\92
+ (
+s1
+)) \
+
+1133 :
+ `__¡rcmp_cg
+ ((cÚ¡ \1d\ 5*è(
+s1
+), \
+
+1134 (cÚ¡ \1d\ 5*è(
+s2
+), \
+
+1135
+ `¡¾\92
+ (
+s1
+))) \
+
+1136 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&& \17 ((
+s1
+)[0]) == 1 \
+
+1137 && \17 ((
+s2
+)[0]è=ð1 &&
+ `¡¾\92
+ (s2) < 4 \
+
+1138 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+) \
+
+1139 ?
+ `__¡rcmp_cc
+ ((cÚ¡ \1d\ 5*è(
+s1
+), \
+
+1140 (cÚ¡ \1d\ 5*è(
+s2
+), \
+
+1141
+ `¡¾\92
+ (
+s2
+)) \
+
+1142 :
+ `__¡rcmp_gc
+ ((cÚ¡ \1d\ 5*è(
+s1
+), \
+
+1143 (cÚ¡ \1d\ 5*è(
+s2
+), \
+
+1144
+ `¡¾\92
+ (
+s2
+))) \
+
+1145 :
+ `__¡rcmp_gg
+ ((
+s1
+), (
+s2
+))))))
+
+ )
+
+1147 \ 1
+ #__¡rcmp_cc
+(
+s1
+,
+s2
+,
+l
+) \
+
+1148 (
+ `__ex\8bnsiÚ__
+ ({ \14\12
+__»suÉ
+ = (
+s1
+)[0] - (
+s2
+)[0]; \
+
+1149 ià(
+l
+ > 0 &&
+__»suÉ
+ == 0) \
+
+1151
+__»suÉ
+ = (
+s1
+)[1] - (
+s2
+)[1]; \
+
+1152 ià(
+l
+ > 1 &&
+__»suÉ
+ == 0) \
+
+1154
+__»suÉ
+ = (
+s1
+)[2] - (
+s2
+)[2]; \
+
+1155 ià(
+l
+ > 2 &&
+__»suÉ
+ == 0) \
+
+1156
+__»suÉ
+ = (
+s1
+)[3] - (
+s2
+)[3]; \
+
+1159
+__»suÉ
+; }))
+
+ )
+
+1161 \ 1
+ #__¡rcmp_cg
+(
+s1
+,
+s2
+,
+l1
+) \
+
+1162 (
+ `__ex\8bnsiÚ__
+ ({ cڡ \1d\ 5*
+__s2
+ = (
+s2
+); \
+
+1163 \14\12
+__»suÉ
+ = (
+s1
+)[0] -
+__s2
+[0]; \
+
+1164 ià(
+l1
+ > 0 &&
+__»suÉ
+ == 0) \
+
+1166
+__»suÉ
+ = (
+s1
+)[1] -
+__s2
+[1]; \
+
+1167 ià(
+l1
+ > 1 &&
+__»suÉ
+ == 0) \
+
+1169
+__»suÉ
+ = (
+s1
+)[2] -
+__s2
+[2]; \
+
+1170 ià(
+l1
+ > 2 &&
+__»suÉ
+ == 0) \
+
+1171
+__»suÉ
+ = (
+s1
+)[3] -
+__s2
+[3]; \
+
+1174
+__»suÉ
+; }))
+
+ )
+
+1176 \ 1
+ #__¡rcmp_gc
+(
+s1
+,
+s2
+,
+l2
+) \
+
+1177 (
+ `__ex\8bnsiÚ__
+ ({ cڡ \1d\ 5*
+__s1
+ = (
+s1
+); \
+
+1178 \14\12
+__»suÉ
+ =
+__s1
+[0] - (
+s2
+)[0]; \
+
+1179 ià(
+l2
+ > 0 &&
+__»suÉ
+ == 0) \
+
+1181
+__»suÉ
+ =
+__s1
+[1] - (
+s2
+)[1]; \
+
+1182 ià(
+l2
+ > 1 &&
+__»suÉ
+ == 0) \
+
+1184
+__»suÉ
+ =
+__s1
+[2] - (
+s2
+)[2]; \
+
+1185 ià(
+l2
+ > 2 &&
+__»suÉ
+ == 0) \
+
+1186
+__»suÉ
+ =
+__s1
+[3] - (
+s2
+)[3]; \
+
+1189
+__»suÉ
+; }))
+
+ )
+
+1191
+__STRING_INLINE
+ \12
+__¡rcmp_gg
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+);
+
+1193
+__STRING_INLINE
+ \12
+
+1194
+ $__¡rcmp_gg
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+)
+
+1196 \14\12
+__»s
+;
+
+1197
+__asm__
+
+__vÞ©\9ee__
+
+
+1213 : "=q" (
+__»s
+), "=&r" (
+__s1
+), "=&r" (
+__s2
+)
+
+1214 : "1" (
+__s1
+), "2" (
+__s2
+),
+
+1215 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s1
+),
+
+1216 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s2
+)
+
+1218 \15
+__»s
+;
+
+1219
+ }
+}
+
+1223 \ 1
+ #_HAVE_STRING_ARCH_¡ºcmp
+ 1
+
+ )
+
+1224 \ 1
+ #¡ºcmp
+(
+s1
+,
+s2
+,
+n
+) \
+
+1225 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&&
+ `¡¾\92
+ (s1è< ((
+size_t
+è(
+n
+)) \
+
+1226 ?
+ `¡rcmp
+ ((
+s1
+), (
+s2
+)) \
+
+1227 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&&
+ `¡¾\92
+ (s2è< ((
+size_t
+è(
+n
+))\
+
+1228 ?
+ `¡rcmp
+ ((
+s1
+), (
+s2
+)) \
+
+1229 :
+ `__¡ºcmp_g
+ ((
+s1
+), (
+s2
+), (
+n
+)))))
+
+ )
+
+1231
+__STRING_INLINE
+ \12
+__¡ºcmp_g
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+
+1232
+size_t
+
+__n
+);
+
+1234
+__STRING_INLINE
+ \12
+
+1235
+ $__¡ºcmp_g
+ (cڡ \ 5*
+__s1
+, cڡ \ 5*
+__s2
+,
+size_t
+
+__n
+)
+
+1237 \14\12
+__»s
+;
+
+1238
+__asm__
+
+__vÞ©\9ee__
+
+
+1257 : "=q" (
+__»s
+), "=&r" (
+__s1
+), "=&r" (
+__s2
+), "=&r" (
+__n
+)
+
+1258 : "1" (
+__s1
+), "2" (
+__s2
+), "3" (
+__n
+),
+
+1259 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s1
+),
+
+1260 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__n
+]; } *)
+__s2
+)
+
+1262 \15
+__»s
+;
+
+1263
+ }
+}
+
+1267 \ 1
+ #_HAVE_STRING_ARCH_¡rchr
+ 1
+
+ )
+
+1268 \ 1
+ #_USE_STRING_ARCH_¡rchr
+ 1
+
+ )
+
+1269 \ 1
+ #¡rchr
+(
+s
+,
+c
+) \
+
+1270 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+1271 ? ((
+c
+) == '\0' \
+
+1272 ? (\ 5*è
+ `__¿wmemchr
+ ((
+s
+), (
+c
+)) \
+
+1273 :
+ `__¡rchr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8)) \
+
+1274 :
+ `__¡rchr_g
+ ((
+s
+), (
+c
+))))
+
+ )
+
+1276
+__STRING_INLINE
+ \ 5*
+__¡rchr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1278
+__STRING_INLINE
+ \ 5*
+
+1279
+ $__¡rchr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1281 \14\1d\13\12
+__d0
+;
+
+1282 \14\ 5*
+__»s
+;
+
+1283
+__asm__
+
+__vÞ©\9ee__
+
+
+1293 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1294 : "0" (
+__s
+), "1" (
+__c
+),
+
+1295 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1297 \15
+__»s
+;
+
+1298
+ }
+}
+
+1300
+__STRING_INLINE
+ \ 5*
+__¡rchr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1302
+__STRING_INLINE
+ \ 5*
+
+1303
+ $__¡rchr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1305 \14\1d\13\12
+__d0
+;
+
+1306 \14\ 5*
+__»s
+;
+
+1307
+__asm__
+
+__vÞ©\9ee__
+
+
+1318 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1319 : "0" (
+__s
+), "1" (
+__c
+),
+
+1320 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1322 \15
+__»s
+;
+
+1323
+ }
+}
+
+1327 \ 1
+ #_HAVE_STRING_ARCH_¡rchºul
+ 1
+
+ )
+
+1328 \ 1
+ #__¡rchºul
+(
+s
+,
+c
+) \
+
+1329 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+1330 ? ((
+c
+) == '\0' \
+
+1331 ? (\ 5*è
+ `__¿wmemchr
+ ((
+s
+),
+c
+) \
+
+1332 :
+ `__¡rchºul_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8)) \
+
+1333 :
+ `__¡rchºul_g
+ ((
+s
+),
+c
+)))
+
+ )
+
+1335
+__STRING_INLINE
+ \ 5*
+__¡rchºul_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1337
+__STRING_INLINE
+ \ 5*
+
+1338
+ $__¡rchºul_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1340 \14\1d\13\12
+__d0
+;
+
+1341 \14\ 5*
+__»s
+;
+
+1342
+__asm__
+
+__vÞ©\9ee__
+
+
+1352 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1353 : "0" (
+__s
+), "1" (
+__c
+),
+
+1354 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1356 \15
+__»s
+;
+
+1357
+ }
+}
+
+1359
+__STRING_INLINE
+ \ 5*
+__¡rchºul_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1361
+__STRING_INLINE
+ \ 5*
+
+1362
+ $__¡rchºul_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1364 \14\1d\13\12
+__d0
+;
+
+1365 \14\ 5*
+__»s
+;
+
+1366
+__asm__
+
+__vÞ©\9ee__
+
+
+1377 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1378 : "0" (
+__s
+), "1" (
+__c
+),
+
+1379 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1381 \15
+__»s
+;
+
+1382
+ }
+}
+
+1383 #ifdeà
+__USE_GNU
+
+
+1384 \ 1
+ #¡rchºul
+(
+s
+,
+c
+è
+ `__¡rchºul
+ ((s), (c))
+
+ )
+
+1388 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+1390 \ 1
+ #_HAVE_STRING_ARCH_\9adex
+ 1
+
+ )
+
+1391 \ 1
+ #\9adex
+(
+s
+,
+c
+) \
+
+1392 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+1393 ?
+ `__¡rchr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1394 :
+ `__¡rchr_g
+ ((
+s
+), (
+c
+))))
+
+ )
+
+1399 \ 1
+ #_HAVE_STRING_ARCH_¡¼chr
+ 1
+
+ )
+
+1400 \ 1
+ #¡¼chr
+(
+s
+,
+c
+) \
+
+1401 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+1402 ?
+ `__¡¼chr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1403 :
+ `__¡¼chr_g
+ ((
+s
+), (
+c
+))))
+
+ )
+
+1405 #ifdeà
+__i686__
+
+
+1406
+__STRING_INLINE
+ \ 5*
+__¡¼chr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1408
+__STRING_INLINE
+ \ 5*
+
+1409
+ $__¡¼chr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1411 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+1412 \14\ 5*
+__»s
+;
+
+1413
+__asm__
+
+__vÞ©\9ee__
+
+
+1421 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1422 : "0" (1), "1" (
+__s
+), "2" (
+__c
+),
+
+1423 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1425 \15
+__»s
+ - 1;
+
+1426
+ }
+}
+
+1428
+__STRING_INLINE
+ \ 5*
+__¡¼chr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1430
+__STRING_INLINE
+ \ 5*
+
+1431
+ $__¡¼chr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1433 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+1434 \14\ 5*
+__»s
+;
+
+1435
+__asm__
+
+__vÞ©\9ee__
+
+
+1444 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1445 : "0" (1), "1" (
+__s
+), "2" (
+__c
+),
+
+1446 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1448 \15
+__»s
+ - 1;
+
+1449
+ }
+}
+
+1451
+__STRING_INLINE
+ \ 5*
+__¡¼chr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1453
+__STRING_INLINE
+ \ 5*
+
+1454
+ $__¡¼chr_c
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1456 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+1457 \14\ 5*
+__»s
+;
+
+1458
+__asm__
+
+__vÞ©\9ee__
+
+
+1468 : "=d" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1469 : "0" (0), "1" (
+__s
+), "2" (
+__c
+),
+
+1470 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1472 \15
+__»s
+;
+
+1473
+ }
+}
+
+1475
+__STRING_INLINE
+ \ 5*
+__¡¼chr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+);
+
+1477
+__STRING_INLINE
+ \ 5*
+
+1478
+ $__¡¼chr_g
+ (cڡ \ 5*
+__s
+, \12
+__c
+)
+
+1480 \14\1d\13\12
+__d0
+,
+__d1
+;
+
+1481 \14\ 5*
+__»s
+;
+
+1482
+__asm__
+
+__vÞ©\9ee__
+
+
+1493 : "ô" (
+__»s
+), "=&S" (
+__d0
+), "=&a" (
+__d1
+)
+
+1494 : "0" (0), "1" (
+__s
+), "2" (
+__c
+),
+
+1495 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1497 \15
+__»s
+;
+
+1498
+ }
+}
+
+1502 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+1504 \ 1
+ #_HAVE_STRING_ARCH_r\9adex
+ 1
+
+ )
+
+1505 \ 1
+ #r\9adex
+(
+s
+,
+c
+) \
+
+1506 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) \
+
+1507 ?
+ `__¡¼chr_c
+ ((
+s
+), ((
+c
+) & 0xff) << 8) \
+
+1508 :
+ `__¡¼chr_g
+ ((
+s
+), (
+c
+))))
+
+ )
+
+1514 \ 1
+ #_HAVE_STRING_ARCH_¡rc¥n
+ 1
+
+ )
+
+1515 \ 1
+ #¡rc¥n
+(
+s
+,
+»jeù
+) \
+
+1516 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+»jeù
+) && \17 ((reject)[0]) == 1 \
+
+1517 ? ((
+»jeù
+)[0] == '\0' \
+
+1518 ?
+ `¡¾\92
+ (
+s
+) \
+
+1519 : ((
+»jeù
+)[1] == '\0' \
+
+1520 ?
+ `__¡rc¥n_c1
+ ((
+s
+), (((
+»jeù
+)[0] << 8) & 0xff00)) \
+
+1521 :
+ `__¡rc¥n_cg
+ ((
+s
+), (
+»jeù
+),
+ `¡¾\92
+ (reject)))) \
+
+1522 :
+ `__¡rc¥n_g
+ ((
+s
+), (
+»jeù
+))))
+
+ )
+
+1524
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__»jeù
+);
+
+1526 #iâdeà
+_FORCE_INLINES
+
+
+1527
+__STRING_INLINE
+
+size_t
+
+
+1528
+ $__¡rc¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__»jeù
+)
+
+1530 \14\1d\13\12
+__d0
+;
+
+1531 \14\ 5*
+__»s
+;
+
+1532
+__asm__
+
+__vÞ©\9ee__
+
+
+1541 : "ô" (
+__»s
+), "=&a" (
+__d0
+)
+
+1542 : "0" (
+__s
+), "1" (
+__»jeù
+),
+
+1543 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1545 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1546
+ }
+}
+
+1549
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__»jeù
+[],
+
+1550
+size_t
+
+__»jeù_Ën
+);
+
+1552
+__STRING_INLINE
+
+size_t
+
+
+1553
+ $__¡rc¥n_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__»jeù
+[],
+size_t
+
+__»jeù_Ën
+)
+
+1555 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1556 \14cڡ \ 5*
+__»s
+;
+
+1557
+__asm__
+
+__vÞ©\9ee__
+
+
+1568 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1569 : "0" (
+__s
+), "d" (
+__»jeù
+), "g" (
+__»jeù_Ën
+)
+
+1571 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1572
+ }
+}
+
+1574
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__»jeù
+);
+
+1575 #ifdeà
+__PIC__
+
+
+1577
+__STRING_INLINE
+
+size_t
+
+
+1578
+ $__¡rc¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__»jeù
+)
+
+1580 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1581 \14cڡ \ 5*
+__»s
+;
+
+1582
+__asm__
+
+__vÞ©\9ee__
+
+
+1599 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1600 : "r" (
+__»jeù
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff)
+
+1602 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1603
+ }
+}
+
+1605
+__STRING_INLINE
+
+size_t
+
+
+1606
+ $__¡rc¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__»jeù
+)
+
+1608 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+,
+__d3
+;
+
+1609 \14cڡ \ 5*
+__»s
+;
+
+1610
+__asm__
+
+__vÞ©\9ee__
+
+
+1624 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+), "=&d" (
+__d3
+)
+
+1625 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (
+__»jeù
+), "b" (__reject)
+
+1628 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1629
+ }
+}
+
+1635 \ 1
+ #_HAVE_STRING_ARCH_¡r¥n
+ 1
+
+ )
+
+1636 \ 1
+ #¡r¥n
+(
+s
+,
+acû±
+) \
+
+1637 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+) && \17 ((accept)[0]) == 1 \
+
+1638 ? ((
+acû±
+)[0] == '\0' \
+
+1639 ? ((\1eè(
+s
+), 0) \
+
+1640 : ((
+acû±
+)[1] == '\0' \
+
+1641 ?
+ `__¡r¥n_c1
+ ((
+s
+), (((
+acû±
+)[0] << 8 ) & 0xff00)) \
+
+1642 :
+ `__¡r¥n_cg
+ ((
+s
+), (
+acû±
+),
+ `¡¾\92
+ (accept)))) \
+
+1643 :
+ `__¡r¥n_g
+ ((
+s
+), (
+acû±
+))))
+
+ )
+
+1645 #iâdeà
+_FORCE_INLINES
+
+
+1646
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__acû±
+);
+
+1648
+__STRING_INLINE
+
+size_t
+
+
+1649
+ $__¡r¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__acû±
+)
+
+1651 \14\1d\13\12
+__d0
+;
+
+1652 \14\ 5*
+__»s
+;
+
+1654
+__asm__
+
+__vÞ©\9ee__
+
+
+1660 : "ô" (
+__»s
+), "=&q" (
+__d0
+)
+
+1661 : "0" (
+__s
+), "1" (
+__acû±
+),
+
+1662 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+)
+
+1664 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1665
+ }
+}
+
+1668
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__acû±
+[],
+
+1669
+size_t
+
+__acû±_Ën
+);
+
+1671
+__STRING_INLINE
+
+size_t
+
+
+1672
+ $__¡r¥n_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__acû±
+[],
+size_t
+
+__acû±_Ën
+)
+
+1674 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1675 \14cڡ \ 5*
+__»s
+;
+
+1676
+__asm__
+
+__vÞ©\9ee__
+
+
+1687 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1688 : "0" (
+__s
+), "g" (
+__acû±
+), "g" (
+__acû±_Ën
+),
+
+1691 "m" ( *(¡ruù { \ 5
+__x
+[0xfffffff]; } *)
+__s
+),
+
+1692 "m" ( *(¡ruù {
+__ex\8bnsiÚ__
+ \ 5
+__x
+[
+__acû±_Ën
+]; } *)
+__acû±
+)
+
+1694 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1695
+ }
+}
+
+1697
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+);
+
+1698 #ifdeà
+__PIC__
+
+
+1700
+__STRING_INLINE
+
+size_t
+
+
+1701
+ $__¡r¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+1703 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1704 \14cڡ \ 5*
+__»s
+;
+
+1705
+__asm__
+
+__vÞ©\9ee__
+
+
+1721 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1722 : "d" (
+__acû±
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (__accept)
+
+1724 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1725
+ }
+}
+
+1727
+__STRING_INLINE
+
+size_t
+
+
+1728
+ $__¡r¥n_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+1730 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+,
+__d3
+;
+
+1731 \14cڡ \ 5*
+__»s
+;
+
+1732
+__asm__
+
+__vÞ©\9ee__
+
+
+1746 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+), "=&d" (
+__d3
+)
+
+1747 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "3" (
+__acû±
+), "b" (__accept)
+
+1749 \15 (
+__»s
+ - 1è-
+__s
+;
+
+1750
+ }
+}
+
+1755 \ 1
+ #_HAVE_STRING_ARCH_¡½brk
+ 1
+
+ )
+
+1756 \ 1
+ #¡½brk
+(
+s
+,
+acû±
+) \
+
+1757 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+) && \17 ((accept)[0]) == 1 \
+
+1758 ? ((
+acû±
+)[0] == '\0' \
+
+1759 ? ((\1eè(
+s
+), (\ 5*) 0) \
+
+1760 : ((
+acû±
+)[1] == '\0' \
+
+1761 ?
+ `¡rchr
+ ((
+s
+), (
+acû±
+)[0]) \
+
+1762 :
+ `__¡½brk_cg
+ ((
+s
+), (
+acû±
+),
+ `¡¾\92
+ (accept)))) \
+
+1763 :
+ `__¡½brk_g
+ ((
+s
+), (
+acû±
+))))
+
+ )
+
+1765
+__STRING_INLINE
+ \ 5*
+__¡½brk_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__acû±
+[],
+
+1766
+size_t
+
+__acû±_Ën
+);
+
+1768
+__STRING_INLINE
+ \ 5*
+
+1769
+ $__¡½brk_cg
+ (cڡ \ 5*
+__s
+, cڡ \ 5
+__acû±
+[],
+size_t
+
+__acû±_Ën
+)
+
+1771 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1772 \14\ 5*
+__»s
+;
+
+1773
+__asm__
+
+__vÞ©\9ee__
+
+
+1788 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1789 : "0" (
+__s
+), "d" (
+__acû±
+), "g" (
+__acû±_Ën
+)
+
+1791 \15
+__»s
+;
+
+1792
+ }
+}
+
+1794
+__STRING_INLINE
+ \ 5*
+__¡½brk_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+);
+
+1795 #ifdeà
+__PIC__
+
+
+1797
+__STRING_INLINE
+ \ 5*
+
+1798
+ $__¡½brk_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+1800 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1801 \14\ 5*
+__»s
+;
+
+1802
+__asm__
+
+__vÞ©\9ee__
+
+
+1823 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&D" (
+__d2
+)
+
+1824 : "d" (
+__acû±
+), "0" (
+__s
+), "1" (0), "2" (0xffffffff)
+
+1826 \15
+__»s
+;
+
+1827
+ }
+}
+
+1829
+__STRING_INLINE
+ \ 5*
+
+1830
+ $__¡½brk_g
+ (cڡ \ 5*
+__s
+, cڡ \ 5*
+__acû±
+)
+
+1832 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+,
+__d3
+;
+
+1833 \14\ 5*
+__»s
+;
+
+1834
+__asm__
+
+__vÞ©\9ee__
+
+
+1853 : "=S" (
+__»s
+), "=&a" (
+__d0
+), "=&c" (
+__d1
+), "=&d" (
+__d2
+), "=&D" (
+__d3
+)
+
+1854 : "0" (
+__s
+), "1" (0), "2" (0xffffffff), "b" (
+__acû±
+)
+
+1856 \15
+__»s
+;
+
+1857
+ }
+}
+
+1862 \ 1
+ #_HAVE_STRING_ARCH_¡r¡r
+ 1
+
+ )
+
+1863 \ 1
+ #¡r¡r
+(
+hay¡ack
+,
+ÃedË
+) \
+
+1864 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+ÃedË
+) && \17 ((needle)[0]) == 1 \
+
+1865 ? ((
+ÃedË
+)[0] == '\0' \
+
+1866 ? (
+hay¡ack
+) \
+
+1867 : ((
+ÃedË
+)[1] == '\0' \
+
+1868 ?
+ `¡rchr
+ ((
+hay¡ack
+), (
+ÃedË
+)[0]) \
+
+1869 :
+ `__¡r¡r_cg
+ ((
+hay¡ack
+), (
+ÃedË
+), \
+
+1870
+ `¡¾\92
+ (
+ÃedË
+)))) \
+
+1871 :
+ `__¡r¡r_g
+ ((
+hay¡ack
+), (
+ÃedË
+))))
+
+ )
+
+1875
+__STRING_INLINE
+ \ 5*
+__¡r¡r_cg
+ (cڡ \ 5*
+__hay¡ack
+,
+
+1876 cڡ \ 5
+__ÃedË
+[],
+
+1877
+size_t
+
+__ÃedË_Ën
+);
+
+1879
+__STRING_INLINE
+ \ 5*
+
+1880
+ $__¡r¡r_cg
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5
+__ÃedË
+[],
+
+1881
+size_t
+
+__ÃedË_Ën
+)
+
+1883 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1884 \14\ 5*
+__»s
+;
+
+1885
+__asm__
+
+__vÞ©\9ee__
+
+
+1898 : "=&a" (
+__»s
+), "=&S" (
+__d0
+), "=&D" (
+__d1
+), "=&c" (
+__d2
+)
+
+1899 : "g" (
+__ÃedË_Ën
+), "1" (
+__hay¡ack
+), "d" (
+__ÃedË
+)
+
+1901 \15
+__»s
+;
+
+1902
+ }
+}
+
+1904
+__STRING_INLINE
+ \ 5*
+__¡r¡r_g
+ (cڡ \ 5*
+__hay¡ack
+,
+
+1905 cڡ \ 5*
+__ÃedË
+);
+
+1906 #ifdeà
+__PIC__
+
+
+1908
+__STRING_INLINE
+ \ 5*
+
+1909
+ $__¡r¡r_g
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+1911 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+;
+
+1912 \14\ 5*
+__»s
+;
+
+1913
+__asm__
+
+__vÞ©\9ee__
+
+
+1932 : "=&a" (
+__»s
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+)
+
+1933 : "0" (0), "1" (0xffffffff), "2" (
+__hay¡ack
+), "3" (
+__ÃedË
+),
+
+1934 "d" (
+__ÃedË
+)
+
+1936 \15
+__»s
+;
+
+1937
+ }
+}
+
+1939
+__STRING_INLINE
+ \ 5*
+
+1940
+ $__¡r¡r_g
+ (cڡ \ 5*
+__hay¡ack
+, cڡ \ 5*
+__ÃedË
+)
+
+1942 \14\1d\13\12
+__d0
+,
+__d1
+,
+__d2
+,
+__d3
+;
+
+1943 \14\ 5*
+__»s
+;
+
+1944
+__asm__
+
+__vÞ©\9ee__
+
+
+1961 : "=&a" (
+__»s
+), "=&c" (
+__d0
+), "=&S" (
+__d1
+), "=&D" (
+__d2
+), "=&d" (
+__d3
+)
+
+1962 : "0" (0), "1" (0xffffffff), "2" (
+__hay¡ack
+), "3" (
+__ÃedË
+),
+
+1963 "b" (
+__ÃedË
+)
+
+1965 \15
+__»s
+;
+
+1966
+ }
+}
+
+1972 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+1973 #ifdeà
+__i686__
+
+
+1974 \ 1
+ #_HAVE_STRING_ARCH_ffs
+ 1
+
+ )
+
+1975 \ 1
+ #ffs
+(
+wÜd
+è(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (word) \
+
+1976 ?
+ `__bu\9et\9a_ffs
+ (
+wÜd
+) \
+
+1977 : ({ \12
+__út
+,
+__tmp
+; \
+
+1978
+__asm__
+
+__vÞ©\9ee__
+ \
+
+1981 : "=&r" (
+__út
+), "ô" (
+__tmp
+) \
+
+1982 : "rm" (
+wÜd
+), "1" (-1)); \
+
+1983
+__út
+ + 1; }))
+
+ )
+
+1985 #iâdeà
+ff¦
+
+
+1986 \ 1
+ #ff¦
+(
+wÜd
+è
+ `ffs
+(wÜd)
+
+ )
+
+1991 #iâdeà
+_FORCE_INLINES
+
+
+1992 #undeà
+__STRING_INLINE
+
+
+ @/usr/include/bits/string2.h
+
+20 #iâdeà
+_STRING_H
+
+
+24 #iâdeà
+__NO_STRING_INLINES
+
+
+41 #iâdeà
+__STRING_INLINE
+
+
+42 #ifdeà
+__ýlu¥lus
+
+
+43 \ 1
+ #__STRING_INLINE
+
+\9al\9ae
+
+
+ )
+
+45 \ 1
+ #__STRING_INLINE
+
+__ex\8bº_\9al\9ae
+
+
+ )
+
+49 #ià
+_STRING_INLINE_uÇligÃd
+
+
+51 \ 2
+ ~<\92d\9fn.h
+>
+
+52 \ 2
+ ~<b\99s/ty³s.h
+>
+
+54 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+55 \ 1
+ #__STRING2_SMALL_GET16
+(
+¤c
+,
+idx
+) \
+
+56 (((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 1] << 8 \
+
+57 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+])
+
+ )
+
+58 \ 1
+ #__STRING2_SMALL_GET32
+(
+¤c
+,
+idx
+) \
+
+59 (((((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 3] << 8 \
+
+60 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+61 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+62 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+])
+
+ )
+
+64 \ 1
+ #__STRING2_SMALL_GET16
+(
+¤c
+,
+idx
+) \
+
+65 (((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+] << 8 \
+
+66 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 1])
+
+ )
+
+67 \ 1
+ #__STRING2_SMALL_GET32
+(
+¤c
+,
+idx
+) \
+
+68 (((((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+] << 8 \
+
+69 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 1]) << 8 \
+
+70 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 2]) << 8 \
+
+71 | ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+¤c
+))[
+idx
+ + 3])
+
+ )
+
+76 \ 1
+ #__STRING2_COPY_TYPE
+(
+N
+) \
+
+77 \e¡ruù { \1d\ 5
+__¬r
+[
+N
+]; } \
+
+78
+ t__©\8cibu\8b__
+ ((
+ t__·cked__
+)è
+ t__STRING2_COPY_ARR
+##
+ tN
+
+
+ )
+
+79
+ t__STRING2_COPY_TYPE
+ (2);
+
+80
+__STRING2_COPY_TYPE
+ (3);
+
+81
+__STRING2_COPY_TYPE
+ (4);
+
+82
+__STRING2_COPY_TYPE
+ (5);
+
+83
+__STRING2_COPY_TYPE
+ (6);
+
+84
+__STRING2_COPY_TYPE
+ (7);
+
+85
+__STRING2_COPY_TYPE
+ (8);
+
+86 #undeà
+__STRING2_COPY_TYPE
+
+
+92 \ 1
+ #__¡r\9ag2_1b±r_p
+(
+__x
+) \
+
+93 ((
+size_t
+)(cڡ \1e*)((
+__x
+è+ 1è- (size_t)(cÚ¡ \1e*)(__xè=ð1)
+
+ )
+
+96 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_mem£t
+
+
+97 #ià!
+__GNUC_PREREQ
+ (3, 0)
+
+98 #ià
+_STRING_INLINE_uÇligÃd
+
+
+99 \ 1
+ #mem£t
+(
+s
+,
+c
+,
+n
+) \
+
+100 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) && (n) <= 16 \
+
+101 ? ((
+n
+) == 1 \
+
+102 ?
+ `__mem£t_1
+ (
+s
+,
+c
+) \
+
+103 :
+ `__mem£t_gc
+ (
+s
+,
+c
+,
+n
+)) \
+
+104 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+105 ? ({ \1e*
+__s
+ = (
+s
+);
+ `__bz\94o
+ (__s,
+n
+); __s; }) \
+
+106 :
+ `mem£t
+ (
+s
+,
+c
+,
+n
+))))
+
+ )
+
+108 \ 1
+ #__mem£t_1
+(
+s
+,
+c
+è({ \1e*
+__s
+ = (s); \
+
+109 *((
+__u\9at8_t
+ *è
+__s
+èð(__u\9at8_tè
+c
+; __s; })
+
+ )
+
+111 \ 1
+ #__mem£t_gc
+(
+s
+,
+c
+,
+n
+) \
+
+112 ({ \1e*
+__s
+ = (
+s
+); \
+
+114 \1d\12
+__ui
+; \
+
+115 \1d\16\12
+__usi
+; \
+
+116 \1d\ 5
+__uc
+; \
+
+117 } *
+__u
+ =
+__s
+; \
+
+118
+__u\9at8_t
+
+__c
+ = (__u\9at8_tè(
+c
+); \
+
+121 \1a(\1d\12è(
+n
+)) \
+
+124
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+125
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+127
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+128
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+130
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+131
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+133
+__u
+->
+__usi
+ = (\1d\16\12è
+__c
+ * 0x0101; \
+
+134
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2); \
+
+135
+__u
+->
+__uc
+ = (\1d\ 5è
+__c
+; \
+
+139
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+140
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+142
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+143
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+145
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+146
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+148
+__u
+->
+__usi
+ = (\1d\16\12è
+__c
+ * 0x0101; \
+
+152
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+153
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+155
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+156
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+158
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+159
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+161
+__u
+->
+__uc
+ = (\1d\ 5è
+__c
+; \
+
+165
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+166
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+168
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+169
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+171
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+172
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4); \
+
+174
+__u
+->
+__ui
+ =
+__c
+ * 0x01010101; \
+
+179
+__s
+; })
+
+ )
+
+181 \ 1
+ #mem£t
+(
+s
+,
+c
+,
+n
+) \
+
+182 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+183 ? ({ \1e*
+__s
+ = (
+s
+);
+ `__bz\94o
+ (__s,
+n
+); __s; }) \
+
+184 :
+ `mem£t
+ (
+s
+,
+c
+,
+n
+)))
+
+ )
+
+193 #ià
+__GNUC_PREREQ
+ (2, 91)
+
+194 \ 1
+ #__bz\94o
+(
+s
+,
+n
+è
+ `__bu\9et\9a_mem£t
+ (s, '\0',\82)
+
+ )
+
+202 #ifdeà
+__USE_GNU
+
+
+203 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_mempýy
+ || def\9aed
+_FORCE_INLINES
+
+
+204 #iâdeà
+_HAVE_STRING_ARCH_mempýy
+
+
+205 #ià
+__GNUC_PREREQ
+ (3, 4)
+
+206 \ 1
+ #__mempýy
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__bu\9et\9a_mempýy
+ (de¡, src,\82)
+
+ )
+
+207 #\96ià
+__GNUC_PREREQ
+ (3, 0)
+
+208 \ 1
+ #__mempýy
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+209 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+210 &&
+ `__¡r\9ag2_1b±r_p
+ (
+¤c
+è&&
+n
+ <= 8 \
+
+211 ?
+ `__bu\9et\9a_memýy
+ (
+de¡
+,
+¤c
+,
+n
+) + (n) \
+
+212 :
+ `__mempýy
+ (
+de¡
+,
+¤c
+,
+n
+)))
+
+ )
+
+214 \ 1
+ #__mempýy
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+215 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+216 &&
+ `__¡r\9ag2_1b±r_p
+ (
+¤c
+è&&
+n
+ <= 8 \
+
+217 ?
+ `__mempýy_sm®l
+ (
+de¡
+,
+ `__mempýy_¬gs
+ (
+¤c
+),
+n
+) \
+
+218 :
+ `__mempýy
+ (
+de¡
+,
+¤c
+,
+n
+)))
+
+ )
+
+222 \ 1
+ #mempýy
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__mempýy
+ (de¡, src,\82)
+
+ )
+
+225 #ià!
+__GNUC_PREREQ
+ (3, 0è||
+def\9aed
+
+_FORCE_INLINES
+
+
+226 #ià
+_STRING_INLINE_uÇligÃd
+
+
+227 #iâdeà
+_FORCE_INLINES
+
+
+228 \ 1
+ #__mempýy_¬gs
+(
+¤c
+) \
+
+229 ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[2], \
+
+230 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[6], \
+
+231
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+232
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+233
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+234
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+ )
+
+236
+__STRING_INLINE
+ \1e*
+__mempýy_sm®l
+ (\1e*, \ 5, \ 5, \ 5, \ 5,
+
+237
+__u\9at16_t
+, __u\9at16_t,
+__u\9at32_t
+,
+
+238
+__u\9at32_t
+,
+size_t
+);
+
+239
+__STRING_INLINE
+ \1e*
+
+240
+ $__mempýy_sm®l
+ (\1e*
+__de¡1
+,
+
+241 \ 5
+__¤c0_1
+, \ 5
+__¤c2_1
+, \ 5
+__¤c4_1
+, \ 5
+__¤c6_1
+,
+
+242
+__u\9at16_t
+
+__¤c0_2
+, __u\9at16_\88
+__¤c4_2
+,
+
+243
+__u\9at32_t
+
+__¤c0_4
+, __u\9at32_\88
+__¤c4_4
+,
+
+244
+size_t
+
+__¤þ\92
+)
+
+247
+__u\9at32_t
+
+__ui
+;
+
+248
+__u\9at16_t
+
+__usi
+;
+
+249 \1d\ 5
+__uc
+;
+
+250 \1d\ 5
+__c
+;
+
+251 } *
+__u
+ =
+__de¡1
+;
+
+252 \1a(\1d\12è
+__¤þ\92
+)
+
+255
+__u
+->
+__c
+ =
+__¤c0_1
+;
+
+256
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+259
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+260
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+263
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+264
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+265
+__u
+->
+__c
+ =
+__¤c2_1
+;
+
+266
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+269
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+270
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+273
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+274
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+275
+__u
+->
+__c
+ =
+__¤c4_1
+;
+
+276
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+279
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+280
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+281
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+282
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+285
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+286
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+287
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+288
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+289
+__u
+->
+__c
+ =
+__¤c6_1
+;
+
+290
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+293
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+294
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+295
+__u
+->
+__ui
+ =
+__¤c4_4
+;
+
+296
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+299 \15 (\1e*è
+__u
+;
+
+300
+ }
+}
+
+302 #iâdeà
+_FORCE_INLINES
+
+
+303 \ 1
+ #__mempýy_¬gs
+(
+¤c
+) \
+
+304 ((cÚ¡ \ 5*è(
+¤c
+))[0], \
+
+305
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+306 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1] } }), \
+
+307
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+308 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+309 ((cÚ¡ \ 5*è(
+¤c
+))[2] } }), \
+
+310
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+311 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+312 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3] } }), \
+
+313
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+314 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+315 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+316 ((cÚ¡ \ 5*è(
+¤c
+))[4] } }), \
+
+317
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+318 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+319 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+320 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5] } }), \
+
+321
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+322 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+323 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+324 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+325 ((cÚ¡ \ 5*è(
+¤c
+))[6] } }), \
+
+326
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+327 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+328 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+329 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+330 ((cÚ¡ \ 5*è(
+¤c
+))[6], ((cÚ¡ \ 5*è(¤c))[7] } })
+
+ )
+
+332
+__STRING_INLINE
+ \1e*
+__mempýy_sm®l
+ (\1e*, \ 5,
+__STRING2_COPY_ARR2
+,
+
+333
+__STRING2_COPY_ARR3
+,
+
+334
+__STRING2_COPY_ARR4
+,
+
+335
+__STRING2_COPY_ARR5
+,
+
+336
+__STRING2_COPY_ARR6
+,
+
+337
+__STRING2_COPY_ARR7
+,
+
+338
+__STRING2_COPY_ARR8
+,
+size_t
+);
+
+339
+__STRING_INLINE
+ \1e*
+
+340
+ $__mempýy_sm®l
+ (\1e*
+__de¡
+, \ 5
+__¤c1
+,
+
+341
+__STRING2_COPY_ARR2
+
+__¤c2
+,
+__STRING2_COPY_ARR3
+
+__¤c3
+,
+
+342
+__STRING2_COPY_ARR4
+
+__¤c4
+,
+__STRING2_COPY_ARR5
+
+__¤c5
+,
+
+343
+__STRING2_COPY_ARR6
+
+__¤c6
+,
+__STRING2_COPY_ARR7
+
+__¤c7
+,
+
+344
+__STRING2_COPY_ARR8
+
+__¤c8
+,
+size_t
+
+__¤þ\92
+)
+
+347 \ 5
+__c
+;
+
+348
+__STRING2_COPY_ARR2
+
+__sÿ2
+;
+
+349
+__STRING2_COPY_ARR3
+
+__sÿ3
+;
+
+350
+__STRING2_COPY_ARR4
+
+__sÿ4
+;
+
+351
+__STRING2_COPY_ARR5
+
+__sÿ5
+;
+
+352
+__STRING2_COPY_ARR6
+
+__sÿ6
+;
+
+353
+__STRING2_COPY_ARR7
+
+__sÿ7
+;
+
+354
+__STRING2_COPY_ARR8
+
+__sÿ8
+;
+
+355 } *
+__u
+ =
+__de¡
+;
+
+356 \1a(\1d\12è
+__¤þ\92
+)
+
+359
+__u
+->
+__c
+ =
+__¤c1
+;
+
+362
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ2
+ =
+__¤c2
+;
+
+365
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ3
+ =
+__¤c3
+;
+
+368
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ4
+ =
+__¤c4
+;
+
+371
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ5
+ =
+__¤c5
+;
+
+374
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ6
+ =
+__¤c6
+;
+
+377
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ7
+ =
+__¤c7
+;
+
+380
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ8
+ =
+__¤c8
+;
+
+383 \15
+ `__ex\8bnsiÚ__
+ ((\1e*è
+__u
+ +
+__¤þ\92
+);
+
+384
+ }
+}
+
+392 #iâdeà
+_HAVE_STRING_ARCH_¡rchr
+
+
+393 \r\1e*
+__¿wmemchr
+ (cڡ \1e*
+__s
+, \12
+__c
+);
+
+394 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+395 \ 1
+ #¡rchr
+(
+s
+,
+c
+) \
+
+396 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+è&& !__bu\9et\9a_cÚ¡ªt_°(
+s
+) \
+
+397 && (
+c
+) == '\0' \
+
+398 ? (\ 5*è
+ `__¿wmemchr
+ (
+s
+,
+c
+) \
+
+399 :
+ `__bu\9et\9a_¡rchr
+ (
+s
+,
+c
+)))
+
+ )
+
+401 \ 1
+ #¡rchr
+(
+s
+,
+c
+) \
+
+402 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+c
+) && (c) == '\0' \
+
+403 ? (\ 5*è
+ `__¿wmemchr
+ (
+s
+,
+c
+) \
+
+404 :
+ `¡rchr
+ (
+s
+,
+c
+)))
+
+ )
+
+410 #ià(!
+def\9aed
+
+_HAVE_STRING_ARCH_¡rýy
+ && !
+__GNUC_PREREQ
+ (3, 0)) \
+
+411 ||
+def\9aed
+
+ g_FORCE_INLINES
+
+
+412 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡rýy
+ && !
+__GNUC_PREREQ
+ (3, 0)
+
+413 \ 1
+ #¡rýy
+(
+de¡
+,
+¤c
+) \
+
+414 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+415 ? (
+ `__¡r\9ag2_1b±r_p
+ (
+¤c
+è&&
+ `¡¾\92
+ (src) + 1 <= 8 \
+
+416 ?
+ `__¡rýy_sm®l
+ (
+de¡
+,
+ `__¡rýy_¬gs
+ (
+¤c
+), \
+
+417
+ `¡¾\92
+ (
+¤c
+) + 1) \
+
+418 : (\ 5*è
+ `memýy
+ (
+de¡
+,
+¤c
+,
+ `¡¾\92
+ (src) + 1)) \
+
+419 :
+ `¡rýy
+ (
+de¡
+,
+¤c
+)))
+
+ )
+
+422 #ià
+_STRING_INLINE_uÇligÃd
+
+
+423 #iâdeà
+_FORCE_INLINES
+
+
+424 \ 1
+ #__¡rýy_¬gs
+(
+¤c
+) \
+
+425
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+426
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+427
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+428
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+ )
+
+430
+__STRING_INLINE
+ \ 5*
+__¡rýy_sm®l
+ (\ 5*,
+__u\9at16_t
+, __uint16_t,
+
+431
+__u\9at32_t
+, __u\9at32_t,
+size_t
+);
+
+432
+__STRING_INLINE
+ \ 5*
+
+433
+ $__¡rýy_sm®l
+ (\ 5*
+__de¡
+,
+
+434
+__u\9at16_t
+
+__¤c0_2
+, __u\9at16_\88
+__¤c4_2
+,
+
+435
+__u\9at32_t
+
+__¤c0_4
+, __u\9at32_\88
+__¤c4_4
+,
+
+436
+size_t
+
+__¤þ\92
+)
+
+439
+__u\9at32_t
+
+__ui
+;
+
+440
+__u\9at16_t
+
+__usi
+;
+
+441 \1d\ 5
+__uc
+;
+
+442 } *
+__u
+ = (\1e*è
+__de¡
+;
+
+443 \1a(\1d\12è
+__¤þ\92
+)
+
+446
+__u
+->
+__uc
+ = '\0';
+
+449
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+452
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+453
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+454
+__u
+->
+__uc
+ = '\0';
+
+457
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+460
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+461
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+462
+__u
+->
+__uc
+ = '\0';
+
+465
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+466
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+467
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+470
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+471
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+472
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+473
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+474
+__u
+->
+__uc
+ = '\0';
+
+477
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+478
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+479
+__u
+->
+__ui
+ =
+__¤c4_4
+;
+
+482 \15
+__de¡
+;
+
+483
+ }
+}
+
+485 #iâdeà
+_FORCE_INLINES
+
+
+486 \ 1
+ #__¡rýy_¬gs
+(
+¤c
+) \
+
+487
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+488 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], '\0' } }), \
+
+489
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+490 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+492
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+493 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+494 ((cÚ¡ \ 5*è(
+¤c
+))[2], '\0' } }), \
+
+495
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+496 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+497 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+499
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+500 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+501 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+502 ((cÚ¡ \ 5*è(
+¤c
+))[4], '\0' } }), \
+
+503
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+504 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+505 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+506 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+508
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+509 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+510 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+511 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+512 ((cÚ¡ \ 5*è(
+¤c
+))[6], '\0' } })
+
+ )
+
+514
+__STRING_INLINE
+ \ 5*
+__¡rýy_sm®l
+ (\ 5*,
+__STRING2_COPY_ARR2
+,
+
+515
+__STRING2_COPY_ARR3
+,
+
+516
+__STRING2_COPY_ARR4
+,
+
+517
+__STRING2_COPY_ARR5
+,
+
+518
+__STRING2_COPY_ARR6
+,
+
+519
+__STRING2_COPY_ARR7
+,
+
+520
+__STRING2_COPY_ARR8
+,
+size_t
+);
+
+521
+__STRING_INLINE
+ \ 5*
+
+522
+ $__¡rýy_sm®l
+ (\ 5*
+__de¡
+,
+
+523
+__STRING2_COPY_ARR2
+
+__¤c2
+,
+__STRING2_COPY_ARR3
+
+__¤c3
+,
+
+524
+__STRING2_COPY_ARR4
+
+__¤c4
+,
+__STRING2_COPY_ARR5
+
+__¤c5
+,
+
+525
+__STRING2_COPY_ARR6
+
+__¤c6
+,
+__STRING2_COPY_ARR7
+
+__¤c7
+,
+
+526
+__STRING2_COPY_ARR8
+
+__¤c8
+,
+size_t
+
+__¤þ\92
+)
+
+529 \ 5
+__c
+;
+
+530
+__STRING2_COPY_ARR2
+
+__sÿ2
+;
+
+531
+__STRING2_COPY_ARR3
+
+__sÿ3
+;
+
+532
+__STRING2_COPY_ARR4
+
+__sÿ4
+;
+
+533
+__STRING2_COPY_ARR5
+
+__sÿ5
+;
+
+534
+__STRING2_COPY_ARR6
+
+__sÿ6
+;
+
+535
+__STRING2_COPY_ARR7
+
+__sÿ7
+;
+
+536
+__STRING2_COPY_ARR8
+
+__sÿ8
+;
+
+537 } *
+__u
+ = (\1e*è
+__de¡
+;
+
+538 \1a(\1d\12è
+__¤þ\92
+)
+
+541
+__u
+->
+__c
+ = '\0';
+
+544
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ2
+ =
+__¤c2
+;
+
+547
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ3
+ =
+__¤c3
+;
+
+550
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ4
+ =
+__¤c4
+;
+
+553
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ5
+ =
+__¤c5
+;
+
+556
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ6
+ =
+__¤c6
+;
+
+559
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ7
+ =
+__¤c7
+;
+
+562
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ8
+ =
+__¤c8
+;
+
+565 \15
+__de¡
+;
+
+566
+ }
+}
+
+572 #ifdeà
+__USE_GNU
+
+
+573 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡pýy
+ || def\9aed
+_FORCE_INLINES
+
+
+574 #iâdeà
+_HAVE_STRING_ARCH_¡pýy
+
+
+575 #ià
+__GNUC_PREREQ
+ (3, 4)
+
+576 \ 1
+ #__¡pýy
+(
+de¡
+,
+¤c
+è
+ `__bu\9et\9a_¡pýy
+ (de¡, src)
+
+ )
+
+577 #\96ià
+__GNUC_PREREQ
+ (3, 0)
+
+578 \ 1
+ #__¡pýy
+(
+de¡
+,
+¤c
+) \
+
+579 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+580 ? (
+ `__¡r\9ag2_1b±r_p
+ (
+¤c
+è&&
+ `¡¾\92
+ (src) + 1 <= 8 \
+
+581 ?
+ `__bu\9et\9a_¡rýy
+ (
+de¡
+,
+¤c
+è+
+ `¡¾\92
+ (src) \
+
+582 : ((\ 5*è(
+__mempýy
+è(
+de¡
+,
+¤c
+,
+ `¡¾\92
+ (src) + 1) \
+
+584 :
+ `__¡pýy
+ (
+de¡
+,
+¤c
+)))
+
+ )
+
+586 \ 1
+ #__¡pýy
+(
+de¡
+,
+¤c
+) \
+
+587 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+) \
+
+588 ? (
+ `__¡r\9ag2_1b±r_p
+ (
+¤c
+è&&
+ `¡¾\92
+ (src) + 1 <= 8 \
+
+589 ?
+ `__¡pýy_sm®l
+ (
+de¡
+,
+ `__¡pýy_¬gs
+ (
+¤c
+), \
+
+590
+ `¡¾\92
+ (
+¤c
+) + 1) \
+
+591 : ((\ 5*è(
+__mempýy
+è(
+de¡
+,
+¤c
+,
+ `¡¾\92
+ (src) + 1) \
+
+593 :
+ `__¡pýy
+ (
+de¡
+,
+¤c
+)))
+
+ )
+
+597 \ 1
+ #¡pýy
+(
+de¡
+,
+¤c
+è
+ `__¡pýy
+ (de¡, src)
+
+ )
+
+600 #ià!
+__GNUC_PREREQ
+ (3, 0è||
+def\9aed
+
+_FORCE_INLINES
+
+
+601 #ià
+_STRING_INLINE_uÇligÃd
+
+
+602 #iâdeà
+_FORCE_INLINES
+
+
+603 \ 1
+ #__¡pýy_¬gs
+(
+¤c
+) \
+
+604
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 0), \
+
+605
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET16
+ (
+¤c
+, 4), \
+
+606
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 0), \
+
+607
+__ex\8bnsiÚ__
+
+ `__STRING2_SMALL_GET32
+ (
+¤c
+, 4)
+
+ )
+
+609
+__STRING_INLINE
+ \ 5*
+__¡pýy_sm®l
+ (\ 5*,
+__u\9at16_t
+, __uint16_t,
+
+610
+__u\9at32_t
+, __u\9at32_t,
+size_t
+);
+
+611
+__STRING_INLINE
+ \ 5*
+
+612
+ $__¡pýy_sm®l
+ (\ 5*
+__de¡
+,
+
+613
+__u\9at16_t
+
+__¤c0_2
+, __u\9at16_\88
+__¤c4_2
+,
+
+614
+__u\9at32_t
+
+__¤c0_4
+, __u\9at32_\88
+__¤c4_4
+,
+
+615
+size_t
+
+__¤þ\92
+)
+
+618 \1d\12
+__ui
+;
+
+619 \1d\16\12
+__usi
+;
+
+620 \1d\ 5
+__uc
+;
+
+621 \ 5
+__c
+;
+
+622 } *
+__u
+ = (\1e*è
+__de¡
+;
+
+623 \1a(\1d\12è
+__¤þ\92
+)
+
+626
+__u
+->
+__uc
+ = '\0';
+
+629
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+630
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+633
+__u
+->
+__usi
+ =
+__¤c0_2
+;
+
+634
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+635
+__u
+->
+__uc
+ = '\0';
+
+638
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+639
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 3);
+
+642
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+643
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+644
+__u
+->
+__uc
+ = '\0';
+
+647
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+648
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+649
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+650
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 1);
+
+653
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+654
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+655
+__u
+->
+__usi
+ =
+__¤c4_2
+;
+
+656
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 2);
+
+657
+__u
+->
+__uc
+ = '\0';
+
+660
+__u
+->
+__ui
+ =
+__¤c0_4
+;
+
+661
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 4);
+
+662
+__u
+->
+__ui
+ =
+__¤c4_4
+;
+
+663
+__u
+ =
+ `__ex\8bnsiÚ__
+ ((\1e*) __u + 3);
+
+666 \15 &
+__u
+->
+__c
+;
+
+667
+ }
+}
+
+669 #iâdeà
+_FORCE_INLINES
+
+
+670 \ 1
+ #__¡pýy_¬gs
+(
+¤c
+) \
+
+671
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR2
+) \
+
+672 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], '\0' } }), \
+
+673
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR3
+) \
+
+674 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+676
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR4
+) \
+
+677 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+678 ((cÚ¡ \ 5*è(
+¤c
+))[2], '\0' } }), \
+
+679
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR5
+) \
+
+680 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+681 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+683
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR6
+) \
+
+684 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+685 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+686 ((cÚ¡ \ 5*è(
+¤c
+))[4], '\0' } }), \
+
+687
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR7
+) \
+
+688 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+689 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+690 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+692
+ `__ex\8bnsiÚ__
+ ((
+__STRING2_COPY_ARR8
+) \
+
+693 { { ((cÚ¡ \ 5*è(
+¤c
+))[0], ((const \ 5*) (src))[1], \
+
+694 ((cÚ¡ \ 5*è(
+¤c
+))[2], ((const \ 5*) (src))[3], \
+
+695 ((cÚ¡ \ 5*è(
+¤c
+))[4], ((const \ 5*) (src))[5], \
+
+696 ((cÚ¡ \ 5*è(
+¤c
+))[6], '\0' } })
+
+ )
+
+698
+__STRING_INLINE
+ \ 5*
+__¡pýy_sm®l
+ (\ 5*,
+__STRING2_COPY_ARR2
+,
+
+699
+__STRING2_COPY_ARR3
+,
+
+700
+__STRING2_COPY_ARR4
+,
+
+701
+__STRING2_COPY_ARR5
+,
+
+702
+__STRING2_COPY_ARR6
+,
+
+703
+__STRING2_COPY_ARR7
+,
+
+704
+__STRING2_COPY_ARR8
+,
+size_t
+);
+
+705
+__STRING_INLINE
+ \ 5*
+
+706
+ $__¡pýy_sm®l
+ (\ 5*
+__de¡
+,
+
+707
+__STRING2_COPY_ARR2
+
+__¤c2
+,
+__STRING2_COPY_ARR3
+
+__¤c3
+,
+
+708
+__STRING2_COPY_ARR4
+
+__¤c4
+,
+__STRING2_COPY_ARR5
+
+__¤c5
+,
+
+709
+__STRING2_COPY_ARR6
+
+__¤c6
+,
+__STRING2_COPY_ARR7
+
+__¤c7
+,
+
+710
+__STRING2_COPY_ARR8
+
+__¤c8
+,
+size_t
+
+__¤þ\92
+)
+
+713 \ 5
+__c
+;
+
+714
+__STRING2_COPY_ARR2
+
+__sÿ2
+;
+
+715
+__STRING2_COPY_ARR3
+
+__sÿ3
+;
+
+716
+__STRING2_COPY_ARR4
+
+__sÿ4
+;
+
+717
+__STRING2_COPY_ARR5
+
+__sÿ5
+;
+
+718
+__STRING2_COPY_ARR6
+
+__sÿ6
+;
+
+719
+__STRING2_COPY_ARR7
+
+__sÿ7
+;
+
+720
+__STRING2_COPY_ARR8
+
+__sÿ8
+;
+
+721 } *
+__u
+ = (\1e*è
+__de¡
+;
+
+722 \1a(\1d\12è
+__¤þ\92
+)
+
+725
+__u
+->
+__c
+ = '\0';
+
+728
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ2
+ =
+__¤c2
+;
+
+731
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ3
+ =
+__¤c3
+;
+
+734
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ4
+ =
+__¤c4
+;
+
+737
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ5
+ =
+__¤c5
+;
+
+740
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ6
+ =
+__¤c6
+;
+
+743
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ7
+ =
+__¤c7
+;
+
+746
+__ex\8bnsiÚ__
+
+__u
+->
+__sÿ8
+ =
+__¤c8
+;
+
+749 \15
+__de¡
+ +
+__¤þ\92
+ - 1;
+
+750
+ }
+}
+
+758 #iâdeà
+_HAVE_STRING_ARCH_¡ºýy
+
+
+759 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+760 \ 1
+ #¡ºýy
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__bu\9et\9a_¡ºýy
+ (de¡, src,\82)
+
+ )
+
+762 \ 1
+ #¡ºýy
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+763 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+764 ? (
+ `¡¾\92
+ (
+¤c
+è+ 1 >ð((
+size_t
+è(
+n
+)) \
+
+765 ? (\ 5*è
+ `memýy
+ (
+de¡
+,
+¤c
+,
+n
+) \
+
+766 :
+ `¡ºýy
+ (
+de¡
+,
+¤c
+,
+n
+)) \
+
+767 :
+ `¡ºýy
+ (
+de¡
+,
+¤c
+,
+n
+)))
+
+ )
+
+773 #iâdeà
+_HAVE_STRING_ARCH_¡ºÿt
+
+
+774 #ifdeà
+_USE_STRING_ARCH_¡rchr
+
+
+775 \ 1
+ #¡ºÿt
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+776 (
+ `__ex\8bnsiÚ__
+ ({ \ 5*
+__de¡
+ = (
+de¡
+); \
+
+777
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+778 ? (
+ `¡¾\92
+ (
+¤c
+è< ((
+size_t
+è(
+n
+)) \
+
+779 ?
+ `¡rÿt
+ (
+__de¡
+,
+¤c
+) \
+
+780 : (*((\ 5*è
+ `__mempýy
+ (
+ `¡rchr
+ (
+__de¡
+, '\0'), \
+
+781
+¤c
+,
+n
+)èð'\0',
+__de¡
+)) \
+
+782 :
+ `¡ºÿt
+ (
+de¡
+,
+¤c
+,
+n
+); }))
+
+ )
+
+783 #\96ià
+__GNUC_PREREQ
+ (3, 2)
+
+784 \ 1
+ #¡ºÿt
+(
+de¡
+,
+¤c
+,
+n
+è
+ `__bu\9et\9a_¡ºÿt
+ (de¡, src,\82)
+
+ )
+
+786 \ 1
+ #¡ºÿt
+(
+de¡
+,
+¤c
+,
+n
+) \
+
+787 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+¤c
+è&& __bu\9et\9a_cÚ¡ªt_°(
+n
+) \
+
+788 ? (
+ `¡¾\92
+ (
+¤c
+è< ((
+size_t
+è(
+n
+)) \
+
+789 ?
+ `¡rÿt
+ (
+de¡
+,
+¤c
+) \
+
+790 :
+ `¡ºÿt
+ (
+de¡
+,
+¤c
+,
+n
+)) \
+
+791 :
+ `¡ºÿt
+ (
+de¡
+,
+¤c
+,
+n
+)))
+
+ )
+
+797 #iâdeà
+_HAVE_STRING_ARCH_¡rcmp
+
+
+798 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+799 \ 1
+ #¡rcmp
+(
+s1
+,
+s2
+) \
+
+800
+__ex\8bnsiÚ__
+ \
+
+801 ({
+size_t
+
+__s1_Ën
+,
+__s2_Ën
+; \
+
+802 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&& __bu\9et\9a_cÚ¡ªt_°(
+s2
+) \
+
+803 && (
+__s1_Ën
+ =
+ `__bu\9et\9a_¡¾\92
+ (
+s1
+),
+__s2_Ën
+ = __bu\9et\9a_¡¾\92 (
+s2
+), \
+
+804 (!
+ `__¡r\9ag2_1b±r_p
+ (
+s1
+è||
+__s1_Ën
+ >= 4) \
+
+805 && (!
+ `__¡r\9ag2_1b±r_p
+ (
+s2
+è||
+__s2_Ën
+ >= 4)) \
+
+806 ?
+ `__bu\9et\9a_¡rcmp
+ (
+s1
+,
+s2
+) \
+
+807 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s1) \
+
+808 && (
+__s1_Ën
+ =
+ `__bu\9et\9a_¡¾\92
+ (
+s1
+), __s1_len < 4) \
+
+809 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s2) \
+
+810 ?
+ `__bu\9et\9a_¡rcmp
+ (
+s1
+,
+s2
+) \
+
+811 :
+ `__¡rcmp_cg
+ (
+s1
+,
+s2
+,
+__s1_Ën
+)) \
+
+812 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s2) \
+
+813 && (
+__s2_Ën
+ =
+ `__bu\9et\9a_¡¾\92
+ (
+s2
+), __s2_len < 4) \
+
+814 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s1) \
+
+815 ?
+ `__bu\9et\9a_¡rcmp
+ (
+s1
+,
+s2
+) \
+
+816 :
+ `__¡rcmp_gc
+ (
+s1
+,
+s2
+,
+__s2_Ën
+)) \
+
+817 :
+ `__bu\9et\9a_¡rcmp
+ (
+s1
+,
+s2
+)))); })
+
+ )
+
+819 \ 1
+ #¡rcmp
+(
+s1
+,
+s2
+) \
+
+820
+__ex\8bnsiÚ__
+ \
+
+821 ({
+size_t
+
+__s1_Ën
+,
+__s2_Ën
+; \
+
+822 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&& __bu\9et\9a_cÚ¡ªt_°(
+s2
+) \
+
+823 && (
+__s1_Ën
+ =
+ `¡¾\92
+ (
+s1
+),
+__s2_Ën
+ = s\8cËÀ(
+s2
+), \
+
+824 (!
+ `__¡r\9ag2_1b±r_p
+ (
+s1
+è||
+__s1_Ën
+ >= 4) \
+
+825 && (!
+ `__¡r\9ag2_1b±r_p
+ (
+s2
+è||
+__s2_Ën
+ >= 4)) \
+
+826 ?
+ `memcmp
+ ((cÚ¡ \ 5*è(
+s1
+), (cÚ¡ \ 5*è(
+s2
+), \
+
+827 (
+__s1_Ën
+ <
+__s2_Ën
+ ? __s1_len : __s2_len) + 1) \
+
+828 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s1) \
+
+829 && (
+__s1_Ën
+ =
+ `¡¾\92
+ (
+s1
+), __s1_len < 4) \
+
+830 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s2) \
+
+831 ?
+ `__¡rcmp_cc
+ (
+s1
+,
+s2
+,
+__s1_Ën
+) \
+
+832 :
+ `__¡rcmp_cg
+ (
+s1
+,
+s2
+,
+__s1_Ën
+)) \
+
+833 : (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s2) \
+
+834 && (
+__s2_Ën
+ =
+ `¡¾\92
+ (
+s2
+), __s2_len < 4) \
+
+835 ? (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s1) \
+
+836 ?
+ `__¡rcmp_cc
+ (
+s1
+,
+s2
+,
+__s2_Ën
+) \
+
+837 :
+ `__¡rcmp_gc
+ (
+s1
+,
+s2
+,
+__s2_Ën
+)) \
+
+838 :
+ `¡rcmp
+ (
+s1
+,
+s2
+)))); })
+
+ )
+
+841 \ 1
+ #__¡rcmp_cc
+(
+s1
+,
+s2
+,
+l
+) \
+
+842 (
+ `__ex\8bnsiÚ__
+ ({ \12
+__»suÉ
+ = \
+
+843 (((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+s1
+))[0] \
+
+844 - ((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*)(
+s2
+))[0]); \
+
+845 ià(
+l
+ > 0 &&
+__»suÉ
+ == 0) \
+
+847
+__»suÉ
+ = (((const \1d\ 5*) \
+
+848 (cÚ¡ \ 5*è(
+s1
+))[1] \
+
+850 (cÚ¡ \ 5*è(
+s2
+))[1]); \
+
+851 ià(
+l
+ > 1 &&
+__»suÉ
+ == 0) \
+
+853
+__»suÉ
+ = \
+
+855 (cÚ¡ \ 5*è(
+s1
+))[2] \
+
+857 (cÚ¡ \ 5*è(
+s2
+))[2]); \
+
+858 ià(
+l
+ > 2 &&
+__»suÉ
+ == 0) \
+
+859
+__»suÉ
+ = \
+
+861 (cÚ¡ \ 5*è(
+s1
+))[3] \
+
+863 (cÚ¡ \ 5*è(
+s2
+))[3]); \
+
+866
+__»suÉ
+; }))
+
+ )
+
+868 \ 1
+ #__¡rcmp_cg
+(
+s1
+,
+s2
+,
+l1
+) \
+
+869 (
+ `__ex\8bnsiÚ__
+ ({ cڡ \1d\ 5*
+__s2
+ = \
+
+870 (cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+s2
+); \
+
+871 \12
+__»suÉ
+ = \
+
+872 (((cÚ¡ \1d\ 5*è(cÚ¡ \ 5*è(
+s1
+))[0] \
+
+873 -
+__s2
+[0]); \
+
+874 ià(
+l1
+ > 0 &&
+__»suÉ
+ == 0) \
+
+876
+__»suÉ
+ = (((const \1d\ 5*) \
+
+877 (cÚ¡ \ 5*è(
+s1
+))[1] -
+__s2
+[1]); \
+
+878 ià(
+l1
+ > 1 &&
+__»suÉ
+ == 0) \
+
+880
+__»suÉ
+ = (((const \1d\ 5*) \
+
+881 (cÚ¡ \ 5*è(
+s1
+))[2] -
+__s2
+[2]); \
+
+882 ià(
+l1
+ > 2 &&
+__»suÉ
+ == 0) \
+
+883
+__»suÉ
+ = (((const \1d\ 5*) \
+
+884 (cÚ¡ \ 5*è(
+s1
+))[3] \
+
+885 -
+__s2
+[3]); \
+
+888
+__»suÉ
+; }))
+
+ )
+
+890 \ 1
+ #__¡rcmp_gc
+(
+s1
+,
+s2
+,
+l2
+è(-
+ `__¡rcmp_cg
+ (s2, s1,\862))
+
+ )
+
+895 #iâdeà
+_HAVE_STRING_ARCH_¡ºcmp
+
+
+896 \ 1
+ #¡ºcmp
+(
+s1
+,
+s2
+,
+n
+) \
+
+897 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+n
+) \
+
+898 && ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s1
+) \
+
+899 &&
+ `¡¾\92
+ (
+s1
+è< ((
+size_t
+è(
+n
+))) \
+
+900 || (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s2
+) \
+
+901 &&
+ `¡¾\92
+ (
+s2
+è< ((
+size_t
+è(
+n
+)))) \
+
+902 ?
+ `¡rcmp
+ (
+s1
+,
+s2
+è:
+ `¡ºcmp
+ (s1, s2,
+n
+)))
+
+ )
+
+908 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡rc¥n
+ || def\9aed
+_FORCE_INLINES
+
+
+909 #iâdeà
+_HAVE_STRING_ARCH_¡rc¥n
+
+
+910 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+911 \ 1
+ #¡rc¥n
+(
+s
+,
+»jeù
+) \
+
+912
+__ex\8bnsiÚ__
+ \
+
+913 ({ \ 5
+__r0
+,
+__r1
+,
+__r2
+; \
+
+914 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+»jeù
+è&&
+ `__¡r\9ag2_1b±r_p
+ (reject) \
+
+915 ? ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s)) \
+
+916 ?
+ `__bu\9et\9a_¡rc¥n
+ (
+s
+,
+»jeù
+) \
+
+917 : ((
+__r0
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[0], __r0 == '\0') \
+
+918 ?
+ `¡¾\92
+ (
+s
+) \
+
+919 : ((
+__r1
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[1], __r1 == '\0') \
+
+920 ?
+ `__¡rc¥n_c1
+ (
+s
+,
+__r0
+) \
+
+921 : ((
+__r2
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[2], __r2 == '\0') \
+
+922 ?
+ `__¡rc¥n_c2
+ (
+s
+,
+__r0
+,
+__r1
+) \
+
+923 : (((cÚ¡ \ 5*è(
+»jeù
+))[3] == '\0' \
+
+924 ?
+ `__¡rc¥n_c3
+ (
+s
+,
+__r0
+,
+__r1
+,
+__r2
+) \
+
+925 :
+ `__bu\9et\9a_¡rc¥n
+ (
+s
+,
+»jeù
+)))))) \
+
+926 :
+ `__bu\9et\9a_¡rc¥n
+ (
+s
+,
+»jeù
+)); })
+
+ )
+
+928 \ 1
+ #¡rc¥n
+(
+s
+,
+»jeù
+) \
+
+929
+__ex\8bnsiÚ__
+ \
+
+930 ({ \ 5
+__r0
+,
+__r1
+,
+__r2
+; \
+
+931 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+»jeù
+è&&
+ `__¡r\9ag2_1b±r_p
+ (reject) \
+
+932 ? ((
+__r0
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[0], __r0 == '\0') \
+
+933 ?
+ `¡¾\92
+ (
+s
+) \
+
+934 : ((
+__r1
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[1], __r1 == '\0') \
+
+935 ?
+ `__¡rc¥n_c1
+ (
+s
+,
+__r0
+) \
+
+936 : ((
+__r2
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[2], __r2 == '\0') \
+
+937 ?
+ `__¡rc¥n_c2
+ (
+s
+,
+__r0
+,
+__r1
+) \
+
+938 : (((cÚ¡ \ 5*è(
+»jeù
+))[3] == '\0' \
+
+939 ?
+ `__¡rc¥n_c3
+ (
+s
+,
+__r0
+,
+__r1
+,
+__r2
+) \
+
+940 :
+ `¡rc¥n
+ (
+s
+,
+»jeù
+))))) \
+
+941 :
+ `¡rc¥n
+ (
+s
+,
+»jeù
+)); })
+
+ )
+
+945
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__»jeù
+);
+
+946
+__STRING_INLINE
+
+size_t
+
+
+947
+ $__¡rc¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__»jeù
+)
+
+949
+size_t
+
+__»suÉ
+ = 0;
+
+950 \1f
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù
+)
+
+951 ++
+__»suÉ
+;
+
+952 \15
+__»suÉ
+;
+
+953
+ }
+}
+
+955
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_c2
+ (cڡ \ 5*
+__s
+, \12
+__»jeù1
+,
+
+956 \12
+__»jeù2
+);
+
+957
+__STRING_INLINE
+
+size_t
+
+
+958
+ $__¡rc¥n_c2
+ (cڡ \ 5*
+__s
+, \12
+__»jeù1
+, \12
+__»jeù2
+)
+
+960
+size_t
+
+__»suÉ
+ = 0;
+
+961 \1f
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù1
+
+
+962 &&
+__s
+[
+__»suÉ
+] !ð
+__»jeù2
+)
+
+963 ++
+__»suÉ
+;
+
+964 \15
+__»suÉ
+;
+
+965
+ }
+}
+
+967
+__STRING_INLINE
+
+size_t
+
+__¡rc¥n_c3
+ (cڡ \ 5*
+__s
+, \12
+__»jeù1
+,
+
+968 \12
+__»jeù2
+, \12
+__»jeù3
+);
+
+969
+__STRING_INLINE
+
+size_t
+
+
+970
+ $__¡rc¥n_c3
+ (cڡ \ 5*
+__s
+, \12
+__»jeù1
+, \12
+__»jeù2
+,
+
+971 \12
+__»jeù3
+)
+
+973
+size_t
+
+__»suÉ
+ = 0;
+
+974 \1f
+__s
+[
+__»suÉ
+] !ð'\0' && __s[__»suÉ] !ð
+__»jeù1
+
+
+975 &&
+__s
+[
+__»suÉ
+] !ð
+__»jeù2
+ && __s[__»suÉ] !ð
+__»jeù3
+)
+
+976 ++
+__»suÉ
+;
+
+977 \15
+__»suÉ
+;
+
+978
+ }
+}
+
+984 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡r¥n
+ || def\9aed
+_FORCE_INLINES
+
+
+985 #iâdeà
+_HAVE_STRING_ARCH_¡r¥n
+
+
+986 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+987 \ 1
+ #¡r¥n
+(
+s
+,
+acû±
+) \
+
+988
+__ex\8bnsiÚ__
+ \
+
+989 ({ \ 5
+__a0
+,
+__a1
+,
+__a2
+; \
+
+990 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+è&&
+ `__¡r\9ag2_1b±r_p
+ (accept) \
+
+991 ? ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s)) \
+
+992 ?
+ `__bu\9et\9a_¡r¥n
+ (
+s
+,
+acû±
+) \
+
+993 : ((
+__a0
+ = ((cÚ¡ \ 5*è(
+acû±
+))[0], __a0 == '\0') \
+
+994 ? ((\1eè(
+s
+), (
+size_t
+) 0) \
+
+995 : ((
+__a1
+ = ((cÚ¡ \ 5*è(
+acû±
+))[1], __a1 == '\0') \
+
+996 ?
+ `__¡r¥n_c1
+ (
+s
+,
+__a0
+) \
+
+997 : ((
+__a2
+ = ((cÚ¡ \ 5*è(
+acû±
+))[2], __a2 == '\0') \
+
+998 ?
+ `__¡r¥n_c2
+ (
+s
+,
+__a0
+,
+__a1
+) \
+
+999 : (((cÚ¡ \ 5*è(
+acû±
+))[3] == '\0' \
+
+1000 ?
+ `__¡r¥n_c3
+ (
+s
+,
+__a0
+,
+__a1
+,
+__a2
+) \
+
+1001 :
+ `__bu\9et\9a_¡r¥n
+ (
+s
+,
+acû±
+)))))) \
+
+1002 :
+ `__bu\9et\9a_¡r¥n
+ (
+s
+,
+acû±
+)); })
+
+ )
+
+1004 \ 1
+ #¡r¥n
+(
+s
+,
+acû±
+) \
+
+1005
+__ex\8bnsiÚ__
+ \
+
+1006 ({ \ 5
+__a0
+,
+__a1
+,
+__a2
+; \
+
+1007 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+è&&
+ `__¡r\9ag2_1b±r_p
+ (accept) \
+
+1008 ? ((
+__a0
+ = ((cÚ¡ \ 5*è(
+acû±
+))[0], __a0 == '\0') \
+
+1009 ? ((\1eè(
+s
+), (
+size_t
+) 0) \
+
+1010 : ((
+__a1
+ = ((cÚ¡ \ 5*è(
+acû±
+))[1], __a1 == '\0') \
+
+1011 ?
+ `__¡r¥n_c1
+ (
+s
+,
+__a0
+) \
+
+1012 : ((
+__a2
+ = ((cÚ¡ \ 5*è(
+acû±
+))[2], __a2 == '\0') \
+
+1013 ?
+ `__¡r¥n_c2
+ (
+s
+,
+__a0
+,
+__a1
+) \
+
+1014 : (((cÚ¡ \ 5*è(
+acû±
+))[3] == '\0' \
+
+1015 ?
+ `__¡r¥n_c3
+ (
+s
+,
+__a0
+,
+__a1
+,
+__a2
+) \
+
+1016 :
+ `¡r¥n
+ (
+s
+,
+acû±
+))))) \
+
+1017 :
+ `¡r¥n
+ (
+s
+,
+acû±
+)); })
+
+ )
+
+1021
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__acû±
+);
+
+1022
+__STRING_INLINE
+
+size_t
+
+
+1023
+ $__¡r¥n_c1
+ (cڡ \ 5*
+__s
+, \12
+__acû±
+)
+
+1025
+size_t
+
+__»suÉ
+ = 0;
+
+1027 \1f
+__s
+[
+__»suÉ
+] =ð
+__acû±
+)
+
+1028 ++
+__»suÉ
+;
+
+1029 \15
+__»suÉ
+;
+
+1030
+ }
+}
+
+1032
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_c2
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+,
+
+1033 \12
+__acû±2
+);
+
+1034
+__STRING_INLINE
+
+size_t
+
+
+1035
+ $__¡r¥n_c2
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+, \12
+__acû±2
+)
+
+1037
+size_t
+
+__»suÉ
+ = 0;
+
+1039 \1f
+__s
+[
+__»suÉ
+] =ð
+__acû±1
+ || __s[__»suÉ] =ð
+__acû±2
+)
+
+1040 ++
+__»suÉ
+;
+
+1041 \15
+__»suÉ
+;
+
+1042
+ }
+}
+
+1044
+__STRING_INLINE
+
+size_t
+
+__¡r¥n_c3
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+,
+
+1045 \12
+__acû±2
+, \12
+__acû±3
+);
+
+1046
+__STRING_INLINE
+
+size_t
+
+
+1047
+ $__¡r¥n_c3
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+, \12
+__acû±2
+, \12
+__acû±3
+)
+
+1049
+size_t
+
+__»suÉ
+ = 0;
+
+1051 \1f
+__s
+[
+__»suÉ
+] =ð
+__acû±1
+ || __s[__»suÉ] =ð
+__acû±2
+
+
+1052 ||
+__s
+[
+__»suÉ
+] =ð
+__acû±3
+)
+
+1053 ++
+__»suÉ
+;
+
+1054 \15
+__»suÉ
+;
+
+1055
+ }
+}
+
+1060 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡½brk
+ || def\9aed
+_FORCE_INLINES
+
+
+1061 #iâdeà
+_HAVE_STRING_ARCH_¡½brk
+
+
+1062 #ià
+__GNUC_PREREQ
+ (3, 2)
+
+1063 \ 1
+ #¡½brk
+(
+s
+,
+acû±
+) \
+
+1064
+__ex\8bnsiÚ__
+ \
+
+1065 ({ \ 5
+__a0
+,
+__a1
+,
+__a2
+; \
+
+1066 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+è&&
+ `__¡r\9ag2_1b±r_p
+ (accept) \
+
+1067 ? ((
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s)) \
+
+1068 ?
+ `__bu\9et\9a_¡½brk
+ (
+s
+,
+acû±
+) \
+
+1069 : ((
+__a0
+ = ((cÚ¡ \ 5*è(
+acû±
+))[0], __a0 == '\0') \
+
+1070 ? ((\1eè(
+s
+), (\ 5*è
+NULL
+) \
+
+1071 : ((
+__a1
+ = ((cÚ¡ \ 5*è(
+acû±
+))[1], __a1 == '\0') \
+
+1072 ?
+ `__bu\9et\9a_¡rchr
+ (
+s
+,
+__a0
+) \
+
+1073 : ((
+__a2
+ = ((cÚ¡ \ 5*è(
+acû±
+))[2], __a2 == '\0') \
+
+1074 ?
+ `__¡½brk_c2
+ (
+s
+,
+__a0
+,
+__a1
+) \
+
+1075 : (((cÚ¡ \ 5*è(
+acû±
+))[3] == '\0' \
+
+1076 ?
+ `__¡½brk_c3
+ (
+s
+,
+__a0
+,
+__a1
+,
+__a2
+) \
+
+1077 :
+ `__bu\9et\9a_¡½brk
+ (
+s
+,
+acû±
+)))))) \
+
+1078 :
+ `__bu\9et\9a_¡½brk
+ (
+s
+,
+acû±
+)); })
+
+ )
+
+1080 \ 1
+ #¡½brk
+(
+s
+,
+acû±
+) \
+
+1081
+__ex\8bnsiÚ__
+ \
+
+1082 ({ \ 5
+__a0
+,
+__a1
+,
+__a2
+; \
+
+1083 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+acû±
+è&&
+ `__¡r\9ag2_1b±r_p
+ (accept) \
+
+1084 ? ((
+__a0
+ = ((cÚ¡ \ 5*è(
+acû±
+))[0], __a0 == '\0') \
+
+1085 ? ((\1eè(
+s
+), (\ 5*è
+NULL
+) \
+
+1086 : ((
+__a1
+ = ((cÚ¡ \ 5*è(
+acû±
+))[1], __a1 == '\0') \
+
+1087 ?
+ `¡rchr
+ (
+s
+,
+__a0
+) \
+
+1088 : ((
+__a2
+ = ((cÚ¡ \ 5*è(
+acû±
+))[2], __a2 == '\0') \
+
+1089 ?
+ `__¡½brk_c2
+ (
+s
+,
+__a0
+,
+__a1
+) \
+
+1090 : (((cÚ¡ \ 5*è(
+acû±
+))[3] == '\0' \
+
+1091 ?
+ `__¡½brk_c3
+ (
+s
+,
+__a0
+,
+__a1
+,
+__a2
+) \
+
+1092 :
+ `¡½brk
+ (
+s
+,
+acû±
+))))) \
+
+1093 :
+ `¡½brk
+ (
+s
+,
+acû±
+)); })
+
+ )
+
+1097
+__STRING_INLINE
+ \ 5*
+__¡½brk_c2
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+,
+
+1098 \12
+__acû±2
+);
+
+1099
+__STRING_INLINE
+ \ 5*
+
+1100
+ $__¡½brk_c2
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+, \12
+__acû±2
+)
+
+1103 \1f*
+__s
+ !ð'\0' && *__ !ð
+__acû±1
+ && *__ !ð
+__acû±2
+)
+
+1104 ++
+__s
+;
+
+1105 \15 *
+__s
+ =ð'\0' ?
+NULL
+ : (\ 5*è(
+size_t
+) __s;
+
+1106
+ }
+}
+
+1108
+__STRING_INLINE
+ \ 5*
+__¡½brk_c3
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+,
+
+1109 \12
+__acû±2
+, \12
+__acû±3
+);
+
+1110
+__STRING_INLINE
+ \ 5*
+
+1111
+ $__¡½brk_c3
+ (cڡ \ 5*
+__s
+, \12
+__acû±1
+, \12
+__acû±2
+, \12
+__acû±3
+)
+
+1114 \1f*
+__s
+ !ð'\0' && *__ !ð
+__acû±1
+ && *__ !ð
+__acû±2
+
+
+1115 && *
+__s
+ !ð
+__acû±3
+)
+
+1116 ++
+__s
+;
+
+1117 \15 *
+__s
+ =ð'\0' ?
+NULL
+ : (\ 5*è(
+size_t
+) __s;
+
+1118
+ }
+}
+
+1124 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡r¡r
+ && !
+__GNUC_PREREQ
+ (2, 97)
+
+1125 \ 1
+ #¡r¡r
+(
+hay¡ack
+,
+ÃedË
+) \
+
+1126 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+ÃedË
+è&&
+ `__¡r\9ag2_1b±r_p
+ (needle) \
+
+1127 ? (((cÚ¡ \ 5*è(
+ÃedË
+))[0] == '\0' \
+
+1128 ? (\ 5*è(
+size_t
+è(
+hay¡ack
+) \
+
+1129 : (((cÚ¡ \ 5*è(
+ÃedË
+))[1] == '\0' \
+
+1130 ?
+ `¡rchr
+ (
+hay¡ack
+, \
+
+1131 ((cÚ¡ \ 5*è(
+ÃedË
+))[0]) \
+
+1132 :
+ `¡r¡r
+ (
+hay¡ack
+,
+ÃedË
+))) \
+
+1133 :
+ `¡r¡r
+ (
+hay¡ack
+,
+ÃedË
+)))
+
+ )
+
+1137 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡¹ok_r
+ || def\9aed
+_FORCE_INLINES
+
+
+1138 #iâdeà
+_HAVE_STRING_ARCH_¡¹ok_r
+
+
+1139 \ 1
+ #__¡¹ok_r
+(
+s
+,
+£p
+,
+Ãx\8d
+) \
+
+1140 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+£p
+è&&
+ `__¡r\9ag2_1b±r_p
+ (sep) \
+
+1141 && ((cÚ¡ \ 5*è(
+£p
+))[0] != '\0' \
+
+1142 && ((cÚ¡ \ 5*è(
+£p
+))[1] == '\0' \
+
+1143 ?
+ `__¡¹ok_r_1c
+ (
+s
+, ((cÚ¡ \ 5*è(
+£p
+))[0],
+Ãx\8d
+) \
+
+1144 :
+ `__¡¹ok_r
+ (
+s
+,
+£p
+,
+Ãx\8d
+)))
+
+ )
+
+1147
+__STRING_INLINE
+ \ 5*
+__¡¹ok_r_1c
+ (\ 5*
+__s
+, \ 5
+__£p
+, \ 5**
+__Ãx\8d
+);
+
+1148
+__STRING_INLINE
+ \ 5*
+
+1149
+ $__¡¹ok_r_1c
+ (\ 5*
+__s
+, \ 5
+__£p
+, \ 5**
+__Ãx\8d
+)
+
+1151 \ 5*
+__»suÉ
+;
+
+1152 ià(
+__s
+ =ð
+NULL
+)
+
+1153
+__s
+ = *
+__Ãx\8d
+;
+
+1154 \1f*
+__s
+ =ð
+__£p
+)
+
+1155 ++
+__s
+;
+
+1156
+__»suÉ
+ =
+NULL
+;
+
+1157 ià(*
+__s
+ != '\0')
+
+1159
+__»suÉ
+ =
+__s
+++;
+
+1160 \1f*
+__s
+ != '\0')
+
+1161 ià(*
+__s
+++ =ð
+__£p
+)
+
+1163
+__s
+[-1] = '\0';
+
+1167 *
+__Ãx\8d
+ =
+__s
+;
+
+1168 \15
+__»suÉ
+;
+
+1169
+ }
+}
+
+1170 #ifdeà
+__USE_POSIX
+
+
+1171 \ 1
+ #¡¹ok_r
+(
+s
+,
+£p
+,
+Ãx\8d
+è
+ `__¡¹ok_r
+ (s, s\95,\82ex\8d)
+
+ )
+
+1176 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡r£p
+ || def\9aed
+_FORCE_INLINES
+
+
+1177 #iâdeà
+_HAVE_STRING_ARCH_¡r£p
+
+
+1179 \r\ 5*
+__¡r£p_g
+ (\ 5**
+__¡r\9agp
+, cڡ \ 5*
+__d\96im
+);
+
+1180 \ 1
+ #__¡r£p
+(
+s
+,
+»jeù
+) \
+
+1181
+__ex\8bnsiÚ__
+ \
+
+1182 ({ \ 5
+__r0
+,
+__r1
+,
+__r2
+; \
+
+1183 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+»jeù
+è&&
+ `__¡r\9ag2_1b±r_p
+ (reject) \
+
+1184 && (
+__r0
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[0], \
+
+1185 ((cÚ¡ \ 5*è(
+»jeù
+))[0] != '\0') \
+
+1186 ? ((
+__r1
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[1], \
+
+1187 ((cÚ¡ \ 5*è(
+»jeù
+))[1] == '\0') \
+
+1188 ?
+ `__¡r£p_1c
+ (
+s
+,
+__r0
+) \
+
+1189 : ((
+__r2
+ = ((cÚ¡ \ 5*è(
+»jeù
+))[2], __r2 == '\0') \
+
+1190 ?
+ `__¡r£p_2c
+ (
+s
+,
+__r0
+,
+__r1
+) \
+
+1191 : (((cÚ¡ \ 5*è(
+»jeù
+))[3] == '\0' \
+
+1192 ?
+ `__¡r£p_3c
+ (
+s
+,
+__r0
+,
+__r1
+,
+__r2
+) \
+
+1193 :
+ `__¡r£p_g
+ (
+s
+,
+»jeù
+)))) \
+
+1194 :
+ `__¡r£p_g
+ (
+s
+,
+»jeù
+)); })
+
+ )
+
+1197
+__STRING_INLINE
+ \ 5*
+__¡r£p_1c
+ (\ 5**
+__s
+, \ 5
+__»jeù
+);
+
+1198
+__STRING_INLINE
+ \ 5*
+
+1199
+ $__¡r£p_1c
+ (\ 5**
+__s
+, \ 5
+__»jeù
+)
+
+1201 \ 5*
+__»tv®
+ = *
+__s
+;
+
+1202 ià(
+__»tv®
+ !ð
+NULL
+ && (*
+__s
+ =
+ `¡rchr
+ (__»tv®,
+__»jeù
+)) != NULL)
+
+1203 *(*
+__s
+)++ = '\0';
+
+1204 \15
+__»tv®
+;
+
+1205
+ }
+}
+
+1207
+__STRING_INLINE
+ \ 5*
+__¡r£p_2c
+ (\ 5**
+__s
+, \ 5
+__»jeù1
+, \ 5
+__»jeù2
+);
+
+1208
+__STRING_INLINE
+ \ 5*
+
+1209
+ $__¡r£p_2c
+ (\ 5**
+__s
+, \ 5
+__»jeù1
+, \ 5
+__»jeù2
+)
+
+1211 \ 5*
+__»tv®
+ = *
+__s
+;
+
+1212 ià(
+__»tv®
+ !ð
+NULL
+)
+
+1214 \ 5*
+__ý
+ =
+__»tv®
+;
+
+1217 ià(*
+__ý
+ == '\0')
+
+1219
+__ý
+ =
+NULL
+;
+
+1222 ià(*
+__ý
+ =ð
+__»jeù1
+ || *__ý =ð
+__»jeù2
+)
+
+1224 *
+__ý
+++ = '\0';
+
+1227 ++
+__ý
+;
+
+1229 *
+__s
+ =
+__ý
+;
+
+1231 \15
+__»tv®
+;
+
+1232
+ }
+}
+
+1234
+__STRING_INLINE
+ \ 5*
+__¡r£p_3c
+ (\ 5**
+__s
+, \ 5
+__»jeù1
+, \ 5
+__»jeù2
+,
+
+1235 \ 5
+__»jeù3
+);
+
+1236
+__STRING_INLINE
+ \ 5*
+
+1237
+ $__¡r£p_3c
+ (\ 5**
+__s
+, \ 5
+__»jeù1
+, \ 5
+__»jeù2
+, \ 5
+__»jeù3
+)
+
+1239 \ 5*
+__»tv®
+ = *
+__s
+;
+
+1240 ià(
+__»tv®
+ !ð
+NULL
+)
+
+1242 \ 5*
+__ý
+ =
+__»tv®
+;
+
+1245 ià(*
+__ý
+ == '\0')
+
+1247
+__ý
+ =
+NULL
+;
+
+1250 ià(*
+__ý
+ =ð
+__»jeù1
+ || *__ý =ð
+__»jeù2
+ || *__ý =ð
+__»jeù3
+)
+
+1252 *
+__ý
+++ = '\0';
+
+1255 ++
+__ý
+;
+
+1257 *
+__s
+ =
+__ý
+;
+
+1259 \15
+__»tv®
+;
+
+1260
+ }
+}
+
+1261 #ifdeà
+__USE_MISC
+
+
+1262 \ 1
+ #¡r£p
+(
+s
+,
+»jeù
+è
+ `__¡r£p
+ (s,\84ejeù)
+
+ )
+
+1269 #ifdeà
+__USE_MISC
+
+
+1271 #ià!
+def\9aed
+
+_HAVE_STRING_ARCH_¡rdup
+ || !def\9aed
+_HAVE_STRING_ARCH_¡ºdup
+
+
+1272 \ 1
+ #__Ãed_m®loc_ªd_ÿÎoc
+
+
+ )
+
+1273 \ 2
+ ~<¡dlib.h
+>
+
+1276 #iâdeà
+_HAVE_STRING_ARCH_¡rdup
+
+
+1278 \r\ 5*
+ $__¡rdup
+ (cڡ \ 5*
+__¡r\9ag
+è
+__THROW
+
+__©\8cibu\8b_m®loc__
+;
+
+1279 \ 1
+ #__¡rdup
+(
+s
+) \
+
+1280 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s) \
+
+1281 ? (((cÚ¡ \ 5*è(
+s
+))[0] == '\0' \
+
+1282 ? (\ 5*è
+ `ÿÎoc
+ ((
+size_t
+) 1, (size_t) 1) \
+
+1283 : ({
+size_t
+
+__Ën
+ =
+ `¡¾\92
+ (
+s
+) + 1; \
+
+1284 \ 5*
+__»tv®
+ = (\ 5*è
+ `m®loc
+ (
+__Ën
+); \
+
+1285 ià(
+__»tv®
+ !ð
+NULL
+) \
+
+1286
+__»tv®
+ = (\ 5*è
+ `memýy
+ (__»tv®,
+s
+,
+__Ën
+); \
+
+1287
+__»tv®
+;
+ }
+})) \
+
+1288 :
+ `__¡rdup
+ (
+s
+)))
+
+ )
+
+1290 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K8
+
+
+1291 \ 1
+ #¡rdup
+(
+s
+è
+ `__¡rdup
+ (s)
+
+ )
+
+1295 #iâdeà
+_HAVE_STRING_ARCH_¡ºdup
+
+
+1297 \r\ 5*
+ $__¡ºdup
+ (cڡ \ 5*
+__¡r\9ag
+,
+size_t
+
+__n
+)
+
+1298
+__THROW
+
+__©\8cibu\8b_m®loc__
+;
+
+1299 \ 1
+ #__¡ºdup
+(
+s
+,
+n
+) \
+
+1300 (
+ `__ex\8bnsiÚ__
+ (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+s
+è&&
+ `__¡r\9ag2_1b±r_p
+ (s) \
+
+1301 ? (((cÚ¡ \ 5*è(
+s
+))[0] == '\0' \
+
+1302 ? (\ 5*è
+ `ÿÎoc
+ ((
+size_t
+) 1, (size_t) 1) \
+
+1303 : ({
+size_t
+
+__Ën
+ =
+ `¡¾\92
+ (
+s
+) + 1; \
+
+1304
+size_t
+
+__n
+ = (
+n
+); \
+
+1305 \ 5*
+__»tv®
+; \
+
+1306 ià(
+__n
+ <
+__Ën
+) \
+
+1307
+__Ën
+ =
+__n
+ + 1; \
+
+1308
+__»tv®
+ = (\ 5*è
+ `m®loc
+ (
+__Ën
+); \
+
+1309 ià(
+__»tv®
+ !ð
+NULL
+) \
+
+1311
+__»tv®
+[
+__Ën
+ - 1] = '\0'; \
+
+1312
+__»tv®
+ = (\ 5*è
+ `memýy
+ (__»tv®,
+s
+, \
+
+1313
+__Ën
+ - 1); \
+
+1315
+__»tv®
+;
+ }
+})) \
+
+1316 :
+ `__¡ºdup
+ (
+s
+,
+n
+)))
+
+ )
+
+1318 #ifdeà
+__USE_XOPEN2K8
+
+
+1319 \ 1
+ #¡ºdup
+(
+s
+,
+n
+è
+ `__¡ºdup
+ (s,\82)
+
+ )
+
+1325 #iâdeà
+_FORCE_INLINES
+
+
+1326 #undeà
+__STRING_INLINE
+
+
+ @/usr/include/bits/string3.h
+
+18 #iâdeà
+_STRING_H
+
+
+22 #ià!
+__GNUC_PREREQ
+ (5,0)
+
+23
+__w¬ndeþ
+ (
+__w¬n_mem£t_z\94o_Ën
+,
+
+27 #iâdeà
+__ýlu¥lus
+
+
+31 #undeà
+memýy
+
+
+32 #undeà
+memmove
+
+
+33 #undeà
+mem£t
+
+
+34 #undeà
+¡rÿt
+
+
+35 #undeà
+¡rýy
+
+
+36 #undeà
+¡ºÿt
+
+
+37 #undeà
+¡ºýy
+
+
+38 #ifdeà
+__USE_GNU
+
+
+39 #undeà
+mempýy
+
+
+40 #undeà
+¡pýy
+
+
+42 #ifdeà
+__USE_MISC
+
+
+43 #undeà
+bcÝy
+
+
+44 #undeà
+bz\94o
+
+
+49
+__fÜtify_funùiÚ
+ \1e*
+
+50
+__NTH
+ (
+ $memýy
+ (\1e*
+__»¡riù
+
+__de¡
+, cÚ¡ \1e*__»¡riù
+__¤c
+,
+
+51
+size_t
+
+__Ën
+))
+
+53 \15
+ `__bu\9et\9a___memýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos0
+ (__dest));
+
+54
+ }
+}
+
+56
+__fÜtify_funùiÚ
+ \1e*
+
+57
+__NTH
+ (
+ $memmove
+ (\1e*
+__de¡
+, cڡ \1e*
+__¤c
+,
+size_t
+
+__Ën
+))
+
+59 \15
+ `__bu\9et\9a___memmove_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos0
+ (__dest));
+
+60
+ }
+}
+
+62 #ifdeà
+__USE_GNU
+
+
+63
+__fÜtify_funùiÚ
+ \1e*
+
+64
+__NTH
+ (
+ $mempýy
+ (\1e*
+__»¡riù
+
+__de¡
+, cÚ¡ \1e*__»¡riù
+__¤c
+,
+
+65
+size_t
+
+__Ën
+))
+
+67 \15
+ `__bu\9et\9a___mempýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos0
+ (__dest));
+
+68
+ }
+}
+
+77
+__fÜtify_funùiÚ
+ \1e*
+
+78
+__NTH
+ (
+ $mem£t
+ (\1e*
+__de¡
+, \12
+__ch
+,
+size_t
+
+__Ën
+))
+
+82 #ià!
+ `__GNUC_PREREQ
+ (5,0)
+
+83 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+) && __len == 0
+
+84 && (!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__ch
+) || __ch != 0))
+
+86
+ `__w¬n_mem£t_z\94o_Ën
+ ();
+
+87 \15
+__de¡
+;
+
+90 \15
+ `__bu\9et\9a___mem£t_chk
+ (
+__de¡
+,
+__ch
+,
+__Ën
+,
+ `__bos0
+ (__dest));
+
+91
+ }
+}
+
+93 #ifdeà
+__USE_MISC
+
+
+94
+__fÜtify_funùiÚ
+ \1e
+
+95
+__NTH
+ (
+ $bcÝy
+ (cڡ \1e*
+__¤c
+, \1e*
+__de¡
+,
+size_t
+
+__Ën
+))
+
+97 (\1eè
+ `__bu\9et\9a___memmove_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos0
+ (__dest));
+
+98
+ }
+}
+
+100
+__fÜtify_funùiÚ
+ \1e
+
+101
+__NTH
+ (
+ $bz\94o
+ (\1e*
+__de¡
+,
+size_t
+
+__Ën
+))
+
+103 (\1eè
+ `__bu\9et\9a___mem£t_chk
+ (
+__de¡
+, '\0',
+__Ën
+,
+ `__bos0
+ (__dest));
+
+104
+ }
+}
+
+107
+__fÜtify_funùiÚ
+ \ 5*
+
+108
+__NTH
+ (
+ $¡rýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+))
+
+110 \15
+ `__bu\9et\9a___¡rýy_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__dest));
+
+111
+ }
+}
+
+113 #ifdeà
+__USE_GNU
+
+
+114
+__fÜtify_funùiÚ
+ \ 5*
+
+115
+__NTH
+ (
+ $¡pýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+))
+
+117 \15
+ `__bu\9et\9a___¡pýy_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__dest));
+
+118
+ }
+}
+
+122
+__fÜtify_funùiÚ
+ \ 5*
+
+123
+__NTH
+ (
+ $¡ºýy
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+,
+
+124
+size_t
+
+__Ën
+))
+
+126 \15
+ `__bu\9et\9a___¡ºýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos
+ (__dest));
+
+127
+ }
+}
+
+130 \r\ 5*
+ $__¡²ýy_chk
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__n
+,
+
+131
+size_t
+
+__de¡Ën
+è
+__THROW
+;
+
+132 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__¡²ýy_®\9fs
+, (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+
+133
+size_t
+
+__n
+),
+¡²ýy
+);
+
+135
+__fÜtify_funùiÚ
+ \ 5*
+
+136
+ `__NTH
+ (
+ $¡²ýy
+ (\ 5*
+__de¡
+, cڡ \ 5*
+__¤c
+,
+size_t
+
+__n
+))
+
+138 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1
+
+139 && (!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+è|| __À>
+ `__bos
+ (
+__de¡
+)))
+
+140 \15
+ `__¡²ýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+ `__bos
+ (__dest));
+
+141 \15
+ `__¡²ýy_®\9fs
+ (
+__de¡
+,
+__¤c
+,
+__n
+);
+
+142
+ }
+}
+
+145
+__fÜtify_funùiÚ
+ \ 5*
+
+146
+__NTH
+ (
+ $¡rÿt
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+))
+
+148 \15
+ `__bu\9et\9a___¡rÿt_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__dest));
+
+149
+ }
+}
+
+152
+__fÜtify_funùiÚ
+ \ 5*
+
+153
+__NTH
+ (
+ $¡ºÿt
+ (\ 5*
+__»¡riù
+
+__de¡
+, cÚ¡ \ 5*__»¡riù
+__¤c
+,
+
+154
+size_t
+
+__Ën
+))
+
+156 \15
+ `__bu\9et\9a___¡ºÿt_chk
+ (
+__de¡
+,
+__¤c
+,
+__Ën
+,
+ `__bos
+ (__dest));
+
+157
+ }
+}
+
+ @/usr/include/bits/sys_errlist.h
+
+19 #iâdeà
+_STDIO_H
+
+
+25 #ifdeà
+__USE_MISC
+
+
+26 \r\12
+sys_ü
+;
+
+27 \rcڡ \ 5*cڡ
+sys_\94¾i¡
+[];
+
+29 #ifdeà
+__USE_GNU
+
+
+30 \r\12
+_sys_ü
+;
+
+31 \rcڡ \ 5*cڡ
+_sys_\94¾i¡
+[];
+
+ @/usr/include/bits/time.h
+
+23 #ià
+def\9aed
+
+__Ãed_timev®
+ || def\9aed
+__USE_GNU
+
+
+24 #iâdeà
+_STRUCT_TIMEVAL
+
+
+25 \ 1
+ #_STRUCT_TIMEVAL
+ 1
+
+ )
+
+26 \ 2
+ ~<b\99s/ty³s.h
+>
+
+30 \19
+ stimev®
+
+
+32
+__time_t
+
+ mtv_£c
+;
+
+33
+__su£cÚds_t
+
+ mtv_u£c
+;
+
+38 #iâdeà
+__Ãed_timev®
+
+
+39 #iâdeà
+_BITS_TIME_H
+
+
+40 \ 1
+ #_BITS_TIME_H
+ 1
+
+ )
+
+48 \ 1
+ #CLOCKS_PER_SEC
+ ((
+þock_t
+è1000000)
+
+ )
+
+50 #ià(!
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_POSIX
+) \
+
+51 && !
+def\9aed
+
+ g__USE_XOPEN2K
+
+
+54 \ 2
+ ~<b\99s/ty³s.h
+>
+
+55 \r\13\12
+__syscÚf
+ (\12);
+
+56 \ 1
+ #CLK_TCK
+ ((
+__þock_t
+è
+ `__syscÚf
+ (2)è
+
+ )
+
+59 #ifdeà
+__USE_POSIX199309
+
+
+61 \ 1
+ #CLOCK_REALTIME
+ 0
+
+ )
+
+63 \ 1
+ #CLOCK_MONOTONIC
+ 1
+
+ )
+
+65 \ 1
+ #CLOCK_PROCESS_CPUTIME_ID
+ 2
+
+ )
+
+67 \ 1
+ #CLOCK_THREAD_CPUTIME_ID
+ 3
+
+ )
+
+69 \ 1
+ #CLOCK_MONOTONIC_RAW
+ 4
+
+ )
+
+71 \ 1
+ #CLOCK_REALTIME_COARSE
+ 5
+
+ )
+
+73 \ 1
+ #CLOCK_MONOTONIC_COARSE
+ 6
+
+ )
+
+75 \ 1
+ #CLOCK_BOOTTIME
+ 7
+
+ )
+
+77 \ 1
+ #CLOCK_REALTIME_ALARM
+ 8
+
+ )
+
+79 \ 1
+ #CLOCK_BOOTTIME_ALARM
+ 9
+
+ )
+
+81 \ 1
+ #CLOCK_TAI
+ 11
+
+ )
+
+84 \ 1
+ #TIMER_ABSTIME
+ 1
+
+ )
+
+87 #ifdeà
+__USE_GNU
+
+
+88 \ 2
+ ~<b\99s/timex.h
+>
+
+90
+__BEGIN_DECLS
+
+
+93 \r\12
+ $þock_adjtime
+ (
+__þockid_t
+
+__þock_id
+, \19
+timex
+ *
+__utx
+è
+__THROW
+;
+
+95
+__END_DECLS
+
+
+101 #undeà
+__Ãed_timev®
+
+
+ @/usr/include/bits/types.h
+
+23 #iâdef
+_BITS_TYPES_H
+
+
+24 \ 1
+ #_BITS_TYPES_H
+ 1
+
+ )
+
+26 \ 2
+ ~<ã©u»s.h
+>
+
+27 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+30 \e\1d\ 5
+ t__u_ch¬
+;
+
+31 \e\1d\16\12
+ t__u_shÜt
+;
+
+32 \e\1d\12
+ t__u_\9at
+;
+
+33 \e\1d\13\12
+ t__u_lÚg
+;
+
+36 \esigÃd \ 5
+ t__\9at8_t
+;
+
+37 \e\1d\ 5
+ t__u\9at8_t
+;
+
+38 \esigÃd \16\12
+ t__\9at16_t
+;
+
+39 \e\1d\16\12
+ t__u\9at16_t
+;
+
+40 \esigÃd \12
+ t__\9at32_t
+;
+
+41 \e\1d\12
+ t__u\9at32_t
+;
+
+42 #ià
+__WORDSIZE
+ == 64
+
+43 \esigÃd \13\12
+ t__\9at64_t
+;
+
+44 \e\1d\13\12
+ t__u\9at64_t
+;
+
+46
+__ex\8bnsiÚ__
+ \esigÃd \13\13\12
+ t__\9at64_t
+;
+
+47
+__ex\8bnsiÚ__
+ \e\1d\13\13\12
+ t__u\9at64_t
+;
+
+51 #ià
+__WORDSIZE
+ == 64
+
+52 \e\13\12
+ t__quad_t
+;
+
+53 \e\1d\13\12
+ t__u_quad_t
+;
+
+55
+__ex\8bnsiÚ__
+ \e\13\13\12
+ t__quad_t
+;
+
+56
+__ex\8bnsiÚ__
+ \e\1d\13\13\12
+ t__u_quad_t
+;
+
+89 \ 1
+ #__S16_TYPE
+ \16\12
+
+ )
+
+90 \ 1
+ #__U16_TYPE
+ \1d\16\12
+
+ )
+
+91 \ 1
+ #__S32_TYPE
+ \12
+
+ )
+
+92 \ 1
+ #__U32_TYPE
+ \1d\12
+
+ )
+
+93 \ 1
+ #__SLONGWORD_TYPE
+ \13\12
+
+ )
+
+94 \ 1
+ #__ULONGWORD_TYPE
+ \1d\13\12
+
+ )
+
+95 #ià
+__WORDSIZE
+ == 32
+
+96 \ 1
+ #__SQUAD_TYPE
+
+__quad_t
+
+
+ )
+
+97 \ 1
+ #__UQUAD_TYPE
+
+__u_quad_t
+
+
+ )
+
+98 \ 1
+ #__SWORD_TYPE
+ \12
+
+ )
+
+99 \ 1
+ #__UWORD_TYPE
+ \1d\12
+
+ )
+
+100 \ 1
+ #__SLONG32_TYPE
+ \13\12
+
+ )
+
+101 \ 1
+ #__ULONG32_TYPE
+ \1d\13\12
+
+ )
+
+102 \ 1
+ #__S64_TYPE
+
+__quad_t
+
+
+ )
+
+103 \ 1
+ #__U64_TYPE
+
+__u_quad_t
+
+
+ )
+
+106 \ 1
+ #__STD_TYPE
+
+__ex\8bnsiÚ__
+ \e
+
+ )
+
+107 #\96ià
+__WORDSIZE
+ == 64
+
+108 \ 1
+ t__SQUAD_TYPE
+ \13\12
+
+ )
+
+109 \ 1
+ t__UQUAD_TYPE
+ \1d\13\12
+
+ )
+
+110 \ 1
+ t__SWORD_TYPE
+ \13\12
+
+ )
+
+111 \ 1
+ t__UWORD_TYPE
+ \1d\13\12
+
+ )
+
+112 \ 1
+ t__SLONG32_TYPE
+ \12
+
+ )
+
+113 \ 1
+ t__ULONG32_TYPE
+ \1d\12
+
+ )
+
+114 \ 1
+ t__S64_TYPE
+ \13\12
+
+ )
+
+115 \ 1
+ t__U64_TYPE
+ \1d\13\12
+
+ )
+
+117 \ 1
+ t__STD_TYPE
+ \e
+
+ )
+
+121 \ 2
+ ~<b\99s/ty³sizes.h
+>
+
+124
+__STD_TYPE
+
+ t__DEV_T_TYPE
+
+ t__dev_t
+;
+
+125
+__STD_TYPE
+
+__UID_T_TYPE
+
+ g__uid_t
+;
+
+126
+__STD_TYPE
+
+__GID_T_TYPE
+
+ g__gid_t
+;
+
+127
+__STD_TYPE
+
+__INO_T_TYPE
+
+ g__\9ao_t
+;
+
+128
+__STD_TYPE
+
+__INO64_T_TYPE
+
+ g__\9ao64_t
+;
+
+129
+__STD_TYPE
+
+__MODE_T_TYPE
+
+ g__mode_t
+;
+
+130
+__STD_TYPE
+
+__NLINK_T_TYPE
+
+ g__ƚk_t
+;
+
+131
+__STD_TYPE
+
+__OFF_T_TYPE
+
+ g__off_t
+;
+
+132
+__STD_TYPE
+
+__OFF64_T_TYPE
+
+ g__off64_t
+;
+
+133
+__STD_TYPE
+
+__PID_T_TYPE
+
+ g__pid_t
+;
+
+134
+__STD_TYPE
+
+__FSID_T_TYPE
+
+ g__fsid_t
+;
+
+135
+__STD_TYPE
+
+__CLOCK_T_TYPE
+
+ g__þock_t
+;
+
+136
+__STD_TYPE
+
+__RLIM_T_TYPE
+
+ g__¾im_t
+;
+
+137
+__STD_TYPE
+
+__RLIM64_T_TYPE
+
+ g__¾im64_t
+;
+
+138
+__STD_TYPE
+
+__ID_T_TYPE
+
+ g__id_t
+;
+
+139
+__STD_TYPE
+
+__TIME_T_TYPE
+
+ g__time_t
+;
+
+140
+__STD_TYPE
+
+__USECONDS_T_TYPE
+
+ g__u£cÚds_t
+;
+
+141
+__STD_TYPE
+
+__SUSECONDS_T_TYPE
+
+ g__su£cÚds_t
+;
+
+143
+__STD_TYPE
+
+__DADDR_T_TYPE
+
+ g__daddr_t
+;
+
+144
+__STD_TYPE
+
+__KEY_T_TYPE
+
+ g__key_t
+;
+
+147
+__STD_TYPE
+
+__CLOCKID_T_TYPE
+
+ g__þockid_t
+;
+
+150
+__STD_TYPE
+
+__TIMER_T_TYPE
+
+ g__tim\94_t
+;
+
+153
+__STD_TYPE
+
+__BLKSIZE_T_TYPE
+
+ g__blksize_t
+;
+
+158
+__STD_TYPE
+
+__BLKCNT_T_TYPE
+
+ g__blkút_t
+;
+
+159
+__STD_TYPE
+
+__BLKCNT64_T_TYPE
+
+ g__blkút64_t
+;
+
+162
+__STD_TYPE
+
+__FSBLKCNT_T_TYPE
+
+ g__fsblkút_t
+;
+
+163
+__STD_TYPE
+
+__FSBLKCNT64_T_TYPE
+
+ g__fsblkút64_t
+;
+
+166
+__STD_TYPE
+
+__FSFILCNT_T_TYPE
+
+ g__fsf\9eút_t
+;
+
+167
+__STD_TYPE
+
+__FSFILCNT64_T_TYPE
+
+ g__fsf\9eút64_t
+;
+
+170
+__STD_TYPE
+
+__FSWORD_T_TYPE
+
+ g__fswÜd_t
+;
+
+172
+__STD_TYPE
+
+__SSIZE_T_TYPE
+
+ g__ssize_t
+;
+
+175
+__STD_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+ g__sysÿÎ_¦Úg_t
+;
+
+177
+__STD_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+ g__sysÿÎ_ulÚg_t
+;
+
+181 \e
+__off64_t
+
+ t__loff_t
+;
+
+182 \e
+__quad_t
+ *
+ t__qaddr_t
+;
+
+183 \e\ 5*
+ t__ÿddr_t
+;
+
+186
+__STD_TYPE
+
+__SWORD_TYPE
+
+ g__\9a\8d\8c_t
+;
+
+189
+__STD_TYPE
+
+__U32_TYPE
+
+ g__sockËn_t
+;
+
+192 #undeà
+__STD_TYPE
+
+
+ @/usr/include/bits/unistd.h
+
+19 #iâdeà
+_UNISTD_H
+
+
+23 \r
+ssize_t
+
+ $__»ad_chk
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+24
+size_t
+
+__buæ\92
+è
+__wur
+;
+
+25 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__»ad_®\9fs
+, (\12
+__fd
+, \1e*
+__buf
+,
+
+26
+size_t
+
+__nby\8bs
+),
+»ad
+è
+__wur
+;
+
+27 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__»ad_chk_w¬n
+,
+
+28 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+29
+size_t
+
+__buæ\92
+),
+__»ad_chk
+)
+
+30
+__wur
+
+ `__w‚\89r
+ ("read called with bigger\86ength\81han size of "
+
+33
+__fÜtify_funùiÚ
+
+__wur
+
+ssize_t
+
+
+34
+ $»ad
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+)
+
+36 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+38 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__nby\8bs
+))
+
+39 \15
+ `__»ad_chk
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+ `__bos0
+ (__buf));
+
+41 ià(
+__nby\8bs
+ >
+ `__bos0
+ (
+__buf
+))
+
+42 \15
+ `__»ad_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+ `__bos0
+ (__buf));
+
+44 \15
+ `__»ad_®\9fs
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+);
+
+45
+ }
+}
+
+47 #ifdeà
+__USE_UNIX98
+
+
+48 \r
+ssize_t
+
+ $__´\97d_chk
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+49
+__off_t
+
+__off£t
+,
+size_t
+
+__bufsize
+è
+__wur
+;
+
+50 \r
+ssize_t
+
+ $__´\97d64_chk
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+51
+__off64_t
+
+__off£t
+,
+size_t
+
+__bufsize
+è
+__wur
+;
+
+52 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__´\97d_®\9fs
+,
+
+53 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+54
+__off_t
+
+__off£t
+),
+´\97d
+è
+__wur
+;
+
+55 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__´\97d64_®\9fs
+,
+
+56 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+57
+__off64_t
+
+__off£t
+),
+´\97d64
+è
+__wur
+;
+
+58 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__´\97d_chk_w¬n
+,
+
+59 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+60
+__off_t
+
+__off£t
+,
+size_t
+
+__bufsize
+),
+__´\97d_chk
+)
+
+61
+__wur
+
+ `__w‚\89r
+ ("pread called with bigger\86ength\81han size of "
+
+63 \r
+ssize_t
+
+ `__REDIRECT
+ (
+__´\97d64_chk_w¬n
+,
+
+64 (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+
+65
+__off64_t
+
+__off£t
+,
+size_t
+
+__bufsize
+),
+
+66
+__´\97d64_chk
+)
+
+67
+__wur
+
+ `__w‚\89r
+ ("pread64 called with bigger\86ength\81han size of "
+
+70 #iâdeà
+__USE_FILE_OFFSET64
+
+
+71
+__fÜtify_funùiÚ
+
+__wur
+
+ssize_t
+
+
+72
+ $´\97d
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+__off_t
+
+__off£t
+)
+
+74 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+76 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__nby\8bs
+))
+
+77 \15
+ `__´\97d_chk
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+ `__bos0
+ (__buf));
+
+79 iàÐ
+__nby\8bs
+ >
+ `__bos0
+ (
+__buf
+))
+
+80 \15
+ `__´\97d_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+
+81
+ `__bos0
+ (
+__buf
+));
+
+83 \15
+ `__´\97d_®\9fs
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+);
+
+84
+ }
+}
+
+86
+__fÜtify_funùiÚ
+
+__wur
+
+ssize_t
+
+
+87
+ $´\97d
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+__off64_t
+
+__off£t
+)
+
+89 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+91 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__nby\8bs
+))
+
+92 \15
+ `__´\97d64_chk
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+ `__bos0
+ (__buf));
+
+94 iàÐ
+__nby\8bs
+ >
+ `__bos0
+ (
+__buf
+))
+
+95 \15
+ `__´\97d64_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+
+96
+ `__bos0
+ (
+__buf
+));
+
+99 \15
+ `__´\97d64_®\9fs
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+);
+
+100
+ }
+}
+
+103 #ifdeà
+__USE_LARGEFILE64
+
+
+104
+__fÜtify_funùiÚ
+
+__wur
+
+ssize_t
+
+
+105
+ $´\97d64
+ (\12
+__fd
+, \1e*
+__buf
+,
+size_t
+
+__nby\8bs
+,
+__off64_t
+
+__off£t
+)
+
+107 ià(
+ `__bos0
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+109 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__nby\8bs
+))
+
+110 \15
+ `__´\97d64_chk
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+ `__bos0
+ (__buf));
+
+112 iàÐ
+__nby\8bs
+ >
+ `__bos0
+ (
+__buf
+))
+
+113 \15
+ `__´\97d64_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+,
+
+114
+ `__bos0
+ (
+__buf
+));
+
+117 \15
+ `__´\97d64_®\9fs
+ (
+__fd
+,
+__buf
+,
+__nby\8bs
+,
+__off£t
+);
+
+118
+ }
+}
+
+122 #ià
+def\9aed
+
+__USE_XOPEN_EXTENDED
+ || def\9aed
+__USE_XOPEN2K
+
+
+123 \r
+ssize_t
+
+ $__»adl\9ak_chk
+ (cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+124 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+,
+
+125
+size_t
+
+__buæ\92
+)
+
+126
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+127 \r
+ssize_t
+
+ `__REDIRECT_NTH
+ (
+__»adl\9ak_®\9fs
+,
+
+128 (cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+129 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+),
+»adl\9ak
+)
+
+130
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+;
+
+131 \r
+ssize_t
+
+ `__REDIRECT_NTH
+ (
+__»adl\9ak_chk_w¬n
+,
+
+132 (cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+133 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+,
+
+134
+size_t
+
+__buæ\92
+),
+__»adl\9ak_chk
+)
+
+135
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+
+ `__w‚\89r
+ ("readlink called with bigger\86ength "
+
+138
+__fÜtify_funùiÚ
+
+ `__nÚnuÎ
+ ((1, 2)è
+__wur
+
+ssize_t
+
+
+139
+ `__NTH
+ (
+ $»adl\9ak
+ (cڡ \ 5*
+__»¡riù
+
+__·th
+, \ 5*__»¡riù
+__buf
+,
+
+140
+size_t
+
+__Ën
+))
+
+142 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+144 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+145 \15
+ `__»adl\9ak_chk
+ (
+__·th
+,
+__buf
+,
+__Ën
+,
+ `__bos
+ (__buf));
+
+147 iàÐ
+__Ën
+ >
+ `__bos
+ (
+__buf
+))
+
+148 \15
+ `__»adl\9ak_chk_w¬n
+ (
+__·th
+,
+__buf
+,
+__Ën
+,
+ `__bos
+ (__buf));
+
+150 \15
+ `__»adl\9ak_®\9fs
+ (
+__·th
+,
+__buf
+,
+__Ën
+);
+
+151
+ }
+}
+
+154 #ifdeà
+__USE_ATFILE
+
+
+155 \r
+ssize_t
+
+ $__»adl\9ak©_chk
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+156 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+,
+
+157
+size_t
+
+__buæ\92
+)
+
+158
+__THROW
+
+ `__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+159 \r
+ssize_t
+
+ `__REDIRECT_NTH
+ (
+__»adl\9ak©_®\9fs
+,
+
+160 (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+161 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+),
+
+162
+»adl\9ak©
+)
+
+163
+ `__nÚnuÎ
+ ((2, 3)è
+__wur
+;
+
+164 \r
+ssize_t
+
+ `__REDIRECT_NTH
+ (
+__»adl\9ak©_chk_w¬n
+,
+
+165 (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+166 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+,
+
+167
+size_t
+
+__buæ\92
+),
+__»adl\9ak©_chk
+)
+
+168
+ `__nÚnuÎ
+ ((2, 3)è
+__wur
+
+ `__w‚\89r
+ ("readlinkat called with bigger "
+
+172
+__fÜtify_funùiÚ
+
+ `__nÚnuÎ
+ ((2, 3)è
+__wur
+
+ssize_t
+
+
+173
+ `__NTH
+ (
+ $»adl\9ak©
+ (\12
+__fd
+, cڡ \ 5*
+__»¡riù
+
+__·th
+,
+
+174 \ 5*
+__»¡riù
+
+__buf
+,
+size_t
+
+__Ën
+))
+
+176 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+178 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+179 \15
+ `__»adl\9ak©_chk
+ (
+__fd
+,
+__·th
+,
+__buf
+,
+__Ën
+,
+ `__bos
+ (__buf));
+
+181 ià(
+__Ën
+ >
+ `__bos
+ (
+__buf
+))
+
+182 \15
+ `__»adl\9ak©_chk_w¬n
+ (
+__fd
+,
+__·th
+,
+__buf
+,
+__Ën
+,
+
+183
+ `__bos
+ (
+__buf
+));
+
+185 \15
+ `__»adl\9ak©_®\9fs
+ (
+__fd
+,
+__·th
+,
+__buf
+,
+__Ën
+);
+
+186
+ }
+}
+
+189 \r\ 5*
+ $__g\91cwd_chk
+ (\ 5*
+__buf
+,
+size_t
+
+__size
+, size_\88
+__buæ\92
+)
+
+190
+__THROW
+
+__wur
+;
+
+191 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__g\91cwd_®\9fs
+,
+
+192 (\ 5*
+__buf
+,
+size_t
+
+__size
+),
+g\91cwd
+è
+__wur
+;
+
+193 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__g\91cwd_chk_w¬n
+,
+
+194 (\ 5*
+__buf
+,
+size_t
+
+__size
+, size_\88
+__buæ\92
+),
+
+195
+__g\91cwd_chk
+)
+
+196
+__wur
+
+ `__w‚\89r
+ ("getcwd caller with bigger\86ength\81han size of "
+
+199
+__fÜtify_funùiÚ
+
+__wur
+ \ 5*
+
+200
+ `__NTH
+ (
+ $g\91cwd
+ (\ 5*
+__buf
+,
+size_t
+
+__size
+))
+
+202 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+204 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__size
+))
+
+205 \15
+ `__g\91cwd_chk
+ (
+__buf
+,
+__size
+,
+ `__bos
+ (__buf));
+
+207 ià(
+__size
+ >
+ `__bos
+ (
+__buf
+))
+
+208 \15
+ `__g\91cwd_chk_w¬n
+ (
+__buf
+,
+__size
+,
+ `__bos
+ (__buf));
+
+210 \15
+ `__g\91cwd_®\9fs
+ (
+__buf
+,
+__size
+);
+
+211
+ }
+}
+
+213 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_XOPEN_EXTENDED
+
+
+214 \r\ 5*
+ $__g\91wd_chk
+ (\ 5*
+__buf
+,
+size_t
+
+buæ\92
+)
+
+215
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+216 \r\ 5*
+ `__REDIRECT_NTH
+ (
+__g\91wd_w¬n
+, (\ 5*
+__buf
+),
+g\91wd
+)
+
+217
+ `__nÚnuÎ
+ ((1)è
+__wur
+
+ `__w‚\89r
+ ("please use getcwd instead,\87s getwd "
+
+220
+__fÜtify_funùiÚ
+
+ `__nÚnuÎ
+ ((1)è
+__©\8cibu\8b_d\95»ÿ\8bd__
+
+__wur
+ \ 5*
+
+221
+ `__NTH
+ (
+ $g\91wd
+ (\ 5*
+__buf
+))
+
+223 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+224 \15
+ `__g\91wd_chk
+ (
+__buf
+,
+ `__bos
+ (__buf));
+
+225 \15
+ `__g\91wd_w¬n
+ (
+__buf
+);
+
+226
+ }
+}
+
+229 \r
+size_t
+
+ $__cÚf¡r_chk
+ (\12
+__Çme
+, \ 5*
+__buf
+,
+size_t
+
+__Ën
+,
+
+230
+size_t
+
+__buæ\92
+è
+__THROW
+;
+
+231 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__cÚf¡r_®\9fs
+, (\12
+__Çme
+, \ 5*
+__buf
+,
+
+232
+size_t
+
+__Ën
+),
+cÚf¡r
+);
+
+233 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__cÚf¡r_chk_w¬n
+,
+
+234 (\12
+__Çme
+, \ 5*
+__buf
+,
+size_t
+
+__Ën
+,
+
+235
+size_t
+
+__buæ\92
+),
+__cÚf¡r_chk
+)
+
+236
+ `__w‚\89r
+ ("confstr called with bigger\86ength\81han size of destination "
+
+239
+__fÜtify_funùiÚ
+
+size_t
+
+
+240
+ `__NTH
+ (
+ $cÚf¡r
+ (\12
+__Çme
+, \ 5*
+__buf
+,
+size_t
+
+__Ën
+))
+
+242 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+244 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+245 \15
+ `__cÚf¡r_chk
+ (
+__Çme
+,
+__buf
+,
+__Ën
+,
+ `__bos
+ (__buf));
+
+247 ià(
+ `__bos
+ (
+__buf
+è<
+__Ën
+)
+
+248 \15
+ `__cÚf¡r_chk_w¬n
+ (
+__Çme
+,
+__buf
+,
+__Ën
+,
+ `__bos
+ (__buf));
+
+250 \15
+ `__cÚf¡r_®\9fs
+ (
+__Çme
+,
+__buf
+,
+__Ën
+);
+
+251
+ }
+}
+
+254 \r\12
+ $__g\91groups_chk
+ (\12
+__size
+,
+__gid_t
+
+__li¡
+[],
+size_t
+
+__li¡Ën
+)
+
+255
+__THROW
+
+__wur
+;
+
+256 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91groups_®\9fs
+, (\12
+__size
+,
+__gid_t
+
+__li¡
+[]),
+
+257
+g\91groups
+è
+__wur
+;
+
+258 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91groups_chk_w¬n
+,
+
+259 (\12
+__size
+,
+__gid_t
+
+__li¡
+[],
+size_t
+
+__li¡Ën
+),
+
+260
+__g\91groups_chk
+)
+
+261
+__wur
+
+ `__w‚\89r
+ ("getgroups called with bigger group count\81han what "
+
+264
+__fÜtify_funùiÚ
+ \12
+
+265
+ `__NTH
+ (
+ $g\91groups
+ (\12
+__size
+,
+__gid_t
+
+__li¡
+[]))
+
+267 ià(
+ `__bos
+ (
+__li¡
+è!ð(
+size_t
+) -1)
+
+269 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__size
+) || __size < 0)
+
+270 \15
+ `__g\91groups_chk
+ (
+__size
+,
+__li¡
+,
+ `__bos
+ (__list));
+
+272 ià(
+__size
+ * \17 (
+__gid_t
+è>
+ `__bos
+ (
+__li¡
+))
+
+273 \15
+ `__g\91groups_chk_w¬n
+ (
+__size
+,
+__li¡
+,
+ `__bos
+ (__list));
+
+275 \15
+ `__g\91groups_®\9fs
+ (
+__size
+,
+__li¡
+);
+
+276
+ }
+}
+
+279 \r\12
+ $__\89yÇme_r_chk
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+,
+
+280
+size_t
+
+__ėl
+è
+__THROW
+
+ `__nÚnuÎ
+ ((2));
+
+281 \r\12
+ `__REDIRECT_NTH
+ (
+__\89yÇme_r_®\9fs
+, (\12
+__fd
+, \ 5*
+__buf
+,
+
+282
+size_t
+
+__buæ\92
+),
+\89yÇme_r
+)
+
+283
+ `__nÚnuÎ
+ ((2));
+
+284 \r\12
+ `__REDIRECT_NTH
+ (
+__\89yÇme_r_chk_w¬n
+,
+
+285 (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+,
+
+286
+size_t
+
+__ėl
+),
+__\89yÇme_r_chk
+)
+
+287
+ `__nÚnuÎ
+ ((2)è
+ `__w‚\89r
+ ("ttyname_r called with bigger buflen\81han "
+
+290
+__fÜtify_funùiÚ
+ \12
+
+291
+ `__NTH
+ (
+ $\89yÇme_r
+ (\12
+__fd
+, \ 5*
+__buf
+,
+size_t
+
+__buæ\92
+))
+
+293 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+295 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__buæ\92
+))
+
+296 \15
+ `__\89yÇme_r_chk
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+298 ià(
+__buæ\92
+ >
+ `__bos
+ (
+__buf
+))
+
+299 \15
+ `__\89yÇme_r_chk_w¬n
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+301 \15
+ `__\89yÇme_r_®\9fs
+ (
+__fd
+,
+__buf
+,
+__buæ\92
+);
+
+302
+ }
+}
+
+305 #ià
+def\9aed
+
+__USE_REENTRANT
+ || def\9aed
+__USE_POSIX199506
+
+
+306 \r\12
+ $__g\91log\9a_r_chk
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+)
+
+307
+ `__nÚnuÎ
+ ((1));
+
+308 \r\12
+ `__REDIRECT
+ (
+__g\91log\9a_r_®\9fs
+, (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+),
+
+309
+g\91log\9a_r
+è
+ `__nÚnuÎ
+ ((1));
+
+310 \r\12
+ `__REDIRECT
+ (
+__g\91log\9a_r_chk_w¬n
+,
+
+311 (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+),
+
+312
+__g\91log\9a_r_chk
+)
+
+313
+ `__nÚnuÎ
+ ((1)è
+ `__w‚\89r
+ ("getlogin_r called with bigger buflen\81han "
+
+316
+__fÜtify_funùiÚ
+ \12
+
+317
+ $g\91log\9a_r
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+)
+
+319 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+321 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__buæ\92
+))
+
+322 \15
+ `__g\91log\9a_r_chk
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+324 ià(
+__buæ\92
+ >
+ `__bos
+ (
+__buf
+))
+
+325 \15
+ `__g\91log\9a_r_chk_w¬n
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+327 \15
+ `__g\91log\9a_r_®\9fs
+ (
+__buf
+,
+__buæ\92
+);
+
+328
+ }
+}
+
+332 #ià
+def\9aed
+
+__USE_MISC
+ || def\9aed
+__USE_UNIX98
+
+
+333 \r\12
+ $__g\91ho¡Çme_chk
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+)
+
+334
+__THROW
+
+ `__nÚnuÎ
+ ((1));
+
+335 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91ho¡Çme_®\9fs
+, (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+),
+
+336
+g\91ho¡Çme
+è
+ `__nÚnuÎ
+ ((1));
+
+337 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91ho¡Çme_chk_w¬n
+,
+
+338 (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+),
+
+339
+__g\91ho¡Çme_chk
+)
+
+340
+ `__nÚnuÎ
+ ((1)è
+ `__w‚\89r
+ ("gethostname called with bigger buflen\81han "
+
+343
+__fÜtify_funùiÚ
+ \12
+
+344
+ `__NTH
+ (
+ $g\91ho¡Çme
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+))
+
+346 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+348 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__buæ\92
+))
+
+349 \15
+ `__g\91ho¡Çme_chk
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+351 ià(
+__buæ\92
+ >
+ `__bos
+ (
+__buf
+))
+
+352 \15
+ `__g\91ho¡Çme_chk_w¬n
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+354 \15
+ `__g\91ho¡Çme_®\9fs
+ (
+__buf
+,
+__buæ\92
+);
+
+355
+ }
+}
+
+359 #ià
+def\9aed
+
+__USE_MISC
+ || (def\9aed
+__USE_XOPEN
+ && !def\9aed
+__USE_UNIX98
+)
+
+360 \r\12
+ $__g\91doma\9aÇme_chk
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+)
+
+361
+__THROW
+
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+362 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91doma\9aÇme_®\9fs
+, (\ 5*
+__buf
+,
+
+363
+size_t
+
+__buæ\92
+),
+
+364
+g\91doma\9aÇme
+è
+ `__nÚnuÎ
+ ((1)è
+__wur
+;
+
+365 \r\12
+ `__REDIRECT_NTH
+ (
+__g\91doma\9aÇme_chk_w¬n
+,
+
+366 (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+, size_\88
+__ėl
+),
+
+367
+__g\91doma\9aÇme_chk
+)
+
+368
+ `__nÚnuÎ
+ ((1)è
+__wur
+
+ `__w‚\89r
+ ("getdomainname called with bigger "
+
+372
+__fÜtify_funùiÚ
+ \12
+
+373
+ `__NTH
+ (
+ $g\91doma\9aÇme
+ (\ 5*
+__buf
+,
+size_t
+
+__buæ\92
+))
+
+375 ià(
+ `__bos
+ (
+__buf
+è!ð(
+size_t
+) -1)
+
+377 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__buæ\92
+))
+
+378 \15
+ `__g\91doma\9aÇme_chk
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+380 ià(
+__buæ\92
+ >
+ `__bos
+ (
+__buf
+))
+
+381 \15
+ `__g\91doma\9aÇme_chk_w¬n
+ (
+__buf
+,
+__buæ\92
+,
+ `__bos
+ (__buf));
+
+383 \15
+ `__g\91doma\9aÇme_®\9fs
+ (
+__buf
+,
+__buæ\92
+);
+
+384
+ }
+}
+
+ @/usr/include/bits/waitflags.h
+
+19 #ià!
+def\9aed
+
+_SYS_WAIT_H
+ && !def\9aed
+_STDLIB_H
+
+
+25 \ 1
+ #WNOHANG
+ 1
+
+ )
+
+26 \ 1
+ #WUNTRACED
+ 2
+
+ )
+
+29 \ 1
+ #WSTOPPED
+ 2
+
+ )
+
+30 \ 1
+ #WEXITED
+ 4
+
+ )
+
+31 \ 1
+ #WCONTINUED
+ 8
+
+ )
+
+32 \ 1
+ #WNOWAIT
+ 0x01000000
+
+ )
+
+34 \ 1
+ #__WNOTHREAD
+ 0x20000000
+
+ )
+
+36 \ 1
+ #__WALL
+ 0x40000000
+
+ )
+
+37 \ 1
+ #__WCLONE
+ 0x80000000
+
+ )
+
+40 #ià
+def\9aed
+
+__USE_XOPEN
+ || def\9aed
+__USE_XOPEN2K8
+
+
+41 #iâdeà
+__ENUM_IDTYPE_T
+
+
+42 \ 1
+ #__ENUM_IDTYPE_T
+ 1
+
+ )
+
+46 #undeà
+P_ALL
+
+
+47 #undeà
+P_PID
+
+
+48 #undeà
+P_PGID
+
+
+52
+ mP_ALL
+,
+
+53
+ mP_PID
+,
+
+54
+ mP_PGID
+
+
+55 }
+ tidty³_t
+;
+
+ @/usr/include/bits/waitstatus.h
+
+19 #ià!
+def\9aed
+
+_SYS_WAIT_H
+ && !def\9aed
+_STDLIB_H
+
+
+28 \ 1
+ #__WEXITSTATUS
+(
+¡©us
+è(((¡©usè& 0xff00è>> 8)
+
+ )
+
+31 \ 1
+ #__WTERMSIG
+(
+¡©us
+è((¡©usè& 0x7f)
+
+ )
+
+34 \ 1
+ #__WSTOPSIG
+(
+¡©us
+è
+ `__WEXITSTATUS
+(¡©us)
+
+ )
+
+37 \ 1
+ #__WIFEXITED
+(
+¡©us
+è(
+ `__WTERMSIG
+(¡©usè=ð0)
+
+ )
+
+40 \ 1
+ #__WIFSIGNALED
+(
+¡©us
+) \
+
+41 (((sigÃd \ 5è(((
+¡©us
+è& 0x7fè+ 1è>> 1è> 0)
+
+ )
+
+44 \ 1
+ #__WIFSTOPPED
+(
+¡©us
+è(((¡©usè& 0xffè=ð0x7f)
+
+ )
+
+48 #ifdeà
+WCONTINUED
+
+
+49 \ 1
+ #__WIFCONTINUED
+(
+¡©us
+è((¡©usè=ð
+__W_CONTINUED
+)
+
+ )
+
+53 \ 1
+ #__WCOREDUMP
+(
+¡©us
+è((¡©usè&
+__WCOREFLAG
+)
+
+ )
+
+56 \ 1
+ #__W_EXITCODE
+(
+»t
+,
+sig
+è(Ô\91è<< 8 | (sig))
+
+ )
+
+57 \ 1
+ #__W_STOPCODE
+(
+sig
+è((sigè<< 8 | 0x7f)
+
+ )
+
+58 \ 1
+ #__W_CONTINUED
+ 0xffff
+
+ )
+
+59 \ 1
+ #__WCOREFLAG
+ 0x80
+
+ )
+
+62 #ifdef
+__USE_MISC
+
+
+64 \ 2
+ ~<\92d\9fn.h
+>
+
+66 \1c
+ uwa\99
+
+
+68 \12
+ mw_¡©us
+;
+
+71 #if
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+72 \1d\12
+ m__w_\8brmsig
+:7;
+
+73 \1d\12
+ m__w_cÜedump
+:1;
+
+74 \1d\12
+ m__w_»tcode
+:8;
+
+77 #if
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+79 \1d\12
+ m__w_»tcode
+:8;
+
+80 \1d\12
+ m__w_cÜedump
+:1;
+
+81 \1d\12
+ m__w_\8brmsig
+:7;
+
+83 }
+ m__wa\99_\8brm\9a©ed
+;
+
+86 #if
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+87 \1d\12
+ m__w_¡Ýv®
+:8;
+
+88 \1d\12
+ m__w_¡Ýsig
+:8;
+
+91 #if
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+93 \1d\12
+ m__w_¡Ýsig
+:8;
+
+94 \1d\12
+ m__w_¡Ýv®
+:8;
+
+96 }
+ m__wa\99_¡Ý³d
+;
+
+99 \ 1
+ #w_\8brmsig
+
+__wa\99_\8brm\9a©ed
+.
+__w_\8brmsig
+
+
+ )
+
+100 \ 1
+ #w_cÜedump
+
+__wa\99_\8brm\9a©ed
+.
+__w_cÜedump
+
+
+ )
+
+101 \ 1
+ #w_»tcode
+
+__wa\99_\8brm\9a©ed
+.
+__w_»tcode
+
+
+ )
+
+102 \ 1
+ #w_¡Ýsig
+
+__wa\99_¡Ý³d
+.
+__w_¡Ýsig
+
+
+ )
+
+103 \ 1
+ #w_¡Ýv®
+
+__wa\99_¡Ý³d
+.
+__w_¡Ýv®
+
+
+ )
+
+ @/usr/include/bits/wchar.h
+
+19 #iâdeà
+_BITS_WCHAR_H
+
+
+20 \ 1
+ #_BITS_WCHAR_H
+ 1
+
+ )
+
+33 #ifdeà
+__WCHAR_MAX__
+
+
+34 \ 1
+ #__WCHAR_MAX
+
+__WCHAR_MAX__
+
+
+ )
+
+35 #\96ià
+L
+'\0' - 1 > 0
+
+36 \ 1
+ #__WCHAR_MAX
+ (0xffffffffu +
+L
+'\0')
+
+ )
+
+38 \ 1
+ #__WCHAR_MAX
+ (0x7ffffffà+
+L
+'\0')
+
+ )
+
+41 #ifdeà
+__WCHAR_MIN__
+
+
+42 \ 1
+ #__WCHAR_MIN
+
+__WCHAR_MIN__
+
+
+ )
+
+43 #\96ià
+L
+'\0' - 1 > 0
+
+44 \ 1
+ #__WCHAR_MIN
+ (
+L
+'\0' + 0)
+
+ )
+
+46 \ 1
+ #__WCHAR_MIN
+ (-
+__WCHAR_MAX
+ - 1)
+
+ )
+
+ @/usr/include/bits/wordsize.h
+
+3 #ià
+def\9aed
+
+__x86_64__
+ && !def\9aed
+__ILP32__
+
+
+4 \ 1
+ #__WORDSIZE
+ 64
+
+ )
+
+6 \ 1
+ #__WORDSIZE
+ 32
+
+ )
+
+9 #ifdeà
+__x86_64__
+
+
+10 \ 1
+ #__WORDSIZE_TIME64_COMPAT32
+ 1
+
+ )
+
+12 \ 1
+ #__SYSCALL_WORDSIZE
+ 64
+
+ )
+
+ @/usr/include/endian.h
+
+18 #iâdef
+_ENDIAN_H
+
+
+19 \ 1
+ #_ENDIAN_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+31 \ 1
+ #__LITTLE_ENDIAN
+ 1234
+
+ )
+
+32 \ 1
+ #__BIG_ENDIAN
+ 4321
+
+ )
+
+33 \ 1
+ #__PDP_ENDIAN
+ 3412
+
+ )
+
+36 \ 2
+ ~<b\99s/\92d\9fn.h
+>
+
+40 #iâdeà
+__FLOAT_WORD_ORDER
+
+
+41 \ 1
+ #__FLOAT_WORD_ORDER
+
+__BYTE_ORDER
+
+
+ )
+
+44 #ifdef
+__USE_MISC
+
+
+45 \ 1
+ #LITTLE_ENDIAN
+
+__LITTLE_ENDIAN
+
+
+ )
+
+46 \ 1
+ #BIG_ENDIAN
+
+__BIG_ENDIAN
+
+
+ )
+
+47 \ 1
+ #PDP_ENDIAN
+
+__PDP_ENDIAN
+
+
+ )
+
+48 \ 1
+ #BYTE_ORDER
+
+__BYTE_ORDER
+
+
+ )
+
+51 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+52 \ 1
+ #__LONG_LONG_PAIR
+(
+HI
+,
+LO
+èLO,
+ )
+HI
+
+53 #\96ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+54 \ 1
+ #__LONG_LONG_PAIR
+(
+HI
+,
+LO
+èHI,
+ )
+LO
+
+58 #ià
+def\9aed
+
+__USE_MISC
+ && !def\9aed
+__ASSEMBLER__
+
+
+60 \ 2
+ ~<b\99s/by\8bsw.h
+>
+
+62 #ià
+__BYTE_ORDER
+ =ð
+__LITTLE_ENDIAN
+
+
+63 \ 1
+ #htobe16
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+64 \ 1
+ #htÞe16
+(
+x
+è(x)
+
+ )
+
+65 \ 1
+ #be16toh
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+66 \ 1
+ #Ë16toh
+(
+x
+è(x)
+
+ )
+
+68 \ 1
+ #htobe32
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+69 \ 1
+ #htÞe32
+(
+x
+è(x)
+
+ )
+
+70 \ 1
+ #be32toh
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+71 \ 1
+ #Ë32toh
+(
+x
+è(x)
+
+ )
+
+73 \ 1
+ #htobe64
+(
+x
+è
+ `__bsw_64
+ (x)
+
+ )
+
+74 \ 1
+ #htÞe64
+(
+x
+è(x)
+
+ )
+
+75 \ 1
+ #be64toh
+(
+x
+è
+ `__bsw_64
+ (x)
+
+ )
+
+76 \ 1
+ #Ë64toh
+(
+x
+è(x)
+
+ )
+
+79 \ 1
+ #htobe16
+(
+x
+è(x)
+
+ )
+
+80 \ 1
+ #htÞe16
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+81 \ 1
+ #be16toh
+(
+x
+è(x)
+
+ )
+
+82 \ 1
+ #Ë16toh
+(
+x
+è
+ `__bsw_16
+ (x)
+
+ )
+
+84 \ 1
+ #htobe32
+(
+x
+è(x)
+
+ )
+
+85 \ 1
+ #htÞe32
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+86 \ 1
+ #be32toh
+(
+x
+è(x)
+
+ )
+
+87 \ 1
+ #Ë32toh
+(
+x
+è
+ `__bsw_32
+ (x)
+
+ )
+
+89 \ 1
+ #htobe64
+(
+x
+è(x)
+
+ )
+
+90 \ 1
+ #htÞe64
+(
+x
+è
+ `__bsw_64
+ (x)
+
+ )
+
+91 \ 1
+ #be64toh
+(
+x
+è(x)
+
+ )
+
+92 \ 1
+ #Ë64toh
+(
+x
+è
+ `__bsw_64
+ (x)
+
+ )
+
+ @/usr/include/features.h
+
+18 #iâdef
+_FEATURES_H
+
+
+19 \ 1
+ #_FEATURES_H
+ 1
+
+ )
+
+97 #undeà
+__USE_ISOC11
+
+
+98 #undeà
+__USE_ISOC99
+
+
+99 #undeà
+__USE_ISOC95
+
+
+100 #undeà
+__USE_ISOCXX11
+
+
+101 #undeà
+__USE_POSIX
+
+
+102 #undeà
+__USE_POSIX2
+
+
+103 #undeà
+__USE_POSIX199309
+
+
+104 #undeà
+__USE_POSIX199506
+
+
+105 #undeà
+__USE_XOPEN
+
+
+106 #undeà
+__USE_XOPEN_EXTENDED
+
+
+107 #undeà
+__USE_UNIX98
+
+
+108 #undeà
+__USE_XOPEN2K
+
+
+109 #undeà
+__USE_XOPEN2KXSI
+
+
+110 #undeà
+__USE_XOPEN2K8
+
+
+111 #undeà
+__USE_XOPEN2K8XSI
+
+
+112 #undeà
+__USE_LARGEFILE
+
+
+113 #undeà
+__USE_LARGEFILE64
+
+
+114 #undeà
+__USE_FILE_OFFSET64
+
+
+115 #undeà
+__USE_MISC
+
+
+116 #undeà
+__USE_ATFILE
+
+
+117 #undeà
+__USE_GNU
+
+
+118 #undeà
+__USE_REENTRANT
+
+
+119 #undeà
+__USE_FORTIFY_LEVEL
+
+
+120 #undeà
+__KERNEL_STRICT_NAMES
+
+
+124 #iâdeà
+_LOOSE_KERNEL_NAMES
+
+
+125 \ 1
+ #__KERNEL_STRICT_NAMES
+
+
+ )
+
+135 #ià
+def\9aed
+
+__GNUC__
+ && def\9aed
+__GNUC_MINOR__
+
+
+136 \ 1
+ #__GNUC_PREREQ
+(
+maj
+,
+m\9a
+) \
+
+137 ((
+__GNUC__
+ << 16è+
+__GNUC_MINOR__
+ >ð((
+maj
+è<< 16è+ (
+m\9a
+))
+
+ )
+
+139 \ 1
+ #__GNUC_PREREQ
+(
+maj
+,
+m\9a
+è0
+
+ )
+
+146 #ià(
+def\9aed
+
+_BSD_SOURCE
+ || def\9aed
+_SVID_SOURCE
+) \
+
+147 && !
+def\9aed
+
+ g_DEFAULT_SOURCE
+
+
+152 #undeà
+_DEFAULT_SOURCE
+
+
+153 \ 1
+ #_DEFAULT_SOURCE
+ 1
+
+ )
+
+157 #ifdeà
+_GNU_SOURCE
+
+
+158 #undeà
+_ISOC95_SOURCE
+
+
+159 \ 1
+ #_ISOC95_SOURCE
+ 1
+
+ )
+
+160 #undeà
+_ISOC99_SOURCE
+
+
+161 \ 1
+ #_ISOC99_SOURCE
+ 1
+
+ )
+
+162 #undeà
+_ISOC11_SOURCE
+
+
+163 \ 1
+ #_ISOC11_SOURCE
+ 1
+
+ )
+
+164 #undeà
+_POSIX_SOURCE
+
+
+165 \ 1
+ #_POSIX_SOURCE
+ 1
+
+ )
+
+166 #undeà
+_POSIX_C_SOURCE
+
+
+167 \ 1
+ #_POSIX_C_SOURCE
+ 200809L
+
+ )
+
+168 #undeà
+_XOPEN_SOURCE
+
+
+169 \ 1
+ #_XOPEN_SOURCE
+ 700
+
+ )
+
+170 #undeà
+_XOPEN_SOURCE_EXTENDED
+
+
+171 \ 1
+ #_XOPEN_SOURCE_EXTENDED
+ 1
+
+ )
+
+172 #undeà
+_LARGEFILE64_SOURCE
+
+
+173 \ 1
+ #_LARGEFILE64_SOURCE
+ 1
+
+ )
+
+174 #undeà
+_DEFAULT_SOURCE
+
+
+175 \ 1
+ #_DEFAULT_SOURCE
+ 1
+
+ )
+
+176 #undeà
+_ATFILE_SOURCE
+
+
+177 \ 1
+ #_ATFILE_SOURCE
+ 1
+
+ )
+
+182 #ià(
+def\9aed
+
+_DEFAULT_SOURCE
+ \
+
+183 || (!
+def\9aed
+
+ g__STRICT_ANSI__
+ \
+
+184 && !
+def\9aed
+
+ g_ISOC99_SOURCE
+ \
+
+185 && !
+def\9aed
+
+ g_POSIX_SOURCE
+ && !def\9aed
+ g_POSIX_C_SOURCE
+ \
+
+186 && !
+def\9aed
+
+ g_XOPEN_SOURCE
+))
+
+187 #undeà
+_DEFAULT_SOURCE
+
+
+188 \ 1
+ #_DEFAULT_SOURCE
+ 1
+
+ )
+
+192 #ià(
+def\9aed
+
+_ISOC11_SOURCE
+ \
+
+193 || (
+def\9aed
+
+ g__STDC_VERSION__
+ && __STDC_VERSION__ >= 201112L))
+
+194 \ 1
+ #__USE_ISOC11
+ 1
+
+ )
+
+198 #ià(
+def\9aed
+
+_ISOC99_SOURCE
+ || def\9aed
+_ISOC11_SOURCE
+ \
+
+199 || (
+def\9aed
+
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L))
+
+200 \ 1
+ #__USE_ISOC99
+ 1
+
+ )
+
+204 #ià(
+def\9aed
+
+_ISOC99_SOURCE
+ || def\9aed
+_ISOC11_SOURCE
+ \
+
+205 || (
+def\9aed
+
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199409L))
+
+206 \ 1
+ #__USE_ISOC95
+ 1
+
+ )
+
+213 #ià((
+def\9aed
+
+__ýlu¥lus
+ && __cplusplus >= 201103L) \
+
+214 ||
+def\9aed
+
+__GXX_EXPERIMENTAL_CXX0X__
+)
+
+215 \ 1
+ #__USE_ISOCXX11
+ 1
+
+ )
+
+221 #ifdeà
+_DEFAULT_SOURCE
+
+
+222 #ià!
+def\9aed
+
+_POSIX_SOURCE
+ && !def\9aed
+_POSIX_C_SOURCE
+
+
+223 \ 1
+ #__USE_POSIX_IMPLICITLY
+ 1
+
+ )
+
+225 #undeà
+_POSIX_SOURCE
+
+
+226 \ 1
+ #_POSIX_SOURCE
+ 1
+
+ )
+
+227 #undeà
+_POSIX_C_SOURCE
+
+
+228 \ 1
+ #_POSIX_C_SOURCE
+ 200809L
+
+ )
+
+230 #ià((!
+def\9aed
+
+__STRICT_ANSI__
+ \
+
+231 || (
+def\9aed
+
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) >= 500)) \
+
+232 && !
+def\9aed
+
+_POSIX_SOURCE
+ && !def\9aed
+_POSIX_C_SOURCE
+)
+
+233 \ 1
+ #_POSIX_SOURCE
+ 1
+
+ )
+
+234 #ià
+def\9aed
+
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 500
+
+235 \ 1
+ #_POSIX_C_SOURCE
+ 2
+
+ )
+
+236 #\96ià
+def\9aed
+
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 600
+
+237 \ 1
+ #_POSIX_C_SOURCE
+ 199506L
+
+ )
+
+238 #\96ià
+def\9aed
+
+_XOPEN_SOURCE
+ && (_XOPEN_SOURCE - 0) < 700
+
+239 \ 1
+ #_POSIX_C_SOURCE
+ 200112L
+
+ )
+
+241 \ 1
+ #_POSIX_C_SOURCE
+ 200809L
+
+ )
+
+243 \ 1
+ #__USE_POSIX_IMPLICITLY
+ 1
+
+ )
+
+246 #ià(
+def\9aed
+
+_POSIX_SOURCE
+ \
+
+247 || (
+def\9aed
+
+_POSIX_C_SOURCE
+ && _POSIX_C_SOURCE >= 1) \
+
+248 ||
+def\9aed
+
+_XOPEN_SOURCE
+)
+
+249 \ 1
+ #__USE_POSIX
+ 1
+
+ )
+
+252 #ià
+def\9aed
+
+_POSIX_C_SOURCE
+ && _POSIX_C_SOURCE >ð2 || def\9aed
+_XOPEN_SOURCE
+
+
+253 \ 1
+ #__USE_POSIX2
+ 1
+
+ )
+
+256 #ià
+def\9aed
+
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 199309L
+
+257 \ 1
+ #__USE_POSIX199309
+ 1
+
+ )
+
+260 #ià
+def\9aed
+
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 199506L
+
+261 \ 1
+ #__USE_POSIX199506
+ 1
+
+ )
+
+264 #ià
+def\9aed
+
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 200112L
+
+265 \ 1
+ #__USE_XOPEN2K
+ 1
+
+ )
+
+266 #undeà
+__USE_ISOC95
+
+
+267 \ 1
+ #__USE_ISOC95
+ 1
+
+ )
+
+268 #undeà
+__USE_ISOC99
+
+
+269 \ 1
+ #__USE_ISOC99
+ 1
+
+ )
+
+272 #ià
+def\9aed
+
+_POSIX_C_SOURCE
+ && (_POSIX_C_SOURCE - 0) >= 200809L
+
+273 \ 1
+ #__USE_XOPEN2K8
+ 1
+
+ )
+
+274 #undeà
+_ATFILE_SOURCE
+
+
+275 \ 1
+ #_ATFILE_SOURCE
+ 1
+
+ )
+
+278 #ifdef
+_XOPEN_SOURCE
+
+
+279 \ 1
+ #__USE_XOPEN
+ 1
+
+ )
+
+280 #ià(
+_XOPEN_SOURCE
+ - 0) >= 500
+
+281 \ 1
+ #__USE_XOPEN_EXTENDED
+ 1
+
+ )
+
+282 \ 1
+ #__USE_UNIX98
+ 1
+
+ )
+
+283 #undeà
+_LARGEFILE_SOURCE
+
+
+284 \ 1
+ #_LARGEFILE_SOURCE
+ 1
+
+ )
+
+285 #ià(
+_XOPEN_SOURCE
+ - 0) >= 600
+
+286 #ià(
+_XOPEN_SOURCE
+ - 0) >= 700
+
+287 \ 1
+ #__USE_XOPEN2K8
+ 1
+
+ )
+
+288 \ 1
+ #__USE_XOPEN2K8XSI
+ 1
+
+ )
+
+290 \ 1
+ #__USE_XOPEN2K
+ 1
+
+ )
+
+291 \ 1
+ #__USE_XOPEN2KXSI
+ 1
+
+ )
+
+292 #undeà
+__USE_ISOC95
+
+
+293 \ 1
+ #__USE_ISOC95
+ 1
+
+ )
+
+294 #undeà
+__USE_ISOC99
+
+
+295 \ 1
+ #__USE_ISOC99
+ 1
+
+ )
+
+298 #ifdeà
+_XOPEN_SOURCE_EXTENDED
+
+
+299 \ 1
+ #__USE_XOPEN_EXTENDED
+ 1
+
+ )
+
+304 #ifdeà
+_LARGEFILE_SOURCE
+
+
+305 \ 1
+ #__USE_LARGEFILE
+ 1
+
+ )
+
+308 #ifdeà
+_LARGEFILE64_SOURCE
+
+
+309 \ 1
+ #__USE_LARGEFILE64
+ 1
+
+ )
+
+312 #ià
+def\9aed
+
+_FILE_OFFSET_BITS
+ && _FILE_OFFSET_BITS == 64
+
+313 \ 1
+ #__USE_FILE_OFFSET64
+ 1
+
+ )
+
+316 #ià
+def\9aed
+
+_DEFAULT_SOURCE
+
+
+317 \ 1
+ #__USE_MISC
+ 1
+
+ )
+
+320 #ifdef
+_ATFILE_SOURCE
+
+
+321 \ 1
+ #__USE_ATFILE
+ 1
+
+ )
+
+324 #ifdef
+_GNU_SOURCE
+
+
+325 \ 1
+ #__USE_GNU
+ 1
+
+ )
+
+328 #ià
+def\9aed
+
+_REENTRANT
+ || def\9aed
+_THREAD_SAFE
+
+
+329 \ 1
+ #__USE_REENTRANT
+ 1
+
+ )
+
+332 #ià
+def\9aed
+
+_FORTIFY_SOURCE
+ && _FORTIFY_SOURCE > 0 \
+
+333 &&
+__GNUC_PREREQ
+ (4, 1è&&
+def\9aed
+
+ g__OPTIMIZE__
+ && __OPTIMIZE__ > 0
+
+334 #ià
+_FORTIFY_SOURCE
+ > 1
+
+335 \ 1
+ #__USE_FORTIFY_LEVEL
+ 2
+
+ )
+
+337 \ 1
+ #__USE_FORTIFY_LEVEL
+ 1
+
+ )
+
+340 \ 1
+ #__USE_FORTIFY_LEVEL
+ 0
+
+ )
+
+345 \ 2
+ ~<¡dc-´edef.h
+>
+
+353 #undeà
+__GNU_LIBRARY__
+
+
+354 \ 1
+ #__GNU_LIBRARY__
+ 6
+
+ )
+
+358 \ 1
+ #__GLIBC__
+ 2
+
+ )
+
+359 \ 1
+ #__GLIBC_MINOR__
+ 23
+
+ )
+
+361 \ 1
+ #__GLIBC_PREREQ
+(
+maj
+,
+m\9a
+) \
+
+362 ((
+__GLIBC__
+ << 16è+
+__GLIBC_MINOR__
+ >ð((
+maj
+è<< 16è+ (
+m\9a
+))
+
+ )
+
+365 #iâdeà
+__ASSEMBLER__
+
+
+366 #iâdeà
+_SYS_CDEFS_H
+
+
+367 \ 2
+ ~<sys/cdefs.h
+>
+
+372 #ià
+def\9aed
+
+__USE_FILE_OFFSET64
+ && !def\9aed
+__REDIRECT
+
+
+373 \ 1
+ #__USE_LARGEFILE
+ 1
+
+ )
+
+374 \ 1
+ #__USE_LARGEFILE64
+ 1
+
+ )
+
+380 #ià
+__GNUC_PREREQ
+ (2, 7è&&
+def\9aed
+
+__OPTIMIZE__
+ \
+
+381 && !
+def\9aed
+
+ g__OPTIMIZE_SIZE__
+ && !def\9aed
+ g__NO_INLINE__
+ \
+
+382 &&
+def\9aed
+
+ g__ex\8bº_\9al\9ae
+
+
+383 \ 1
+ #__USE_EXTERN_INLINES
+ 1
+
+ )
+
+391 \ 2
+ ~<gnu/¡ubs.h
+>
+
+ @/usr/include/libio.h
+
+28 #iâdeà
+_IO_STDIO_H
+
+
+29 \ 1
+ #_IO_STDIO_H
+
+
+ )
+
+31 \ 2
+ ~<_G_cÚfig.h
+>
+
+33 \ 1
+ #_IO_åos_t
+
+_G_åos_t
+
+
+ )
+
+34 \ 1
+ #_IO_åos64_t
+
+_G_åos64_t
+
+
+ )
+
+35 \ 1
+ #_IO_size_t
+
+size_t
+
+
+ )
+
+36 \ 1
+ #_IO_ssize_t
+
+__ssize_t
+
+
+ )
+
+37 \ 1
+ #_IO_off_t
+
+__off_t
+
+
+ )
+
+38 \ 1
+ #_IO_off64_t
+
+__off64_t
+
+
+ )
+
+39 \ 1
+ #_IO_pid_t
+
+__pid_t
+
+
+ )
+
+40 \ 1
+ #_IO_uid_t
+
+__uid_t
+
+
+ )
+
+41 \ 1
+ #_IO_icÚv_t
+
+_G_icÚv_t
+
+
+ )
+
+42 \ 1
+ #_IO_HAVE_ST_BLKSIZE
+
+_G_HAVE_ST_BLKSIZE
+
+
+ )
+
+43 \ 1
+ #_IO_BUFSIZ
+
+_G_BUFSIZ
+
+
+ )
+
+44 \ 1
+ #_IO_va_li¡
+
+_G_va_li¡
+
+
+ )
+
+45 \ 1
+ #_IO_w\9at_t
+
+w\9at_t
+
+
+ )
+
+48 \ 1
+ #__Ãed___va_li¡
+
+
+ )
+
+49 \ 2
+ ~<¡d¬g.h
+>
+
+50 #ifdeà
+__GNUC_VA_LIST
+
+
+51 #undeà
+_IO_va_li¡
+
+
+52 \ 1
+ #_IO_va_li¡
+
+__gnuc_va_li¡
+
+
+ )
+
+55 #iâdeà
+__P
+
+
+56 \ 2
+ ~<sys/cdefs.h
+>
+
+59 \ 1
+ #_IO_UNIFIED_JUMPTABLES
+ 1
+
+ )
+
+61 #iâdeà
+EOF
+
+
+62 \ 1
+ #EOF
+ (-1)
+
+ )
+
+64 #iâdeà
+NULL
+
+
+65 #ià
+def\9aed
+
+__GNUG__
+ && \
+
+66 (
+ g__GNUC__
+ > 2 || (__GNUC__ =ð2 &&
+__GNUC_MINOR__
+ >= 8))
+
+67 \ 1
+ #NULL
+ (
+__nuÎ
+)
+
+ )
+
+69 #ià!
+def\9aed
+(
+__ýlu¥lus
+)
+
+70 \ 1
+ #NULL
+ ((\1e*)0)
+
+ )
+
+72 \ 1
+ #NULL
+ (0)
+
+ )
+
+77 \ 1
+ #_IOS_INPUT
+ 1
+
+ )
+
+78 \ 1
+ #_IOS_OUTPUT
+ 2
+
+ )
+
+79 \ 1
+ #_IOS_ATEND
+ 4
+
+ )
+
+80 \ 1
+ #_IOS_APPEND
+ 8
+
+ )
+
+81 \ 1
+ #_IOS_TRUNC
+ 16
+
+ )
+
+82 \ 1
+ #_IOS_NOCREATE
+ 32
+
+ )
+
+83 \ 1
+ #_IOS_NOREPLACE
+ 64
+
+ )
+
+84 \ 1
+ #_IOS_BIN
+ 128
+
+ )
+
+92 \ 1
+ #_IO_MAGIC
+ 0xFBAD0000
+
+ )
+
+93 \ 1
+ #_OLD_STDIO_MAGIC
+ 0xFABC0000
+
+ )
+
+94 \ 1
+ #_IO_MAGIC_MASK
+ 0xFFFF0000
+
+ )
+
+95 \ 1
+ #_IO_USER_BUF
+ 1
+
+ )
+
+96 \ 1
+ #_IO_UNBUFFERED
+ 2
+
+ )
+
+97 \ 1
+ #_IO_NO_READS
+ 4
+
+ )
+
+98 \ 1
+ #_IO_NO_WRITES
+ 8
+
+ )
+
+99 \ 1
+ #_IO_EOF_SEEN
+ 0x10
+
+ )
+
+100 \ 1
+ #_IO_ERR_SEEN
+ 0x20
+
+ )
+
+101 \ 1
+ #_IO_DELETE_DONT_CLOSE
+ 0x40
+
+ )
+
+102 \ 1
+ #_IO_LINKED
+ 0x80
+
+ )
+
+103 \ 1
+ #_IO_IN_BACKUP
+ 0x100
+
+ )
+
+104 \ 1
+ #_IO_LINE_BUF
+ 0x200
+
+ )
+
+105 \ 1
+ #_IO_TIED_PUT_GET
+ 0x400
+
+ )
+
+106 \ 1
+ #_IO_CURRENTLY_PUTTING
+ 0x800
+
+ )
+
+107 \ 1
+ #_IO_IS_APPENDING
+ 0x1000
+
+ )
+
+108 \ 1
+ #_IO_IS_FILEBUF
+ 0x2000
+
+ )
+
+109 \ 1
+ #_IO_BAD_SEEN
+ 0x4000
+
+ )
+
+110 \ 1
+ #_IO_USER_LOCK
+ 0x8000
+
+ )
+
+112 \ 1
+ #_IO_FLAGS2_MMAP
+ 1
+
+ )
+
+113 \ 1
+ #_IO_FLAGS2_NOTCANCEL
+ 2
+
+ )
+
+114 #ifdeà
+_LIBC
+
+
+115 \ 1
+ #_IO_FLAGS2_FORTIFY
+ 4
+
+ )
+
+117 \ 1
+ #_IO_FLAGS2_USER_WBUF
+ 8
+
+ )
+
+118 #ifdeà
+_LIBC
+
+
+119 \ 1
+ #_IO_FLAGS2_SCANF_STD
+ 16
+
+ )
+
+120 \ 1
+ #_IO_FLAGS2_NOCLOSE
+ 32
+
+ )
+
+121 \ 1
+ #_IO_FLAGS2_CLOEXEC
+ 64
+
+ )
+
+125 \ 1
+ #_IO_SKIPWS
+ 01
+
+ )
+
+126 \ 1
+ #_IO_LEFT
+ 02
+
+ )
+
+127 \ 1
+ #_IO_RIGHT
+ 04
+
+ )
+
+128 \ 1
+ #_IO_INTERNAL
+ 010
+
+ )
+
+129 \ 1
+ #_IO_DEC
+ 020
+
+ )
+
+130 \ 1
+ #_IO_OCT
+ 040
+
+ )
+
+131 \ 1
+ #_IO_HEX
+ 0100
+
+ )
+
+132 \ 1
+ #_IO_SHOWBASE
+ 0200
+
+ )
+
+133 \ 1
+ #_IO_SHOWPOINT
+ 0400
+
+ )
+
+134 \ 1
+ #_IO_UPPERCASE
+ 01000
+
+ )
+
+135 \ 1
+ #_IO_SHOWPOS
+ 02000
+
+ )
+
+136 \ 1
+ #_IO_SCIENTIFIC
+ 04000
+
+ )
+
+137 \ 1
+ #_IO_FIXED
+ 010000
+
+ )
+
+138 \ 1
+ #_IO_UNITBUF
+ 020000
+
+ )
+
+139 \ 1
+ #_IO_STDIO
+ 040000
+
+ )
+
+140 \ 1
+ #_IO_DONT_CLOSE
+ 0100000
+
+ )
+
+141 \ 1
+ #_IO_BOOLALPHA
+ 0200000
+
+ )
+
+144 \19
+_IO_jump_t
+; \19
+ g_IO_FILE
+;
+
+147 #ifdeà
+_IO_MTSAFE_IO
+
+
+150 \e\1e
+ t_IO_lock_t
+;
+
+156 \19
+ s_IO_m¬k\94
+ {
+
+157 \19
+_IO_m¬k\94
+ *
+ m_Ãxt
+;
+
+158 \19
+_IO_FILE
+ *
+ m_sbuf
+;
+
+162 \12
+ m_pos
+;
+
+164 \1e
+£t_¡»ampos
+(
+¡»ampos
+
+¥
+è{
+ m_¥os
+ = sp; }
+
+165 \1e
+£t_off£t
+(\12
+off£t
+è{
+ m_pos
+ = off£t;
+ m_¥os
+ = (
+¡»ampos
+)(-2); }
+
+166
+ mpublic
+:
+
+167
+¡»amm¬k\94
+(
+¡»ambuf
+ *
+sb
+);
+
+168 ~
+¡»amm¬k\94
+();
+
+169 \12
+§v\9ag
+(è{ \15
+ m_¥os
+ == -2; }
+
+170 \12
+d\96\8f
+(
+¡»amm¬k\94
+&);
+
+171 \12
+d\96\8f
+();
+
+176 \f
+ e__codecvt_»suÉ
+
+
+178
+ m__codecvt_ok
+,
+
+179
+ m__codecvt_·¹\9fl
+,
+
+180
+ m__codecvt_\94rÜ
+,
+
+181
+ m__codecvt_nocÚv
+
+
+184 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+187 \19
+ s_IO_codecvt
+
+
+189 \1e(*
+ m__codecvt_de¡r
+è(\19
+ m_IO_codecvt
+ *);
+
+190 \f
+__codecvt_»suÉ
+ (*
+__codecvt_do_out
+è(\19
+ m_IO_codecvt
+ *,
+
+191
+ m__mb¡©e_t
+ *,
+
+192 cڡ
+ mwch¬_t
+ *,
+
+193 cڡ
+ mwch¬_t
+ *,
+
+194 cڡ
+ mwch¬_t
+ **, \ 5*,
+
+196 \f
+__codecvt_»suÉ
+ (*
+__codecvt_do_unshiá
+è(\19
+ m_IO_codecvt
+ *,
+
+197
+ m__mb¡©e_t
+ *, \ 5*,
+
+199 \f
+__codecvt_»suÉ
+ (*
+__codecvt_do_\9a
+è(\19
+ m_IO_codecvt
+ *,
+
+200
+ m__mb¡©e_t
+ *,
+
+202 cڡ \ 5**,
+ mwch¬_t
+ *,
+
+203
+ mwch¬_t
+ *, wchar_t **);
+
+204 \12(*
+ m__codecvt_do_\92cod\9ag
+è(\19
+ m_IO_codecvt
+ *);
+
+205 \12(*
+ m__codecvt_do_®ways_nocÚv
+è(\19
+ m_IO_codecvt
+ *);
+
+206 \12(*
+ m__codecvt_do_Ëngth
+è(\19
+ m_IO_codecvt
+ *,
+ m__mb¡©e_t
+ *,
+
+207 cڡ \ 5*, cڡ \ 5*,
+ m_IO_size_t
+);
+
+208 \12(*
+ m__codecvt_do_max_Ëngth
+è(\19
+ m_IO_codecvt
+ *);
+
+210
+_IO_icÚv_t
+
+ m__cd_\9a
+;
+
+211
+_IO_icÚv_t
+
+ m__cd_out
+;
+
+215 \19
+ s_IO_wide_d©a
+
+
+217
+wch¬_t
+ *
+ m_IO_»ad_±r
+;
+
+218
+wch¬_t
+ *
+ m_IO_»ad_\92d
+;
+
+219
+wch¬_t
+ *
+ m_IO_»ad_ba£
+;
+
+220
+wch¬_t
+ *
+ m_IO_wr\99e_ba£
+;
+
+221
+wch¬_t
+ *
+ m_IO_wr\99e_±r
+;
+
+222
+wch¬_t
+ *
+ m_IO_wr\99e_\92d
+;
+
+223
+wch¬_t
+ *
+ m_IO_buf_ba£
+;
+
+224
+wch¬_t
+ *
+ m_IO_buf_\92d
+;
+
+226
+wch¬_t
+ *
+ m_IO_§ve_ba£
+;
+
+227
+wch¬_t
+ *
+ m_IO_backup_ba£
+;
+
+229
+wch¬_t
+ *
+ m_IO_§ve_\92d
+;
+
+231
+__mb¡©e_t
+
+ m_IO_¡©e
+;
+
+232
+__mb¡©e_t
+
+ m_IO_Ï¡_¡©e
+;
+
+233 \19
+_IO_codecvt
+
+ m_codecvt
+;
+
+235
+wch¬_t
+
+ m_shÜtbuf
+[1];
+
+237 cڡ \19
+_IO_jump_t
+ *
+ m_wide_v\8fbË
+;
+
+241 \19
+ s_IO_FILE
+ {
+
+242 \12
+ m_æags
+;
+
+243 \ 1
+ #_IO_f\9ee_æags
+
+_æags
+
+
+ )
+
+247 \ 5*
+ m_IO_»ad_±r
+;
+
+248 \ 5*
+ m_IO_»ad_\92d
+;
+
+249 \ 5*
+ m_IO_»ad_ba£
+;
+
+250 \ 5*
+ m_IO_wr\99e_ba£
+;
+
+251 \ 5*
+ m_IO_wr\99e_±r
+;
+
+252 \ 5*
+ m_IO_wr\99e_\92d
+;
+
+253 \ 5*
+ m_IO_buf_ba£
+;
+
+254 \ 5*
+ m_IO_buf_\92d
+;
+
+256 \ 5*
+ m_IO_§ve_ba£
+;
+
+257 \ 5*
+ m_IO_backup_ba£
+;
+
+258 \ 5*
+ m_IO_§ve_\92d
+;
+
+260 \19
+_IO_m¬k\94
+ *
+ m_m¬k\94s
+;
+
+262 \19
+_IO_FILE
+ *
+ m_cha\9a
+;
+
+264 \12
+ m_f\9e\92o
+;
+
+266 \12
+ m_blksize
+;
+
+268 \12
+ m_æags2
+;
+
+270
+_IO_off_t
+
+ m_Þd_off£t
+;
+
+272 \ 1
+ #__HAVE_COLUMN
+
+
+ )
+
+274 \1d\16
+ m_cur_cÞumn
+;
+
+275 sigÃd \ 5
+ m_v\8fbË_off£t
+;
+
+276 \ 5
+ m_shÜtbuf
+[1];
+
+280
+_IO_lock_t
+ *
+ m_lock
+;
+
+281 #ifdeà
+_IO_USE_OLD_IO_FILE
+
+
+284 \19
+ s_IO_FILE_com¶\91e
+
+
+286 \19
+_IO_FILE
+
+ m_f\9ee
+;
+
+288 #ià
+def\9aed
+
+_G_IO_IO_FILE_VERSION
+ && _G_IO_IO_FILE_VERSION == 0x20001
+
+289
+_IO_off64_t
+
+ m_off£t
+;
+
+290 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+292 \19
+_IO_codecvt
+ *
+ m_codecvt
+;
+
+293 \19
+_IO_wide_d©a
+ *
+ m_wide_d©a
+;
+
+294 \19
+_IO_FILE
+ *
+ m_ä\93»s_li¡
+;
+
+295 \1e*
+ m_䓻s_buf
+;
+
+297 \1e*
+ m__·d1
+;
+
+298 \1e*
+ m__·d2
+;
+
+299 \1e*
+ m__·d3
+;
+
+300 \1e*
+ m__·d4
+;
+
+302
+size_t
+
+ m__·d5
+;
+
+303 \12
+ m_mode
+;
+
+305 \ 5
+ m_unu£d2
+[15 * \17 (\12è- 4 * \17 (\1e*è- \17 (
+size_t
+)];
+
+309 #iâdeà
+__ýlu¥lus
+
+
+310 \e\19
+_IO_FILE
+
+ t_IO_FILE
+;
+
+313 \19
+ g_IO_FILE_¶us
+;
+
+315 \r\19
+_IO_FILE_¶us
+
+_IO_2_1_¡d\9a_
+;
+
+316 \r\19
+_IO_FILE_¶us
+
+_IO_2_1_¡dout_
+;
+
+317 \r\19
+_IO_FILE_¶us
+
+_IO_2_1_¡d\94r_
+;
+
+318 #iâdeà
+_LIBC
+
+
+319 \ 1
+ #_IO_¡d\9a
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡d\9a_
+))
+
+ )
+
+320 \ 1
+ #_IO_¡dout
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡dout_
+))
+
+ )
+
+321 \ 1
+ #_IO_¡d\94r
+ ((
+_IO_FILE
+*)(&
+_IO_2_1_¡d\94r_
+))
+
+ )
+
+323 \r
+_IO_FILE
+ *
+_IO_¡d\9a
+
+©\8cibu\8b_hidd\92
+;
+
+324 \r
+_IO_FILE
+ *
+_IO_¡dout
+
+©\8cibu\8b_hidd\92
+;
+
+325 \r
+_IO_FILE
+ *
+_IO_¡d\94r
+
+©\8cibu\8b_hidd\92
+;
+
+333 \e
+__ssize_t
+
+ t__io_»ad_â
+ (\1e*
+ t__cook\9b
+, \ 5*
+ t__buf
+,
+ tsize_t
+
+ t__nby\8bs
+);
+
+341 \e
+__ssize_t
+
+ t__io_wr\99e_â
+ (\1e*
+ t__cook\9b
+, cڡ \ 5*
+ t__buf
+,
+
+342
+ tsize_t
+
+ t__n
+);
+
+350 \e\12
+ t__io_£ek_â
+ (\1e*
+ t__cook\9b
+,
+ t_IO_off64_t
+ *
+ t__pos
+, \12
+ t__w
+);
+
+353 \e\12
+ t__io_þo£_â
+ (\1e*
+ t__cook\9b
+);
+
+356 #ifdeà
+_GNU_SOURCE
+
+
+358 \e
+__io_»ad_â
+
+ tcook\9b_»ad_funùiÚ_t
+;
+
+359 \e
+__io_wr\99e_â
+
+ tcook\9b_wr\99e_funùiÚ_t
+;
+
+360 \e
+__io_£ek_â
+
+ tcook\9b_£ek_funùiÚ_t
+;
+
+361 \e
+__io_þo£_â
+
+ tcook\9b_þo£_funùiÚ_t
+;
+
+366
+__io_»ad_â
+ *
+ m»ad
+;
+
+367
+__io_wr\99e_â
+ *
+ mwr\99e
+;
+
+368
+__io_£ek_â
+ *
+ m£ek
+;
+
+369
+__io_þo£_â
+ *
+ mþo£
+;
+
+370 }
+ t_IO_cook\9b_io_funùiÚs_t
+;
+
+371 \e
+_IO_cook\9b_io_funùiÚs_t
+
+ tcook\9b_io_funùiÚs_t
+;
+
+373 \19
+ g_IO_cook\9b_f\9ee
+;
+
+376 \r\1e
+_IO_cook\9b_\9a\99
+ (\19
+_IO_cook\9b_f\9ee
+ *
+__cf\9ee
+, \12
+__»ad_wr\99e
+,
+
+377 \1e*
+__cook\9b
+,
+_IO_cook\9b_io_funùiÚs_t
+
+__âs
+);
+
+381 #ifdeà
+__ýlu¥lus
+
+
+385 \r\12
+__und\94æow
+ (
+_IO_FILE
+ *);
+
+386 \r\12
+__uæow
+ (
+_IO_FILE
+ *);
+
+387 \r\12
+__ov\94æow
+ (
+_IO_FILE
+ *, \12);
+
+388 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+389 \r
+_IO_w\9at_t
+
+__wund\94æow
+ (
+_IO_FILE
+ *);
+
+390 \r
+_IO_w\9at_t
+
+__wuæow
+ (
+_IO_FILE
+ *);
+
+391 \r
+_IO_w\9at_t
+
+__wov\94æow
+ (
+_IO_FILE
+ *, _IO_wint_t);
+
+394 #ià
+__GNUC__
+ >= 3
+
+395 \ 1
+ #_IO_BE
+(
+ex´
+,
+»s
+è
+ `__bu\9et\9a_ex³ù
+ (Óx´),\84es)
+
+ )
+
+397 \ 1
+ #_IO_BE
+(
+ex´
+,
+»s
+èÓx´)
+
+ )
+
+400 \ 1
+ #_IO_g\91c_uÆocked
+(
+_å
+) \
+
+401 (
+ `_IO_BE
+ ((
+_å
+)->
+_IO_»ad_±r
+ >ð(_å)->
+_IO_»ad_\92d
+, 0) \
+
+402 ?
+ `__uæow
+ (
+_å
+è: *(\1d\ 5*è(_å)->
+_IO_»ad_±r
+++)
+
+ )
+
+403 \ 1
+ #_IO_³ekc_uÆocked
+(
+_å
+) \
+
+404 (
+ `_IO_BE
+ ((
+_å
+)->
+_IO_»ad_±r
+ >ð(_å)->
+_IO_»ad_\92d
+, 0) \
+
+405 &&
+ `__und\94æow
+ (
+_å
+è=ð
+EOF
+ ? EOF \
+
+406 : *(\1d\ 5*è(
+_å
+)->
+_IO_»ad_±r
+)
+
+ )
+
+407 \ 1
+ #_IO_putc_uÆocked
+(
+_ch
+,
+_å
+) \
+
+408 (
+ `_IO_BE
+ ((
+_å
+)->
+_IO_wr\99e_±r
+ >ð(_å)->
+_IO_wr\99e_\92d
+, 0) \
+
+409 ?
+ `__ov\94æow
+ (
+_å
+, (\1d\ 5è(
+_ch
+)) \
+
+410 : (\1d\ 5è(*(
+_å
+)->
+_IO_wr\99e_±r
+++ = (
+_ch
+)))
+
+ )
+
+412 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+413 \ 1
+ #_IO_g\91wc_uÆocked
+(
+_å
+) \
+
+414 (
+ `_IO_BE
+ ((
+_å
+)->
+_wide_d©a
+ =ð
+NULL
+ \
+
+415 || ((
+_å
+)->
+_wide_d©a
+->
+_IO_»ad_±r
+ \
+
+416 >ð(
+_å
+)->
+_wide_d©a
+->
+_IO_»ad_\92d
+), 0) \
+
+417 ?
+ `__wuæow
+ (
+_å
+è: (
+_IO_w\9at_t
+è*(_å)->
+_wide_d©a
+->
+_IO_»ad_±r
+++)
+
+ )
+
+418 \ 1
+ #_IO_putwc_uÆocked
+(
+_wch
+,
+_å
+) \
+
+419 (
+ `_IO_BE
+ ((
+_å
+)->
+_wide_d©a
+ =ð
+NULL
+ \
+
+420 || ((
+_å
+)->
+_wide_d©a
+->
+_IO_wr\99e_±r
+ \
+
+421 >ð(
+_å
+)->
+_wide_d©a
+->
+_IO_wr\99e_\92d
+), 0) \
+
+422 ?
+ `__wov\94æow
+ (
+_å
+,
+_wch
+) \
+
+423 : (
+_IO_w\9at_t
+è(*(
+_å
+)->
+_wide_d©a
+->
+_IO_wr\99e_±r
+++ = (
+_wch
+)))
+
+ )
+
+426 \ 1
+ #_IO_ãof_uÆocked
+(
+__å
+è(((__å)->
+_æags
+ &
+_IO_EOF_SEEN
+è!ð0)
+
+ )
+
+427 \ 1
+ #_IO_ã¼Ü_uÆocked
+(
+__å
+è(((__å)->
+_æags
+ &
+_IO_ERR_SEEN
+è!ð0)
+
+ )
+
+429 \r\12
+_IO_g\91c
+ (
+_IO_FILE
+ *
+__å
+);
+
+430 \r\12
+_IO_putc
+ (\12
+__c
+,
+_IO_FILE
+ *
+__å
+);
+
+431 \r\12
+_IO_ãof
+ (
+_IO_FILE
+ *
+__å
+è
+__THROW
+;
+
+432 \r\12
+_IO_ã¼Ü
+ (
+_IO_FILE
+ *
+__å
+è
+__THROW
+;
+
+434 \r\12
+_IO_³ekc_locked
+ (
+_IO_FILE
+ *
+__å
+);
+
+437 \ 1
+ #_IO_PENDING_OUTPUT_COUNT
+(
+_å
+) \
+
+438 ((
+_å
+)->
+_IO_wr\99e_±r
+ - (_å)->
+_IO_wr\99e_ba£
+)
+
+ )
+
+440 \r\1e
+_IO_æockf\9ee
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+441 \r\1e
+_IO_fuÆockf\9ee
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+442 \r\12
+_IO_árylockf\9ee
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+444 #ifdeà
+_IO_MTSAFE_IO
+
+
+445 \ 1
+ #_IO_³ekc
+(
+_å
+è
+ `_IO_³ekc_locked
+ (_å)
+
+ )
+
+446 \ 1
+ #_IO_æockf\9ee
+(
+_å
+) \
+
+447 ià(((
+_å
+)->
+_æags
+ &
+_IO_USER_LOCK
+è=ð0è
+ `_IO_æockf\9ee
+ (_å)
+
+ )
+
+448 \ 1
+ #_IO_fuÆockf\9ee
+(
+_å
+) \
+
+449 ià(((
+_å
+)->
+_æags
+ &
+_IO_USER_LOCK
+è=ð0è
+ `_IO_fuÆockf\9ee
+ (_å)
+
+ )
+
+451 \ 1
+ #_IO_³ekc
+(
+_å
+è
+ `_IO_³ekc_uÆocked
+ (_å)
+
+ )
+
+452 \ 1
+ #_IO_æockf\9ee
+(
+_å
+è
+
+ )
+
+453 \ 1
+ #_IO_fuÆockf\9ee
+(
+_å
+è
+
+ )
+
+454 \ 1
+ #_IO_árylockf\9ee
+(
+_å
+è
+
+ )
+
+455 \ 1
+ #_IO_þ\97nup_»giÚ_¡¬t
+(
+_fù
+,
+_å
+è
+
+ )
+
+456 \ 1
+ #_IO_þ\97nup_»giÚ_\92d
+(
+_Do\99
+è
+
+ )
+
+459 \r\12
+_IO_vfsÿnf
+ (
+_IO_FILE
+ *
+__»¡riù
+, const \ 5* __restrict,
+
+460
+_IO_va_li¡
+, \12*
+__»¡riù
+);
+
+461 \r\12
+_IO_vår\9atf
+ (
+_IO_FILE
+ *
+__»¡riù
+, const \ 5*__restrict,
+
+462
+_IO_va_li¡
+);
+
+463 \r
+_IO_ssize_t
+
+_IO_·dn
+ (
+_IO_FILE
+ *, \12, _IO_ssize_t);
+
+464 \r
+_IO_size_t
+
+_IO_sg\91n
+ (
+_IO_FILE
+ *, \1e*, _IO_size_t);
+
+466 \r
+_IO_off64_t
+
+_IO_£ekoff
+ (
+_IO_FILE
+ *, _IO_off64_t, \12, \12);
+
+467 \r
+_IO_off64_t
+
+_IO_£ekpos
+ (
+_IO_FILE
+ *, _IO_off64_t, \12);
+
+469 \r\1e
+_IO_ä\93_backup_¬\97
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+471 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+472 \r
+_IO_w\9at_t
+
+_IO_g\91wc
+ (
+_IO_FILE
+ *
+__å
+);
+
+473 \r
+_IO_w\9at_t
+
+_IO_putwc
+ (
+wch¬_t
+
+__wc
+,
+_IO_FILE
+ *
+__å
+);
+
+474 \r\12
+_IO_fwide
+ (
+_IO_FILE
+ *
+__å
+, \12
+__mode
+è
+__THROW
+;
+
+475 #ià
+__GNUC__
+ >= 2
+
+478 #ià
+def\9aed
+
+_LIBC
+ && def\9aed
+SHARED
+
+
+479 \ 2
+ ~<shlib-com·t.h
+>
+
+480 #ià
+SHLIB_COMPAT
+ (
+libc
+,
+GLIBC_2_0
+,
+GLIBC_2_1
+)
+
+481 \ 1
+ #_IO_fwide_maybe_\9acom·tibË
+ \
+
+482 (
+ `__bu\9et\9a_ex³ù
+ (&
+_IO_¡d\9a_u£d
+ =ð
+NULL
+, 0))
+
+ )
+
+483 \rcڡ \12
+_IO_¡d\9a_u£d
+;
+
+484
+w\97k_ex\8bº
+ (
+_IO_¡d\9a_u£d
+);
+
+487 #iâdeà
+_IO_fwide_maybe_\9acom·tibË
+
+
+488 \ 1
+ #_IO_fwide_maybe_\9acom·tibË
+ (0)
+
+ )
+
+492 \ 1
+ #_IO_fwide
+(
+__å
+,
+__mode
+) \
+
+493 ({ \12
+__»suÉ
+ = (
+__mode
+); \
+
+494 ià(
+__»suÉ
+ < 0 && !
+_IO_fwide_maybe_\9acom·tibË
+) \
+
+496 ià((
+__å
+)->
+_mode
+ == 0) \
+
+498 (
+__å
+)->
+_mode
+ = -1; \
+
+499
+__»suÉ
+ = (
+__å
+)->
+_mode
+; \
+
+501 \vià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__mode
+) && (__mode) == 0) \
+
+502
+__»suÉ
+ =
+_IO_fwide_maybe_\9acom·tibË
+ ? -1 : (
+__å
+)->
+_mode
+; \
+
+504
+__»suÉ
+ =
+ `_IO_fwide
+ (
+__å
+, __result); \
+
+505
+__»suÉ
+; })
+
+ )
+
+508 \r\12
+_IO_vfwsÿnf
+ (
+_IO_FILE
+ *
+__»¡riù
+, cڡ
+wch¬_t
+ * __restrict,
+
+509
+_IO_va_li¡
+, \12*
+__»¡riù
+);
+
+510 \r\12
+_IO_vfw´\9atf
+ (
+_IO_FILE
+ *
+__»¡riù
+, cڡ
+wch¬_t
+ *__restrict,
+
+511
+_IO_va_li¡
+);
+
+512 \r
+_IO_ssize_t
+
+_IO_w·dn
+ (
+_IO_FILE
+ *,
+w\9at_t
+, _IO_ssize_t);
+
+513 \r\1e
+_IO_ä\93_wbackup_¬\97
+ (
+_IO_FILE
+ *è
+__THROW
+;
+
+516 #ifdeà
+__LDBL_COMPAT
+
+
+517 \ 2
+ ~<b\99s/libio-ldbl.h
+>
+
+520 #ifdeà
+__ýlu¥lus
+
+
+ @/usr/include/limits.h
+
+22 #iâdeà
+_LIBC_LIMITS_H_
+
+
+23 \ 1
+ #_LIBC_LIMITS_H_
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+31 \ 1
+ #MB_LEN_MAX
+ 16
+
+ )
+
+36 #ià!
+def\9aed
+
+__GNUC__
+ || __GNUC__ < 2
+
+41 #iâdeà
+_LIMITS_H
+
+
+42 \ 1
+ #_LIMITS_H
+ 1
+
+ )
+
+44 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+53 \ 1
+ #CHAR_BIT
+ 8
+
+ )
+
+56 \ 1
+ #SCHAR_MIN
+ (-128)
+
+ )
+
+57 \ 1
+ #SCHAR_MAX
+ 127
+
+ )
+
+60 \ 1
+ #UCHAR_MAX
+ 255
+
+ )
+
+63 #ifdeà
+__CHAR_UNSIGNED__
+
+
+64 \ 1
+ #CHAR_MIN
+ 0
+
+ )
+
+65 \ 1
+ #CHAR_MAX
+
+UCHAR_MAX
+
+
+ )
+
+67 \ 1
+ #CHAR_MIN
+
+SCHAR_MIN
+
+
+ )
+
+68 \ 1
+ #CHAR_MAX
+
+SCHAR_MAX
+
+
+ )
+
+72 \ 1
+ #SHRT_MIN
+ (-32768)
+
+ )
+
+73 \ 1
+ #SHRT_MAX
+ 32767
+
+ )
+
+76 \ 1
+ #USHRT_MAX
+ 65535
+
+ )
+
+79 \ 1
+ #INT_MIN
+ (-
+INT_MAX
+ - 1)
+
+ )
+
+80 \ 1
+ #INT_MAX
+ 2147483647
+
+ )
+
+83 \ 1
+ #UINT_MAX
+ 4294967295U
+
+ )
+
+86 #ià
+__WORDSIZE
+ == 64
+
+87 \ 1
+ #LONG_MAX
+ 9223372036854775807L
+
+ )
+
+89 \ 1
+ #LONG_MAX
+ 2147483647L
+
+ )
+
+91 \ 1
+ #LONG_MIN
+ (-
+LONG_MAX
+ - 1L)
+
+ )
+
+94 #ià
+__WORDSIZE
+ == 64
+
+95 \ 1
+ #ULONG_MAX
+ 18446744073709551615UL
+
+ )
+
+97 \ 1
+ #ULONG_MAX
+ 4294967295UL
+
+ )
+
+100 #ifdeà
+__USE_ISOC99
+
+
+103 \ 1
+ #LLONG_MAX
+ 9223372036854775807LL
+
+ )
+
+104 \ 1
+ #LLONG_MIN
+ (-
+LLONG_MAX
+ - 1LL)
+
+ )
+
+107 \ 1
+ #ULLONG_MAX
+ 18446744073709551615ULL
+
+ )
+
+121 #ià
+def\9aed
+
+__GNUC__
+ && !def\9aed
+_GCC_LIMITS_H_
+
+
+123 #\9aþude_Ãx\88<
+lim\99s
+.
+h
+>
+
+129 #ià
+def\9aed
+
+__USE_ISOC99
+ && def\9aed
+__GNUC__
+
+
+130 #iâdeà
+LLONG_MIN
+
+
+131 \ 1
+ #LLONG_MIN
+ (-
+LLONG_MAX
+-1)
+
+ )
+
+133 #iâdeà
+LLONG_MAX
+
+
+134 \ 1
+ #LLONG_MAX
+
+__LONG_LONG_MAX__
+
+
+ )
+
+136 #iâdeà
+ULLONG_MAX
+
+
+137 \ 1
+ #ULLONG_MAX
+ (
+LLONG_MAX
+ * 2ULL + 1)
+
+ )
+
+141 #ifdef
+__USE_POSIX
+
+
+143 \ 2
+ ~<b\99s/posix1_lim.h
+>
+
+146 #ifdef
+__USE_POSIX2
+
+
+147 \ 2
+ ~<b\99s/posix2_lim.h
+>
+
+150 #ifdef
+__USE_XOPEN
+
+
+151 \ 2
+ ~<b\99s/xÝ\92_lim.h
+>
+
+ @/usr/include/sys/select.h
+
+21 #iâdeà
+_SYS_SELECT_H
+
+
+22 \ 1
+ #_SYS_SELECT_H
+ 1
+
+ )
+
+24 \ 2
+ ~<ã©u»s.h
+>
+
+27 \ 2
+ ~<b\99s/ty³s.h
+>
+
+30 \ 2
+ ~<b\99s/£Ëù.h
+>
+
+33 \ 2
+ ~<b\99s/sig£t.h
+>
+
+35 #iâdeà
+__sig£t_t_def\9aed
+
+
+36 \ 1
+ #__sig£t_t_def\9aed
+
+
+ )
+
+37 \e
+__sig£t_t
+
+ tsig£t_t
+;
+
+41 \ 1
+ #__Ãed_time_t
+
+
+ )
+
+42 \ 1
+ #__Ãed_time¥ec
+
+
+ )
+
+43 \ 2
+ ~<time.h
+>
+
+44 \ 1
+ #__Ãed_timev®
+
+
+ )
+
+45 \ 2
+ ~<b\99s/time.h
+>
+
+47 #iâdeà
+__su£cÚds_t_def\9aed
+
+
+48 \e
+__su£cÚds_t
+
+ tsu£cÚds_t
+;
+
+49 \ 1
+ #__su£cÚds_t_def\9aed
+
+
+ )
+
+54 \e\13\12
+ t__fd_mask
+;
+
+57 #undeà
+__NFDBITS
+
+
+59 \ 1
+ #__NFDBITS
+ (8 * (\12è\17 (
+__fd_mask
+))
+
+ )
+
+60 \ 1
+ #__FD_ELT
+(
+d
+è((dè/
+__NFDBITS
+)
+
+ )
+
+61 \ 1
+ #__FD_MASK
+(
+d
+è((
+__fd_mask
+è(1UL << ((dè%
+__NFDBITS
+)))
+
+ )
+
+68 #ifdeà
+__USE_XOPEN
+
+
+69
+__fd_mask
+
+ mfds_b\99s
+[
+__FD_SETSIZE
+ /
+__NFDBITS
+];
+
+70 \ 1
+ #__FDS_BITS
+(
+£t
+è((£t)->
+fds_b\99s
+)
+
+ )
+
+72
+__fd_mask
+
+ m__fds_b\99s
+[
+__FD_SETSIZE
+ /
+__NFDBITS
+];
+
+73 \ 1
+ #__FDS_BITS
+(
+£t
+è((£t)->
+__fds_b\99s
+)
+
+ )
+
+75 }
+ tfd_£t
+;
+
+78 \ 1
+ #FD_SETSIZE
+
+__FD_SETSIZE
+
+
+ )
+
+80 #ifdeà
+__USE_MISC
+
+
+82 \e
+__fd_mask
+
+ tfd_mask
+;
+
+85 \ 1
+ #NFDBITS
+
+__NFDBITS
+
+
+ )
+
+90 \ 1
+ #FD_SET
+(
+fd
+,
+fd£\8d
+è
+ `__FD_SET
+ (fd, fd£\8d)
+
+ )
+
+91 \ 1
+ #FD_CLR
+(
+fd
+,
+fd£\8d
+è
+ `__FD_CLR
+ (fd, fd£\8d)
+
+ )
+
+92 \ 1
+ #FD_ISSET
+(
+fd
+,
+fd£\8d
+è
+ `__FD_ISSET
+ (fd, fd£\8d)
+
+ )
+
+93 \ 1
+ #FD_ZERO
+(
+fd£\8d
+è
+ `__FD_ZERO
+ (fd£\8d)
+
+ )
+
+96
+__BEGIN_DECLS
+
+
+106 \r\12
+£Ëù
+ (\12
+__nfds
+,
+fd_£t
+ *
+__»¡riù
+
+__»adfds
+,
+
+107
+fd_£t
+ *
+__»¡riù
+
+__wr\99efds
+,
+
+108
+fd_£t
+ *
+__»¡riù
+
+__exû±fds
+,
+
+109 \19
+timev®
+ *
+__»¡riù
+
+__timeout
+);
+
+111 #ifdeà
+__USE_XOPEN2K
+
+
+118 \r\12
+p£Ëù
+ (\12
+__nfds
+,
+fd_£t
+ *
+__»¡riù
+
+__»adfds
+,
+
+119
+fd_£t
+ *
+__»¡riù
+
+__wr\99efds
+,
+
+120
+fd_£t
+ *
+__»¡riù
+
+__exû±fds
+,
+
+121 cڡ \19
+time¥ec
+ *
+__»¡riù
+
+__timeout
+,
+
+122 cڡ
+__sig£t_t
+ *
+__»¡riù
+
+__sigmask
+);
+
+127 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__GNUC__
+
+
+128 \ 2
+ ~<b\99s/£Ëù2.h
+>
+
+131
+ g__END_DECLS
+
+
+ @/usr/include/sys/sysmacros.h
+
+19 #iâdeà
+_SYS_SYSMACROS_H
+
+
+20 \ 1
+ #_SYS_SYSMACROS_H
+ 1
+
+ )
+
+22 \ 2
+ ~<ã©u»s.h
+>
+
+24
+__BEGIN_DECLS
+
+
+26
+__ex\8bnsiÚ__
+
+
+27 \r\1d\12
+ $gnu_dev_majÜ
+ (\1d\13\13\12
+__dev
+)
+
+28
+__THROW
+
+__©\8cibu\8b_cÚ¡__
+;
+
+29
+__ex\8bnsiÚ__
+
+
+30 \r\1d\12
+ $gnu_dev_m\9aÜ
+ (\1d\13\13\12
+__dev
+)
+
+31
+__THROW
+
+__©\8cibu\8b_cÚ¡__
+;
+
+32
+__ex\8bnsiÚ__
+
+
+33 \r\1d\13\13\12
+ $gnu_dev_makedev
+ (\1d\12
+__majÜ
+,
+
+34 \1d\12
+__m\9aÜ
+)
+
+35
+__THROW
+
+__©\8cibu\8b_cÚ¡__
+;
+
+37 #ifdeà
+__USE_EXTERN_INLINES
+
+
+38
+__ex\8bnsiÚ__
+
+__ex\8bº_\9al\9ae
+
+__©\8cibu\8b_cÚ¡__
+ \1d\12
+
+39
+ `__NTH
+ (
+ $gnu_dev_majÜ
+ (\1d\13\13\12
+__dev
+))
+
+41 \15 ((
+__dev
+ >> 8) & 0xfff) | ((\1d\12) (__dev >> 32) & ~0xfff);
+
+42
+ }
+}
+
+44
+__ex\8bnsiÚ__
+
+__ex\8bº_\9al\9ae
+
+__©\8cibu\8b_cÚ¡__
+ \1d\12
+
+45
+__NTH
+ (
+ $gnu_dev_m\9aÜ
+ (\1d\13\13\12
+__dev
+))
+
+47 \15 (
+__dev
+ & 0xff) | ((\1d\12) (__dev >> 12) & ~0xff);
+
+48
+ }
+}
+
+50
+__ex\8bnsiÚ__
+
+__ex\8bº_\9al\9ae
+
+__©\8cibu\8b_cÚ¡__
+ \1d\13\13\12
+
+51
+__NTH
+ (
+ $gnu_dev_makedev
+ (\1d\12
+__majÜ
+, \1d\12
+__m\9aÜ
+))
+
+53 \15 ((
+__m\9aÜ
+ & 0xffè| ((
+__majÜ
+ & 0xfff) << 8)
+
+54 | (((\1d\13\13\12è(
+__m\9aÜ
+ & ~0xff)) << 12)
+
+55 | (((\1d\13\13\12è(
+__majÜ
+ & ~0xfff)) << 32));
+
+56
+ }
+}
+
+58
+ g__END_DECLS
+
+
+61 \ 1
+ #majÜ
+(
+dev
+è
+ `gnu_dev_majÜ
+ (dev)
+
+ )
+
+62 \ 1
+ #m\9aÜ
+(
+dev
+è
+ `gnu_dev_m\9aÜ
+ (dev)
+
+ )
+
+63 \ 1
+ #makedev
+(
+maj
+,
+m\9a
+è
+ `gnu_dev_makedev
+ (maj, m\9a)
+
+ )
+
+ @/usr/include/sys/ucontext.h
+
+18 #iâdeà
+_SYS_UCONTEXT_H
+
+
+19 \ 1
+ #_SYS_UCONTEXT_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+22 \ 2
+ ~<sigÇl.h
+>
+
+26 \ 2
+ ~<b\99s/sigcÚ\8bxt.h
+>
+
+28 #ifdeà
+__x86_64__
+
+
+31
+__ex\8bnsiÚ__
+ \e\13\13\12
+ tg»g_t
+;
+
+34 \ 1
+ #NGREG
+ 23
+
+ )
+
+37 \e
+g»g_t
+
+ tg»g£t_t
+[
+NGREG
+];
+
+39 #ifdeà
+__USE_GNU
+
+
+43
+ mREG_R8
+ = 0,
+
+44 \ 1
+ #REG_R8
+
+REG_R8
+
+
+ )
+
+45
+ mREG_R9
+,
+
+46 \ 1
+ #REG_R9
+
+REG_R9
+
+
+ )
+
+47
+ mREG_R10
+,
+
+48 \ 1
+ #REG_R10
+
+REG_R10
+
+
+ )
+
+49
+ mREG_R11
+,
+
+50 \ 1
+ #REG_R11
+
+REG_R11
+
+
+ )
+
+51
+ mREG_R12
+,
+
+52 \ 1
+ #REG_R12
+
+REG_R12
+
+
+ )
+
+53
+ mREG_R13
+,
+
+54 \ 1
+ #REG_R13
+
+REG_R13
+
+
+ )
+
+55
+ mREG_R14
+,
+
+56 \ 1
+ #REG_R14
+
+REG_R14
+
+
+ )
+
+57
+ mREG_R15
+,
+
+58 \ 1
+ #REG_R15
+
+REG_R15
+
+
+ )
+
+59
+ mREG_RDI
+,
+
+60 \ 1
+ #REG_RDI
+
+REG_RDI
+
+
+ )
+
+61
+ mREG_RSI
+,
+
+62 \ 1
+ #REG_RSI
+
+REG_RSI
+
+
+ )
+
+63
+ mREG_RBP
+,
+
+64 \ 1
+ #REG_RBP
+
+REG_RBP
+
+
+ )
+
+65
+ mREG_RBX
+,
+
+66 \ 1
+ #REG_RBX
+
+REG_RBX
+
+
+ )
+
+67
+ mREG_RDX
+,
+
+68 \ 1
+ #REG_RDX
+
+REG_RDX
+
+
+ )
+
+69
+ mREG_RAX
+,
+
+70 \ 1
+ #REG_RAX
+
+REG_RAX
+
+
+ )
+
+71
+ mREG_RCX
+,
+
+72 \ 1
+ #REG_RCX
+
+REG_RCX
+
+
+ )
+
+73
+ mREG_RSP
+,
+
+74 \ 1
+ #REG_RSP
+
+REG_RSP
+
+
+ )
+
+75
+ mREG_RIP
+,
+
+76 \ 1
+ #REG_RIP
+
+REG_RIP
+
+
+ )
+
+77
+ mREG_EFL
+,
+
+78 \ 1
+ #REG_EFL
+
+REG_EFL
+
+
+ )
+
+79
+ mREG_CSGSFS
+,
+
+80 \ 1
+ #REG_CSGSFS
+
+REG_CSGSFS
+
+
+ )
+
+81
+ mREG_ERR
+,
+
+82 \ 1
+ #REG_ERR
+
+REG_ERR
+
+
+ )
+
+83
+ mREG_TRAPNO
+,
+
+84 \ 1
+ #REG_TRAPNO
+
+REG_TRAPNO
+
+
+ )
+
+85
+ mREG_OLDMASK
+,
+
+86 \ 1
+ #REG_OLDMASK
+
+REG_OLDMASK
+
+
+ )
+
+87
+ mREG_CR2
+
+
+88 \ 1
+ #REG_CR2
+
+REG_CR2
+
+
+ )
+
+92 \19
+ s_libc_åx»g
+
+
+94 \1d\16\12
+ msignifiÿnd
+[4];
+
+95 \1d\16\12
+ mexpڒt
+;
+
+96 \1d\16\12
+ m·dd\9ag
+[3];
+
+99 \19
+ s_libc_xmm»g
+
+
+101
+__u\9at32_t
+
+ m\96em\92t
+[4];
+
+104 \19
+ s_libc_塩e
+
+
+107
+__u\9at16_t
+
+ mcwd
+;
+
+108
+__u\9at16_t
+
+ mswd
+;
+
+109
+__u\9at16_t
+
+ máw
+;
+
+110
+__u\9at16_t
+
+ mfÝ
+;
+
+111
+__u\9at64_t
+
+ mr\9d
+;
+
+112
+__u\9at64_t
+
+ mrdp
+;
+
+113
+__u\9at32_t
+
+ mmxc¤
+;
+
+114
+__u\9at32_t
+
+ mmxü_mask
+;
+
+115 \19
+_libc_åx»g
+
+ m_¡
+[8];
+
+116 \19
+_libc_xmm»g
+
+ m_xmm
+[16];
+
+117
+__u\9at32_t
+
+ m·dd\9ag
+[24];
+
+121 \e\19
+_libc_塩e
+ *
+ tå»g£t_t
+;
+
+126
+g»g£t_t
+
+ mg»gs
+;
+
+128
+å»g£t_t
+
+ må»gs
+;
+
+129
+__ex\8bnsiÚ__
+ \1d\13\13
+ m__ȣrved1
+ [8];
+
+130 }
+ tmcڋxt_t
+;
+
+133 \e\19
+ sucڋxt
+
+
+135 \1d\13\12
+ muc_æags
+;
+
+136 \19
+ucڋxt
+ *
+ muc_l\9ak
+;
+
+137
+¡ack_t
+
+ muc_¡ack
+;
+
+138
+mcڋxt_t
+
+ muc_mcڋxt
+;
+
+139
+__sig£t_t
+
+ muc_sigmask
+;
+
+140 \19
+_libc_塩e
+
+ m__å»gs_mem
+;
+
+141 }
+ tucڋxt_t
+;
+
+146 \e\12
+ tg»g_t
+;
+
+149 \ 1
+ #NGREG
+ 19
+
+ )
+
+152 \e
+g»g_t
+
+ tg»g£t_t
+[
+NGREG
+];
+
+154 #ifdeà
+__USE_GNU
+
+
+158
+ mREG_GS
+ = 0,
+
+159 \ 1
+ #REG_GS
+
+REG_GS
+
+
+ )
+
+160
+ mREG_FS
+,
+
+161 \ 1
+ #REG_FS
+
+REG_FS
+
+
+ )
+
+162
+ mREG_ES
+,
+
+163 \ 1
+ #REG_ES
+
+REG_ES
+
+
+ )
+
+164
+ mREG_DS
+,
+
+165 \ 1
+ #REG_DS
+
+REG_DS
+
+
+ )
+
+166
+ mREG_EDI
+,
+
+167 \ 1
+ #REG_EDI
+
+REG_EDI
+
+
+ )
+
+168
+ mREG_ESI
+,
+
+169 \ 1
+ #REG_ESI
+
+REG_ESI
+
+
+ )
+
+170
+ mREG_EBP
+,
+
+171 \ 1
+ #REG_EBP
+
+REG_EBP
+
+
+ )
+
+172
+ mREG_ESP
+,
+
+173 \ 1
+ #REG_ESP
+
+REG_ESP
+
+
+ )
+
+174
+ mREG_EBX
+,
+
+175 \ 1
+ #REG_EBX
+
+REG_EBX
+
+
+ )
+
+176
+ mREG_EDX
+,
+
+177 \ 1
+ #REG_EDX
+
+REG_EDX
+
+
+ )
+
+178
+ mREG_ECX
+,
+
+179 \ 1
+ #REG_ECX
+
+REG_ECX
+
+
+ )
+
+180
+ mREG_EAX
+,
+
+181 \ 1
+ #REG_EAX
+
+REG_EAX
+
+
+ )
+
+182
+ mREG_TRAPNO
+,
+
+183 \ 1
+ #REG_TRAPNO
+
+REG_TRAPNO
+
+
+ )
+
+184
+ mREG_ERR
+,
+
+185 \ 1
+ #REG_ERR
+
+REG_ERR
+
+
+ )
+
+186
+ mREG_EIP
+,
+
+187 \ 1
+ #REG_EIP
+
+REG_EIP
+
+
+ )
+
+188
+ mREG_CS
+,
+
+189 \ 1
+ #REG_CS
+
+REG_CS
+
+
+ )
+
+190
+ mREG_EFL
+,
+
+191 \ 1
+ #REG_EFL
+
+REG_EFL
+
+
+ )
+
+192
+ mREG_UESP
+,
+
+193 \ 1
+ #REG_UESP
+
+REG_UESP
+
+
+ )
+
+194
+ mREG_SS
+
+
+195 \ 1
+ #REG_SS
+
+REG_SS
+
+
+ )
+
+200 \19
+ s_libc_å»g
+
+
+202 \1d\16\12
+ msignifiÿnd
+[4];
+
+203 \1d\16\12
+ mexpڒt
+;
+
+206 \19
+ s_libc_塩e
+
+
+208 \1d\13\12
+ mcw
+;
+
+209 \1d\13\12
+ msw
+;
+
+210 \1d\13\12
+ m\8fg
+;
+
+211 \1d\13\12
+ m\9doff
+;
+
+212 \1d\13\12
+ mcs£l
+;
+
+213 \1d\13\12
+ md©aoff
+;
+
+214 \1d\13\12
+ md©a£l
+;
+
+215 \19
+_libc_å»g
+
+ m_¡
+[8];
+
+216 \1d\13\12
+ m¡©us
+;
+
+220 \e\19
+_libc_塩e
+ *
+ tå»g£t_t
+;
+
+225
+g»g£t_t
+
+ mg»gs
+;
+
+228
+å»g£t_t
+
+ må»gs
+;
+
+229 \1d\13\12
+ mÞdmask
+;
+
+230 \1d\13\12
+ mü2
+;
+
+231 }
+ tmcڋxt_t
+;
+
+234 \e\19
+ sucڋxt
+
+
+236 \1d\13\12
+ muc_æags
+;
+
+237 \19
+ucڋxt
+ *
+ muc_l\9ak
+;
+
+238
+¡ack_t
+
+ muc_¡ack
+;
+
+239
+mcڋxt_t
+
+ muc_mcڋxt
+;
+
+240
+__sig£t_t
+
+ muc_sigmask
+;
+
+241 \19
+_libc_塩e
+
+ m__å»gs_mem
+;
+
+242 }
+ tucڋxt_t
+;
+
+ @/usr/include/sys/uio.h
+
+18 #iâdeà
+_SYS_UIO_H
+
+
+19 \ 1
+ #_SYS_UIO_H
+ 1
+
+ )
+
+21 \ 2
+ ~<ã©u»s.h
+>
+
+23 \ 2
+ ~<sys/ty³s.h
+>
+
+25
+ g__BEGIN_DECLS
+
+
+28 \ 2
+ ~<b\99s/uio.h
+>
+
+39 \r
+ssize_t
+
+ $»adv
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+)
+
+40
+__wur
+;
+
+50 \r
+ssize_t
+
+ $wr\99ev
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+)
+
+51
+__wur
+;
+
+54 #ifdeà
+__USE_MISC
+
+
+55 #iâdeà
+__USE_FILE_OFFSET64
+
+
+65 \r
+ssize_t
+
+ $´\97dv
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+,
+
+66
+__off_t
+
+__off£t
+è
+__wur
+;
+
+77 \r
+ssize_t
+
+ $pwr\99ev
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+,
+
+78
+__off_t
+
+__off£t
+è
+__wur
+;
+
+80 #ifdeà
+__REDIRECT
+
+
+81 \r
+ssize_t
+
+ `__REDIRECT
+ (
+´\97dv
+, (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+,
+
+82 \12
+__couÁ
+,
+__off64_t
+
+__off£t
+),
+
+83
+´\97dv64
+è
+__wur
+;
+
+84 \r
+ssize_t
+
+ `__REDIRECT
+ (
+pwr\99ev
+, (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+,
+
+85 \12
+__couÁ
+,
+__off64_t
+
+__off£t
+),
+
+86
+pwr\99ev64
+è
+__wur
+;
+
+88 \ 1
+ #´\97dv
+
+´\97dv64
+
+
+ )
+
+89 \ 1
+ #pwr\99ev
+
+pwr\99ev64
+
+
+ )
+
+93 #ifdeà
+__USE_LARGEFILE64
+
+
+103 \r
+ssize_t
+
+ $´\97dv64
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+,
+
+104
+__off64_t
+
+__off£t
+è
+__wur
+;
+
+115 \r
+ssize_t
+
+ $pwr\99ev64
+ (\12
+__fd
+, cڡ \19
+iovec
+ *
+__iovec
+, \12
+__couÁ
+,
+
+116
+__off64_t
+
+__off£t
+è
+__wur
+;
+
+120
+__END_DECLS
+
+
+ @/usr/include/xlocale.h
+
+20 #iâdeà
+_XLOCALE_H
+
+
+21 \ 1
+ #_XLOCALE_H
+ 1
+
+ )
+
+27 \e\19
+ s__loÿË_¡ruù
+
+
+30 \19
+__loÿË_d©a
+ *
+ m__loÿËs
+[13];
+
+33 cڡ \1d\16\12*
+ m__ùy³_b
+;
+
+34 cڡ \12*
+ m__ùy³_tÞow\94
+;
+
+35 cڡ \12*
+ m__ùy³_touµ\94
+;
+
+38 cڡ \ 5*
+ m__Çmes
+[13];
+
+39 } *
+ t__loÿË_t
+;
+
+42 \e
+__loÿË_t
+
+ tloÿË_t
+;
+
+ @/usr/include/_G_config.h
+
+4 #iâdeà
+_G_cÚfig_h
+
+
+5 \ 1
+ #_G_cÚfig_h
+ 1
+
+ )
+
+9 \ 2
+ ~<b\99s/ty³s.h
+>
+
+10 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+11 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+12 \ 1
+ #__Ãed_wch¬_t
+
+
+ )
+
+14 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+15 \ 2
+ ~<¡ddef.h
+>
+
+16 \ 1
+ #__Ãed_mb¡©e_t
+
+
+ )
+
+17 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+18 \ 1
+ #__Ãed_w\9at_t
+
+
+ )
+
+20 \ 2
+ ~<wch¬.h
+>
+
+23
+__off_t
+
+ m__pos
+;
+
+24
+__mb¡©e_t
+
+ m__¡©e
+;
+
+25 }
+ t_G_åos_t
+;
+
+28
+__off64_t
+
+ m__pos
+;
+
+29
+__mb¡©e_t
+
+ m__¡©e
+;
+
+30 }
+ t_G_åos64_t
+;
+
+31 #ià
+def\9aed
+
+_LIBC
+ || def\9aed
+_GLIBCPP_USE_WCHAR_T
+
+
+32 \ 2
+ ~<gcÚv.h
+>
+
+35 \19
+__gcÚv_\9afo
+
+ m__cd
+;
+
+38 \19
+__gcÚv_\9afo
+
+ m__cd
+;
+
+39 \19
+__gcÚv_¡\95_d©a
+
+ m__d©a
+;
+
+40 }
+ m__comb\9aed
+;
+
+41 }
+ t_G_icÚv_t
+;
+
+46 \ 1
+ #_G_va_li¡
+
+__gnuc_va_li¡
+
+
+ )
+
+48 \ 1
+ #_G_HAVE_MMAP
+ 1
+
+ )
+
+49 \ 1
+ #_G_HAVE_MREMAP
+ 1
+
+ )
+
+51 \ 1
+ #_G_IO_IO_FILE_VERSION
+ 0x20001
+
+ )
+
+54 \ 1
+ #_G_HAVE_ST_BLKSIZE
+
+ `def\9aed
+ (
+_STATBUF_ST_BLKSIZE
+)
+
+ )
+
+56 \ 1
+ #_G_BUFSIZ
+ 8192
+
+ )
+
+ @/usr/include/asm/socket.h
+
+1 \ 2
+ ~<asm-g\92\94ic/sock\91.h
+>
+
+ @/usr/include/bits/byteswap-16.h
+
+19 #iâdeà
+_BITS_BYTESWAP_H
+
+
+23 #ifdeà
+__GNUC__
+
+
+24 #ià
+__GNUC__
+ >= 2
+
+25 \ 1
+ #__bsw_16
+(
+x
+) \
+
+26 (
+__ex\8bnsiÚ__
+ \
+
+27 ({ \1d\16\12
+__v
+,
+__x
+ = (\1d\16\12è(
+x
+); \
+
+28 ià(
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__x
+)) \
+
+29
+__v
+ =
+ `__bsw_cÚ¡ªt_16
+ (
+__x
+); \
+
+31
+ `__asm__
+ ("rorw $8, %w0" \
+
+32 : "ô" (
+__v
+) \
+
+33 : "0" (
+__x
+) \
+
+35
+__v
+; }))
+
+ )
+
+38 \ 1
+ #__bsw_16
+(
+x
+) \
+
+39 (
+__ex\8bnsiÚ__
+ \
+
+40 ({ \1d\16\12
+__x
+ = (\1d\16\12è(
+x
+); \
+
+41
+ `__bsw_cÚ¡ªt_16
+ (
+__x
+); }))
+
+ )
+
+44 \18
+__\9al\9ae
+ \1d\16\12
+
+45
+ $__bsw_16
+ (\1d\16\12
+__bsx
+)
+
+47 \15
+ `__bsw_cÚ¡ªt_16
+ (
+__bsx
+);
+
+48
+ }
+}
+
+ @/usr/include/bits/endian.h
+
+3 #iâdeà
+_ENDIAN_H
+
+
+7 \ 1
+ #__BYTE_ORDER
+
+__LITTLE_ENDIAN
+
+
+ )
+
+ @/usr/include/bits/fcntl-linux.h
+
+19 #iâdef
+_FCNTL_H
+
+
+37 #ifdeà
+__USE_GNU
+
+
+38 \ 2
+ ~<b\99s/uio.h
+>
+
+42 \ 1
+ #O_ACCMODE
+ 0003
+
+ )
+
+43 \ 1
+ #O_RDONLY
+ 00
+
+ )
+
+44 \ 1
+ #O_WRONLY
+ 01
+
+ )
+
+45 \ 1
+ #O_RDWR
+ 02
+
+ )
+
+46 #iâdeà
+O_CREAT
+
+
+47 \ 1
+ #O_CREAT
+ 0100
+
+ )
+
+49 #iâdeà
+O_EXCL
+
+
+50 \ 1
+ #O_EXCL
+ 0200
+
+ )
+
+52 #iâdeà
+O_NOCTTY
+
+
+53 \ 1
+ #O_NOCTTY
+ 0400
+
+ )
+
+55 #iâdeà
+O_TRUNC
+
+
+56 \ 1
+ #O_TRUNC
+ 01000
+
+ )
+
+58 #iâdeà
+O_APPEND
+
+
+59 \ 1
+ #O_APPEND
+ 02000
+
+ )
+
+61 #iâdeà
+O_NONBLOCK
+
+
+62 \ 1
+ #O_NONBLOCK
+ 04000
+
+ )
+
+64 #iâdeà
+O_NDELAY
+
+
+65 \ 1
+ #O_NDELAY
+
+O_NONBLOCK
+
+
+ )
+
+67 #iâdeà
+O_SYNC
+
+
+68 \ 1
+ #O_SYNC
+ 04010000
+
+ )
+
+70 \ 1
+ #O_FSYNC
+
+O_SYNC
+
+
+ )
+
+71 #iâdeà
+O_ASYNC
+
+
+72 \ 1
+ #O_ASYNC
+ 020000
+
+ )
+
+74 #iâdeà
+__O_LARGEFILE
+
+
+75 \ 1
+ #__O_LARGEFILE
+ 0100000
+
+ )
+
+78 #iâdeà
+__O_DIRECTORY
+
+
+79 \ 1
+ #__O_DIRECTORY
+ 0200000
+
+ )
+
+81 #iâdeà
+__O_NOFOLLOW
+
+
+82 \ 1
+ #__O_NOFOLLOW
+ 0400000
+
+ )
+
+84 #iâdeà
+__O_CLOEXEC
+
+
+85 \ 1
+ #__O_CLOEXEC
+ 02000000
+
+ )
+
+87 #iâdeà
+__O_DIRECT
+
+
+88 \ 1
+ #__O_DIRECT
+ 040000
+
+ )
+
+90 #iâdeà
+__O_NOATIME
+
+
+91 \ 1
+ #__O_NOATIME
+ 01000000
+
+ )
+
+93 #iâdeà
+__O_PATH
+
+
+94 \ 1
+ #__O_PATH
+ 010000000
+
+ )
+
+96 #iâdeà
+__O_DSYNC
+
+
+97 \ 1
+ #__O_DSYNC
+ 010000
+
+ )
+
+99 #iâdeà
+__O_TMPFILE
+
+
+100 \ 1
+ #__O_TMPFILE
+ (020000000 |
+__O_DIRECTORY
+)
+
+ )
+
+103 #iâdeà
+F_GETLK
+
+
+104 #iâdeà
+__USE_FILE_OFFSET64
+
+
+105 \ 1
+ #F_GETLK
+ 5
+
+ )
+
+106 \ 1
+ #F_SETLK
+ 6
+
+ )
+
+107 \ 1
+ #F_SETLKW
+ 7
+
+ )
+
+109 \ 1
+ #F_GETLK
+
+F_GETLK64
+
+
+ )
+
+110 \ 1
+ #F_SETLK
+
+F_SETLK64
+
+
+ )
+
+111 \ 1
+ #F_SETLKW
+
+F_SETLKW64
+
+
+ )
+
+114 #iâdeà
+F_GETLK64
+
+
+115 \ 1
+ #F_GETLK64
+ 12
+
+ )
+
+116 \ 1
+ #F_SETLK64
+ 13
+
+ )
+
+117 \ 1
+ #F_SETLKW64
+ 14
+
+ )
+
+131 #ifdeà
+__USE_GNU
+
+
+132 \ 1
+ #F_OFD_GETLK
+ 36
+
+ )
+
+133 \ 1
+ #F_OFD_SETLK
+ 37
+
+ )
+
+134 \ 1
+ #F_OFD_SETLKW
+ 38
+
+ )
+
+137 #ifdeà
+__USE_LARGEFILE64
+
+
+138 \ 1
+ #O_LARGEFILE
+
+__O_LARGEFILE
+
+
+ )
+
+141 #ifdeà
+__USE_XOPEN2K8
+
+
+142 \ 1
+ #O_DIRECTORY
+
+__O_DIRECTORY
+
+
+ )
+
+143 \ 1
+ #O_NOFOLLOW
+
+__O_NOFOLLOW
+
+
+ )
+
+144 \ 1
+ #O_CLOEXEC
+
+__O_CLOEXEC
+
+
+ )
+
+147 #ifdeà
+__USE_GNU
+
+
+148 \ 1
+ #O_DIRECT
+
+__O_DIRECT
+
+
+ )
+
+149 \ 1
+ #O_NOATIME
+
+__O_NOATIME
+
+
+ )
+
+150 \ 1
+ #O_PATH
+
+__O_PATH
+
+
+ )
+
+151 \ 1
+ #O_TMPFILE
+
+__O_TMPFILE
+
+
+ )
+
+157 #ià
+def\9aed
+
+__USE_POSIX199309
+ || def\9aed
+__USE_UNIX98
+
+
+158 \ 1
+ #O_DSYNC
+
+__O_DSYNC
+
+
+ )
+
+159 #ià
+def\9aed
+
+__O_RSYNC
+
+
+160 \ 1
+ #O_RSYNC
+
+__O_RSYNC
+
+
+ )
+
+162 \ 1
+ #O_RSYNC
+
+O_SYNC
+
+
+ )
+
+167 \ 1
+ #F_DUPFD
+ 0
+
+ )
+
+168 \ 1
+ #F_GETFD
+ 1
+
+ )
+
+169 \ 1
+ #F_SETFD
+ 2
+
+ )
+
+170 \ 1
+ #F_GETFL
+ 3
+
+ )
+
+171 \ 1
+ #F_SETFL
+ 4
+
+ )
+
+173 #iâdeà
+__F_SETOWN
+
+
+174 \ 1
+ #__F_SETOWN
+ 8
+
+ )
+
+175 \ 1
+ #__F_GETOWN
+ 9
+
+ )
+
+178 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K8
+
+
+179 \ 1
+ #F_SETOWN
+
+__F_SETOWN
+
+
+ )
+
+180 \ 1
+ #F_GETOWN
+
+__F_GETOWN
+
+
+ )
+
+183 #iâdeà
+__F_SETSIG
+
+
+184 \ 1
+ #__F_SETSIG
+ 10
+
+ )
+
+185 \ 1
+ #__F_GETSIG
+ 11
+
+ )
+
+187 #iâdeà
+__F_SETOWN_EX
+
+
+188 \ 1
+ #__F_SETOWN_EX
+ 15
+
+ )
+
+189 \ 1
+ #__F_GETOWN_EX
+ 16
+
+ )
+
+192 #ifdeà
+__USE_GNU
+
+
+193 \ 1
+ #F_SETSIG
+
+__F_SETSIG
+
+
+ )
+
+194 \ 1
+ #F_GETSIG
+
+__F_GETSIG
+
+
+ )
+
+195 \ 1
+ #F_SETOWN_EX
+
+__F_SETOWN_EX
+
+
+ )
+
+196 \ 1
+ #F_GETOWN_EX
+
+__F_GETOWN_EX
+
+
+ )
+
+199 #ifdeà
+__USE_GNU
+
+
+200 \ 1
+ #F_SETLEASE
+ 1024
+
+ )
+
+201 \ 1
+ #F_GETLEASE
+ 1025
+
+ )
+
+202 \ 1
+ #F_NOTIFY
+ 1026
+
+ )
+
+203 \ 1
+ #F_SETPIPE_SZ
+ 1031
+
+ )
+
+204 \ 1
+ #F_GETPIPE_SZ
+ 1032
+
+ )
+
+206 #ifdeà
+__USE_XOPEN2K8
+
+
+207 \ 1
+ #F_DUPFD_CLOEXEC
+ 1030
+
+ )
+
+212 \ 1
+ #FD_CLOEXEC
+ 1
+
+ )
+
+214 #iâdeà
+F_RDLCK
+
+
+216 \ 1
+ #F_RDLCK
+ 0
+
+ )
+
+217 \ 1
+ #F_WRLCK
+ 1
+
+ )
+
+218 \ 1
+ #F_UNLCK
+ 2
+
+ )
+
+223 #iâdeà
+F_EXLCK
+
+
+224 \ 1
+ #F_EXLCK
+ 4
+
+ )
+
+225 \ 1
+ #F_SHLCK
+ 8
+
+ )
+
+228 #ifdeà
+__USE_MISC
+
+
+230 \ 1
+ #LOCK_SH
+ 1
+
+ )
+
+231 \ 1
+ #LOCK_EX
+ 2
+
+ )
+
+232 \ 1
+ #LOCK_NB
+ 4
+
+ )
+
+234 \ 1
+ #LOCK_UN
+ 8
+
+ )
+
+237 #ifdeà
+__USE_GNU
+
+
+238 \ 1
+ #LOCK_MAND
+ 32
+
+ )
+
+239 \ 1
+ #LOCK_READ
+ 64
+
+ )
+
+240 \ 1
+ #LOCK_WRITE
+ 128
+
+ )
+
+241 \ 1
+ #LOCK_RW
+ 192
+
+ )
+
+244 #ifdeà
+__USE_GNU
+
+
+246 \ 1
+ #DN_ACCESS
+ 0x00000001
+
+ )
+
+247 \ 1
+ #DN_MODIFY
+ 0x00000002
+
+ )
+
+248 \ 1
+ #DN_CREATE
+ 0x00000004
+
+ )
+
+249 \ 1
+ #DN_DELETE
+ 0x00000008
+
+ )
+
+250 \ 1
+ #DN_RENAME
+ 0x00000010
+
+ )
+
+251 \ 1
+ #DN_ATTRIB
+ 0x00000020
+
+ )
+
+252 \ 1
+ #DN_MULTISHOT
+ 0x80000000
+
+ )
+
+256 #ifdeà
+__USE_GNU
+
+
+258 \f
+ e__pid_ty³
+
+
+260
+ mF_OWNER_TID
+ = 0,
+
+261
+ mF_OWNER_PID
+,
+
+262
+ mF_OWNER_PGRP
+,
+
+263
+ mF_OWNER_GID
+ =
+F_OWNER_PGRP
+
+
+267 \19
+ sf_owÃr_ex
+
+
+269 \f
+__pid_ty³
+
+ mty³
+;
+
+270
+__pid_t
+
+ mpid
+;
+
+276 #ifdef
+__USE_MISC
+
+
+277 \ 1
+ #FAPPEND
+
+O_APPEND
+
+
+ )
+
+278 \ 1
+ #FFSYNC
+
+O_FSYNC
+
+
+ )
+
+279 \ 1
+ #FASYNC
+
+O_ASYNC
+
+
+ )
+
+280 \ 1
+ #FNONBLOCK
+
+O_NONBLOCK
+
+
+ )
+
+281 \ 1
+ #FNDELAY
+
+O_NDELAY
+
+
+ )
+
+284 #iâdeà
+__POSIX_FADV_DONTNEED
+
+
+285 \ 1
+ #__POSIX_FADV_DONTNEED
+ 4
+
+ )
+
+286 \ 1
+ #__POSIX_FADV_NOREUSE
+ 5
+
+ )
+
+289 #ifdeà
+__USE_XOPEN2K
+
+
+290 \ 1
+ #POSIX_FADV_NORMAL
+ 0
+
+ )
+
+291 \ 1
+ #POSIX_FADV_RANDOM
+ 1
+
+ )
+
+292 \ 1
+ #POSIX_FADV_SEQUENTIAL
+ 2
+
+ )
+
+293 \ 1
+ #POSIX_FADV_WILLNEED
+ 3
+
+ )
+
+294 \ 1
+ #POSIX_FADV_DONTNEED
+
+__POSIX_FADV_DONTNEED
+
+
+ )
+
+295 \ 1
+ #POSIX_FADV_NOREUSE
+
+__POSIX_FADV_NOREUSE
+
+
+ )
+
+299 #ifdeà
+__USE_GNU
+
+
+301 \ 1
+ #SYNC_FILE_RANGE_WAIT_BEFORE
+ 1
+
+ )
+
+304 \ 1
+ #SYNC_FILE_RANGE_WRITE
+ 2
+
+ )
+
+307 \ 1
+ #SYNC_FILE_RANGE_WAIT_AFTER
+ 4
+
+ )
+
+312 \ 1
+ #SPLICE_F_MOVE
+ 1
+
+ )
+
+313 \ 1
+ #SPLICE_F_NONBLOCK
+ 2
+
+ )
+
+316 \ 1
+ #SPLICE_F_MORE
+ 4
+
+ )
+
+317 \ 1
+ #SPLICE_F_GIFT
+ 8
+
+ )
+
+321 \ 1
+ #FALLOC_FL_KEEP_SIZE
+ 1
+
+ )
+
+324 \ 1
+ #FALLOC_FL_PUNCH_HOLE
+ 2
+
+ )
+
+325 \ 1
+ #FALLOC_FL_COLLAPSE_RANGE
+ 8
+
+ )
+
+328 \ 1
+ #FALLOC_FL_ZERO_RANGE
+ 16
+
+ )
+
+333 \19
+ sf\9ee_hªdË
+
+
+335 \1d\12
+ mhªdË_by\8bs
+;
+
+336 \12
+ mhªdË_ty³
+;
+
+338 \1d\ 5
+ mf_hªdË
+[0];
+
+342 \ 1
+ #MAX_HANDLE_SZ
+ 128
+
+ )
+
+346 #ifdeà
+__USE_ATFILE
+
+
+347 \ 1
+ #AT_FDCWD
+ -100
+
+ )
+
+350 \ 1
+ #AT_SYMLINK_NOFOLLOW
+ 0x100
+
+ )
+
+351 \ 1
+ #AT_REMOVEDIR
+ 0x200
+
+ )
+
+353 \ 1
+ #AT_SYMLINK_FOLLOW
+ 0x400
+
+ )
+
+354 #ifdeà
+__USE_GNU
+
+
+355 \ 1
+ #AT_NO_AUTOMOUNT
+ 0x800
+
+ )
+
+357 \ 1
+ #AT_EMPTY_PATH
+ 0x1000
+
+ )
+
+359 \ 1
+ #AT_EACCESS
+ 0x200
+
+ )
+
+363
+ g__BEGIN_DECLS
+
+
+365 #ifdeà
+__USE_GNU
+
+
+368 \r
+ssize_t
+
+ $»adah\97d
+ (\12
+__fd
+,
+__off64_t
+
+__off£t
+,
+size_t
+
+__couÁ
+)
+
+369
+__THROW
+;
+
+376 \r\12
+ `sync_f\9ee_¿nge
+ (\12
+__fd
+,
+__off64_t
+
+__off£t
+, __off64_\88
+__couÁ
+,
+
+377 \1d\12
+__æags
+);
+
+384 \r
+ssize_t
+
+ `vm¥liû
+ (\12
+__fdout
+, cڡ \19
+iovec
+ *
+__iov
+,
+
+385
+size_t
+
+__couÁ
+, \1d\12
+__æags
+);
+
+391 \r
+ssize_t
+
+ `¥liû
+ (\12
+__fd\9a
+,
+__off64_t
+ *
+__off\9a
+, \12
+__fdout
+,
+
+392
+__off64_t
+ *
+__offout
+,
+size_t
+
+__Ën
+,
+
+393 \1d\12
+__æags
+);
+
+399 \r
+ssize_t
+
+ `\8be
+ (\12
+__fd\9a
+, \12
+__fdout
+,
+size_t
+
+__Ën
+,
+
+400 \1d\12
+__æags
+);
+
+406 #iâdeà
+__USE_FILE_OFFSET64
+
+
+407 \r\12
+ `çÎoÿ\8b
+ (\12
+__fd
+, \12
+__mode
+,
+__off_t
+
+__off£t
+, __off_\88
+__Ën
+);
+
+409 #ifdeà
+__REDIRECT
+
+
+410 \r\12
+ `__REDIRECT
+ (
+çÎoÿ\8b
+, (\12
+__fd
+, \12
+__mode
+,
+__off64_t
+
+__off£t
+,
+
+411
+__off64_t
+
+__Ën
+),
+
+412
+çÎoÿ\8b64
+);
+
+414 \ 1
+ #çÎoÿ\8b
+
+çÎoÿ\8b64
+
+
+ )
+
+417 #ifdeà
+__USE_LARGEFILE64
+
+
+418 \r\12
+ `çÎoÿ\8b64
+ (\12
+__fd
+, \12
+__mode
+,
+__off64_t
+
+__off£t
+,
+
+419
+__off64_t
+
+__Ën
+);
+
+424 \r\12
+ $Çme_to_hªdË_©
+ (\12
+__dfd
+, cڡ \ 5*
+__Çme
+,
+
+425 \19
+f\9ee_hªdË
+ *
+__hªdË
+, \12*
+__mÁ_id
+,
+
+426 \12
+__æags
+è
+__THROW
+;
+
+432 \r\12
+ `Ý\92_by_hªdË_©
+ (\12
+__mouÁd\9cfd
+, \19
+f\9ee_hªdË
+ *
+__hªdË
+,
+
+433 \12
+__æags
+);
+
+437
+__END_DECLS
+
+
+ @/usr/include/bits/libio-ldbl.h
+
+19 #iâdeà
+_IO_STDIO_H
+
+
+23
+ $__LDBL_REDIR_DECL
+ (
+_IO_vfsÿnf
+)
+
+24
+ `__LDBL_REDIR_DECL
+ (
+_IO_vår\9atf
+)
+
+ @/usr/include/bits/libm-simd-decl-stubs.h
+
+19 #iâdeà
+_MATH_H
+
+
+33 #iâdeà
+_BITS_LIBM_SIMD_DECL_STUBS_H
+
+
+34 \ 1
+ #_BITS_LIBM_SIMD_DECL_STUBS_H
+ 1
+
+ )
+
+36 \ 1
+ #__DECL_SIMD_cos
+
+
+ )
+
+37 \ 1
+ #__DECL_SIMD_cosf
+
+
+ )
+
+38 \ 1
+ #__DECL_SIMD_co¦
+
+
+ )
+
+40 \ 1
+ #__DECL_SIMD_s\9a
+
+
+ )
+
+41 \ 1
+ #__DECL_SIMD_s\9af
+
+
+ )
+
+42 \ 1
+ #__DECL_SIMD_s\9al
+
+
+ )
+
+44 \ 1
+ #__DECL_SIMD_s\9acos
+
+
+ )
+
+45 \ 1
+ #__DECL_SIMD_s\9acosf
+
+
+ )
+
+46 \ 1
+ #__DECL_SIMD_s\9aco¦
+
+
+ )
+
+48 \ 1
+ #__DECL_SIMD_log
+
+
+ )
+
+49 \ 1
+ #__DECL_SIMD_logf
+
+
+ )
+
+50 \ 1
+ #__DECL_SIMD_logl
+
+
+ )
+
+52 \ 1
+ #__DECL_SIMD_exp
+
+
+ )
+
+53 \ 1
+ #__DECL_SIMD_expf
+
+
+ )
+
+54 \ 1
+ #__DECL_SIMD_ex¶
+
+
+ )
+
+56 \ 1
+ #__DECL_SIMD_pow
+
+
+ )
+
+57 \ 1
+ #__DECL_SIMD_powf
+
+
+ )
+
+58 \ 1
+ #__DECL_SIMD_powl
+
+
+ )
+
+ @/usr/include/bits/posix1_lim.h
+
+24 #iâdef
+_BITS_POSIX1_LIM_H
+
+
+25 \ 1
+ #_BITS_POSIX1_LIM_H
+ 1
+
+ )
+
+31 \ 1
+ #_POSIX_AIO_LISTIO_MAX
+ 2
+
+ )
+
+34 \ 1
+ #_POSIX_AIO_MAX
+ 1
+
+ )
+
+37 \ 1
+ #_POSIX_ARG_MAX
+ 4096
+
+ )
+
+40 #ifdeà
+__USE_XOPEN2K
+
+
+41 \ 1
+ #_POSIX_CHILD_MAX
+ 25
+
+ )
+
+43 \ 1
+ #_POSIX_CHILD_MAX
+ 6
+
+ )
+
+47 \ 1
+ #_POSIX_DELAYTIMER_MAX
+ 32
+
+ )
+
+51 \ 1
+ #_POSIX_HOST_NAME_MAX
+ 255
+
+ )
+
+54 \ 1
+ #_POSIX_LINK_MAX
+ 8
+
+ )
+
+57 \ 1
+ #_POSIX_LOGIN_NAME_MAX
+ 9
+
+ )
+
+60 \ 1
+ #_POSIX_MAX_CANON
+ 255
+
+ )
+
+64 \ 1
+ #_POSIX_MAX_INPUT
+ 255
+
+ )
+
+67 \ 1
+ #_POSIX_MQ_OPEN_MAX
+ 8
+
+ )
+
+70 \ 1
+ #_POSIX_MQ_PRIO_MAX
+ 32
+
+ )
+
+73 \ 1
+ #_POSIX_NAME_MAX
+ 14
+
+ )
+
+76 #ifdeà
+__USE_XOPEN2K
+
+
+77 \ 1
+ #_POSIX_NGROUPS_MAX
+ 8
+
+ )
+
+79 \ 1
+ #_POSIX_NGROUPS_MAX
+ 0
+
+ )
+
+83 #ifdeà
+__USE_XOPEN2K
+
+
+84 \ 1
+ #_POSIX_OPEN_MAX
+ 20
+
+ )
+
+86 \ 1
+ #_POSIX_OPEN_MAX
+ 16
+
+ )
+
+89 #ià!
+def\9aed
+
+__USE_XOPEN2K
+ || def\9aed
+__USE_GNU
+
+
+92 \ 1
+ #_POSIX_FD_SETSIZE
+
+_POSIX_OPEN_MAX
+
+
+ )
+
+96 \ 1
+ #_POSIX_PATH_MAX
+ 256
+
+ )
+
+99 \ 1
+ #_POSIX_PIPE_BUF
+ 512
+
+ )
+
+103 \ 1
+ #_POSIX_RE_DUP_MAX
+ 255
+
+ )
+
+106 \ 1
+ #_POSIX_RTSIG_MAX
+ 8
+
+ )
+
+109 \ 1
+ #_POSIX_SEM_NSEMS_MAX
+ 256
+
+ )
+
+112 \ 1
+ #_POSIX_SEM_VALUE_MAX
+ 32767
+
+ )
+
+115 \ 1
+ #_POSIX_SIGQUEUE_MAX
+ 32
+
+ )
+
+118 \ 1
+ #_POSIX_SSIZE_MAX
+ 32767
+
+ )
+
+121 \ 1
+ #_POSIX_STREAM_MAX
+ 8
+
+ )
+
+124 \ 1
+ #_POSIX_SYMLINK_MAX
+ 255
+
+ )
+
+128 \ 1
+ #_POSIX_SYMLOOP_MAX
+ 8
+
+ )
+
+131 \ 1
+ #_POSIX_TIMER_MAX
+ 32
+
+ )
+
+134 \ 1
+ #_POSIX_TTY_NAME_MAX
+ 9
+
+ )
+
+137 #ifdeà
+__USE_XOPEN2K
+
+
+138 \ 1
+ #_POSIX_TZNAME_MAX
+ 6
+
+ )
+
+140 \ 1
+ #_POSIX_TZNAME_MAX
+ 3
+
+ )
+
+143 #ià!
+def\9aed
+
+__USE_XOPEN2K
+ || def\9aed
+__USE_GNU
+
+
+145 \ 1
+ #_POSIX_QLIMIT
+ 1
+
+ )
+
+149 \ 1
+ #_POSIX_HIWAT
+
+_POSIX_PIPE_BUF
+
+
+ )
+
+152 \ 1
+ #_POSIX_UIO_MAXIOV
+ 16
+
+ )
+
+156 \ 1
+ #_POSIX_CLOCKRES_MIN
+ 20000000
+
+ )
+
+160 \ 2
+ ~<b\99s/loÿl_lim.h
+>
+
+163 #iâdef
+SSIZE_MAX
+
+
+164 \ 1
+ #SSIZE_MAX
+
+LONG_MAX
+
+
+ )
+
+171 #iâdef
+NGROUPS_MAX
+
+
+172 \ 1
+ #NGROUPS_MAX
+ 8
+
+ )
+
+ @/usr/include/bits/posix2_lim.h
+
+22 #iâdef
+_BITS_POSIX2_LIM_H
+
+
+23 \ 1
+ #_BITS_POSIX2_LIM_H
+ 1
+
+ )
+
+27 \ 1
+ #_POSIX2_BC_BASE_MAX
+ 99
+
+ )
+
+30 \ 1
+ #_POSIX2_BC_DIM_MAX
+ 2048
+
+ )
+
+33 \ 1
+ #_POSIX2_BC_SCALE_MAX
+ 99
+
+ )
+
+36 \ 1
+ #_POSIX2_BC_STRING_MAX
+ 1000
+
+ )
+
+40 \ 1
+ #_POSIX2_COLL_WEIGHTS_MAX
+ 2
+
+ )
+
+44 \ 1
+ #_POSIX2_EXPR_NEST_MAX
+ 32
+
+ )
+
+47 \ 1
+ #_POSIX2_LINE_MAX
+ 2048
+
+ )
+
+51 \ 1
+ #_POSIX2_RE_DUP_MAX
+ 255
+
+ )
+
+55 \ 1
+ #_POSIX2_CHARCLASS_NAME_MAX
+ 14
+
+ )
+
+62 #iâdef
+BC_BASE_MAX
+
+
+63 \ 1
+ #BC_BASE_MAX
+
+_POSIX2_BC_BASE_MAX
+
+
+ )
+
+65 #iâdef
+BC_DIM_MAX
+
+
+66 \ 1
+ #BC_DIM_MAX
+
+_POSIX2_BC_DIM_MAX
+
+
+ )
+
+68 #iâdef
+BC_SCALE_MAX
+
+
+69 \ 1
+ #BC_SCALE_MAX
+
+_POSIX2_BC_SCALE_MAX
+
+
+ )
+
+71 #iâdef
+BC_STRING_MAX
+
+
+72 \ 1
+ #BC_STRING_MAX
+
+_POSIX2_BC_STRING_MAX
+
+
+ )
+
+74 #iâdef
+COLL_WEIGHTS_MAX
+
+
+75 \ 1
+ #COLL_WEIGHTS_MAX
+ 255
+
+ )
+
+77 #iâdef
+EXPR_NEST_MAX
+
+
+78 \ 1
+ #EXPR_NEST_MAX
+
+_POSIX2_EXPR_NEST_MAX
+
+
+ )
+
+80 #iâdef
+LINE_MAX
+
+
+81 \ 1
+ #LINE_MAX
+
+_POSIX2_LINE_MAX
+
+
+ )
+
+83 #iâdef
+CHARCLASS_NAME_MAX
+
+
+84 \ 1
+ #CHARCLASS_NAME_MAX
+ 2048
+
+ )
+
+88 \ 1
+ #RE_DUP_MAX
+ (0x7fff)
+
+ )
+
+ @/usr/include/bits/select.h
+
+18 #iâdeà
+_SYS_SELECT_H
+
+
+22 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+25 #ià
+def\9aed
+
+__GNUC__
+ && __GNUC__ >= 2
+
+27 #ià
+__WORDSIZE
+ == 64
+
+28 \ 1
+ #__FD_ZERO_STOS
+ "¡osq"
+
+ )
+
+30 \ 1
+ #__FD_ZERO_STOS
+ "¡o¦"
+
+ )
+
+33 \ 1
+ #__FD_ZERO
+(
+fd¥
+) \
+
+35 \12
+__d0
+,
+__d1
+; \
+
+36
+__asm__
+
+ `__vÞ©\9ee__
+ ("þd;\84\95; "
+__FD_ZERO_STOS
+ \
+
+37 : "=c" (
+__d0
+), "=D" (
+__d1
+) \
+
+38 : "a" (0), "0" (\17 (
+fd_£t
+) \
+
+39 / \17 (
+__fd_mask
+)), \
+
+40 "1" (&
+ `__FDS_BITS
+ (
+fd¥
+)[0]) \
+
+42 } \1f0)
+
+ )
+
+48 \ 1
+ #__FD_ZERO
+(
+£t
+) \
+
+50 \1d\12
+__i
+; \
+
+51
+fd_£t
+ *
+__¬r
+ = (
+£t
+); \
+
+52 \ f
+__i
+ = 0; __\98< \17 (
+fd_£t
+è/ \17 (
+__fd_mask
+); ++__i) \
+
+53
+ `__FDS_BITS
+ (
+__¬r
+)[
+__i
+] = 0; \
+
+54 } \1f0)
+
+ )
+
+58 \ 1
+ #__FD_SET
+(
+d
+,
+£t
+) \
+
+59 ((\1eè(
+ `__FDS_BITS
+ (
+£t
+)[
+ `__FD_ELT
+ (
+d
+)] |ð
+ `__FD_MASK
+ (d)))
+
+ )
+
+60 \ 1
+ #__FD_CLR
+(
+d
+,
+£t
+) \
+
+61 ((\1eè(
+ `__FDS_BITS
+ (
+£t
+)[
+ `__FD_ELT
+ (
+d
+)] &ð~
+ `__FD_MASK
+ (d)))
+
+ )
+
+62 \ 1
+ #__FD_ISSET
+(
+d
+,
+£t
+) \
+
+63 ((
+ `__FDS_BITS
+ (
+£t
+)[
+ `__FD_ELT
+ (
+d
+)] &
+ `__FD_MASK
+ (d)è!ð0)
+
+ )
+
+ @/usr/include/bits/select2.h
+
+19 #iâdeà
+_SYS_SELECT_H
+
+
+24 \r\13\12
+__fd\96t_chk
+ (\13\12
+__d
+);
+
+25 \r\13\12
+ $__fd\96t_w¬n
+ (\13\12
+__d
+)
+
+26
+ `__w‚\89r
+ ("bit outside of fd_set selected");
+
+27 #undeà
+__FD_ELT
+
+
+28 \ 1
+ #__FD_ELT
+(
+d
+) \
+
+29
+__ex\8bnsiÚ__
+ \
+
+30 ({ \13\12
+__d
+ = (
+d
+); \
+
+31 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__d
+) \
+
+32 ? (0 <ð
+__d
+ && __d <
+__FD_SETSIZE
+ \
+
+33 ? (
+__d
+ /
+__NFDBITS
+) \
+
+34 :
+ `__fd\96t_w¬n
+ (
+__d
+)) \
+
+35 :
+ `__fd\96t_chk
+ (
+__d
+));
+ }
+})
+
+ )
+
+ @/usr/include/bits/sockaddr.h
+
+23 #iâdeà
+_BITS_SOCKADDR_H
+
+
+24 \ 1
+ #_BITS_SOCKADDR_H
+ 1
+
+ )
+
+28 \e\1d\16\12
+ t§_çm\9ey_t
+;
+
+34 \ 1
+ #__SOCKADDR_COMMON
+(
+§_´efix
+) \
+
+35
+§_çm\9ey_t
+
+§_´efix
+##
+çm\9ey
+
+
+ )
+
+37 \ 1
+ #__SOCKADDR_COMMON_SIZE
+ (\17 (\1d\16\12))
+
+ )
+
+40 \ 1
+ #_SS_SIZE
+ 128
+
+ )
+
+ @/usr/include/bits/socket_type.h
+
+19 #iâdeà
+_SYS_SOCKET_H
+
+
+24 \f
+ e__sock\91_ty³
+
+
+26
+ mSOCK_STREAM
+ = 1,
+
+28 \ 1
+ #SOCK_STREAM
+
+SOCK_STREAM
+
+
+ )
+
+29
+ mSOCK_DGRAM
+ = 2,
+
+31 \ 1
+ #SOCK_DGRAM
+
+SOCK_DGRAM
+
+
+ )
+
+32
+ mSOCK_RAW
+ = 3,
+
+33 \ 1
+ #SOCK_RAW
+
+SOCK_RAW
+
+
+ )
+
+34
+ mSOCK_RDM
+ = 4,
+
+35 \ 1
+ #SOCK_RDM
+
+SOCK_RDM
+
+
+ )
+
+36
+ mSOCK_SEQPACKET
+ = 5,
+
+38 \ 1
+ #SOCK_SEQPACKET
+
+SOCK_SEQPACKET
+
+
+ )
+
+39
+ mSOCK_DCCP
+ = 6,
+
+40 \ 1
+ #SOCK_DCCP
+
+SOCK_DCCP
+
+
+ )
+
+41
+ mSOCK_PACKET
+ = 10,
+
+44 \ 1
+ #SOCK_PACKET
+
+SOCK_PACKET
+
+
+ )
+
+49
+ mSOCK_CLOEXEC
+ = 02000000,
+
+51 \ 1
+ #SOCK_CLOEXEC
+
+SOCK_CLOEXEC
+
+
+ )
+
+52
+ mSOCK_NONBLOCK
+ = 00004000
+
+54 \ 1
+ #SOCK_NONBLOCK
+
+SOCK_NONBLOCK
+
+
+ )
+
+ @/usr/include/bits/timex.h
+
+18 #iâdef
+_BITS_TIMEX_H
+
+
+19 \ 1
+ #_BITS_TIMEX_H
+ 1
+
+ )
+
+21 \ 2
+ ~<b\99s/ty³s.h
+>
+
+25 \19
+ stimex
+
+
+27 \1d\12
+ mmodes
+;
+
+28
+__sysÿÎ_¦Úg_t
+
+ moff£t
+;
+
+29
+__sysÿÎ_¦Úg_t
+
+ mäeq
+;
+
+30
+__sysÿÎ_¦Úg_t
+
+ mmax\94rÜ
+;
+
+31
+__sysÿÎ_¦Úg_t
+
+ me¡\94rÜ
+;
+
+32 \12
+ m¡©us
+;
+
+33
+__sysÿÎ_¦Úg_t
+
+ mcÚ¡ªt
+;
+
+34
+__sysÿÎ_¦Úg_t
+
+ m´ecisiÚ
+;
+
+35
+__sysÿÎ_¦Úg_t
+
+ mtÞ\94ªû
+;
+
+36 \19
+timev®
+
+ mtime
+;
+
+37
+__sysÿÎ_¦Úg_t
+
+ mtick
+;
+
+38
+__sysÿÎ_¦Úg_t
+
+ mµsäeq
+;
+
+39
+__sysÿÎ_¦Úg_t
+
+ mj\99\8br
+;
+
+40 \12
+ mshiá
+;
+
+41
+__sysÿÎ_¦Úg_t
+
+ m¡ab\9e
+;
+
+42
+__sysÿÎ_¦Úg_t
+
+ mj\99út
+;
+
+43
+__sysÿÎ_¦Úg_t
+
+ mÿlút
+;
+
+44
+__sysÿÎ_¦Úg_t
+
+ m\94rút
+;
+
+45
+__sysÿÎ_¦Úg_t
+
+ m¡bút
+;
+
+47 \12
+ m\8fi
+;
+
+56 \ 1
+ #ADJ_OFFSET
+ 0x0001
+
+ )
+
+57 \ 1
+ #ADJ_FREQUENCY
+ 0x0002
+
+ )
+
+58 \ 1
+ #ADJ_MAXERROR
+ 0x0004
+
+ )
+
+59 \ 1
+ #ADJ_ESTERROR
+ 0x0008
+
+ )
+
+60 \ 1
+ #ADJ_STATUS
+ 0x0010
+
+ )
+
+61 \ 1
+ #ADJ_TIMECONST
+ 0x0020
+
+ )
+
+62 \ 1
+ #ADJ_TAI
+ 0x0080
+
+ )
+
+63 \ 1
+ #ADJ_SETOFFSET
+ 0x0100
+
+ )
+
+64 \ 1
+ #ADJ_MICRO
+ 0x1000
+
+ )
+
+65 \ 1
+ #ADJ_NANO
+ 0x2000
+
+ )
+
+66 \ 1
+ #ADJ_TICK
+ 0x4000
+
+ )
+
+67 \ 1
+ #ADJ_OFFSET_SINGLESHOT
+ 0x8001
+
+ )
+
+68 \ 1
+ #ADJ_OFFSET_SS_READ
+ 0xa001
+
+ )
+
+71 \ 1
+ #MOD_OFFSET
+
+ADJ_OFFSET
+
+
+ )
+
+72 \ 1
+ #MOD_FREQUENCY
+
+ADJ_FREQUENCY
+
+
+ )
+
+73 \ 1
+ #MOD_MAXERROR
+
+ADJ_MAXERROR
+
+
+ )
+
+74 \ 1
+ #MOD_ESTERROR
+
+ADJ_ESTERROR
+
+
+ )
+
+75 \ 1
+ #MOD_STATUS
+
+ADJ_STATUS
+
+
+ )
+
+76 \ 1
+ #MOD_TIMECONST
+
+ADJ_TIMECONST
+
+
+ )
+
+77 \ 1
+ #MOD_CLKB
+
+ADJ_TICK
+
+
+ )
+
+78 \ 1
+ #MOD_CLKA
+
+ADJ_OFFSET_SINGLESHOT
+
+
+ )
+
+79 \ 1
+ #MOD_TAI
+
+ADJ_TAI
+
+
+ )
+
+80 \ 1
+ #MOD_MICRO
+
+ADJ_MICRO
+
+
+ )
+
+81 \ 1
+ #MOD_NANO
+
+ADJ_NANO
+
+
+ )
+
+85 \ 1
+ #STA_PLL
+ 0x0001
+
+ )
+
+86 \ 1
+ #STA_PPSFREQ
+ 0x0002
+
+ )
+
+87 \ 1
+ #STA_PPSTIME
+ 0x0004
+
+ )
+
+88 \ 1
+ #STA_FLL
+ 0x0008
+
+ )
+
+90 \ 1
+ #STA_INS
+ 0x0010
+
+ )
+
+91 \ 1
+ #STA_DEL
+ 0x0020
+
+ )
+
+92 \ 1
+ #STA_UNSYNC
+ 0x0040
+
+ )
+
+93 \ 1
+ #STA_FREQHOLD
+ 0x0080
+
+ )
+
+95 \ 1
+ #STA_PPSSIGNAL
+ 0x0100
+
+ )
+
+96 \ 1
+ #STA_PPSJITTER
+ 0x0200
+
+ )
+
+97 \ 1
+ #STA_PPSWANDER
+ 0x0400
+
+ )
+
+98 \ 1
+ #STA_PPSERROR
+ 0x0800
+
+ )
+
+100 \ 1
+ #STA_CLOCKERR
+ 0x1000
+
+ )
+
+101 \ 1
+ #STA_NANO
+ 0x2000
+
+ )
+
+102 \ 1
+ #STA_MODE
+ 0x4000
+
+ )
+
+103 \ 1
+ #STA_CLK
+ 0x8000
+
+ )
+
+106 \ 1
+ #STA_RONLY
+ (
+STA_PPSSIGNAL
+ |
+STA_PPSJITTER
+ |
+STA_PPSWANDER
+ | \
+
+107
+STA_PPSERROR
+ |
+STA_CLOCKERR
+ |
+STA_NANO
+ |
+STA_MODE
+ |
+STA_CLK
+)
+
+ )
+
+ @/usr/include/bits/typesizes.h
+
+19 #iâdeà
+_BITS_TYPES_H
+
+
+23 #iâdef
+_BITS_TYPESIZES_H
+
+
+24 \ 1
+ #_BITS_TYPESIZES_H
+ 1
+
+ )
+
+30 #ià
+def\9aed
+
+__x86_64__
+ && def\9aed
+__ILP32__
+
+
+31 \ 1
+ #__SYSCALL_SLONG_TYPE
+
+__SQUAD_TYPE
+
+
+ )
+
+32 \ 1
+ #__SYSCALL_ULONG_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+34 \ 1
+ #__SYSCALL_SLONG_TYPE
+
+__SLONGWORD_TYPE
+
+
+ )
+
+35 \ 1
+ #__SYSCALL_ULONG_TYPE
+
+__ULONGWORD_TYPE
+
+
+ )
+
+38 \ 1
+ #__DEV_T_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+39 \ 1
+ #__UID_T_TYPE
+
+__U32_TYPE
+
+
+ )
+
+40 \ 1
+ #__GID_T_TYPE
+
+__U32_TYPE
+
+
+ )
+
+41 \ 1
+ #__INO_T_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+42 \ 1
+ #__INO64_T_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+43 \ 1
+ #__MODE_T_TYPE
+
+__U32_TYPE
+
+
+ )
+
+44 #ifdeà
+__x86_64__
+
+
+45 \ 1
+ #__NLINK_T_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+46 \ 1
+ #__FSWORD_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+48 \ 1
+ #__NLINK_T_TYPE
+
+__UWORD_TYPE
+
+
+ )
+
+49 \ 1
+ #__FSWORD_T_TYPE
+
+__SWORD_TYPE
+
+
+ )
+
+51 \ 1
+ #__OFF_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+52 \ 1
+ #__OFF64_T_TYPE
+
+__SQUAD_TYPE
+
+
+ )
+
+53 \ 1
+ #__PID_T_TYPE
+
+__S32_TYPE
+
+
+ )
+
+54 \ 1
+ #__RLIM_T_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+55 \ 1
+ #__RLIM64_T_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+56 \ 1
+ #__BLKCNT_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+57 \ 1
+ #__BLKCNT64_T_TYPE
+
+__SQUAD_TYPE
+
+
+ )
+
+58 \ 1
+ #__FSBLKCNT_T_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+59 \ 1
+ #__FSBLKCNT64_T_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+60 \ 1
+ #__FSFILCNT_T_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+61 \ 1
+ #__FSFILCNT64_T_TYPE
+
+__UQUAD_TYPE
+
+
+ )
+
+62 \ 1
+ #__ID_T_TYPE
+
+__U32_TYPE
+
+
+ )
+
+63 \ 1
+ #__CLOCK_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+64 \ 1
+ #__TIME_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+65 \ 1
+ #__USECONDS_T_TYPE
+
+__U32_TYPE
+
+
+ )
+
+66 \ 1
+ #__SUSECONDS_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+67 \ 1
+ #__DADDR_T_TYPE
+
+__S32_TYPE
+
+
+ )
+
+68 \ 1
+ #__KEY_T_TYPE
+
+__S32_TYPE
+
+
+ )
+
+69 \ 1
+ #__CLOCKID_T_TYPE
+
+__S32_TYPE
+
+
+ )
+
+70 \ 1
+ #__TIMER_T_TYPE
+ \1e*
+
+ )
+
+71 \ 1
+ #__BLKSIZE_T_TYPE
+
+__SYSCALL_SLONG_TYPE
+
+
+ )
+
+72 \ 1
+ #__FSID_T_TYPE
+ s\8cuù { \12
+__v®
+[2]; }
+
+ )
+
+73 \ 1
+ #__SSIZE_T_TYPE
+
+__SWORD_TYPE
+
+
+ )
+
+74 \ 1
+ #__CPU_MASK_TYPE
+
+__SYSCALL_ULONG_TYPE
+
+
+ )
+
+76 #ifdeà
+__x86_64__
+
+
+80 \ 1
+ #__OFF_T_MATCHES_OFF64_T
+ 1
+
+ )
+
+83 \ 1
+ #__INO_T_MATCHES_INO64_T
+ 1
+
+ )
+
+87 \ 1
+ #__FD_SETSIZE
+ 1024
+
+ )
+
+ @/usr/include/bits/uio.h
+
+18 #ià!
+def\9aed
+
+_SYS_UIO_H
+ && !def\9aed
+_FCNTL_H
+
+
+22 #iâdeà
+_BITS_UIO_H
+
+
+23 \ 1
+ #_BITS_UIO_H
+ 1
+
+ )
+
+25 \ 2
+ ~<sys/ty³s.h
+>
+
+39 \ 1
+ #UIO_MAXIOV
+ 1024
+
+ )
+
+43 \19
+ siovec
+
+
+45 \1e*
+ miov_ba£
+;
+
+46
+size_t
+
+ miov_Ën
+;
+
+52 #ifdeà
+__USE_GNU
+
+
+53 #ià
+def\9aed
+
+_SYS_UIO_H
+ && !def\9aed
+_BITS_UIO_H_FOR_SYS_UIO_H
+
+
+54 \ 1
+ #_BITS_UIO_H_FOR_SYS_UIO_H
+ 1
+
+ )
+
+56
+__BEGIN_DECLS
+
+
+59 \r
+ssize_t
+
+ $´oûss_vm_»adv
+ (
+pid_t
+
+__pid
+, cڡ \19
+iovec
+ *
+__lvec
+,
+
+60 \1d\13\12
+__liovút
+,
+
+61 cڡ \19
+iovec
+ *
+__rvec
+,
+
+62 \1d\13\12
+__riovút
+,
+
+63 \1d\13\12
+__æags
+)
+
+64
+__THROW
+;
+
+67 \r
+ssize_t
+
+ $´oûss_vm_wr\99ev
+ (
+pid_t
+
+__pid
+, cڡ \19
+iovec
+ *
+__lvec
+,
+
+68 \1d\13\12
+__liovút
+,
+
+69 cڡ \19
+iovec
+ *
+__rvec
+,
+
+70 \1d\13\12
+__riovút
+,
+
+71 \1d\13\12
+__æags
+)
+
+72
+__THROW
+;
+
+74
+__END_DECLS
+
+
+ @/usr/include/bits/xopen_lim.h
+
+29 #iâdeà
+_XOPEN_LIM_H
+
+
+30 \ 1
+ #_XOPEN_LIM_H
+ 1
+
+ )
+
+32 \ 1
+ #__Ãed_IOV_MAX
+
+
+ )
+
+33 \ 2
+ ~<b\99s/¡dio_lim.h
+>
+
+65 \ 1
+ #_XOPEN_IOV_MAX
+
+_POSIX_UIO_MAXIOV
+
+
+ )
+
+70 \ 1
+ #NL_ARGMAX
+
+_POSIX_ARG_MAX
+
+
+ )
+
+73 \ 1
+ #NL_LANGMAX
+
+_POSIX2_LINE_MAX
+
+
+ )
+
+76 \ 1
+ #NL_MSGMAX
+
+INT_MAX
+
+
+ )
+
+80 \ 1
+ #NL_NMAX
+
+INT_MAX
+
+
+ )
+
+83 \ 1
+ #NL_SETMAX
+
+INT_MAX
+
+
+ )
+
+86 \ 1
+ #NL_TEXTMAX
+
+INT_MAX
+
+
+ )
+
+89 \ 1
+ #NZERO
+ 20
+
+ )
+
+93 #ifdeà
+INT_MAX
+
+
+94 #ià
+INT_MAX
+ == 32767
+
+95 \ 1
+ #WORD_BIT
+ 16
+
+ )
+
+97 #ià
+INT_MAX
+ == 2147483647
+
+98 \ 1
+ #WORD_BIT
+ 32
+
+ )
+
+101 \ 1
+ #WORD_BIT
+ 64
+
+ )
+
+104 #\96ià
+def\9aed
+
+__INT_MAX__
+
+
+105 #ià
+__INT_MAX__
+ == 32767
+
+106 \ 1
+ #WORD_BIT
+ 16
+
+ )
+
+108 #ià
+__INT_MAX__
+ == 2147483647
+
+109 \ 1
+ #WORD_BIT
+ 32
+
+ )
+
+112 \ 1
+ #WORD_BIT
+ 64
+
+ )
+
+116 \ 1
+ #WORD_BIT
+ 32
+
+ )
+
+120 #ifdeà
+LONG_MAX
+
+
+121 #ià
+LONG_MAX
+ == 2147483647
+
+122 \ 1
+ #LONG_BIT
+ 32
+
+ )
+
+125 \ 1
+ #LONG_BIT
+ 64
+
+ )
+
+127 #\96ià
+def\9aed
+
+__LONG_MAX__
+
+
+128 #ià
+__LONG_MAX__
+ == 2147483647
+
+129 \ 1
+ #LONG_BIT
+ 32
+
+ )
+
+132 \ 1
+ #LONG_BIT
+ 64
+
+ )
+
+135 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+136 #ià
+__WORDSIZE
+ == 64
+
+137 \ 1
+ #LONG_BIT
+ 64
+
+ )
+
+139 \ 1
+ #LONG_BIT
+ 32
+
+ )
+
+ @/usr/include/gnu/stubs.h
+
+6 #ià!
+def\9aed
+
+__x86_64__
+
+
+7 \ 2
+ ~<gnu/¡ubs-32.h
+>
+
+9 #ià
+def\9aed
+
+__x86_64__
+ && def\9aed
+__LP64__
+
+
+10 \ 2
+ ~<gnu/¡ubs-64.h
+>
+
+12 #ià
+def\9aed
+
+__x86_64__
+ && def\9aed
+__ILP32__
+
+
+13 \ 2
+ ~<gnu/¡ubs-x32.h
+>
+
+ @/usr/include/linux/errno.h
+
+1 \ 2
+ ~<asm/\94ºo.h
+>
+
+ @/usr/include/linux/limits.h
+
+1 #iâdeà
+_LINUX_LIMITS_H
+
+
+2 \ 1
+ #_LINUX_LIMITS_H
+
+
+ )
+
+4 \ 1
+ #NR_OPEN
+ 1024
+
+ )
+
+6 \ 1
+ #NGROUPS_MAX
+ 65536
+
+ )
+
+7 \ 1
+ #ARG_MAX
+ 131072
+
+ )
+
+8 \ 1
+ #LINK_MAX
+ 127
+
+ )
+
+9 \ 1
+ #MAX_CANON
+ 255
+
+ )
+
+10 \ 1
+ #MAX_INPUT
+ 255
+
+ )
+
+11 \ 1
+ #NAME_MAX
+ 255
+
+ )
+
+12 \ 1
+ #PATH_MAX
+ 4096
+
+ )
+
+13 \ 1
+ #PIPE_BUF
+ 4096
+
+ )
+
+14 \ 1
+ #XATTR_NAME_MAX
+ 255
+
+ )
+
+15 \ 1
+ #XATTR_SIZE_MAX
+ 65536
+
+ )
+
+16 \ 1
+ #XATTR_LIST_MAX
+ 65536
+
+ )
+
+18 \ 1
+ #RTSIG_MAX
+ 32
+
+ )
+
+ @/usr/include/linux/param.h
+
+1 #iâdeà
+_LINUX_PARAM_H
+
+
+2 \ 1
+ #_LINUX_PARAM_H
+
+
+ )
+
+4 \ 2
+ ~<asm/·¿m.h
+>
+
+ @/usr/include/stdc-predef.h
+
+18 #iâdef
+_STDC_PREDEF_H
+
+
+19 \ 1
+ #_STDC_PREDEF_H
+ 1
+
+ )
+
+36 #ifdeà
+__GCC_IEC_559
+
+
+37 #ià
+__GCC_IEC_559
+ > 0
+
+38 \ 1
+ #__STDC_IEC_559__
+ 1
+
+ )
+
+41 \ 1
+ #__STDC_IEC_559__
+ 1
+
+ )
+
+44 #ifdeà
+__GCC_IEC_559_COMPLEX
+
+
+45 #ià
+__GCC_IEC_559_COMPLEX
+ > 0
+
+46 \ 1
+ #__STDC_IEC_559_COMPLEX__
+ 1
+
+ )
+
+49 \ 1
+ #__STDC_IEC_559_COMPLEX__
+ 1
+
+ )
+
+55 \ 1
+ #__STDC_ISO_10646__
+ 201505L
+
+ )
+
+58 \ 1
+ #__STDC_NO_THREADS__
+ 1
+
+ )
+
+ @/usr/include/sys/cdefs.h
+
+18 #iâdef
+_SYS_CDEFS_H
+
+
+19 \ 1
+ #_SYS_CDEFS_H
+ 1
+
+ )
+
+22 #iâdeà
+_FEATURES_H
+
+
+23 \ 2
+ ~<ã©u»s.h
+>
+
+29 #ià
+def\9aed
+
+__GNUC__
+ && !def\9aed
+__STDC__
+
+
+34 #undeà
+__P
+
+
+35 #undeà
+__PMT
+
+
+37 #ifdeà
+__GNUC__
+
+
+41 #ià
+__GNUC_PREREQ
+ (4, 6è&& !
+def\9aed
+
+_LIBC
+
+
+42 \ 1
+ #__LEAF
+ ,
+__Ëaf__
+
+
+ )
+
+43 \ 1
+ #__LEAF_ATTR
+
+ `__©\8cibu\8b__
+ ((
+__Ëaf__
+))
+
+ )
+
+45 \ 1
+ #__LEAF
+
+
+ )
+
+46 \ 1
+ #__LEAF_ATTR
+
+
+ )
+
+54 #ià!
+def\9aed
+
+__ýlu¥lus
+ &&
+__GNUC_PREREQ
+ (3, 3)
+
+55 \ 1
+ #__THROW
+
+ `__©\8cibu\8b__
+ ((
+__nÙhrow__
+
+__LEAF
+))
+
+ )
+
+56 \ 1
+ #__THROWNL
+
+ `__©\8cibu\8b__
+ ((
+__nÙhrow__
+))
+
+ )
+
+57 \ 1
+ #__NTH
+(
+fù
+è
+ `__©\8cibu\8b__
+ ((
+__nÙhrow__
+
+__LEAF
+)è
+ )
+fct
+
+59 #ià
+def\9aed
+
+__ýlu¥lus
+ &&
+__GNUC_PREREQ
+ (2,8)
+
+60 \ 1
+ #__THROW
+
+ `throw
+ ()
+
+ )
+
+61 \ 1
+ #__THROWNL
+
+ `throw
+ ()
+
+ )
+
+62 \ 1
+ #__NTH
+(
+fù
+è
+__LEAF_ATTR
+ fù
+ `throw
+ ()
+
+ )
+
+64 \ 1
+ #__THROW
+
+
+ )
+
+65 \ 1
+ #__THROWNL
+
+
+ )
+
+66 \ 1
+ #__NTH
+(
+fù
+è
+ )
+fct
+
+72 \ 1
+ #__\9al\9ae
+
+
+ )
+
+74 \ 1
+ #__THROW
+
+
+ )
+
+75 \ 1
+ #__THROWNL
+
+
+ )
+
+76 \ 1
+ #__NTH
+(
+fù
+è
+ )
+fct
+
+82 \ 1
+ #__P
+(
+¬gs
+è
+ )
+args
+
+83 \ 1
+ #__PMT
+(
+¬gs
+è
+ )
+args
+
+88 \ 1
+ #__CONCAT
+(
+x
+,
+y
+èx ##
+ )
+y
+
+89 \ 1
+ #__STRING
+(
+x
+è#x
+
+ )
+
+92 \ 1
+ #__±r_t
+ \1e*
+
+ )
+
+93 \ 1
+ #__lÚg_doubË_t
+ \13\b
+
+ )
+
+97 #ifdef
+__ýlu¥lus
+
+
+98 \ 1
+ #__BEGIN_DECLS
+ \r"C" {
+
+ )
+
+99 \ 1
+ #__END_DECLS
+ }
+
+ )
+
+101 \ 1
+ #__BEGIN_DECLS
+
+
+ )
+
+102 \ 1
+ #__END_DECLS
+
+
+ )
+
+111 #ià
+def\9aed
+
+__ýlu¥lus
+ && def\9aed
+_GLIBCPP_USE_NAMESPACES
+
+
+112 \ 1
+ #__BEGIN_NAMESPACE_STD
+
+Çme¥aû
+
+¡d
+ {
+
+ )
+
+113 \ 1
+ #__END_NAMESPACE_STD
+ }
+
+ )
+
+114 \ 1
+ #__USING_NAMESPACE_STD
+(
+Çme
+è
+us\9ag
+
+¡d
+::Çme;
+
+ )
+
+115 \ 1
+ #__BEGIN_NAMESPACE_C99
+
+Çme¥aû
+
+__c99
+ {
+
+ )
+
+116 \ 1
+ #__END_NAMESPACE_C99
+ }
+
+ )
+
+117 \ 1
+ #__USING_NAMESPACE_C99
+(
+Çme
+è
+us\9ag
+
+__c99
+::Çme;
+
+ )
+
+122 \ 1
+ #__BEGIN_NAMESPACE_STD
+
+
+ )
+
+123 \ 1
+ #__END_NAMESPACE_STD
+
+
+ )
+
+124 \ 1
+ #__USING_NAMESPACE_STD
+(
+Çme
+)
+
+ )
+
+125 \ 1
+ #__BEGIN_NAMESPACE_C99
+
+
+ )
+
+126 \ 1
+ #__END_NAMESPACE_C99
+
+
+ )
+
+127 \ 1
+ #__USING_NAMESPACE_C99
+(
+Çme
+)
+
+ )
+
+132 \ 1
+ #__bos
+(
+±r
+è
+ `__bu\9et\9a_objeù_size
+ (±r,
+__USE_FORTIFY_LEVEL
+ > 1)
+
+ )
+
+133 \ 1
+ #__bos0
+(
+±r
+è
+ `__bu\9et\9a_objeù_size
+ (±r, 0)
+
+ )
+
+135 #ià
+__GNUC_PREREQ
+ (4,3)
+
+136 \ 1
+ #__w¬ndeþ
+(
+Çme
+,
+msg
+) \
+
+137 \r\1e
+ `Çme
+ (\1eè
+ `__©\8cibu\8b__
+((
+ `__w¬n\9ag__
+ (
+msg
+)))
+
+ )
+
+138 \ 1
+ #__w‚\89r
+(
+msg
+è
+ `__©\8cibu\8b__
+((
+ `__w¬n\9ag__
+ (msg)))
+
+ )
+
+139 \ 1
+ #__\94rÜdeþ
+(
+Çme
+,
+msg
+) \
+
+140 \r\1e
+ `Çme
+ (\1eè
+ `__©\8cibu\8b__
+((
+ `__\94rÜ__
+ (
+msg
+)))
+
+ )
+
+142 \ 1
+ #__w¬ndeþ
+(
+Çme
+,
+msg
+è\r\1e
+ `Çme
+ (\1e)
+
+ )
+
+143 \ 1
+ #__w‚\89r
+(
+msg
+)
+
+ )
+
+144 \ 1
+ #__\94rÜdeþ
+(
+Çme
+,
+msg
+è\r\1e
+ `Çme
+ (\1e)
+
+ )
+
+148 #ià
+__GNUC_PREREQ
+ (2,97)
+
+150 \ 1
+ #__æex¬r
+ []
+
+ )
+
+152 #ifdeà
+__GNUC__
+
+
+153 \ 1
+ #__æex¬r
+ [0]
+
+ )
+
+155 #ià
+def\9aed
+
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L
+
+156 \ 1
+ #__æex¬r
+ []
+
+ )
+
+159 \ 1
+ #__æex¬r
+ [1]
+
+ )
+
+175 #ià
+def\9aed
+
+__GNUC__
+ && __GNUC__ >= 2
+
+177 \ 1
+ #__REDIRECT
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+èÇm\90´ÙØ
+ `__asm__
+ (
+ `__ASMNAME
+ (#®\9fs))
+
+ )
+
+178 #ifdeà
+__ýlu¥lus
+
+
+179 \ 1
+ #__REDIRECT_NTH
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+180
+Çme
+
+´Ùo
+
+__THROW
+
+ `__asm__
+ (
+ `__ASMNAME
+ (#®\9fs))
+
+ )
+
+181 \ 1
+ #__REDIRECT_NTHNL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+182
+Çme
+
+´Ùo
+
+__THROWNL
+
+ `__asm__
+ (
+ `__ASMNAME
+ (#®\9fs))
+
+ )
+
+184 \ 1
+ #__REDIRECT_NTH
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+185
+Çme
+
+´Ùo
+
+ `__asm__
+ (
+ `__ASMNAME
+ (#®\9fs)è
+__THROW
+
+
+ )
+
+186 \ 1
+ #__REDIRECT_NTHNL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+187
+Çme
+
+´Ùo
+
+ `__asm__
+ (
+ `__ASMNAME
+ (#®\9fs)è
+__THROWNL
+
+
+ )
+
+189 \ 1
+ #__ASMNAME
+(
+úame
+è
+ `__ASMNAME2
+ (
+__USER_LABEL_PREFIX__
+, cÇme)
+
+ )
+
+190 \ 1
+ #__ASMNAME2
+(
+´efix
+,
+úame
+è
+ `__STRING
+ (´efixè
+ )
+cname
+
+203 #ià!
+def\9aed
+
+__GNUC__
+ || __GNUC__ < 2
+
+204 \ 1
+ #__©\8cibu\8b__
+(
+xyz
+è
+
+ )
+
+210 #ià
+__GNUC_PREREQ
+ (2,96)
+
+211 \ 1
+ #__©\8cibu\8b_m®loc__
+
+ `__©\8cibu\8b__
+ ((
+__m®loc__
+))
+
+ )
+
+213 \ 1
+ #__©\8cibu\8b_m®loc__
+
+
+ )
+
+218 #ià
+__GNUC_PREREQ
+ (4, 3)
+
+219 \ 1
+ #__©\8cibu\8b_®loc_size__
+(
+·¿ms
+) \
+
+220
+ `__©\8cibu\8b__
+ ((
+__®loc_size__
+
+·¿ms
+))
+
+ )
+
+222 \ 1
+ #__©\8cibu\8b_®loc_size__
+(
+·¿ms
+è
+
+ )
+
+228 #ià
+__GNUC_PREREQ
+ (2,96)
+
+229 \ 1
+ #__©\8cibu\8b_pu»__
+
+ `__©\8cibu\8b__
+ ((
+__pu»__
+))
+
+ )
+
+231 \ 1
+ #__©\8cibu\8b_pu»__
+
+
+ )
+
+235 #ià
+__GNUC_PREREQ
+ (2,5)
+
+236 \ 1
+ #__©\8cibu\8b_cÚ¡__
+
+ `__©\8cibu\8b__
+ ((
+__cڡ__
+))
+
+ )
+
+238 \ 1
+ #__©\8cibu\8b_cÚ¡__
+
+
+ )
+
+244 #ià
+__GNUC_PREREQ
+ (3,1)
+
+245 \ 1
+ #__©\8cibu\8b_u£d__
+
+ `__©\8cibu\8b__
+ ((
+__u£d__
+))
+
+ )
+
+246 \ 1
+ #__©\8cibu\8b_no\9al\9ae__
+
+ `__©\8cibu\8b__
+ ((
+__no\9al\9ae__
+))
+
+ )
+
+248 \ 1
+ #__©\8cibu\8b_u£d__
+
+ `__©\8cibu\8b__
+ ((
+__unu£d__
+))
+
+ )
+
+249 \ 1
+ #__©\8cibu\8b_no\9al\9ae__
+
+
+ )
+
+253 #ià
+__GNUC_PREREQ
+ (3,2)
+
+254 \ 1
+ #__©\8cibu\8b_d\95»ÿ\8bd__
+
+ `__©\8cibu\8b__
+ ((
+__d\95»ÿ\8bd__
+))
+
+ )
+
+256 \ 1
+ #__©\8cibu\8b_d\95»ÿ\8bd__
+
+
+ )
+
+265 #ià
+__GNUC_PREREQ
+ (2,8)
+
+266 \ 1
+ #__©\8cibu\8b_fÜm©_¬g__
+(
+x
+è
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©_¬g__
+ (x)))
+
+ )
+
+268 \ 1
+ #__©\8cibu\8b_fÜm©_¬g__
+(
+x
+è
+
+ )
+
+275 #ià
+__GNUC_PREREQ
+ (2,97)
+
+276 \ 1
+ #__©\8cibu\8b_fÜm©_¡rfmÚ__
+(
+a
+,
+b
+) \
+
+277
+ `__©\8cibu\8b__
+ ((
+ `__fÜm©__
+ (
+__¡rfmÚ__
+,
+a
+,
+b
+)))
+
+ )
+
+279 \ 1
+ #__©\8cibu\8b_fÜm©_¡rfmÚ__
+(
+a
+,
+b
+è
+
+ )
+
+284 #ià
+__GNUC_PREREQ
+ (3,3)
+
+285 \ 1
+ #__nÚnuÎ
+(
+·¿ms
+è
+ `__©\8cibu\8b__
+ ((
+__nÚnuÎ__
+\85¬ams))
+
+ )
+
+287 \ 1
+ #__nÚnuÎ
+(
+·¿ms
+)
+
+ )
+
+292 #ià
+__GNUC_PREREQ
+ (3,4)
+
+293 \ 1
+ #__©\8cibu\8b_w¬n_unu£d_»suÉ__
+ \
+
+294
+ `__©\8cibu\8b__
+ ((
+__w¬n_unu£d_»suÉ__
+))
+
+ )
+
+295 #ià
+__USE_FORTIFY_LEVEL
+ > 0
+
+296 \ 1
+ #__wur
+
+__©\8cibu\8b_w¬n_unu£d_»suÉ__
+
+
+ )
+
+299 \ 1
+ #__©\8cibu\8b_w¬n_unu£d_»suÉ__
+
+
+ )
+
+301 #iâdeà
+__wur
+
+
+302 \ 1
+ #__wur
+
+
+ )
+
+306 #ià
+__GNUC_PREREQ
+ (3,2)
+
+307 \ 1
+ #__®ways_\9al\9ae
+
+__\9al\9ae
+
+ `__©\8cibu\8b__
+ ((
+__®ways_\9al\9ae__
+))
+
+ )
+
+309 \ 1
+ #__®ways_\9al\9ae
+
+__\9al\9ae
+
+
+ )
+
+314 #ià
+__GNUC_PREREQ
+ (4,3)
+
+315 \ 1
+ #__©\8cibu\8b_¬tific\9fl__
+
+ `__©\8cibu\8b__
+ ((
+__¬tific\9fl__
+))
+
+ )
+
+317 \ 1
+ #__©\8cibu\8b_¬tific\9fl__
+
+
+ )
+
+329 #ià(!
+def\9aed
+
+__ýlu¥lus
+ ||
+__GNUC_PREREQ
+ (4,3) \
+
+330 || (
+def\9aed
+
+__þªg__
+ && (def\9aed
+__GNUC_STDC_INLINE__
+ \
+
+331 ||
+def\9aed
+
+__GNUC_GNU_INLINE__
+)))
+
+332 #ià
+def\9aed
+
+__GNUC_STDC_INLINE__
+ || def\9aed
+__ýlu¥lus
+
+
+333 \ 1
+ #__ex\8bº_\9al\9ae
+ \r
+__\9al\9ae
+
+ `__©\8cibu\8b__
+ ((
+__gnu_\9al\9ae__
+))
+
+ )
+
+334 \ 1
+ #__ex\8bº_®ways_\9al\9ae
+ \
+
+335 \r
+__®ways_\9al\9ae
+
+ `__©\8cibu\8b__
+ ((
+__gnu_\9al\9ae__
+))
+
+ )
+
+337 \ 1
+ #__ex\8bº_\9al\9ae
+ \r
+__\9al\9ae
+
+
+ )
+
+338 \ 1
+ #__ex\8bº_®ways_\9al\9ae
+ \r
+__®ways_\9al\9ae
+
+
+ )
+
+342 #ifdeà
+__ex\8bº_®ways_\9al\9ae
+
+
+343 \ 1
+ #__fÜtify_funùiÚ
+
+__ex\8bº_®ways_\9al\9ae
+
+__©\8cibu\8b_¬tific\9fl__
+
+
+ )
+
+348 #ià
+__GNUC_PREREQ
+ (4,3)
+
+349 \ 1
+ #__va_¬g_·ck
+(è
+ `__bu\9et\9a_va_¬g_·ck
+ ()
+
+ )
+
+350 \ 1
+ #__va_¬g_·ck_Ën
+(è
+ `__bu\9et\9a_va_¬g_·ck_Ën
+ ()
+
+ )
+
+357 #ià!
+__GNUC_PREREQ
+ (2,8)
+
+358 \ 1
+ #__ex\8bnsiÚ__
+
+
+ )
+
+362 #ià!
+__GNUC_PREREQ
+ (2,92)
+
+363 \ 1
+ #__»¡riù
+
+
+ )
+
+369 #ià
+__GNUC_PREREQ
+ (3,1è&& !
+def\9aed
+
+__GNUG__
+
+
+370 \ 1
+ #__»¡riù_¬r
+
+__»¡riù
+
+
+ )
+
+372 #ifdeà
+__GNUC__
+
+
+373 \ 1
+ #__»¡riù_¬r
+
+
+ )
+
+375 #ià
+def\9aed
+
+__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L
+
+376 \ 1
+ #__»¡riù_¬r
+
+»¡riù
+
+
+ )
+
+379 \ 1
+ #__»¡riù_¬r
+
+
+ )
+
+384 #ià
+__GNUC__
+ >= 3
+
+385 \ 1
+ #__glibc_uÆik\96y
+(
+cÚd
+è
+ `__bu\9et\9a_ex³ù
+ ((cÚd), 0)
+
+ )
+
+386 \ 1
+ #__glibc_lik\96y
+(
+cÚd
+è
+ `__bu\9et\9a_ex³ù
+ ((cÚd), 1)
+
+ )
+
+388 \ 1
+ #__glibc_uÆik\96y
+(
+cÚd
+è(cÚd)
+
+ )
+
+389 \ 1
+ #__glibc_lik\96y
+(
+cÚd
+è(cÚd)
+
+ )
+
+392 #ià(!
+def\9aed
+
+_NÜ\91uº
+ \
+
+393 && (
+def\9aed
+
+__STDC_VERSION__
+ ? __STDC_VERSION__ : 0) < 201112 \
+
+394 && !
+ $__GNUC_PREREQ
+ (4,7))
+
+395 #ià
+ `__GNUC_PREREQ
+ (2,8)
+
+396 \ 1
+ #_NÜ\91uº
+
+ `__©\8cibu\8b__
+ ((
+__nÜ\91uº__
+))
+
+ )
+
+398 \ 1
+ #_NÜ\91uº
+
+
+ )
+
+402 #ià(!
+def\9aed
+
+_S\8ftic_as£¹
+ && !def\9aed
+__ýlu¥lus
+ \
+
+403 && (
+def\9aed
+
+__STDC_VERSION__
+ ? __STDC_VERSION__ : 0) < 201112 \
+
+404 && (!
+ `__GNUC_PREREQ
+ (4, 6è||
+def\9aed
+
+__STRICT_ANSI__
+))
+
+405 \ 1
+ #_S\8ftic_as£¹
+(
+ex´
+,
+d\9fgno¡ic
+) \
+
+406 \r\12(*
+ `__S\8ftic_as£¹_funùiÚ
+ (\1e)) \
+
+407 [!!\17 (¡ruù { \12
+__\94rÜ_if_Ãg©ive
+: (
+ex´
+è? 2 : -1; })]
+
+ )
+
+410 \ 2
+ ~<b\99s/wÜdsize.h
+>
+
+412 #ià
+def\9aed
+
+__LONG_DOUBLE_MATH_OPTIONAL
+ && def\9aed
+__NO_LONG_DOUBLE_MATH
+
+
+413 \ 1
+ #__LDBL_COMPAT
+ 1
+
+ )
+
+414 #ifdeà
+__REDIRECT
+
+
+415 \ 1
+ #__LDBL_REDIR1
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+è
+ `__REDIRECT
+ (Çme,\85rÙo,\87l\9fs)
+
+ )
+
+416 \ 1
+ #__LDBL_REDIR
+(
+Çme
+,
+´Ùo
+) \
+
+417
+ `__LDBL_REDIR1
+ (
+Çme
+,
+´Ùo
+,
+__Ædbl_
+##Çme)
+
+ )
+
+418 \ 1
+ #__LDBL_REDIR1_NTH
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+è
+ `__REDIRECT_NTH
+ (Çme,\85rÙo,\87l\9fs)
+
+ )
+
+419 \ 1
+ #__LDBL_REDIR_NTH
+(
+Çme
+,
+´Ùo
+) \
+
+420
+ `__LDBL_REDIR1_NTH
+ (
+Çme
+,
+´Ùo
+,
+__Ædbl_
+##Çme)
+
+ )
+
+421 \ 1
+ #__LDBL_REDIR1_DECL
+(
+Çme
+,
+®\9fs
+) \
+
+422 \r
+ `__ty³of
+ (
+Çme
+èÇm\90
+ `__asm
+ (
+ `__ASMNAME
+ (#®\9fs));
+
+ )
+
+423 \ 1
+ #__LDBL_REDIR_DECL
+(
+Çme
+) \
+
+424 \r
+ `__ty³of
+ (
+Çme
+èÇm\90
+ `__asm
+ (
+ `__ASMNAME
+ ("__Ædbl_" #Çme));
+
+ )
+
+425 \ 1
+ #__REDIRECT_LDBL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+426
+ `__LDBL_REDIR1
+ (
+Çme
+,
+´Ùo
+,
+__Ædbl_
+##
+®\9fs
+)
+
+ )
+
+427 \ 1
+ #__REDIRECT_NTH_LDBL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+428
+ `__LDBL_REDIR1_NTH
+ (
+Çme
+,
+´Ùo
+,
+__Ædbl_
+##
+®\9fs
+)
+
+ )
+
+431 #ià!
+def\9aed
+
+__LDBL_COMPAT
+ || !def\9aed
+__REDIRECT
+
+
+432 \ 1
+ #__LDBL_REDIR1
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+èÇm\90
+ )
+proto
+
+433 \ 1
+ #__LDBL_REDIR
+(
+Çme
+,
+´Ùo
+èÇm\90
+ )
+proto
+
+434 \ 1
+ #__LDBL_REDIR1_NTH
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+èÇm\90´ÙØ
+__THROW
+
+
+ )
+
+435 \ 1
+ #__LDBL_REDIR_NTH
+(
+Çme
+,
+´Ùo
+èÇm\90´ÙØ
+__THROW
+
+
+ )
+
+436 \ 1
+ #__LDBL_REDIR_DECL
+(
+Çme
+)
+
+ )
+
+437 #ifdeà
+__REDIRECT
+
+
+438 \ 1
+ #__REDIRECT_LDBL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+è
+ `__REDIRECT
+ (Çme,\85rÙo,\87l\9fs)
+
+ )
+
+439 \ 1
+ #__REDIRECT_NTH_LDBL
+(
+Çme
+,
+´Ùo
+,
+®\9fs
+) \
+
+440
+ `__REDIRECT_NTH
+ (
+Çme
+,
+´Ùo
+,
+®\9fs
+)
+
+ )
+
+ @/usr/include/asm-generic/socket.h
+
+1 #iâdeà
+__ASM_GENERIC_SOCKET_H
+
+
+2 \ 1
+ #__ASM_GENERIC_SOCKET_H
+
+
+ )
+
+4 \ 2
+ ~<asm/sockios.h
+>
+
+7 \ 1
+ #SOL_SOCKET
+ 1
+
+ )
+
+9 \ 1
+ #SO_DEBUG
+ 1
+
+ )
+
+10 \ 1
+ #SO_REUSEADDR
+ 2
+
+ )
+
+11 \ 1
+ #SO_TYPE
+ 3
+
+ )
+
+12 \ 1
+ #SO_ERROR
+ 4
+
+ )
+
+13 \ 1
+ #SO_DONTROUTE
+ 5
+
+ )
+
+14 \ 1
+ #SO_BROADCAST
+ 6
+
+ )
+
+15 \ 1
+ #SO_SNDBUF
+ 7
+
+ )
+
+16 \ 1
+ #SO_RCVBUF
+ 8
+
+ )
+
+17 \ 1
+ #SO_SNDBUFFORCE
+ 32
+
+ )
+
+18 \ 1
+ #SO_RCVBUFFORCE
+ 33
+
+ )
+
+19 \ 1
+ #SO_KEEPALIVE
+ 9
+
+ )
+
+20 \ 1
+ #SO_OOBINLINE
+ 10
+
+ )
+
+21 \ 1
+ #SO_NO_CHECK
+ 11
+
+ )
+
+22 \ 1
+ #SO_PRIORITY
+ 12
+
+ )
+
+23 \ 1
+ #SO_LINGER
+ 13
+
+ )
+
+24 \ 1
+ #SO_BSDCOMPAT
+ 14
+
+ )
+
+25 \ 1
+ #SO_REUSEPORT
+ 15
+
+ )
+
+26 #iâdeà
+SO_PASSCRED
+
+
+27 \ 1
+ #SO_PASSCRED
+ 16
+
+ )
+
+28 \ 1
+ #SO_PEERCRED
+ 17
+
+ )
+
+29 \ 1
+ #SO_RCVLOWAT
+ 18
+
+ )
+
+30 \ 1
+ #SO_SNDLOWAT
+ 19
+
+ )
+
+31 \ 1
+ #SO_RCVTIMEO
+ 20
+
+ )
+
+32 \ 1
+ #SO_SNDTIMEO
+ 21
+
+ )
+
+36 \ 1
+ #SO_SECURITY_AUTHENTICATION
+ 22
+
+ )
+
+37 \ 1
+ #SO_SECURITY_ENCRYPTION_TRANSPORT
+ 23
+
+ )
+
+38 \ 1
+ #SO_SECURITY_ENCRYPTION_NETWORK
+ 24
+
+ )
+
+40 \ 1
+ #SO_BINDTODEVICE
+ 25
+
+ )
+
+43 \ 1
+ #SO_ATTACH_FILTER
+ 26
+
+ )
+
+44 \ 1
+ #SO_DETACH_FILTER
+ 27
+
+ )
+
+45 \ 1
+ #SO_GET_FILTER
+
+SO_ATTACH_FILTER
+
+
+ )
+
+47 \ 1
+ #SO_PEERNAME
+ 28
+
+ )
+
+48 \ 1
+ #SO_TIMESTAMP
+ 29
+
+ )
+
+49 \ 1
+ #SCM_TIMESTAMP
+
+SO_TIMESTAMP
+
+
+ )
+
+51 \ 1
+ #SO_ACCEPTCONN
+ 30
+
+ )
+
+53 \ 1
+ #SO_PEERSEC
+ 31
+
+ )
+
+54 \ 1
+ #SO_PASSSEC
+ 34
+
+ )
+
+55 \ 1
+ #SO_TIMESTAMPNS
+ 35
+
+ )
+
+56 \ 1
+ #SCM_TIMESTAMPNS
+
+SO_TIMESTAMPNS
+
+
+ )
+
+58 \ 1
+ #SO_MARK
+ 36
+
+ )
+
+60 \ 1
+ #SO_TIMESTAMPING
+ 37
+
+ )
+
+61 \ 1
+ #SCM_TIMESTAMPING
+
+SO_TIMESTAMPING
+
+
+ )
+
+63 \ 1
+ #SO_PROTOCOL
+ 38
+
+ )
+
+64 \ 1
+ #SO_DOMAIN
+ 39
+
+ )
+
+66 \ 1
+ #SO_RXQ_OVFL
+ 40
+
+ )
+
+68 \ 1
+ #SO_WIFI_STATUS
+ 41
+
+ )
+
+69 \ 1
+ #SCM_WIFI_STATUS
+
+SO_WIFI_STATUS
+
+
+ )
+
+70 \ 1
+ #SO_PEEK_OFF
+ 42
+
+ )
+
+73 \ 1
+ #SO_NOFCS
+ 43
+
+ )
+
+75 \ 1
+ #SO_LOCK_FILTER
+ 44
+
+ )
+
+77 \ 1
+ #SO_SELECT_ERR_QUEUE
+ 45
+
+ )
+
+79 \ 1
+ #SO_BUSY_POLL
+ 46
+
+ )
+
+81 \ 1
+ #SO_MAX_PACING_RATE
+ 47
+
+ )
+
+83 \ 1
+ #SO_BPF_EXTENSIONS
+ 48
+
+ )
+
+85 \ 1
+ #SO_INCOMING_CPU
+ 49
+
+ )
+
+87 \ 1
+ #SO_ATTACH_BPF
+ 50
+
+ )
+
+88 \ 1
+ #SO_DETACH_BPF
+
+SO_DETACH_FILTER
+
+
+ )
+
+ @/usr/include/asm/errno.h
+
+1 \ 2
+ ~<asm-g\92\94ic/\94ºo.h
+>
+
+ @/usr/include/asm/param.h
+
+1 \ 2
+ ~<asm-g\92\94ic/·¿m.h
+>
+
+ @/usr/include/bits/local_lim.h
+
+24 #iâdeà
+NR_OPEN
+
+
+25 \ 1
+ #__undef_NR_OPEN
+
+
+ )
+
+27 #iâdeà
+LINK_MAX
+
+
+28 \ 1
+ #__undef_LINK_MAX
+
+
+ )
+
+30 #iâdeà
+OPEN_MAX
+
+
+31 \ 1
+ #__undef_OPEN_MAX
+
+
+ )
+
+33 #iâdeà
+ARG_MAX
+
+
+34 \ 1
+ #__undef_ARG_MAX
+
+
+ )
+
+38 \ 2
+ ~<l\9aux/lim\99s.h
+>
+
+41 #ifdeà
+__undef_NR_OPEN
+
+
+42 #undeà
+NR_OPEN
+
+
+43 #undeà
+__undef_NR_OPEN
+
+
+46 #ifdeà
+__undef_LINK_MAX
+
+
+47 #undeà
+LINK_MAX
+
+
+48 #undeà
+__undef_LINK_MAX
+
+
+51 #ifdeà
+__undef_OPEN_MAX
+
+
+52 #undeà
+OPEN_MAX
+
+
+53 #undeà
+__undef_OPEN_MAX
+
+
+56 #ifdeà
+__undef_ARG_MAX
+
+
+57 #undeà
+ARG_MAX
+
+
+58 #undeà
+__undef_ARG_MAX
+
+
+62 \ 1
+ #_POSIX_THREAD_KEYS_MAX
+ 128
+
+ )
+
+64 \ 1
+ #PTHREAD_KEYS_MAX
+ 1024
+
+ )
+
+67 \ 1
+ #_POSIX_THREAD_DESTRUCTOR_ITERATIONS
+ 4
+
+ )
+
+69 \ 1
+ #PTHREAD_DESTRUCTOR_ITERATIONS
+
+_POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+
+ )
+
+72 \ 1
+ #_POSIX_THREAD_THREADS_MAX
+ 64
+
+ )
+
+74 #undeà
+PTHREAD_THREADS_MAX
+
+
+78 \ 1
+ #AIO_PRIO_DELTA_MAX
+ 20
+
+ )
+
+81 \ 1
+ #PTHREAD_STACK_MIN
+ 16384
+
+ )
+
+84 \ 1
+ #DELAYTIMER_MAX
+ 2147483647
+
+ )
+
+87 \ 1
+ #TTY_NAME_MAX
+ 32
+
+ )
+
+90 \ 1
+ #LOGIN_NAME_MAX
+ 256
+
+ )
+
+93 \ 1
+ #HOST_NAME_MAX
+ 64
+
+ )
+
+96 \ 1
+ #MQ_PRIO_MAX
+ 32768
+
+ )
+
+99 \ 1
+ #SEM_VALUE_MAX
+ (2147483647)
+
+ )
+
+ @/usr/include/gconv.h
+
+22 #iâdeà
+_GCONV_H
+
+
+23 \ 1
+ #_GCONV_H
+ 1
+
+ )
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+26 \ 1
+ #__Ãed_mb¡©e_t
+
+
+ )
+
+27 \ 1
+ #__Ãed_w\9at_t
+
+
+ )
+
+28 \ 2
+ ~<wch¬.h
+>
+
+29 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+30 \ 1
+ #__Ãed_wch¬_t
+
+
+ )
+
+31 \ 2
+ ~<¡ddef.h
+>
+
+34 \ 1
+ #__UNKNOWN_10646_CHAR
+ ((
+wch¬_t
+è0xfffd)
+
+ )
+
+39
+ m__GCONV_OK
+ = 0,
+
+40
+ m__GCONV_NOCONV
+,
+
+41
+ m__GCONV_NODB
+,
+
+42
+ m__GCONV_NOMEM
+,
+
+44
+ m__GCONV_EMPTY_INPUT
+,
+
+45
+ m__GCONV_FULL_OUTPUT
+,
+
+46
+ m__GCONV_ILLEGAL_INPUT
+,
+
+47
+ m__GCONV_INCOMPLETE_INPUT
+,
+
+49
+ m__GCONV_ILLEGAL_DESCRIPTOR
+,
+
+50
+ m__GCONV_INTERNAL_ERROR
+
+
+57
+ m__GCONV_IS_LAST
+ = 0x0001,
+
+58
+ m__GCONV_IGNORE_ERRORS
+ = 0x0002,
+
+59
+ m__GCONV_SWAP
+ = 0x0004,
+
+60
+ m__GCONV_TRANSLIT
+ = 0x0008
+
+65 \19
+ g__gcÚv_¡\95
+;
+
+66 \19
+ g__gcÚv_¡\95_d©a
+;
+
+67 \19
+ g__gcÚv_lßded_objeù
+;
+
+71 \e\12(*
+ t__gcÚv_fù
+è(\19
+ t__gcÚv_¡\95
+ *, \19
+ t__gcÚv_¡\95_d©a
+ *,
+
+73 \1d\ 5**,
+ tsize_t
+ *, \12, \12);
+
+76 \e
+ $w\9at_t
+ (*
+ t__gcÚv_btowc_fù
+è(\19
+ t__gcÚv_¡\95
+ *, \1d\ 5);
+
+79 \e\12(*
+ t__gcÚv_\9a\99_fù
+è(\19
+ t__gcÚv_¡\95
+ *);
+
+80 \e\1e(*
+ t__gcÚv_\92d_fù
+è(\19
+ t__gcÚv_¡\95
+ *);
+
+84 \19
+ s__gcÚv_¡\95
+
+
+86 \19
+__gcÚv_lßded_objeù
+ *
+__shlib_hªdË
+;
+
+87 cڡ \ 5*
+__modÇme
+;
+
+89 \12
+__couÁ\94
+;
+
+91 \ 5*
+__äom_Çme
+;
+
+92 \ 5*
+__to_Çme
+;
+
+94
+__gcÚv_fù
+
+__fù
+;
+
+95
+__gcÚv_btowc_fù
+
+__btowc_fù
+;
+
+96
+__gcÚv_\9a\99_fù
+
+__\9a\99_fù
+;
+
+97
+__gcÚv_\92d_fù
+
+__\92d_fù
+;
+
+101 \12
+__m\9a_Ãeded_äom
+;
+
+102 \12
+__max_Ãeded_äom
+;
+
+103 \12
+__m\9a_Ãeded_to
+;
+
+104 \12
+__max_Ãeded_to
+;
+
+107 \12
+__¡©eful
+;
+
+109 \1e*
+__d©a
+;
+
+114 \19
+ s__gcÚv_¡\95_d©a
+
+
+116 \1d\ 5*
+__outbuf
+;
+
+117 \1d\ 5*
+__outbuãnd
+;
+
+121 \12
+__æags
+;
+
+125 \12
+__\9avoÿtiÚ_couÁ\94
+;
+
+129 \12
+__\9a\8bº®_u£
+;
+
+131
+__mb¡©e_t
+ *
+__¡©\95
+;
+
+132
+__mb¡©e_t
+
+__¡©e
+;
+
+138 \e\19
+ s__gcÚv_\9afo
+
+
+140
+size_t
+
+__n¡\95s
+;
+
+141 \19
+__gcÚv_¡\95
+ *
+__¡\95s
+;
+
+142
+__ex\8bnsiÚ__
+ \19
+__gcÚv_¡\95_d©a
+
+__d©a
+
+__æex¬r
+;
+
+143 } *
+ t__gcÚv_t
+;
+
+146 \r\12
+ `__gcÚv_\8cª¦\99\94©e
+ (\19
+__gcÚv_¡\95
+ *
+¡\95
+,
+
+147 \19
+__gcÚv_¡\95_d©a
+ *
+¡\95_d©a
+,
+
+148 cڡ \1d\ 5*
+\9abuf¡¬t
+,
+
+149 cڡ \1d\ 5**
+\9abuå
+,
+
+150 cڡ \1d\ 5*
+\9abuãnd
+,
+
+151 \1d\ 5**
+outbuf¡¬t
+,
+
+152
+size_t
+ *
+\9c»v\94sibË
+);
+
+ @/usr/include/gnu/stubs-32.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #\94rÜ
+AµliÿtiÚs
+
+may
+
+nÙ
+
+def\9ae
+
+the
+
+maüo
+
+_LIBC
+
+
+10 \ 1
+ #__¡ub_chæags
+
+
+ )
+
+11 \ 1
+ #__¡ub_ç\89ach
+
+
+ )
+
+12 \ 1
+ #__¡ub_fchæags
+
+
+ )
+
+13 \ 1
+ #__¡ub_fd\91ach
+
+
+ )
+
+14 \ 1
+ #__¡ub_g\89y
+
+
+ )
+
+15 \ 1
+ #__¡ub_lchmod
+
+
+ )
+
+16 \ 1
+ #__¡ub_»voke
+
+
+ )
+
+17 \ 1
+ #__¡ub_£\8eog\9a
+
+
+ )
+
+18 \ 1
+ #__¡ub_sig»tuº
+
+
+ )
+
+19 \ 1
+ #__¡ub_s¡k
+
+
+ )
+
+20 \ 1
+ #__¡ub_¡ty
+
+
+ )
+
+ @/usr/include/gnu/stubs-64.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #\94rÜ
+AµliÿtiÚs
+
+may
+
+nÙ
+
+def\9ae
+
+the
+
+maüo
+
+_LIBC
+
+
+10 \ 1
+ #__¡ub___com·t_bdæush
+
+
+ )
+
+11 \ 1
+ #__¡ub_chæags
+
+
+ )
+
+12 \ 1
+ #__¡ub_ç\89ach
+
+
+ )
+
+13 \ 1
+ #__¡ub_fchæags
+
+
+ )
+
+14 \ 1
+ #__¡ub_fd\91ach
+
+
+ )
+
+15 \ 1
+ #__¡ub_g\91msg
+
+
+ )
+
+16 \ 1
+ #__¡ub_g\89y
+
+
+ )
+
+17 \ 1
+ #__¡ub_lchmod
+
+
+ )
+
+18 \ 1
+ #__¡ub_putmsg
+
+
+ )
+
+19 \ 1
+ #__¡ub_»voke
+
+
+ )
+
+20 \ 1
+ #__¡ub_£\8eog\9a
+
+
+ )
+
+21 \ 1
+ #__¡ub_sig»tuº
+
+
+ )
+
+22 \ 1
+ #__¡ub_s¡k
+
+
+ )
+
+23 \ 1
+ #__¡ub_¡ty
+
+
+ )
+
+ @/usr/include/gnu/stubs-x32.h
+
+6 #ifdeà
+_LIBC
+
+
+7 #\94rÜ
+AµliÿtiÚs
+
+may
+
+nÙ
+
+def\9ae
+
+the
+
+maüo
+
+_LIBC
+
+
+10 \ 1
+ #__¡ub___com·t_bdæush
+
+
+ )
+
+11 \ 1
+ #__¡ub___com·t_ü\97\8b_moduË
+
+
+ )
+
+12 \ 1
+ #__¡ub___com·t_g\91_k\94Ãl_syms
+
+
+ )
+
+13 \ 1
+ #__¡ub___com·t_qu\94y_moduË
+
+
+ )
+
+14 \ 1
+ #__¡ub___com·t_u£lib
+
+
+ )
+
+15 \ 1
+ #__¡ub_chæags
+
+
+ )
+
+16 \ 1
+ #__¡ub_ç\89ach
+
+
+ )
+
+17 \ 1
+ #__¡ub_fchæags
+
+
+ )
+
+18 \ 1
+ #__¡ub_fd\91ach
+
+
+ )
+
+19 \ 1
+ #__¡ub_g\91msg
+
+
+ )
+
+20 \ 1
+ #__¡ub_g\89y
+
+
+ )
+
+21 \ 1
+ #__¡ub_lchmod
+
+
+ )
+
+22 \ 1
+ #__¡ub_nfs£rvùl
+
+
+ )
+
+23 \ 1
+ #__¡ub_putmsg
+
+
+ )
+
+24 \ 1
+ #__¡ub_»voke
+
+
+ )
+
+25 \ 1
+ #__¡ub_£\8eog\9a
+
+
+ )
+
+26 \ 1
+ #__¡ub_sig»tuº
+
+
+ )
+
+27 \ 1
+ #__¡ub_s¡k
+
+
+ )
+
+28 \ 1
+ #__¡ub_¡ty
+
+
+ )
+
+ @/usr/include/wchar.h
+
+23 #iâdeà
+_WCHAR_H
+
+
+25 #ià!
+def\9aed
+
+__Ãed_mb¡©e_t
+ && !def\9aed
+__Ãed_w\9at_t
+
+
+26 \ 1
+ #_WCHAR_H
+ 1
+
+ )
+
+27 \ 2
+ ~<ã©u»s.h
+>
+
+30 #ifdeà
+_WCHAR_H
+
+
+32 \ 1
+ #__Ãed___FILE
+
+
+ )
+
+33 #ià
+def\9aed
+
+__USE_UNIX98
+ || def\9aed
+__USE_XOPEN2K
+
+
+34 \ 1
+ #__Ãed_FILE
+
+
+ )
+
+36 \ 2
+ ~<¡dio.h
+>
+
+38 \ 1
+ #__Ãed___va_li¡
+
+
+ )
+
+39 \ 2
+ ~<¡d¬g.h
+>
+
+41 \ 2
+ ~<b\99s/wch¬.h
+>
+
+44 \ 1
+ #__Ãed_size_t
+
+
+ )
+
+45 \ 1
+ #__Ãed_wch¬_t
+
+
+ )
+
+46 \ 1
+ #__Ãed_NULL
+
+
+ )
+
+48 #ià
+def\9aed
+
+_WCHAR_H
+ || def\9aed
+__Ãed_w\9at_t
+ || !def\9aed
+__WINT_TYPE__
+
+
+49 #undeà
+__Ãed_w\9at_t
+
+
+50 \ 1
+ #__Ãed_w\9at_t
+
+
+ )
+
+51 \ 2
+ ~<¡ddef.h
+>
+
+55 #iâdeà
+_WINT_T
+
+
+60 \ 1
+ #_WINT_T
+
+
+ )
+
+61 \e\1d\12
+ tw\9at_t
+;
+
+65 #ià
+def\9aed
+
+__ýlu¥lus
+ && def\9aed
+_GLIBCPP_USE_NAMESPACES
+ \
+
+66 &&
+def\9aed
+
+__WINT_TYPE__
+
+
+67
+__BEGIN_NAMESPACE_STD
+
+
+68 \e
+__WINT_TYPE__
+
+ tw\9at_t
+;
+
+69
+ g__END_NAMESPACE_STD
+
+
+74 #ià
+def\9aed
+
+__ýlu¥lus
+ &&
+__GNUC_PREREQ
+ (4, 4)
+
+75 \ 1
+ #__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+ )
+
+79 #ià(
+def\9aed
+
+_WCHAR_H
+ || def\9aed
+__Ãed_mb¡©e_t
+è&& !def\9aed
+____mb¡©e_t_def\9aed
+
+
+80 \ 1
+ #____mb¡©e_t_def\9aed
+ 1
+
+ )
+
+84 \12
+ m__couÁ
+;
+
+87 #ifdeà
+__WINT_TYPE__
+
+
+88
+__WINT_TYPE__
+
+ m__wch
+;
+
+90
+w\9at_t
+
+ m__wch
+;
+
+92 \ 5
+ m__wchb
+[4];
+
+93 }
+ m__v®ue
+;
+
+94 }
+ t__mb¡©e_t
+;
+
+96 #undeà
+__Ãed_mb¡©e_t
+
+
+101 #ifdeà
+_WCHAR_H
+
+
+103 #iâdeà
+__mb¡©e_t_def\9aed
+
+
+104
+__BEGIN_NAMESPACE_C99
+
+
+106 \e
+__mb¡©e_t
+
+ tmb¡©e_t
+;
+
+107
+ g__END_NAMESPACE_C99
+
+
+108 \ 1
+ #__mb¡©e_t_def\9aed
+ 1
+
+ )
+
+111 #ifdeà
+__USE_GNU
+
+
+112
+ $__USING_NAMESPACE_C99
+(
+mb¡©e_t
+)
+
+115 #iâdeà
+WCHAR_MIN
+
+
+117 \ 1
+ #WCHAR_MIN
+
+__WCHAR_MIN
+
+
+ )
+
+118 \ 1
+ #WCHAR_MAX
+
+__WCHAR_MAX
+
+
+ )
+
+121 #iâdeà
+WEOF
+
+
+122 \ 1
+ #WEOF
+ (0xffffffffu)
+
+ )
+
+127 #ià
+def\9aed
+
+__USE_XOPEN
+ && !def\9aed
+__USE_UNIX98
+
+
+128 \ 2
+ ~<wùy³.h
+>
+
+132
+__BEGIN_DECLS
+
+
+134
+__BEGIN_NAMESPACE_STD
+
+
+137 \19
+tm
+;
+
+138
+__END_NAMESPACE_STD
+
+
+142
+ $__USING_NAMESPACE_STD
+(
+tm
+)
+
+145
+__BEGIN_NAMESPACE_STD
+
+
+147 \r
+wch¬_t
+ *
+ $wcsýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+148 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+)
+
+149
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+152 \r
+wch¬_t
+ *
+ $wc¢ýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+153 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+154
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+157 \r
+wch¬_t
+ *
+ $wcsÿt
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+158 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+)
+
+159
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+161 \r
+wch¬_t
+ *
+ $wc¢ÿt
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+162 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+163
+__THROW
+
+ `__nÚnuÎ
+ ((1, 2));
+
+166 \r\12
+ $wcscmp
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+)
+
+167
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+169 \r\12
+ $wc¢cmp
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+size_t
+
+__n
+)
+
+170
+__THROW
+
+__©\8cibu\8b_pu»__
+
+ `__nÚnuÎ
+ ((1, 2));
+
+171
+__END_NAMESPACE_STD
+
+
+173 #ifdeà
+__USE_XOPEN2K8
+
+
+175 \r\12
+ $wcsÿ£cmp
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+è
+__THROW
+;
+
+178 \r\12
+ $wc¢ÿ£cmp
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+179
+size_t
+
+__n
+è
+__THROW
+;
+
+183 \ 2
+ ~<xloÿË.h
+>
+
+185 \r\12
+ $wcsÿ£cmp_l
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+186
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+188 \r\12
+ $wc¢ÿ£cmp_l
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+189
+size_t
+
+__n
+,
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+192
+__BEGIN_NAMESPACE_STD
+
+
+195 \r\12
+ $wcscÞl
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+è
+__THROW
+;
+
+199 \r
+size_t
+
+ $wcsxäm
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+200 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+201
+__END_NAMESPACE_STD
+
+
+203 #ifdeà
+__USE_XOPEN2K8
+
+
+209 \r\12
+ $wcscÞl_l
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+210
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+215 \r
+size_t
+
+ $wcsxäm_l
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+216
+size_t
+
+__n
+,
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+219 \r
+wch¬_t
+ *
+ $wcsdup
+ (cڡ
+wch¬_t
+ *
+__s
+è
+__THROW
+
+__©\8cibu\8b_m®loc__
+;
+
+222
+__BEGIN_NAMESPACE_STD
+
+
+224 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+225 \r"C++"
+wch¬_t
+ *
+ $wcschr
+ (
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+226
+__THROW
+
+ `__asm
+ ("wcschr"è
+__©\8cibu\8b_pu»__
+;
+
+227 \r"C++" cڡ
+wch¬_t
+ *
+ $wcschr
+ (cڡ
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+228
+__THROW
+
+ `__asm
+ ("wcschr"è
+__©\8cibu\8b_pu»__
+;
+
+230 \r
+wch¬_t
+ *
+ $wcschr
+ (cڡ
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+231
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+234 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+235 \r"C++"
+wch¬_t
+ *
+ $wc¤chr
+ (
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+236
+__THROW
+
+ `__asm
+ ("wc¤chr"è
+__©\8cibu\8b_pu»__
+;
+
+237 \r"C++" cڡ
+wch¬_t
+ *
+ $wc¤chr
+ (cڡ
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+238
+__THROW
+
+ `__asm
+ ("wc¤chr"è
+__©\8cibu\8b_pu»__
+;
+
+240 \r
+wch¬_t
+ *
+ $wc¤chr
+ (cڡ
+wch¬_t
+ *
+__wcs
+, wch¬_\88
+__wc
+)
+
+241
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+243
+__END_NAMESPACE_STD
+
+
+245 #ifdeà
+__USE_GNU
+
+
+248 \r
+wch¬_t
+ *
+ $wcschºul
+ (cڡ
+wch¬_t
+ *
+__s
+, wch¬_\88
+__wc
+)
+
+249
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+252
+__BEGIN_NAMESPACE_STD
+
+
+255 \r
+size_t
+
+ $wcsc¥n
+ (cڡ
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_\88*
+__»jeù
+)
+
+256
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+259 \r
+size_t
+
+ $wcs¥n
+ (cڡ
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_\88*
+__acû±
+)
+
+260
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+262 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+263 \r"C++"
+wch¬_t
+ *
+ $wc¥brk
+ (
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_\88*
+__acû±
+)
+
+264
+__THROW
+
+ `__asm
+ ("wc¥brk"è
+__©\8cibu\8b_pu»__
+;
+
+265 \r"C++" cڡ
+wch¬_t
+ *
+ $wc¥brk
+ (cڡ
+wch¬_t
+ *
+__wcs
+,
+
+266 cڡ
+wch¬_t
+ *
+__acû±
+)
+
+267
+__THROW
+
+ `__asm
+ ("wc¥brk"è
+__©\8cibu\8b_pu»__
+;
+
+269 \r
+wch¬_t
+ *
+ $wc¥brk
+ (cڡ
+wch¬_t
+ *
+__wcs
+, cÚ¡ wch¬_\88*
+__acû±
+)
+
+270
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+273 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+274 \r"C++"
+wch¬_t
+ *
+ $wcs¡r
+ (
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_\88*
+__ÃedË
+)
+
+275
+__THROW
+
+ `__asm
+ ("wcs¡r"è
+__©\8cibu\8b_pu»__
+;
+
+276 \r"C++" cڡ
+wch¬_t
+ *
+ $wcs¡r
+ (cڡ
+wch¬_t
+ *
+__hay¡ack
+,
+
+277 cڡ
+wch¬_t
+ *
+__ÃedË
+)
+
+278
+__THROW
+
+ `__asm
+ ("wcs¡r"è
+__©\8cibu\8b_pu»__
+;
+
+280 \r
+wch¬_t
+ *
+ $wcs¡r
+ (cڡ
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_\88*
+__ÃedË
+)
+
+281
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+285 \r
+wch¬_t
+ *
+ $wc¡ok
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+286 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__d\96im
+,
+
+287
+wch¬_t
+ **
+__»¡riù
+
+__±r
+è
+__THROW
+;
+
+290 \r
+size_t
+
+ $wc¦\92
+ (cڡ
+wch¬_t
+ *
+__s
+è
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+291
+__END_NAMESPACE_STD
+
+
+293 #ifdeà
+__USE_XOPEN
+
+
+295 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+296 \r"C++"
+wch¬_t
+ *
+ $wcswcs
+ (
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_\88*
+__ÃedË
+)
+
+297
+__THROW
+
+ `__asm
+ ("wcswcs"è
+__©\8cibu\8b_pu»__
+;
+
+298 \r"C++" cڡ
+wch¬_t
+ *
+ $wcswcs
+ (cڡ
+wch¬_t
+ *
+__hay¡ack
+,
+
+299 cڡ
+wch¬_t
+ *
+__ÃedË
+)
+
+300
+__THROW
+
+ `__asm
+ ("wcswcs"è
+__©\8cibu\8b_pu»__
+;
+
+302 \r
+wch¬_t
+ *
+ $wcswcs
+ (cڡ
+wch¬_t
+ *
+__hay¡ack
+, cÚ¡ wch¬_\88*
+__ÃedË
+)
+
+303
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+307 #ifdeà
+__USE_XOPEN2K8
+
+
+309 \r
+size_t
+
+ $wc¢Ën
+ (cڡ
+wch¬_t
+ *
+__s
+,
+size_t
+
+__maxËn
+)
+
+310
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+314
+__BEGIN_NAMESPACE_STD
+
+
+316 #ifdeà
+__CORRECT_ISO_CPP_WCHAR_H_PROTO
+
+
+317 \r"C++"
+wch¬_t
+ *
+ $wmemchr
+ (
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+)
+
+318
+__THROW
+
+ `__asm
+ ("wmemchr"è
+__©\8cibu\8b_pu»__
+;
+
+319 \r"C++" cڡ
+wch¬_t
+ *
+ $wmemchr
+ (cڡ
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+
+320
+size_t
+
+__n
+)
+
+321
+__THROW
+
+ `__asm
+ ("wmemchr"è
+__©\8cibu\8b_pu»__
+;
+
+323 \r
+wch¬_t
+ *
+ $wmemchr
+ (cڡ
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+)
+
+324
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+328 \r\12
+ $wmemcmp
+ (cڡ
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+size_t
+
+__n
+)
+
+329
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+332 \r
+wch¬_t
+ *
+ $wmemýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+333 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+337 \r
+wch¬_t
+ *
+ $wmemmove
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+size_t
+
+__n
+)
+
+338
+__THROW
+;
+
+341 \r
+wch¬_t
+ *
+ $wmem£t
+ (
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+342
+__END_NAMESPACE_STD
+
+
+344 #ifdeà
+__USE_GNU
+
+
+347 \r
+wch¬_t
+ *
+ $wmempýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+348 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+)
+
+349
+__THROW
+;
+
+353
+__BEGIN_NAMESPACE_STD
+
+
+356 \r
+w\9at_t
+
+ $btowc
+ (\12
+__c
+è
+__THROW
+;
+
+360 \r\12
+ $wùob
+ (
+w\9at_t
+
+__c
+è
+__THROW
+;
+
+364 \r\12
+ $mbs\9a\99
+ (cڡ
+mb¡©e_t
+ *
+__ps
+è
+__THROW
+
+__©\8cibu\8b_pu»__
+;
+
+368 \r
+size_t
+
+ $mb¹owc
+ (
+wch¬_t
+ *
+__»¡riù
+
+__pwc
+,
+
+369 cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+370
+mb¡©e_t
+ *
+__»¡riù
+
+__p
+è
+__THROW
+;
+
+373 \r
+size_t
+
+ $wütomb
+ (\ 5*
+__»¡riù
+
+__s
+,
+wch¬_t
+
+__wc
+,
+
+374
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+377 \r
+size_t
+
+ $__mb¾\92
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+378
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+379 \r
+size_t
+
+ $mb¾\92
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+380
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+381
+__END_NAMESPACE_STD
+
+
+383 #ifdeà
+__USE_EXTERN_INLINES
+
+
+389 \r
+w\9at_t
+
+ $__btowc_®\9fs
+ (\12
+__c
+è
+ `__asm
+ ("btowc");
+
+390
+__ex\8bº_\9al\9ae
+
+w\9at_t
+
+
+391
+ `__NTH
+ (
+ $btowc
+ (\12
+__c
+))
+
+392 { \15 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__c
+) && __c >= '\0' && __c <= '\x7f'
+
+393 ? (
+w\9at_t
+è
+__c
+ :
+ `__btowc_®\9fs
+ (__c));
+ }
+}
+
+395 \r\12
+ $__wùob_®\9fs
+ (
+w\9at_t
+
+__c
+è
+ `__asm
+ ("wctob");
+
+396
+__ex\8bº_\9al\9ae
+ \12
+
+397
+ `__NTH
+ (
+ $wùob
+ (
+w\9at_t
+
+__wc
+))
+
+398 { \15 (
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__wc
+è&& __wø>ð
+L
+'\0' && __wc <= L'\x7f'
+
+399 ? (\12è
+__wc
+ :
+ `__wùob_®\9fs
+ (__wc));
+ }
+}
+
+401
+__ex\8bº_\9al\9ae
+
+size_t
+
+
+402
+__NTH
+ (
+ $mb¾\92
+ (cڡ \ 5*
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+403
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+404 { \15 (
+__ps
+ !ð
+NULL
+
+
+405 ?
+ `mb¹owc
+ (
+NULL
+,
+__s
+,
+__n
+,
+__ps
+è:
+ `__mb¾\92
+ (__s, __n, NULL));
+ }
+}
+
+408
+__BEGIN_NAMESPACE_STD
+
+
+411 \r
+size_t
+
+ $mb¤towcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+412 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+size_t
+
+__Ën
+,
+
+413
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+417 \r
+size_t
+
+ $wc¤tombs
+ (\ 5*
+__»¡riù
+
+__d¡
+,
+
+418 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+size_t
+
+__Ën
+,
+
+419
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+420
+__END_NAMESPACE_STD
+
+
+423 #ifdef
+__USE_XOPEN2K8
+
+
+426 \r
+size_t
+
+ $mb¢¹owcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+427 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+size_t
+
+__nmc
+,
+
+428
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+432 \r
+size_t
+
+ $wc¢¹ombs
+ (\ 5*
+__»¡riù
+
+__d¡
+,
+
+433 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+434
+size_t
+
+__nwc
+, size_\88
+__Ën
+,
+
+435
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+è
+__THROW
+;
+
+440 #ifdeà
+__USE_XOPEN
+
+
+442 \r\12
+ $wcwidth
+ (
+wch¬_t
+
+__c
+è
+__THROW
+;
+
+446 \r\12
+ $wcswidth
+ (cڡ
+wch¬_t
+ *
+__s
+,
+size_t
+
+__n
+è
+__THROW
+;
+
+450
+__BEGIN_NAMESPACE_STD
+
+
+453 \r\b
+ $wc¡od
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+454
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+è
+__THROW
+;
+
+455
+__END_NAMESPACE_STD
+
+
+457 #ifdeà
+__USE_ISOC99
+
+
+458
+__BEGIN_NAMESPACE_C99
+
+
+460 \r\ e
+ $wc¡of
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+461
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+è
+__THROW
+;
+
+462 \r\13\b
+ $wc¡Þd
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+463
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+è
+__THROW
+;
+
+464
+__END_NAMESPACE_C99
+
+
+468
+__BEGIN_NAMESPACE_STD
+
+
+471 \r\13\12
+ $wc¡Þ
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+472
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+è
+__THROW
+;
+
+476 \r\1d\13\12
+ $wc¡oul
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+477
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+478
+__THROW
+;
+
+479
+__END_NAMESPACE_STD
+
+
+481 #ifdeà
+__USE_ISOC99
+
+
+482
+__BEGIN_NAMESPACE_C99
+
+
+485
+__ex\8bnsiÚ__
+
+
+486 \r\13\13\12
+ $wc¡Þl
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+487
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+488
+__THROW
+;
+
+492
+__ex\8bnsiÚ__
+
+
+493 \r\1d\13\13\12
+ $wc¡ouÎ
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+494
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+495 \12
+__ba£
+è
+__THROW
+;
+
+496
+__END_NAMESPACE_C99
+
+
+499 #ifdeà
+__USE_GNU
+
+
+502
+__ex\8bnsiÚ__
+
+
+503 \r\13\13\12
+ $wc¡oq
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+504
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+)
+
+505
+__THROW
+;
+
+509
+__ex\8bnsiÚ__
+
+
+510 \r\1d\13\13\12
+ $wc¡ouq
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+511
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+512 \12
+__ba£
+è
+__THROW
+;
+
+515 #ifdeà
+__USE_GNU
+
+
+529 \ 2
+ ~<xloÿË.h
+>
+
+533 \r\13\12
+ $wc¡Þ_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+534
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+, \12
+__ba£
+,
+
+535
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+537 \r\1d\13\12
+ $wc¡oul_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+538
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+539 \12
+__ba£
+,
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+541
+__ex\8bnsiÚ__
+
+
+542 \r\13\13\12
+ $wc¡Þl_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+543
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+544 \12
+__ba£
+,
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+546
+__ex\8bnsiÚ__
+
+
+547 \r\1d\13\13\12
+ $wc¡ouÎ_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+548
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+549 \12
+__ba£
+,
+__loÿË_t
+
+__loc
+)
+
+550
+__THROW
+;
+
+552 \r\b
+ $wc¡od_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+553
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+__loÿË_t
+
+__loc
+)
+
+554
+__THROW
+;
+
+556 \r\ e
+ $wc¡of_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+557
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+__loÿË_t
+
+__loc
+)
+
+558
+__THROW
+;
+
+560 \r\13\b
+ $wc¡Þd_l
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__Ō
+,
+
+561
+wch¬_t
+ **
+__»¡riù
+
+__\92d±r
+,
+
+562
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+566 #ifdeà
+__USE_XOPEN2K8
+
+
+569 \r
+wch¬_t
+ *
+ $wýýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+570 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+è
+__THROW
+;
+
+574 \r
+wch¬_t
+ *
+ $wýnýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+575 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+)
+
+576
+__THROW
+;
+
+583 \r
+__FILE
+ *
+ $Ý\92_wmem¡»am
+ (
+wch¬_t
+ **
+__buæoc
+,
+size_t
+ *
+__siz\96oc
+è
+__THROW
+;
+
+586 #ià
+def\9aed
+
+__USE_ISOC95
+ || def\9aed
+__USE_UNIX98
+
+
+587
+__BEGIN_NAMESPACE_STD
+
+
+590 \r\12
+ $fwide
+ (
+__FILE
+ *
+__å
+, \12
+__mode
+è
+__THROW
+;
+
+597 \r\12
+ `fw´\9atf
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+598 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+604 \r\12
+ `w´\9atf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+607 \r\12
+ $sw´\9atf
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+608 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+609
+__THROW
+ ;
+
+615 \r\12
+ `vfw´\9atf
+ (
+__FILE
+ *
+__»¡riù
+
+__s
+,
+
+616 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+617
+__gnuc_va_li¡
+
+__¬g
+)
+
+623 \r\12
+ `vw´\9atf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+624
+__gnuc_va_li¡
+
+__¬g
+)
+
+628 \r\12
+ $vsw´\9atf
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+629 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+630
+__gnuc_va_li¡
+
+__¬g
+)
+
+631
+__THROW
+ ;
+
+638 \r\12
+ `fwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+639 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+645 \r\12
+ `wsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+648 \r\12
+ $swsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+649 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+650
+__THROW
+ ;
+
+652 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__USE_GNU
+ \
+
+653 && (!
+def\9aed
+
+__LDBL_COMPAT
+ || !def\9aed
+__REDIRECT
+) \
+
+654 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+655 #ifdeà
+__REDIRECT
+
+
+659 \r\12
+ `__REDIRECT
+ (
+fwsÿnf
+, (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+660 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...),
+
+661
+__isoc99_fwsÿnf
+)
+
+663 \r\12
+ `__REDIRECT
+ (
+wsÿnf
+, (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...),
+
+664
+__isoc99_wsÿnf
+)
+
+666 \r\12
+ `__REDIRECT_NTH
+ (
+swsÿnf
+, (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+667 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+668 ...),
+__isoc99_swsÿnf
+)
+
+671 \r\12
+ `__isoc99_fwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+672 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...);
+
+673 \r\12
+ `__isoc99_wsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...);
+
+674 \r\12
+ $__isoc99_swsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+675 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+676
+__THROW
+;
+
+677 \ 1
+ #fwsÿnf
+
+__isoc99_fwsÿnf
+
+
+ )
+
+678 \ 1
+ #wsÿnf
+
+__isoc99_wsÿnf
+
+
+ )
+
+679 \ 1
+ #swsÿnf
+
+__isoc99_swsÿnf
+
+
+ )
+
+683
+__END_NAMESPACE_STD
+
+
+686 #ifdeà
+__USE_ISOC99
+
+
+687
+__BEGIN_NAMESPACE_C99
+
+
+692 \r\12
+ `vfwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+
+__s
+,
+
+693 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+694
+__gnuc_va_li¡
+
+__¬g
+)
+
+700 \r\12
+ `vwsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+701
+__gnuc_va_li¡
+
+__¬g
+)
+
+704 \r\12
+ $vswsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+705 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+706
+__gnuc_va_li¡
+
+__¬g
+)
+
+707
+__THROW
+ ;
+
+709 #ià!
+def\9aed
+
+__USE_GNU
+ \
+
+710 && (!
+def\9aed
+
+__LDBL_COMPAT
+ || !def\9aed
+__REDIRECT
+) \
+
+711 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+712 #ifdeà
+__REDIRECT
+
+
+713 \r\12
+ `__REDIRECT
+ (
+vfwsÿnf
+, (
+__FILE
+ *
+__»¡riù
+
+__s
+,
+
+714 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+715
+__gnuc_va_li¡
+
+__¬g
+),
+__isoc99_vfwsÿnf
+)
+
+717 \r\12
+ `__REDIRECT
+ (
+vwsÿnf
+, (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+718
+__gnuc_va_li¡
+
+__¬g
+),
+__isoc99_vwsÿnf
+)
+
+720 \r\12
+ `__REDIRECT_NTH
+ (
+vswsÿnf
+, (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+721 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+722
+__gnuc_va_li¡
+
+__¬g
+),
+__isoc99_vswsÿnf
+)
+
+725 \r\12
+ `__isoc99_vfwsÿnf
+ (
+__FILE
+ *
+__»¡riù
+
+__s
+,
+
+726 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+727
+__gnuc_va_li¡
+
+__¬g
+);
+
+728 \r\12
+ `__isoc99_vwsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+729
+__gnuc_va_li¡
+
+__¬g
+);
+
+730 \r\12
+ $__isoc99_vswsÿnf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+
+731 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+732
+__gnuc_va_li¡
+
+__¬g
+è
+__THROW
+;
+
+733 \ 1
+ #vfwsÿnf
+
+__isoc99_vfwsÿnf
+
+
+ )
+
+734 \ 1
+ #vwsÿnf
+
+__isoc99_vwsÿnf
+
+
+ )
+
+735 \ 1
+ #vswsÿnf
+
+__isoc99_vswsÿnf
+
+
+ )
+
+739
+__END_NAMESPACE_C99
+
+
+743
+__BEGIN_NAMESPACE_STD
+
+
+748 \r
+w\9at_t
+
+ `fg\91wc
+ (
+__FILE
+ *
+__¡»am
+);
+
+749 \r
+w\9at_t
+
+ `g\91wc
+ (
+__FILE
+ *
+__¡»am
+);
+
+755 \r
+w\9at_t
+
+ `g\91wch¬
+ (\1e);
+
+762 \r
+w\9at_t
+
+ `åutwc
+ (
+wch¬_t
+
+__wc
+,
+__FILE
+ *
+__¡»am
+);
+
+763 \r
+w\9at_t
+
+ `putwc
+ (
+wch¬_t
+
+__wc
+,
+__FILE
+ *
+__¡»am
+);
+
+769 \r
+w\9at_t
+
+ `putwch¬
+ (
+wch¬_t
+
+__wc
+);
+
+777 \r
+wch¬_t
+ *
+ `fg\91ws
+ (wch¬_\88*
+__»¡riù
+
+__ws
+, \12
+__n
+,
+
+778
+__FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+784 \r\12
+ `åutws
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__ws
+,
+
+785
+__FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+792 \r
+w\9at_t
+
+ `ung\91wc
+ (w\9at_\88
+__wc
+,
+__FILE
+ *
+__¡»am
+);
+
+793
+__END_NAMESPACE_STD
+
+
+796 #ifdeà
+__USE_GNU
+
+
+804 \r
+w\9at_t
+
+ `g\91wc_uÆocked
+ (
+__FILE
+ *
+__¡»am
+);
+
+805 \r
+w\9at_t
+
+ `g\91wch¬_uÆocked
+ (\1e);
+
+813 \r
+w\9at_t
+
+ `fg\91wc_uÆocked
+ (
+__FILE
+ *
+__¡»am
+);
+
+821 \r
+w\9at_t
+
+ `åutwc_uÆocked
+ (
+wch¬_t
+
+__wc
+,
+__FILE
+ *
+__¡»am
+);
+
+830 \r
+w\9at_t
+
+ `putwc_uÆocked
+ (
+wch¬_t
+
+__wc
+,
+__FILE
+ *
+__¡»am
+);
+
+831 \r
+w\9at_t
+
+ `putwch¬_uÆocked
+ (
+wch¬_t
+
+__wc
+);
+
+840 \r
+wch¬_t
+ *
+ `fg\91ws_uÆocked
+ (wch¬_\88*
+__»¡riù
+
+__ws
+, \12
+__n
+,
+
+841
+__FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+849 \r\12
+ `åutws_uÆocked
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__ws
+,
+
+850
+__FILE
+ *
+__»¡riù
+
+__¡»am
+);
+
+854
+__BEGIN_NAMESPACE_C99
+
+
+858 \r
+size_t
+
+ $wcsáime
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__maxsize
+,
+
+859 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+860 cڡ \19
+tm
+ *
+__»¡riù
+
+__\8d
+è
+__THROW
+;
+
+861
+__END_NAMESPACE_C99
+
+
+863 #ifdeà
+__USE_GNU
+
+
+864 \ 2
+ ~<xloÿË.h
+>
+
+868 \r
+size_t
+
+ $wcsáime_l
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__maxsize
+,
+
+869 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+870 cڡ \19
+tm
+ *
+__»¡riù
+
+__\8d
+,
+
+871
+__loÿË_t
+
+__loc
+è
+__THROW
+;
+
+880 #ià
+def\9aed
+
+__USE_UNIX98
+ && !def\9aed
+__USE_GNU
+
+
+881 \ 1
+ #__Ãed_iswxxx
+
+
+ )
+
+882 \ 2
+ ~<wùy³.h
+>
+
+886 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+887 \ 2
+ ~<b\99s/wch¬2.h
+>
+
+890 #ifdeà
+__LDBL_COMPAT
+
+
+891 \ 2
+ ~<b\99s/wch¬-ldbl.h
+>
+
+894
+__END_DECLS
+
+
+902 #undeà
+__Ãed_mb¡©e_t
+
+
+903 #undeà
+__Ãed_w\9at_t
+
+
+ @/usr/include/asm-generic/errno.h
+
+1 #iâdeà
+_ASM_GENERIC_ERRNO_H
+
+
+2 \ 1
+ #_ASM_GENERIC_ERRNO_H
+
+
+ )
+
+4 \ 2
+ ~<asm-g\92\94ic/\94ºo-ba£.h
+>
+
+6 \ 1
+ #EDEADLK
+ 35
+
+ )
+
+7 \ 1
+ #ENAMETOOLONG
+ 36
+
+ )
+
+8 \ 1
+ #ENOLCK
+ 37
+
+ )
+
+17 \ 1
+ #ENOSYS
+ 38
+
+ )
+
+19 \ 1
+ #ENOTEMPTY
+ 39
+
+ )
+
+20 \ 1
+ #ELOOP
+ 40
+
+ )
+
+21 \ 1
+ #EWOULDBLOCK
+
+EAGAIN
+
+
+ )
+
+22 \ 1
+ #ENOMSG
+ 42
+
+ )
+
+23 \ 1
+ #EIDRM
+ 43
+
+ )
+
+24 \ 1
+ #ECHRNG
+ 44
+
+ )
+
+25 \ 1
+ #EL2NSYNC
+ 45
+
+ )
+
+26 \ 1
+ #EL3HLT
+ 46
+
+ )
+
+27 \ 1
+ #EL3RST
+ 47
+
+ )
+
+28 \ 1
+ #ELNRNG
+ 48
+
+ )
+
+29 \ 1
+ #EUNATCH
+ 49
+
+ )
+
+30 \ 1
+ #ENOCSI
+ 50
+
+ )
+
+31 \ 1
+ #EL2HLT
+ 51
+
+ )
+
+32 \ 1
+ #EBADE
+ 52
+
+ )
+
+33 \ 1
+ #EBADR
+ 53
+
+ )
+
+34 \ 1
+ #EXFULL
+ 54
+
+ )
+
+35 \ 1
+ #ENOANO
+ 55
+
+ )
+
+36 \ 1
+ #EBADRQC
+ 56
+
+ )
+
+37 \ 1
+ #EBADSLT
+ 57
+
+ )
+
+39 \ 1
+ #EDEADLOCK
+
+EDEADLK
+
+
+ )
+
+41 \ 1
+ #EBFONT
+ 59
+
+ )
+
+42 \ 1
+ #ENOSTR
+ 60
+
+ )
+
+43 \ 1
+ #ENODATA
+ 61
+
+ )
+
+44 \ 1
+ #ETIME
+ 62
+
+ )
+
+45 \ 1
+ #ENOSR
+ 63
+
+ )
+
+46 \ 1
+ #ENONET
+ 64
+
+ )
+
+47 \ 1
+ #ENOPKG
+ 65
+
+ )
+
+48 \ 1
+ #EREMOTE
+ 66
+
+ )
+
+49 \ 1
+ #ENOLINK
+ 67
+
+ )
+
+50 \ 1
+ #EADV
+ 68
+
+ )
+
+51 \ 1
+ #ESRMNT
+ 69
+
+ )
+
+52 \ 1
+ #ECOMM
+ 70
+
+ )
+
+53 \ 1
+ #EPROTO
+ 71
+
+ )
+
+54 \ 1
+ #EMULTIHOP
+ 72
+
+ )
+
+55 \ 1
+ #EDOTDOT
+ 73
+
+ )
+
+56 \ 1
+ #EBADMSG
+ 74
+
+ )
+
+57 \ 1
+ #EOVERFLOW
+ 75
+
+ )
+
+58 \ 1
+ #ENOTUNIQ
+ 76
+
+ )
+
+59 \ 1
+ #EBADFD
+ 77
+
+ )
+
+60 \ 1
+ #EREMCHG
+ 78
+
+ )
+
+61 \ 1
+ #ELIBACC
+ 79
+
+ )
+
+62 \ 1
+ #ELIBBAD
+ 80
+
+ )
+
+63 \ 1
+ #ELIBSCN
+ 81
+
+ )
+
+64 \ 1
+ #ELIBMAX
+ 82
+
+ )
+
+65 \ 1
+ #ELIBEXEC
+ 83
+
+ )
+
+66 \ 1
+ #EILSEQ
+ 84
+
+ )
+
+67 \ 1
+ #ERESTART
+ 85
+
+ )
+
+68 \ 1
+ #ESTRPIPE
+ 86
+
+ )
+
+69 \ 1
+ #EUSERS
+ 87
+
+ )
+
+70 \ 1
+ #ENOTSOCK
+ 88
+
+ )
+
+71 \ 1
+ #EDESTADDRREQ
+ 89
+
+ )
+
+72 \ 1
+ #EMSGSIZE
+ 90
+
+ )
+
+73 \ 1
+ #EPROTOTYPE
+ 91
+
+ )
+
+74 \ 1
+ #ENOPROTOOPT
+ 92
+
+ )
+
+75 \ 1
+ #EPROTONOSUPPORT
+ 93
+
+ )
+
+76 \ 1
+ #ESOCKTNOSUPPORT
+ 94
+
+ )
+
+77 \ 1
+ #EOPNOTSUPP
+ 95
+
+ )
+
+78 \ 1
+ #EPFNOSUPPORT
+ 96
+
+ )
+
+79 \ 1
+ #EAFNOSUPPORT
+ 97
+
+ )
+
+80 \ 1
+ #EADDRINUSE
+ 98
+
+ )
+
+81 \ 1
+ #EADDRNOTAVAIL
+ 99
+
+ )
+
+82 \ 1
+ #ENETDOWN
+ 100
+
+ )
+
+83 \ 1
+ #ENETUNREACH
+ 101
+
+ )
+
+84 \ 1
+ #ENETRESET
+ 102
+
+ )
+
+85 \ 1
+ #ECONNABORTED
+ 103
+
+ )
+
+86 \ 1
+ #ECONNRESET
+ 104
+
+ )
+
+87 \ 1
+ #ENOBUFS
+ 105
+
+ )
+
+88 \ 1
+ #EISCONN
+ 106
+
+ )
+
+89 \ 1
+ #ENOTCONN
+ 107
+
+ )
+
+90 \ 1
+ #ESHUTDOWN
+ 108
+
+ )
+
+91 \ 1
+ #ETOOMANYREFS
+ 109
+
+ )
+
+92 \ 1
+ #ETIMEDOUT
+ 110
+
+ )
+
+93 \ 1
+ #ECONNREFUSED
+ 111
+
+ )
+
+94 \ 1
+ #EHOSTDOWN
+ 112
+
+ )
+
+95 \ 1
+ #EHOSTUNREACH
+ 113
+
+ )
+
+96 \ 1
+ #EALREADY
+ 114
+
+ )
+
+97 \ 1
+ #EINPROGRESS
+ 115
+
+ )
+
+98 \ 1
+ #ESTALE
+ 116
+
+ )
+
+99 \ 1
+ #EUCLEAN
+ 117
+
+ )
+
+100 \ 1
+ #ENOTNAM
+ 118
+
+ )
+
+101 \ 1
+ #ENAVAIL
+ 119
+
+ )
+
+102 \ 1
+ #EISNAM
+ 120
+
+ )
+
+103 \ 1
+ #EREMOTEIO
+ 121
+
+ )
+
+104 \ 1
+ #EDQUOT
+ 122
+
+ )
+
+106 \ 1
+ #ENOMEDIUM
+ 123
+
+ )
+
+107 \ 1
+ #EMEDIUMTYPE
+ 124
+
+ )
+
+108 \ 1
+ #ECANCELED
+ 125
+
+ )
+
+109 \ 1
+ #ENOKEY
+ 126
+
+ )
+
+110 \ 1
+ #EKEYEXPIRED
+ 127
+
+ )
+
+111 \ 1
+ #EKEYREVOKED
+ 128
+
+ )
+
+112 \ 1
+ #EKEYREJECTED
+ 129
+
+ )
+
+115 \ 1
+ #EOWNERDEAD
+ 130
+
+ )
+
+116 \ 1
+ #ENOTRECOVERABLE
+ 131
+
+ )
+
+118 \ 1
+ #ERFKILL
+ 132
+
+ )
+
+120 \ 1
+ #EHWPOISON
+ 133
+
+ )
+
+ @/usr/include/asm-generic/param.h
+
+1 #iâdeà
+__ASM_GENERIC_PARAM_H
+
+
+2 \ 1
+ #__ASM_GENERIC_PARAM_H
+
+
+ )
+
+4 #iâdeà
+HZ
+
+
+5 \ 1
+ #HZ
+ 100
+
+ )
+
+8 #iâdeà
+EXEC_PAGESIZE
+
+
+9 \ 1
+ #EXEC_PAGESIZE
+ 4096
+
+ )
+
+12 #iâdeà
+NOGROUP
+
+
+13 \ 1
+ #NOGROUP
+ (-1)
+
+ )
+
+16 \ 1
+ #MAXHOSTNAMELEN
+ 64
+
+ )
+
+ @/usr/include/asm/sockios.h
+
+1 \ 2
+ ~<asm-g\92\94ic/sockios.h
+>
+
+ @/usr/include/bits/wchar-ldbl.h
+
+19 #iâdeà
+_WCHAR_H
+
+
+23 #ià
+def\9aed
+
+__USE_ISOC95
+ || def\9aed
+__USE_UNIX98
+
+
+24
+__BEGIN_NAMESPACE_C99
+
+
+25
+__LDBL_REDIR_DECL
+ (
+fw´\9atf
+);
+
+26
+__LDBL_REDIR_DECL
+ (
+w´\9atf
+);
+
+27
+__LDBL_REDIR_DECL
+ (
+sw´\9atf
+);
+
+28
+__LDBL_REDIR_DECL
+ (
+vfw´\9atf
+);
+
+29
+__LDBL_REDIR_DECL
+ (
+vw´\9atf
+);
+
+30
+__LDBL_REDIR_DECL
+ (
+vsw´\9atf
+);
+
+31 #ià
+def\9aed
+
+__USE_ISOC99
+ && !def\9aed
+__USE_GNU
+ \
+
+32 && !
+def\9aed
+
+ g__REDIRECT
+ \
+
+33 && (
+def\9aed
+
+ g__STRICT_ANSI__
+ || def\9aed
+ g__USE_XOPEN2K
+)
+
+34
+ $__LDBL_REDIR1_DECL
+ (
+fwsÿnf
+,
+__Ædbl___isoc99_fwsÿnf
+)
+
+35
+ $__LDBL_REDIR1_DECL
+ (
+wsÿnf
+,
+__Ædbl___isoc99_wsÿnf
+)
+
+36
+ $__LDBL_REDIR1_DECL
+ (
+swsÿnf
+,
+__Ædbl___isoc99_swsÿnf
+)
+
+38
+ `__LDBL_REDIR_DECL
+ (
+fwsÿnf
+);
+
+39
+ `__LDBL_REDIR_DECL
+ (
+wsÿnf
+);
+
+40
+ `__LDBL_REDIR_DECL
+ (
+swsÿnf
+);
+
+42
+__END_NAMESPACE_C99
+
+
+45 #ifdeà
+__USE_ISOC99
+
+
+46
+__BEGIN_NAMESPACE_C99
+
+
+47
+ `__LDBL_REDIR1_DECL
+ (
+wc¡Þd
+,
+wc¡od
+);
+
+48 #ià!
+def\9aed
+
+__USE_GNU
+ && !def\9aed
+__REDIRECT
+ \
+
+49 && (
+def\9aed
+
+__STRICT_ANSI__
+ || def\9aed
+__USE_XOPEN2K
+)
+
+50
+ $__LDBL_REDIR1_DECL
+ (
+vfwsÿnf
+,
+__Ædbl___isoc99_vfwsÿnf
+)
+
+51
+ $__LDBL_REDIR1_DECL
+ (
+vwsÿnf
+,
+__Ædbl___isoc99_vwsÿnf
+)
+
+52
+ $__LDBL_REDIR1_DECL
+ (
+vswsÿnf
+,
+__Ædbl___isoc99_vswsÿnf
+)
+
+54
+ `__LDBL_REDIR_DECL
+ (
+vfwsÿnf
+);
+
+55
+ `__LDBL_REDIR_DECL
+ (
+vwsÿnf
+);
+
+56
+ `__LDBL_REDIR_DECL
+ (
+vswsÿnf
+);
+
+58
+__END_NAMESPACE_C99
+
+
+61 #ifdeà
+__USE_GNU
+
+
+62
+ `__LDBL_REDIR1_DECL
+ (
+wc¡Þd_l
+,
+wc¡od_l
+);
+
+65 #ià
+__USE_FORTIFY_LEVEL
+ > 0 &&
+def\9aed
+
+__fÜtify_funùiÚ
+
+
+66
+ $__LDBL_REDIR_DECL
+ (
+__sw´\9atf_chk
+)
+
+67
+ $__LDBL_REDIR_DECL
+ (
+__vsw´\9atf_chk
+)
+
+68 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+69
+ $__LDBL_REDIR_DECL
+ (
+__fw´\9atf_chk
+)
+
+70
+ $__LDBL_REDIR_DECL
+ (
+__w´\9atf_chk
+)
+
+71
+ $__LDBL_REDIR_DECL
+ (
+__vfw´\9atf_chk
+)
+
+72
+ $__LDBL_REDIR_DECL
+ (
+__vw´\9atf_chk
+)
+
+ @/usr/include/bits/wchar2.h
+
+19 #iâdeà
+_WCHAR_H
+
+
+24 \r
+wch¬_t
+ *
+ $__wmemýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+25 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+,
+
+26
+size_t
+
+__ns1
+è
+__THROW
+;
+
+27 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmemýy_®\9fs
+,
+
+28 (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+29 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+),
+
+30
+wmemýy
+);
+
+31 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmemýy_chk_w¬n
+,
+
+32 (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+33 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+,
+
+34
+size_t
+
+__ns1
+),
+__wmemýy_chk
+)
+
+35
+ `__w‚\89r
+ ("wmemcpy called with\86ength bigger\81han size of destination "
+
+38
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+39
+ `__NTH
+ (
+ $wmemýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+, cÚ¡ wch¬_\88*__»¡riù
+__s2
+,
+
+40
+size_t
+
+__n
+))
+
+42 ià(
+ `__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+44 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+45 \15
+ `__wmemýy_chk
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+46
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+48 ià(
+__n
+ >
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+))
+
+49 \15
+ `__wmemýy_chk_w¬n
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+50
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+52 \15
+ `__wmemýy_®\9fs
+ (
+__s1
+,
+__s2
+,
+__n
+);
+
+53
+ }
+}
+
+56 \r
+wch¬_t
+ *
+ $__wmemmove_chk
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+57
+size_t
+
+__n
+, size_\88
+__ns1
+è
+__THROW
+;
+
+58 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmemmove_®\9fs
+, (wch¬_\88*
+__s1
+,
+
+59 cڡ
+wch¬_t
+ *
+__s2
+,
+
+60
+size_t
+
+__n
+),
+wmemmove
+);
+
+61 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmemmove_chk_w¬n
+,
+
+62 (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+
+63
+size_t
+
+__n
+, size_\88
+__ns1
+),
+__wmemmove_chk
+)
+
+64
+ `__w‚\89r
+ ("wmemmove called with\86ength bigger\81han size of destination "
+
+67
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+68
+ `__NTH
+ (
+ $wmemmove
+ (
+wch¬_t
+ *
+__s1
+, cÚ¡ wch¬_\88*
+__s2
+,
+size_t
+
+__n
+))
+
+70 ià(
+ `__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+72 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+73 \15
+ `__wmemmove_chk
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+74
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+76 ià(
+__n
+ >
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+))
+
+77 \15
+ `__wmemmove_chk_w¬n
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+78
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+80 \15
+ `__wmemmove_®\9fs
+ (
+__s1
+,
+__s2
+,
+__n
+);
+
+81
+ }
+}
+
+84 #ifdeà
+__USE_GNU
+
+
+85 \r
+wch¬_t
+ *
+ $__wmempýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+86 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+,
+
+87
+size_t
+
+__ns1
+è
+__THROW
+;
+
+88 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmempýy_®\9fs
+,
+
+89 (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+90 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+
+91
+size_t
+
+__n
+),
+wmempýy
+);
+
+92 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmempýy_chk_w¬n
+,
+
+93 (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+,
+
+94 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__s2
+,
+size_t
+
+__n
+,
+
+95
+size_t
+
+__ns1
+),
+__wmempýy_chk
+)
+
+96
+ `__w‚\89r
+ ("wmempcpy called with\86ength bigger\81han size of destination "
+
+99
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+100
+ `__NTH
+ (
+ $wmempýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s1
+, cÚ¡ wch¬_\88*__»¡riù
+__s2
+,
+
+101
+size_t
+
+__n
+))
+
+103 ià(
+ `__bos0
+ (
+__s1
+è!ð(
+size_t
+) -1)
+
+105 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+106 \15
+ `__wmempýy_chk
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+107
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+109 ià(
+__n
+ >
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+))
+
+110 \15
+ `__wmempýy_chk_w¬n
+ (
+__s1
+,
+__s2
+,
+__n
+,
+
+111
+ `__bos0
+ (
+__s1
+è/ \17 (
+wch¬_t
+));
+
+113 \15
+ `__wmempýy_®\9fs
+ (
+__s1
+,
+__s2
+,
+__n
+);
+
+114
+ }
+}
+
+118 \r
+wch¬_t
+ *
+ $__wmem£t_chk
+ (
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+,
+
+119
+size_t
+
+__ns
+è
+__THROW
+;
+
+120 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmem£t_®\9fs
+, (wch¬_\88*
+__s
+, wch¬_\88
+__c
+,
+
+121
+size_t
+
+__n
+),
+wmem£t
+);
+
+122 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wmem£t_chk_w¬n
+,
+
+123 (
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+,
+
+124
+size_t
+
+__ns
+),
+__wmem£t_chk
+)
+
+125
+ `__w‚\89r
+ ("wmemset called with\86ength bigger\81han size of destination "
+
+128
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+129
+ `__NTH
+ (
+ $wmem£t
+ (
+wch¬_t
+ *
+__s
+, wch¬_\88
+__c
+,
+size_t
+
+__n
+))
+
+131 ià(
+ `__bos0
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+133 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+134 \15
+ `__wmem£t_chk
+ (
+__s
+,
+__c
+,
+__n
+,
+ `__bos0
+ (__sè/ \17 (
+wch¬_t
+));
+
+136 ià(
+__n
+ >
+ `__bos0
+ (
+__s
+è/ \17 (
+wch¬_t
+))
+
+137 \15
+ `__wmem£t_chk_w¬n
+ (
+__s
+,
+__c
+,
+__n
+,
+
+138
+ `__bos0
+ (
+__s
+è/ \17 (
+wch¬_t
+));
+
+140 \15
+ `__wmem£t_®\9fs
+ (
+__s
+,
+__c
+,
+__n
+);
+
+141
+ }
+}
+
+144 \r
+wch¬_t
+ *
+ $__wcsýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+145 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+146
+size_t
+
+__n
+è
+__THROW
+;
+
+147 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wcsýy_®\9fs
+,
+
+148 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+149 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+),
+wcsýy
+);
+
+151
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+152
+ `__NTH
+ (
+ $wcsýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+))
+
+154 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+155 \15
+ `__wcsýy_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__de¡è/ \17 (
+wch¬_t
+));
+
+156 \15
+ `__wcsýy_®\9fs
+ (
+__de¡
+,
+__¤c
+);
+
+157
+ }
+}
+
+160 \r
+wch¬_t
+ *
+ $__wýýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+161 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+162
+size_t
+
+__de¡Ën
+è
+__THROW
+;
+
+163 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wýýy_®\9fs
+,
+
+164 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+165 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+),
+wýýy
+);
+
+167
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+168
+ `__NTH
+ (
+ $wýýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+))
+
+170 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+171 \15
+ `__wýýy_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__de¡è/ \17 (
+wch¬_t
+));
+
+172 \15
+ `__wýýy_®\9fs
+ (
+__de¡
+,
+__¤c
+);
+
+173
+ }
+}
+
+176 \r
+wch¬_t
+ *
+ $__wc¢ýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+177 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+,
+
+178
+size_t
+
+__de¡Ën
+è
+__THROW
+;
+
+179 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wc¢ýy_®\9fs
+,
+
+180 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+181 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+182
+size_t
+
+__n
+),
+wc¢ýy
+);
+
+183 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wc¢ýy_chk_w¬n
+,
+
+184 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+185 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+186
+size_t
+
+__n
+, size_\88
+__de¡Ën
+),
+__wc¢ýy_chk
+)
+
+187
+ `__w‚\89r
+ ("wcsncpy called with\86ength bigger\81han size of destination "
+
+190
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+191
+ `__NTH
+ (
+ $wc¢ýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+,
+
+192
+size_t
+
+__n
+))
+
+194 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+196 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+197 \15
+ `__wc¢ýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+
+198
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+));
+
+199 ià(
+__n
+ >
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+))
+
+200 \15
+ `__wc¢ýy_chk_w¬n
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+
+201
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+));
+
+203 \15
+ `__wc¢ýy_®\9fs
+ (
+__de¡
+,
+__¤c
+,
+__n
+);
+
+204
+ }
+}
+
+207 \r
+wch¬_t
+ *
+ $__wýnýy_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+208 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+size_t
+
+__n
+,
+
+209
+size_t
+
+__de¡Ën
+è
+__THROW
+;
+
+210 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wýnýy_®\9fs
+,
+
+211 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+212 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+213
+size_t
+
+__n
+),
+wýnýy
+);
+
+214 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wýnýy_chk_w¬n
+,
+
+215 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+216 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+217
+size_t
+
+__n
+, size_\88
+__de¡Ën
+),
+__wýnýy_chk
+)
+
+218
+ `__w‚\89r
+ ("wcpncpy called with\86ength bigger\81han size of destination "
+
+221
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+222
+ `__NTH
+ (
+ $wýnýy
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+,
+
+223
+size_t
+
+__n
+))
+
+225 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+227 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+))
+
+228 \15
+ `__wýnýy_chk
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+
+229
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+));
+
+230 ià(
+__n
+ >
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+))
+
+231 \15
+ `__wýnýy_chk_w¬n
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+
+232
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+));
+
+234 \15
+ `__wýnýy_®\9fs
+ (
+__de¡
+,
+__¤c
+,
+__n
+);
+
+235
+ }
+}
+
+238 \r
+wch¬_t
+ *
+ $__wcsÿt_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+239 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+240
+size_t
+
+__de¡Ën
+è
+__THROW
+;
+
+241 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wcsÿt_®\9fs
+,
+
+242 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+243 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+),
+wcsÿt
+);
+
+245
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+246
+ `__NTH
+ (
+ $wcsÿt
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+))
+
+248 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+249 \15
+ `__wcsÿt_chk
+ (
+__de¡
+,
+__¤c
+,
+ `__bos
+ (__de¡è/ \17 (
+wch¬_t
+));
+
+250 \15
+ `__wcsÿt_®\9fs
+ (
+__de¡
+,
+__¤c
+);
+
+251
+ }
+}
+
+254 \r
+wch¬_t
+ *
+ $__wc¢ÿt_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+255 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+256
+size_t
+
+__n
+, size_\88
+__de¡Ën
+è
+__THROW
+;
+
+257 \r
+wch¬_t
+ *
+ `__REDIRECT_NTH
+ (
+__wc¢ÿt_®\9fs
+,
+
+258 (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+,
+
+259 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__¤c
+,
+
+260
+size_t
+
+__n
+),
+wc¢ÿt
+);
+
+262
+__fÜtify_funùiÚ
+
+wch¬_t
+ *
+
+263
+ `__NTH
+ (
+ $wc¢ÿt
+ (
+wch¬_t
+ *
+__»¡riù
+
+__de¡
+, cÚ¡ wch¬_\88*__»¡riù
+__¤c
+,
+
+264
+size_t
+
+__n
+))
+
+266 ià(
+ `__bos
+ (
+__de¡
+è!ð(
+size_t
+) -1)
+
+267 \15
+ `__wc¢ÿt_chk
+ (
+__de¡
+,
+__¤c
+,
+__n
+,
+
+268
+ `__bos
+ (
+__de¡
+è/ \17 (
+wch¬_t
+));
+
+269 \15
+ `__wc¢ÿt_®\9fs
+ (
+__de¡
+,
+__¤c
+,
+__n
+);
+
+270
+ }
+}
+
+273 \r\12
+ $__sw´\9atf_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+274 \12
+__æag
+,
+size_t
+
+__s_Ën
+,
+
+275 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...)
+
+276
+__THROW
+ ;
+
+278 \r\12
+ `__REDIRECT_NTH_LDBL
+ (
+__sw´\9atf_®\9fs
+,
+
+279 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+280 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+, ...),
+
+281
+sw´\9atf
+);
+
+283 #ifdeà
+__va_¬g_·ck
+
+
+284
+__fÜtify_funùiÚ
+ \12
+
+285
+ `__NTH
+ (
+ $sw´\9atf
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+286 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+, ...))
+
+288 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+è-1 ||
+__USE_FORTIFY_LEVEL
+ > 1)
+
+289 \15
+ `__sw´\9atf_chk
+ (
+__s
+,
+__n
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+290
+ `__bos
+ (
+__s
+è/ \17 (
+wch¬_t
+),
+
+291
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+292 \15
+ `__sw´\9atf_®\9fs
+ (
+__s
+,
+__n
+,
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+293
+ }
+}
+
+294 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+296 \ 1
+ #sw´\9atf
+(
+s
+,
+n
+, ...) \
+
+297 (
+ `__bos
+ (
+s
+è!ð(
+size_t
+è-1 ||
+__USE_FORTIFY_LEVEL
+ > 1 \
+
+298 ?
+ `__sw´\9atf_chk
+ (
+s
+,
+n
+,
+__USE_FORTIFY_LEVEL
+ - 1, \
+
+299
+ `__bos
+ (
+s
+è/ \17 (
+wch¬_t
+),
+__VA_ARGS__
+) \
+
+300 :
+ `sw´\9atf
+ (
+s
+,
+n
+,
+__VA_ARGS__
+))
+
+ )
+
+303 \r\12
+ $__vsw´\9atf_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+304 \12
+__æag
+,
+size_t
+
+__s_Ën
+,
+
+305 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+306
+__gnuc_va_li¡
+
+__¬g
+)
+
+307
+__THROW
+ ;
+
+309 \r\12
+ `__REDIRECT_NTH_LDBL
+ (
+__vsw´\9atf_®\9fs
+,
+
+310 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+311 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+,
+
+312
+__gnuc_va_li¡
+
+__
+),
+vsw´\9atf
+);
+
+314
+__fÜtify_funùiÚ
+ \12
+
+315
+ `__NTH
+ (
+ $vsw´\9atf
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__n
+,
+
+316 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+,
+__gnuc_va_li¡
+
+__
+))
+
+318 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+è-1 ||
+__USE_FORTIFY_LEVEL
+ > 1)
+
+319 \15
+ `__vsw´\9atf_chk
+ (
+__s
+,
+__n
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+
+320
+ `__bos
+ (
+__s
+è/ \17 (
+wch¬_t
+),
+__fmt
+,
+__
+);
+
+321 \15
+ `__vsw´\9atf_®\9fs
+ (
+__s
+,
+__n
+,
+__fmt
+,
+__
+);
+
+322
+ }
+}
+
+325 #ià
+__USE_FORTIFY_LEVEL
+ > 1
+
+327 \r\12
+__fw´\9atf_chk
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+, \12
+__æag
+,
+
+328 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+, ...);
+
+329 \r\12
+__w´\9atf_chk
+ (\12
+__æag
+, cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+331 \r\12
+__vfw´\9atf_chk
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+, \12
+__æag
+,
+
+332 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+333
+__gnuc_va_li¡
+
+__
+);
+
+334 \r\12
+__vw´\9atf_chk
+ (\12
+__æag
+, cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fÜm©
+,
+
+335
+__gnuc_va_li¡
+
+__
+);
+
+337 #ifdeà
+__va_¬g_·ck
+
+
+338
+__fÜtify_funùiÚ
+ \12
+
+339
+ $w´\9atf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+, ...)
+
+341 \15
+ `__w´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+ `__va_¬g_·ck
+ ());
+
+342
+ }
+}
+
+344
+__fÜtify_funùiÚ
+ \12
+
+345
+ $fw´\9atf
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+, cڡ
+wch¬_t
+ *__»¡riù
+__fmt
+, ...)
+
+347 \15
+ `__fw´\9atf_chk
+ (
+__¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+
+348
+ `__va_¬g_·ck
+ ());
+
+349
+ }
+}
+
+350 #\96ià!
+def\9aed
+
+__ýlu¥lus
+
+
+351 \ 1
+ #w´\9atf
+(...) \
+
+352
+ `__w´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+353 \ 1
+ #fw´\9atf
+(
+¡»am
+, ...) \
+
+354
+ `__fw´\9atf_chk
+ (
+¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__VA_ARGS__
+)
+
+ )
+
+357
+__fÜtify_funùiÚ
+ \12
+
+358
+ $vw´\9atf
+ (cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+,
+__gnuc_va_li¡
+
+__
+)
+
+360 \15
+ `__vw´\9atf_chk
+ (
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+361
+ }
+}
+
+363
+__fÜtify_funùiÚ
+ \12
+
+364
+ $vfw´\9atf
+ (
+__FILE
+ *
+__»¡riù
+
+__¡»am
+,
+
+365 cڡ
+wch¬_t
+ *
+__»¡riù
+
+__fmt
+,
+__gnuc_va_li¡
+
+__
+)
+
+367 \15
+ `__vfw´\9atf_chk
+ (
+__¡»am
+,
+__USE_FORTIFY_LEVEL
+ - 1,
+__fmt
+,
+__
+);
+
+368
+ }
+}
+
+372 \r
+wch¬_t
+ *
+ $__fg\91ws_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+373
+__FILE
+ *
+__»¡riù
+
+__¡»am
+è
+__wur
+;
+
+374 \r
+wch¬_t
+ *
+ `__REDIRECT
+ (
+__fg\91ws_®\9fs
+,
+
+375 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+, \12
+__n
+,
+
+376
+__FILE
+ *
+__»¡riù
+
+__¡»am
+),
+fg\91ws
+è
+__wur
+;
+
+377 \r
+wch¬_t
+ *
+ `__REDIRECT
+ (
+__fg\91ws_chk_w¬n
+,
+
+378 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+379
+__FILE
+ *
+__»¡riù
+
+__¡»am
+),
+__fg\91ws_chk
+)
+
+380
+__wur
+
+ `__w‚\89r
+ ("fgetws called with bigger size\81han\86ength "
+
+383
+__fÜtify_funùiÚ
+
+__wur
+
+wch¬_t
+ *
+
+384
+ $fg\91ws
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+, \12
+__n
+,
+__FILE
+ *__»¡riù
+__¡»am
+)
+
+386 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+388 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+389 \15
+ `__fg\91ws_chk
+ (
+__s
+,
+ `__bos
+ (__sè/ \17 (
+wch¬_t
+),
+
+390
+__n
+,
+__¡»am
+);
+
+392 ià((
+size_t
+è
+__n
+ >
+ `__bos
+ (
+__s
+è/ \17 (
+wch¬_t
+))
+
+393 \15
+ `__fg\91ws_chk_w¬n
+ (
+__s
+,
+ `__bos
+ (__sè/ \17 (
+wch¬_t
+),
+
+394
+__n
+,
+__¡»am
+);
+
+396 \15
+ `__fg\91ws_®\9fs
+ (
+__s
+,
+__n
+,
+__¡»am
+);
+
+397
+ }
+}
+
+399 #ifdeà
+__USE_GNU
+
+
+400 \r
+wch¬_t
+ *
+ $__fg\91ws_uÆocked_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+,
+
+401 \12
+__n
+,
+__FILE
+ *
+__»¡riù
+
+__¡»am
+)
+
+402
+__wur
+;
+
+403 \r
+wch¬_t
+ *
+ `__REDIRECT
+ (
+__fg\91ws_uÆocked_®\9fs
+,
+
+404 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+, \12
+__n
+,
+
+405
+__FILE
+ *
+__»¡riù
+
+__¡»am
+),
+fg\91ws_uÆocked
+)
+
+406
+__wur
+;
+
+407 \r
+wch¬_t
+ *
+ `__REDIRECT
+ (
+__fg\91ws_uÆocked_chk_w¬n
+,
+
+408 (
+wch¬_t
+ *
+__»¡riù
+
+__s
+,
+size_t
+
+__size
+, \12
+__n
+,
+
+409
+__FILE
+ *
+__»¡riù
+
+__¡»am
+),
+
+410
+__fg\91ws_uÆocked_chk
+)
+
+411
+__wur
+
+ `__w‚\89r
+ ("fgetws_unlocked called with bigger size\81han\86ength "
+
+414
+__fÜtify_funùiÚ
+
+__wur
+
+wch¬_t
+ *
+
+415
+ $fg\91ws_uÆocked
+ (
+wch¬_t
+ *
+__»¡riù
+
+__s
+, \12
+__n
+,
+__FILE
+ *__»¡riù
+__¡»am
+)
+
+417 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+) -1)
+
+419 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__n
+) || __n <= 0)
+
+420 \15
+ `__fg\91ws_uÆocked_chk
+ (
+__s
+,
+ `__bos
+ (__sè/ \17 (
+wch¬_t
+),
+
+421
+__n
+,
+__¡»am
+);
+
+423 ià((
+size_t
+è
+__n
+ >
+ `__bos
+ (
+__s
+è/ \17 (
+wch¬_t
+))
+
+424 \15
+ `__fg\91ws_uÆocked_chk_w¬n
+ (
+__s
+,
+ `__bos
+ (__sè/ \17 (
+wch¬_t
+),
+
+425
+__n
+,
+__¡»am
+);
+
+427 \15
+ `__fg\91ws_uÆocked_®\9fs
+ (
+__s
+,
+__n
+,
+__¡»am
+);
+
+428
+ }
+}
+
+432 \r
+size_t
+
+ $__wütomb_chk
+ (\ 5*
+__»¡riù
+
+__s
+,
+wch¬_t
+
+__wch¬
+,
+
+433
+mb¡©e_t
+ *
+__»¡riù
+
+__p
+,
+
+434
+size_t
+
+__buæ\92
+è
+__THROW
+
+__wur
+;
+
+435 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wütomb_®\9fs
+,
+
+436 (\ 5*
+__»¡riù
+
+__s
+,
+wch¬_t
+
+__wch¬
+,
+
+437
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+),
+wütomb
+è
+__wur
+;
+
+439
+__fÜtify_funùiÚ
+
+__wur
+
+size_t
+
+
+440
+ `__NTH
+ (
+ $wütomb
+ (\ 5*
+__»¡riù
+
+__s
+,
+wch¬_t
+
+__wch¬
+,
+
+441
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+446 \ 1
+ #__WCHAR_MB_LEN_MAX
+ 16
+
+ )
+
+447 #ià
+def\9aed
+
+MB_LEN_MAX
+ && MB_LEN_MAX !ð
+__WCHAR_MB_LEN_MAX
+
+
+450 ià(
+ `__bos
+ (
+__s
+è!ð(
+size_t
+è-1 &&
+__WCHAR_MB_LEN_MAX
+ > __bos (__s))
+
+451 \15
+ `__wütomb_chk
+ (
+__s
+,
+__wch¬
+,
+__ps
+,
+ `__bos
+ (__s));
+
+452 \15
+ `__wütomb_®\9fs
+ (
+__s
+,
+__wch¬
+,
+__ps
+);
+
+453
+ }
+}
+
+456 \r
+size_t
+
+ $__mb¤towcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+457 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+
+458
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+459
+size_t
+
+__d¡Ën
+è
+__THROW
+;
+
+460 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¤towcs_®\9fs
+,
+
+461 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+462 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+
+463
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+),
+
+464
+mb¤towcs
+);
+
+465 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¤towcs_chk_w¬n
+,
+
+466 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+467 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+
+468
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+469
+size_t
+
+__d¡Ën
+),
+__mb¤towcs_chk
+)
+
+470
+ `__w‚\89r
+ ("mbsrtowcs called with dst buffer smaller\81han\86en "
+
+473
+__fÜtify_funùiÚ
+
+size_t
+
+
+474
+ `__NTH
+ (
+ $mb¤towcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+, cÚ¡ \ 5**__»¡riù
+__¤c
+,
+
+475
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+477 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+479 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+480 \15
+ `__mb¤towcs_chk
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+,
+
+481
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+483 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+))
+
+484 \15
+ `__mb¤towcs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+,
+
+485
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+487 \15
+ `__mb¤towcs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+);
+
+488
+ }
+}
+
+491 \r
+size_t
+
+ $__wc¤tombs_chk
+ (\ 5*
+__»¡riù
+
+__d¡
+,
+
+492 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+493
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+494
+size_t
+
+__d¡Ën
+è
+__THROW
+;
+
+495 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¤tombs_®\9fs
+,
+
+496 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+497 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+498
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+),
+
+499
+wc¤tombs
+);
+
+500 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¤tombs_chk_w¬n
+,
+
+501 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+502 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+503
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+504
+size_t
+
+__d¡Ën
+),
+__wc¤tombs_chk
+)
+
+505
+ `__w‚\89r
+ ("wcsrtombs called with dst buffer smaller\81han\86en");
+
+507
+__fÜtify_funùiÚ
+
+size_t
+
+
+508
+ `__NTH
+ (
+ $wc¤tombs
+ (\ 5*
+__»¡riù
+
+__d¡
+, cڡ
+wch¬_t
+ **__»¡riù
+__¤c
+,
+
+509
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+511 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+513 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+514 \15
+ `__wc¤tombs_chk
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+,
+ `__bos
+ (__dst));
+
+516 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+))
+
+517 \15
+ `__wc¤tombs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+,
+ `__bos
+ (__dst));
+
+519 \15
+ `__wc¤tombs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__Ën
+,
+__ps
+);
+
+520
+ }
+}
+
+523 #ifdeà
+__USE_GNU
+
+
+524 \r
+size_t
+
+ $__mb¢¹owcs_chk
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+525 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+size_t
+
+__nmc
+,
+
+526
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+527
+size_t
+
+__d¡Ën
+è
+__THROW
+;
+
+528 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¢¹owcs_®\9fs
+,
+
+529 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+530 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+size_t
+
+__nmc
+,
+
+531
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+),
+
+532
+mb¢¹owcs
+);
+
+533 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__mb¢¹owcs_chk_w¬n
+,
+
+534 (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+,
+
+535 cڡ \ 5**
+__»¡riù
+
+__¤c
+,
+size_t
+
+__nmc
+,
+
+536
+size_t
+
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+537
+size_t
+
+__d¡Ën
+),
+__mb¢¹owcs_chk
+)
+
+538
+ `__w‚\89r
+ ("mbsnrtowcs called with dst buffer smaller\81han\86en "
+
+541
+__fÜtify_funùiÚ
+
+size_t
+
+
+542
+ `__NTH
+ (
+ $mb¢¹owcs
+ (
+wch¬_t
+ *
+__»¡riù
+
+__d¡
+, cÚ¡ \ 5**__»¡riù
+__¤c
+,
+
+543
+size_t
+
+__nmc
+, size_\88
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+545 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+547 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+548 \15
+ `__mb¢¹owcs_chk
+ (
+__d¡
+,
+__¤c
+,
+__nmc
+,
+__Ën
+,
+__ps
+,
+
+549
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+551 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+))
+
+552 \15
+ `__mb¢¹owcs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__nmc
+,
+__Ën
+,
+__ps
+,
+
+553
+ `__bos
+ (
+__d¡
+è/ \17 (
+wch¬_t
+));
+
+555 \15
+ `__mb¢¹owcs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__nmc
+,
+__Ën
+,
+__ps
+);
+
+556
+ }
+}
+
+559 \r
+size_t
+
+ $__wc¢¹ombs_chk
+ (\ 5*
+__»¡riù
+
+__d¡
+,
+
+560 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+561
+size_t
+
+__nwc
+, size_\88
+__Ën
+,
+
+562
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+size_t
+
+__d¡Ën
+)
+
+563
+__THROW
+;
+
+564 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¢¹ombs_®\9fs
+,
+
+565 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+566 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+567
+size_t
+
+__nwc
+, size_\88
+__Ën
+,
+
+568
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+),
+wc¢¹ombs
+);
+
+569 \r
+size_t
+
+ `__REDIRECT_NTH
+ (
+__wc¢¹ombs_chk_w¬n
+,
+
+570 (\ 5*
+__»¡riù
+
+__d¡
+,
+
+571 cڡ
+wch¬_t
+ **
+__»¡riù
+
+__¤c
+,
+
+572
+size_t
+
+__nwc
+, size_\88
+__Ën
+,
+
+573
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+,
+
+574
+size_t
+
+__d¡Ën
+),
+__wc¢¹ombs_chk
+)
+
+575
+ `__w‚\89r
+ ("wcsnrtombs called with dst buffer smaller\81han\86en");
+
+577
+__fÜtify_funùiÚ
+
+size_t
+
+
+578
+ `__NTH
+ (
+ $wc¢¹ombs
+ (\ 5*
+__»¡riù
+
+__d¡
+, cڡ
+wch¬_t
+ **__»¡riù
+__¤c
+,
+
+579
+size_t
+
+__nwc
+, size_\88
+__Ën
+,
+mb¡©e_t
+ *
+__»¡riù
+
+__ps
+))
+
+581 ià(
+ `__bos
+ (
+__d¡
+è!ð(
+size_t
+) -1)
+
+583 ià(!
+ `__bu\9et\9a_cÚ¡ªt_p
+ (
+__Ën
+))
+
+584 \15
+ `__wc¢¹ombs_chk
+ (
+__d¡
+,
+__¤c
+,
+__nwc
+,
+__Ën
+,
+__ps
+,
+
+585
+ `__bos
+ (
+__d¡
+));
+
+587 ià(
+__Ën
+ >
+ `__bos
+ (
+__d¡
+))
+
+588 \15
+ `__wc¢¹ombs_chk_w¬n
+ (
+__d¡
+,
+__¤c
+,
+__nwc
+,
+__Ën
+,
+__ps
+,
+
+589
+ `__bos
+ (
+__d¡
+));
+
+591 \15
+ `__wc¢¹ombs_®\9fs
+ (
+__d¡
+,
+__¤c
+,
+__nwc
+,
+__Ën
+,
+__ps
+);
+
+592
+ }
+}
+
+ @/usr/include/wctype.h
+
+23 #iâdeà
+_WCTYPE_H
+
+
+25 \ 2
+ ~<ã©u»s.h
+>
+
+26 \ 2
+ ~<b\99s/ty³s.h
+>
+
+28 #iâdeà
+__Ãed_iswxxx
+
+
+29 \ 1
+ #_WCTYPE_H
+ 1
+
+ )
+
+32 \ 1
+ #__Ãed_w\9at_t
+
+
+ )
+
+33 \ 2
+ ~<wch¬.h
+>
+
+37 #iâdeà
+WEOF
+
+
+38 \ 1
+ #WEOF
+ (0xffffffffu)
+
+ )
+
+41 #undeà
+__Ãed_iswxxx
+
+
+46 #iâdeà
+__iswxxx_def\9aed
+
+
+47 \ 1
+ #__iswxxx_def\9aed
+ 1
+
+ )
+
+49
+__BEGIN_NAMESPACE_C99
+
+
+52 \e\1d\13\12
+ twùy³_t
+;
+
+53
+ g__END_NAMESPACE_C99
+
+
+55 #iâdeà
+_ISwb\99
+
+
+60 \ 2
+ ~<\92d\9fn.h
+>
+
+61 #ià
+__BYTE_ORDER
+ =ð
+__BIG_ENDIAN
+
+
+62 \ 1
+ #_ISwb\99
+(
+b\99
+è(1 << (b\99))
+
+ )
+
+64 \ 1
+ #_ISwb\99
+(
+b\99
+) \
+
+65 ((
+b\99
+) < 8 ? (\12) ((1UL << (bit)) << 24) \
+
+66 : ((
+b\99
+) < 16 ? (\12) ((1UL << (bit)) << 8) \
+
+67 : ((
+b\99
+) < 24 ? (\12) ((1UL << (bit)) >> 8) \
+
+68 : (\12è((1UL << (
+b\99
+)è>> 24))))
+
+ )
+
+73
+ m__ISwuµ\94
+ = 0,
+
+74
+ m__ISwlow\94
+ = 1,
+
+75
+ m__ISw®pha
+ = 2,
+
+76
+ m__ISwdig\99
+ = 3,
+
+77
+ m__ISwxdig\99
+ = 4,
+
+78
+ m__ISw¥aû
+ = 5,
+
+79
+ m__ISw´\9at
+ = 6,
+
+80
+ m__ISwg¿ph
+ = 7,
+
+81
+ m__ISwbÏnk
+ = 8,
+
+82
+ m__ISwú\8cl
+ = 9,
+
+83
+ m__ISwpunù
+ = 10,
+
+84
+ m__ISw®num
+ = 11,
+
+86
+ m_ISwuµ\94
+ =
+_ISwb\99
+ (
+__ISwuµ\94
+),
+
+87
+ m_ISwlow\94
+ =
+_ISwb\99
+ (
+__ISwlow\94
+),
+
+88
+ m_ISw®pha
+ =
+_ISwb\99
+ (
+__ISw®pha
+),
+
+89
+ m_ISwdig\99
+ =
+_ISwb\99
+ (
+__ISwdig\99
+),
+
+90
+ m_ISwxdig\99
+ =
+_ISwb\99
+ (
+__ISwxdig\99
+),
+
+91
+ m_ISw¥aû
+ =
+_ISwb\99
+ (
+__ISw¥aû
+),
+
+92
+ m_ISw´\9at
+ =
+_ISwb\99
+ (
+__ISw´\9at
+),
+
+93
+ m_ISwg¿ph
+ =
+_ISwb\99
+ (
+__ISwg¿ph
+),
+
+94
+ m_ISwbÏnk
+ =
+_ISwb\99
+ (
+__ISwbÏnk
+),
+
+95
+ m_ISwú\8cl
+ =
+_ISwb\99
+ (
+__ISwú\8cl
+),
+
+96
+ m_ISwpunù
+ =
+_ISwb\99
+ (
+__ISwpunù
+),
+
+97
+ m_ISw®num
+ =
+_ISwb\99
+ (
+__ISw®num
+)
+
+102
+__BEGIN_DECLS
+
+
+104
+__BEGIN_NAMESPACE_C99
+
+
+111 \r\12
+ $isw®num
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+117 \r\12
+ $isw®pha
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+120 \r\12
+ $iswú\8cl
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+124 \r\12
+ $iswdig\99
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+128 \r\12
+ $iswg¿ph
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+133 \r\12
+ $iswlow\94
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+136 \r\12
+ $isw´\9at
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+141 \r\12
+ $iswpunù
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+146 \r\12
+ $isw¥aû
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+151 \r\12
+ $iswuµ\94
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+156 \r\12
+ $iswxdig\99
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+161 #ifdeà
+__USE_ISOC99
+
+
+162 \r\12
+ $iswbÏnk
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+171 \r
+wùy³_t
+
+ $wùy³
+ (cڡ \ 5*
+__´Ý\94ty
+è
+__THROW
+;
+
+175 \r\12
+ $iswùy³
+ (
+w\9at_t
+
+__wc
+,
+wùy³_t
+
+__desc
+è
+__THROW
+;
+
+176
+__END_NAMESPACE_C99
+
+
+183
+__BEGIN_NAMESPACE_C99
+
+
+186 \ecڡ
+ t__\9at32_t
+ *
+ twù¿ns_t
+;
+
+187
+__END_NAMESPACE_C99
+
+
+188 #ifdeà
+__USE_GNU
+
+
+189
+ $__USING_NAMESPACE_C99
+(
+wù¿ns_t
+)
+
+192
+__BEGIN_NAMESPACE_C99
+
+
+194 \r
+w\9at_t
+
+ $towlow\94
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+197 \r
+w\9at_t
+
+ $towuµ\94
+ (
+w\9at_t
+
+__wc
+è
+__THROW
+;
+
+198
+__END_NAMESPACE_C99
+
+
+200
+__END_DECLS
+
+
+207 #ifdeà
+_WCTYPE_H
+
+
+213
+__BEGIN_DECLS
+
+
+215
+__BEGIN_NAMESPACE_C99
+
+
+218 \r
+wù¿ns_t
+
+ $wù¿ns
+ (cڡ \ 5*
+__´Ý\94ty
+è
+__THROW
+;
+
+221 \r
+w\9at_t
+
+ $towù¿ns
+ (
+w\9at_t
+
+__wc
+,
+wù¿ns_t
+
+__desc
+è
+__THROW
+;
+
+222
+__END_NAMESPACE_C99
+
+
+224 #ifdeà
+__USE_XOPEN2K8
+
+
+226 \ 2
+ ~<xloÿË.h
+>
+
+230 \r\12
+ $isw®num_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+236 \r\12
+ $isw®pha_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+239 \r\12
+ $iswú\8cl_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+243 \r\12
+ $iswdig\99_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+247 \r\12
+ $iswg¿ph_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+252 \r\12
+ $iswlow\94_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+255 \r\12
+ $isw´\9at_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+260 \r\12
+ $iswpunù_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+265 \r\12
+ $isw¥aû_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+270 \r\12
+ $iswuµ\94_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+275 \r\12
+ $iswxdig\99_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+280 \r\12
+ $iswbÏnk_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+284 \r
+wùy³_t
+
+ $wùy³_l
+ (cڡ \ 5*
+__´Ý\94ty
+,
+__loÿË_t
+
+__loÿË
+)
+
+285
+__THROW
+;
+
+289 \r\12
+ $iswùy³_l
+ (
+w\9at_t
+
+__wc
+,
+wùy³_t
+
+__desc
+,
+__loÿË_t
+
+__loÿË
+)
+
+290
+__THROW
+;
+
+298 \r
+w\9at_t
+
+ $towlow\94_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+301 \r
+w\9at_t
+
+ $towuµ\94_l
+ (
+w\9at_t
+
+__wc
+,
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+305 \r
+wù¿ns_t
+
+ $wù¿ns_l
+ (cڡ \ 5*
+__´Ý\94ty
+,
+__loÿË_t
+
+__loÿË
+)
+
+306
+__THROW
+;
+
+309 \r
+w\9at_t
+
+ $towù¿ns_l
+ (
+w\9at_t
+
+__wc
+,
+wù¿ns_t
+
+__desc
+,
+
+310
+__loÿË_t
+
+__loÿË
+è
+__THROW
+;
+
+314
+__END_DECLS
+
+
+ @/usr/include/asm-generic/errno-base.h
+
+1 #iâdeà
+_ASM_GENERIC_ERRNO_BASE_H
+
+
+2 \ 1
+ #_ASM_GENERIC_ERRNO_BASE_H
+
+
+ )
+
+4 \ 1
+ #EPERM
+ 1
+
+ )
+
+5 \ 1
+ #ENOENT
+ 2
+
+ )
+
+6 \ 1
+ #ESRCH
+ 3
+
+ )
+
+7 \ 1
+ #EINTR
+ 4
+
+ )
+
+8 \ 1
+ #EIO
+ 5
+
+ )
+
+9 \ 1
+ #ENXIO
+ 6
+
+ )
+
+10 \ 1
+ #E2BIG
+ 7
+
+ )
+
+11 \ 1
+ #ENOEXEC
+ 8
+
+ )
+
+12 \ 1
+ #EBADF
+ 9
+
+ )
+
+13 \ 1
+ #ECHILD
+ 10
+
+ )
+
+14 \ 1
+ #EAGAIN
+ 11
+
+ )
+
+15 \ 1
+ #ENOMEM
+ 12
+
+ )
+
+16 \ 1
+ #EACCES
+ 13
+
+ )
+
+17 \ 1
+ #EFAULT
+ 14
+
+ )
+
+18 \ 1
+ #ENOTBLK
+ 15
+
+ )
+
+19 \ 1
+ #EBUSY
+ 16
+
+ )
+
+20 \ 1
+ #EEXIST
+ 17
+
+ )
+
+21 \ 1
+ #EXDEV
+ 18
+
+ )
+
+22 \ 1
+ #ENODEV
+ 19
+
+ )
+
+23 \ 1
+ #ENOTDIR
+ 20
+
+ )
+
+24 \ 1
+ #EISDIR
+ 21
+
+ )
+
+25 \ 1
+ #EINVAL
+ 22
+
+ )
+
+26 \ 1
+ #ENFILE
+ 23
+
+ )
+
+27 \ 1
+ #EMFILE
+ 24
+
+ )
+
+28 \ 1
+ #ENOTTY
+ 25
+
+ )
+
+29 \ 1
+ #ETXTBSY
+ 26
+
+ )
+
+30 \ 1
+ #EFBIG
+ 27
+
+ )
+
+31 \ 1
+ #ENOSPC
+ 28
+
+ )
+
+32 \ 1
+ #ESPIPE
+ 29
+
+ )
+
+33 \ 1
+ #EROFS
+ 30
+
+ )
+
+34 \ 1
+ #EMLINK
+ 31
+
+ )
+
+35 \ 1
+ #EPIPE
+ 32
+
+ )
+
+36 \ 1
+ #EDOM
+ 33
+
+ )
+
+37 \ 1
+ #ERANGE
+ 34
+
+ )
+
+ @/usr/include/asm-generic/sockios.h
+
+1 #iâdeà
+__ASM_GENERIC_SOCKIOS_H
+
+
+2 \ 1
+ #__ASM_GENERIC_SOCKIOS_H
+
+
+ )
+
+5 \ 1
+ #FIOSETOWN
+ 0x8901
+
+ )
+
+6 \ 1
+ #SIOCSPGRP
+ 0x8902
+
+ )
+
+7 \ 1
+ #FIOGETOWN
+ 0x8903
+
+ )
+
+8 \ 1
+ #SIOCGPGRP
+ 0x8904
+
+ )
+
+9 \ 1
+ #SIOCATMARK
+ 0x8905
+
+ )
+
+10 \ 1
+ #SIOCGSTAMP
+ 0x8906
+
+ )
+
+11 \ 1
+ #SIOCGSTAMPNS
+ 0x8907
+
+ )
+
+ @
+1
+.
+1
+/usr/include
+198
+5604
+VIL/acl/lib_acl.c
+VIL/acl/lib_acl.h
+VIL/alg/lib_ftp_alg.c
+VIL/alg/lib_ftp_alg.h
+VIL/alg/lib_sip_alg.c
+VIL/alg/lib_sip_alg.h
+VIL/conntrack/rte_cnxn_tracking.c
+VIL/conntrack/rte_cnxn_tracking.h
+VIL/conntrack/rte_ct_synproxy.c
+VIL/conntrack/rte_ct_tcp.c
+VIL/conntrack/rte_ct_tcp.h
+VIL/conntrack/rte_ct_udp.c
+VIL/l2l3_stack/bond.c
+VIL/l2l3_stack/hle.c
+VIL/l2l3_stack/hle.h
+VIL/l2l3_stack/interface.c
+VIL/l2l3_stack/interface.h
+VIL/l2l3_stack/l2_proto.c
+VIL/l2l3_stack/l2_proto.h
+VIL/l2l3_stack/l3fwd_common.h
+VIL/l2l3_stack/l3fwd_lpm4.c
+VIL/l2l3_stack/l3fwd_lpm4.h
+VIL/l2l3_stack/l3fwd_lpm6.c
+VIL/l2l3_stack/l3fwd_lpm6.h
+VIL/l2l3_stack/l3fwd_main.c
+VIL/l2l3_stack/lib_arp.c
+VIL/l2l3_stack/lib_arp.h
+VIL/l2l3_stack/lib_icmpv6.c
+VIL/l2l3_stack/lib_icmpv6.h
+VIL/l2l3_stack/main_l2l3.c
+VIL/l2l3_stack/tsx.c
+VIL/l2l3_stack/tsx.h
+VIL/pipeline_arpicmp/pipeline_arpicmp.c
+VIL/pipeline_arpicmp/pipeline_arpicmp.h
+VIL/pipeline_arpicmp/pipeline_arpicmp_be.c
+VIL/pipeline_arpicmp/pipeline_arpicmp_be.h
+VIL/pipeline_common/pipeline_common_be.c
+VIL/pipeline_common/pipeline_common_be.h
+VIL/pipeline_common/pipeline_common_fe.c
+VIL/pipeline_common/pipeline_common_fe.h
+VIL/pipeline_loadb/pipeline_loadb.c
+VIL/pipeline_loadb/pipeline_loadb.h
+VIL/pipeline_loadb/pipeline_loadb_be.c
+VIL/pipeline_loadb/pipeline_loadb_be.h
+VIL/pipeline_master/pipeline_master.c
+VIL/pipeline_master/pipeline_master.h
+VIL/pipeline_master/pipeline_master_be.c
+VIL/pipeline_master/pipeline_master_be.h
+VIL/pipeline_passthrough/pipeline_passthrough.c
+VIL/pipeline_passthrough/pipeline_passthrough.h
+VIL/pipeline_passthrough/pipeline_passthrough_be.c
+VIL/pipeline_passthrough/pipeline_passthrough_be.h
+VIL/pipeline_txrx/pipeline_txrx.c
+VIL/pipeline_txrx/pipeline_txrx.h
+VIL/pipeline_txrx/pipeline_txrx_be.c
+VIL/pipeline_txrx/pipeline_txrx_be.h
+vnf_common/app.h
+vnf_common/config_check.c
+vnf_common/config_parse.c
+vnf_common/config_parse_tm.c
+vnf_common/cpu_core_map.c
+vnf_common/cpu_core_map.h
+vnf_common/hash_func.h
+vnf_common/parser.h
+vnf_common/pipeline.h
+vnf_common/pipeline_actions_common.h
+vnf_common/pipeline_be.h
+vnf_common/thread.c
+vnf_common/thread.h
+vnf_common/thread_fe.c
+vnf_common/thread_fe.h
+vnf_common/vnf_common.c
+vnf_common/vnf_common.h
+vnf_common/vnf_define.h
+/usr/include/arpa/inet.h
+/usr/include/ctype.h
+/usr/include/errno.h
+/usr/include/execinfo.h
+/usr/include/fcntl.h
+/usr/include/getopt.h
+/usr/include/inttypes.h
+/usr/include/libgen.h
+/usr/include/math.h
+/usr/include/netinet/in.h
+/usr/include/setjmp.h
+/usr/include/signal.h
+/usr/include/stdint.h
+/usr/include/stdio.h
+/usr/include/stdlib.h
+/usr/include/string.h
+/usr/include/sys/param.h
+/usr/include/sys/queue.h
+/usr/include/sys/socket.h
+/usr/include/sys/types.h
+/usr/include/sys/wait.h
+/usr/include/time.h
+/usr/include/unistd.h
+/usr/include/alloca.h
+/usr/include/bits/byteswap.h
+/usr/include/bits/confname.h
+/usr/include/bits/environments.h
+/usr/include/bits/errno.h
+/usr/include/bits/fcntl.h
+/usr/include/bits/fcntl2.h
+/usr/include/bits/huge_val.h
+/usr/include/bits/huge_valf.h
+/usr/include/bits/huge_vall.h
+/usr/include/bits/in.h
+/usr/include/bits/inf.h
+/usr/include/bits/math-finite.h
+/usr/include/bits/math-vector.h
+/usr/include/bits/mathcalls.h
+/usr/include/bits/mathdef.h
+/usr/include/bits/mathinline.h
+/usr/include/bits/nan.h
+/usr/include/bits/param.h
+/usr/include/bits/posix_opt.h
+/usr/include/bits/pthreadtypes.h
+/usr/include/bits/setjmp.h
+/usr/include/bits/setjmp2.h
+/usr/include/bits/sigaction.h
+/usr/include/bits/sigcontext.h
+/usr/include/bits/siginfo.h
+/usr/include/bits/signum.h
+/usr/include/bits/sigset.h
+/usr/include/bits/sigstack.h
+/usr/include/bits/sigthread.h
+/usr/include/bits/socket.h
+/usr/include/bits/socket2.h
+/usr/include/bits/stat.h
+/usr/include/bits/stdio-ldbl.h
+/usr/include/bits/stdio.h
+/usr/include/bits/stdio2.h
+/usr/include/bits/stdio_lim.h
+/usr/include/bits/stdlib-bsearch.h
+/usr/include/bits/stdlib-float.h
+/usr/include/bits/stdlib-ldbl.h
+/usr/include/bits/stdlib.h
+/usr/include/bits/string.h
+/usr/include/bits/string2.h
+/usr/include/bits/string3.h
+/usr/include/bits/sys_errlist.h
+/usr/include/bits/time.h
+/usr/include/bits/types.h
+/usr/include/bits/unistd.h
+/usr/include/bits/waitflags.h
+/usr/include/bits/waitstatus.h
+/usr/include/bits/wchar.h
+/usr/include/bits/wordsize.h
+/usr/include/endian.h
+/usr/include/features.h
+/usr/include/libio.h
+/usr/include/limits.h
+/usr/include/sys/select.h
+/usr/include/sys/sysmacros.h
+/usr/include/sys/ucontext.h
+/usr/include/sys/uio.h
+/usr/include/xlocale.h
+/usr/include/_G_config.h
+/usr/include/asm/socket.h
+/usr/include/bits/byteswap-16.h
+/usr/include/bits/endian.h
+/usr/include/bits/fcntl-linux.h
+/usr/include/bits/libio-ldbl.h
+/usr/include/bits/libm-simd-decl-stubs.h
+/usr/include/bits/posix1_lim.h
+/usr/include/bits/posix2_lim.h
+/usr/include/bits/select.h
+/usr/include/bits/select2.h
+/usr/include/bits/sockaddr.h
+/usr/include/bits/socket_type.h
+/usr/include/bits/timex.h
+/usr/include/bits/typesizes.h
+/usr/include/bits/uio.h
+/usr/include/bits/xopen_lim.h
+/usr/include/gnu/stubs.h
+/usr/include/linux/errno.h
+/usr/include/linux/limits.h
+/usr/include/linux/param.h
+/usr/include/stdc-predef.h
+/usr/include/sys/cdefs.h
+/usr/include/asm-generic/socket.h
+/usr/include/asm/errno.h
+/usr/include/asm/param.h
+/usr/include/bits/local_lim.h
+/usr/include/gconv.h
+/usr/include/gnu/stubs-32.h
+/usr/include/gnu/stubs-64.h
+/usr/include/gnu/stubs-x32.h
+/usr/include/wchar.h
+/usr/include/asm-generic/errno.h
+/usr/include/asm-generic/param.h
+/usr/include/asm/sockios.h
+/usr/include/bits/wchar-ldbl.h
+/usr/include/bits/wchar2.h
+/usr/include/wctype.h
+/usr/include/asm-generic/errno-base.h
+/usr/include/asm-generic/sockios.h